Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 116 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Reward | 12200780 | 1399 days ago | IN | 0 ETH | 0.01730923 | ||||
Claim Reward | 12153533 | 1407 days ago | IN | 0 ETH | 0.02062773 | ||||
Claim Reward | 12024992 | 1426 days ago | IN | 0 ETH | 0.03405578 | ||||
Claim Reward | 12003902 | 1430 days ago | IN | 0 ETH | 0.0120407 | ||||
Claim Reward | 11998610 | 1431 days ago | IN | 0 ETH | 0.01327636 | ||||
Claim Reward | 11998378 | 1431 days ago | IN | 0 ETH | 0.02984882 | ||||
Claim Reward | 11998366 | 1431 days ago | IN | 0 ETH | 0.03332437 | ||||
Claim Reward | 11998355 | 1431 days ago | IN | 0 ETH | 0.03516436 | ||||
Claim Reward | 11998221 | 1431 days ago | IN | 0 ETH | 0.02379768 | ||||
Claim Reward | 11998215 | 1431 days ago | IN | 0 ETH | 0.02257728 | ||||
Claim Reward | 11998207 | 1431 days ago | IN | 0 ETH | 0.02176369 | ||||
Claim Reward | 11998196 | 1431 days ago | IN | 0 ETH | 0.02156029 | ||||
Claim Reward | 11998187 | 1431 days ago | IN | 0 ETH | 0.01399549 | ||||
Claim Reward | 11998171 | 1431 days ago | IN | 0 ETH | 0.02196709 | ||||
Claim Reward | 11998111 | 1431 days ago | IN | 0 ETH | 0.02115349 | ||||
Claim Reward | 11998103 | 1431 days ago | IN | 0 ETH | 0.02176369 | ||||
Claim Reward | 11998103 | 1431 days ago | IN | 0 ETH | 0.02176369 | ||||
Claim Reward | 11998092 | 1431 days ago | IN | 0 ETH | 0.02135689 | ||||
Claim Reward | 11998081 | 1431 days ago | IN | 0 ETH | 0.02176369 | ||||
Claim Reward | 11977593 | 1434 days ago | IN | 0 ETH | 0.0165572 | ||||
Claim Reward | 11972432 | 1435 days ago | IN | 0 ETH | 0.02514661 | ||||
Claim Reward | 11972416 | 1435 days ago | IN | 0 ETH | 0.02501807 | ||||
Claim Reward | 11972409 | 1435 days ago | IN | 0 ETH | 0.02603507 | ||||
Claim Reward | 11972394 | 1435 days ago | IN | 0 ETH | 0.02359289 | ||||
Claim Reward | 11972390 | 1435 days ago | IN | 0 ETH | 0.02359428 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StakingManager
Compiler Version
v0.6.3+commit.8dda9521
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.6.0; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/math/SafeMath.sol"; import "./templates/Initializable.sol"; import "./interfaces/IStakingManager.sol"; /** * @title StakingManager * @dev Staking manager contract */ contract StakingManager is Initializable, IStakingManager { using SafeMath for uint256; uint256 constant private XBE_AMOUNT = 12000 ether; uint256[7] private DAILY_XBE_REWARD = [ 999900 finney, // first day - 33.33% 585000 finney, // second day - 19.50% 414900 finney, // third day - 13.83% 321600 finney, // 4th day - 10.72% 263100 finney, // 5th day - 8,77% 222600 finney, // 6th day - 7,42% 192900 finney]; // 7th day - 6,43% struct Accumulator { uint256 lpTotalAmount; uint256 xbeTotalReward; } event StakerAdded(address user, address pool, uint256 day, uint256 amount); event StakerHasClaimedReward(address user, uint256[4] lpTokens, uint256 xbeTokens); /// all available pools address[4] private _pools; /// pool address => status mapping(address => bool) private _allowListOfPools; /// user address => pool address => daily lp balance mapping(address => mapping(address => uint256[7])) private _stakes; /// pool address => total LP tokens value which was added per day and daily reward mapping(address => Accumulator[7]) private _dailyAccumulator; IERC20 private _tokenXbe; uint256 private _startTime; constructor( address xbe, uint256 startTime ) public { _tokenXbe = IERC20(xbe); _startTime = startTime; } /** * @dev add all pools address for staking */ function configure(address[4] calldata pools) external initializer { _tokenXbe.transferFrom(_msgSender(), address(this), XBE_AMOUNT); for (uint i = 0; i < 4; ++i) { address pool = pools[i]; _allowListOfPools[pool] = true; _pools[i] = pools[i]; for (uint j = 0; j < 7; ++j) { _dailyAccumulator[pool][j].xbeTotalReward = DAILY_XBE_REWARD[j]; } } } /** * @return start time */ function startTime() external view override returns (uint256) { return _startTime; } /** * @return end time */ function endTime() public view override returns (uint256) { return _startTime + 7 days; } /** * @return day number from startTime */ function currentDay() external view returns (uint256) { if (block.timestamp < _startTime) { return 0; } uint256 day = (block.timestamp - _startTime) / 1 days; return (day < 7)? (day + 1) : 0; } function tokenXbe() external view returns (address) { return address(_tokenXbe); } function getPools() external view override returns (address[4] memory) { return _pools; } function totalRewardForPool(address pool) external view returns (uint256, uint256[7] memory) { uint256 poolReward = 0; uint256[7] memory dailyRewards; for (uint256 i = 0; i < 7; ++i) { dailyRewards[i] = _dailyAccumulator[pool][i].xbeTotalReward; poolReward = poolReward.add(dailyRewards[i]); } return (poolReward, dailyRewards); } function totalLPForPool(address pool) external view returns (uint256, uint256[7] memory) { uint256 lpAmount = 0; uint256[7] memory dailyLP; for (uint256 i = 0; i < 7; ++i) { dailyLP[i] = _dailyAccumulator[pool][i].lpTotalAmount; lpAmount = lpAmount.add(dailyLP[i]); } return (lpAmount, dailyLP); } function getStake(address user) external view returns (uint256[4] memory) { uint256[4] memory lpTokens; for (uint256 i = 0; i < 4; ++i) { lpTokens[i] = 0; for (uint256 j = 0; j < 7; ++j) { lpTokens[i] = lpTokens[i].add(_stakes[user][_pools[i]][j]); } } return lpTokens; } function getStakeInfoPerDay(address user, address pool) external view returns (uint256[7] memory) { uint256[7] memory lpTokens; for (uint256 i = 0; i < 7; ++i) { lpTokens[i] = _stakes[user][pool][i]; } return lpTokens; } function calculateReward(address user, uint256 timestamp) external view returns(uint256[4] memory, uint256[4] memory) { uint256[4] memory usersLP; uint256[4] memory xbeReward; uint256 _endTime = endTime(); if (timestamp == 0) { timestamp = _endTime; } else if (timestamp > _endTime) { timestamp = _endTime; } for (uint256 i = 0; i < 4; ++i) { address pool = _pools[i]; uint256 accumulateTotalLP = 0; uint256 accumulateUserLP = 0; for (uint256 j = 0; j < 7 && timestamp >= _startTime + (j + 1) * 86400; ++j) { Accumulator memory dailyAccumulator = _dailyAccumulator[pool][j]; accumulateTotalLP = accumulateTotalLP.add(dailyAccumulator.lpTotalAmount); uint256 stake = _stakes[user][pool][j]; if (stake > 0) { accumulateUserLP = accumulateUserLP.add(stake); usersLP[i] = usersLP[i].add(stake); } if (accumulateUserLP > 0) { uint256 dailyReward = dailyAccumulator.xbeTotalReward.mul(accumulateUserLP).div(accumulateTotalLP); xbeReward[i] = xbeReward[i].add(dailyReward); } } } return (usersLP, xbeReward); } /** * @dev Add stake * @param user user address * @param pool pool address * @param amount number of LP tokens */ function addStake(address user, address pool, uint256 amount) external override { require(block.timestamp >= _startTime, "The time has not come yet"); require(block.timestamp <= _startTime + 7 days, "stakings has finished"); require(_allowListOfPools[pool], "Pool not found"); // transfer LP tokens from sender to contract IERC20(pool).transferFrom(_msgSender(), address(this), amount); uint256 day = (block.timestamp - _startTime) / 1 days; // add amount to daily LP total value Accumulator storage dailyAccumulator = _dailyAccumulator[pool][day]; dailyAccumulator.lpTotalAmount = dailyAccumulator.lpTotalAmount.add(amount); // add stake info _stakes[user][pool][day] = _stakes[user][pool][day].add(amount); emit StakerAdded(user, pool, day + 1, amount); } /** * @dev Pick up reward and LP tokens */ function claimReward(address user) external { require(block.timestamp > endTime(), "wait end time"); uint256 xbeReward = 0; uint256[4] memory usersLP; for (uint256 i = 0; i < 4; ++i) { address pool = _pools[i]; uint256 accumulateTotalLP = 0; uint256 accumulateUserLP = 0; for (uint256 j = 0; j < 7; ++j) { Accumulator storage dailyAccumulator = _dailyAccumulator[pool][j]; accumulateTotalLP = accumulateTotalLP.add(dailyAccumulator.lpTotalAmount); uint256 stake = _stakes[user][pool][j]; if (stake > 0) { _stakes[user][pool][j] = 0; dailyAccumulator.lpTotalAmount = dailyAccumulator.lpTotalAmount.sub(stake); accumulateUserLP = accumulateUserLP.add(stake); usersLP[i] = usersLP[i].add(stake); } if (accumulateUserLP > 0) { uint256 dailyReward = dailyAccumulator.xbeTotalReward.mul(accumulateUserLP).div(accumulateTotalLP); dailyAccumulator.xbeTotalReward = dailyAccumulator.xbeTotalReward.sub(dailyReward); xbeReward = xbeReward.add(dailyReward); } } if (usersLP[i] > 0) { IERC20(_pools[i]).transfer(user, usersLP[i]); } } require(xbeReward > 0, "Reward is empty"); _tokenXbe.transfer(user, xbeReward); emit StakerHasClaimedReward(user, usersLP, xbeReward); } }
pragma solidity ^0.6.0; /** * @title IStakingManager * @dev Staking manager interface */ interface IStakingManager { function addStake( address user, address pool, uint256 amount ) external; function startTime() external view returns (uint256); function endTime() external view returns (uint256); function getPools() external view returns (address[4] memory); }
pragma solidity >=0.6.0 <0.7.0; import "@openzeppelin/contracts/GSN/Context.sol"; /** * @title Initializable allows to create initializable contracts * so that only deployer can initialize contract and only once */ contract Initializable is Context { bool private _isContractInitialized; address private _deployer; constructor() public { _deployer = _msgSender(); } modifier initializer { require(_msgSender() == _deployer, "user not allowed to initialize"); require(!_isContractInitialized, "contract already initialized"); _; _isContractInitialized = true; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <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 GSN 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 payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) 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 `amount` 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 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @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); }
{ "remappings": [], "optimizer": { "enabled": false, "runs": 200 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"xbe","type":"address"},{"internalType":"uint256","name":"startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"StakerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256[4]","name":"lpTokens","type":"uint256[4]"},{"indexed":false,"internalType":"uint256","name":"xbeTokens","type":"uint256"}],"name":"StakerHasClaimedReward","type":"event"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"calculateReward","outputs":[{"internalType":"uint256[4]","name":"","type":"uint256[4]"},{"internalType":"uint256[4]","name":"","type":"uint256[4]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[4]","name":"pools","type":"address[4]"}],"name":"configure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPools","outputs":[{"internalType":"address[4]","name":"","type":"address[4]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getStake","outputs":[{"internalType":"uint256[4]","name":"","type":"uint256[4]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"pool","type":"address"}],"name":"getStakeInfoPerDay","outputs":[{"internalType":"uint256[7]","name":"","type":"uint256[7]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenXbe","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"totalLPForPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[7]","name":"","type":"uint256[7]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"totalRewardForPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[7]","name":"","type":"uint256[7]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526040518060e0016040528068363466684d8116000068ffffffffffffffffff168152602001681fb68180898384000068ffffffffffffffffff16815260200168167de4e7c3fd92000068ffffffffffffffffff16815260200168116f18b81715a0000068ffffffffffffffffff168152602001680e433ef8095546000068ffffffffffffffffff168152602001680c1132109d59f4000068ffffffffffffffffff168152602001680a750677f8d4da000068ffffffffffffffffff168152506001906007620000d5929190620001cc565b50348015620000e357600080fd5b506040516200232938038062002329833981810160405260408110156200010957600080fd5b81019080805190602001909291908051906020019092919050505062000134620001c460201b60201c565b600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601081905550505062000246565b600033905090565b82600781019282156200020b579160200282015b828111156200020a578251829068ffffffffffffffffff16905591602001919060010190620001e0565b5b5090506200021a91906200021e565b5090565b6200024391905b808211156200023f57600081600090555060010162000225565b5090565b90565b6120d380620002566000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063673a2a1f1161008c578063b69788e311610066578063b69788e314610402578063d279c19114610489578063dfc2d1ba146104cd578063e95028821461053b576100cf565b8063673a2a1f1461031e57806378e97925146103645780637a76646014610382576100cf565b80631852e8d9146100d45780633197cbb61461018d5780633418a489146101ab578063474491481461024b5780635c9302c914610279578063661cf60914610297575b600080fd5b610120600480360360408110156100ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610585565b6040518083600460200280838360005b8381101561014b578082015181840152602081019050610130565b5050505090500182600460200280838360005b8381101561017957808201518184015260208101905061015e565b505050509050019250505060405180910390f35b610195610853565b6040518082815260200191505060405180910390f35b61020d600480360360408110156101c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610862565b6040518082600760200280838360005b8381101561023857808201518184015260208101905061021d565b5050505090500191505060405180910390f35b6102776004803603608081101561026157600080fd5b8101908080608001909192919290505050610935565b005b610281610d59565b6040518082815260200191505060405180910390f35b6102d9600480360360208110156102ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d9e565b6040518083815260200182600760200280838360005b8381101561030a5780820151818401526020810190506102ef565b505050509050019250505060405180910390f35b610326610e69565b6040518082600460200280838360005b83811015610351578082015181840152602081019050610336565b5050505090500191505060405180910390f35b61036c610eea565b6040518082815260200191505060405180910390f35b6103c46004803603602081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef4565b6040518082600460200280838360005b838110156103ef5780820151818401526020810190506103d4565b5050505090500191505060405180910390f35b6104446004803603602081101561041857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611048565b6040518083815260200182600760200280838360005b8381101561047557808201518184015260208101905061045a565b505050509050019250505060405180910390f35b6104cb6004803603602081101561049f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611113565b005b610539600480360360608110156104e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611792565b005b610543611ca2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058d611ffc565b610595611ffc565b61059d611ffc565b6105a5611ffc565b60006105af610853565b905060008614156105c2578095506105cf565b808611156105ce578095505b5b60008090505b6004811015610842576000600882600481106105ed57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809050600080905060008090505b60078110801561063d5750620151806001820102601054018b10155b156108335761064a61201e565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826007811061069457fe5b600202016040518060400160405290816000820154815260200160018201548152505090506106d0816000015185611ccc90919063ffffffff16565b93506000600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836007811061075b57fe5b0154905060008111156107b65761077b8185611ccc90919063ffffffff16565b93506107a0818b896004811061078d57fe5b6020020151611ccc90919063ffffffff16565b8a88600481106107ac57fe5b6020020181815250505b60008411156108265760006107ea866107dc878660200151611d5490919063ffffffff16565b611dda90919063ffffffff16565b905061080f818b8a600481106107fc57fe5b6020020151611ccc90919063ffffffff16565b8a896004811061081b57fe5b602002018181525050505b5050806001019050610621565b505050508060010190506105d5565b508282945094505050509250929050565b600062093a8060105401905090565b61086a612038565b610872612038565b60008090505b600781101561092a57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020816007811061090857fe5b015482826007811061091657fe5b602002018181525050806001019050610878565b508091505092915050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610976611e24565b73ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f75736572206e6f7420616c6c6f77656420746f20696e697469616c697a65000081525060200191505060405180910390fd5b6000809054906101000a900460ff1615610a81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f636f6e747261637420616c726561647920696e697469616c697a65640000000081525060200191505060405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd610ac7611e24565b3069028a857425466f8000006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610b6f57600080fd5b505af1158015610b83573d6000803e3d6000fd5b505050506040513d6020811015610b9957600080fd5b81019080805190602001909291905050505060008090505b6004811015610d3b576000828260048110610bc857fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1690506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828260048110610c4957fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1660088360048110610c7157fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008090505b6007811015610d2e5760018160078110610ccc57fe5b0154600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260078110610d1857fe5b6002020160010181905550806001019050610cb6565b5050806001019050610bb1565b5060016000806101000a81548160ff02191690831515021790555050565b6000601054421015610d6e5760009050610d9b565b600062015180601054420381610d8057fe5b04905060078110610d92576000610d97565b600181015b9150505b90565b6000610da8612038565b6000809050610db5612038565b60008090505b6007811015610e5b57600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160078110610e0e57fe5b6002020160000154828260078110610e2257fe5b602002018181525050610e4e828260078110610e3a57fe5b602002015184611ccc90919063ffffffff16565b9250806001019050610dbb565b508181935093505050915091565b610e7161205a565b6008600480602002604051908101604052809291908260048015610ee0576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610e96575b5050505050905090565b6000601054905090565b610efc611ffc565b610f04611ffc565b60008090505b600481101561103e576000828260048110610f2157fe5b60200201818152505060008090505b600781101561103257611012600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060088560048110610f8a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260078110610ff157fe5b0154848460048110610fff57fe5b6020020151611ccc90919063ffffffff16565b83836004811061101e57fe5b602002018181525050806001019050610f30565b50806001019050610f0a565b5080915050919050565b6000611052612038565b600080905061105f612038565b60008090505b600781101561110557600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081600781106110b857fe5b60020201600101548282600781106110cc57fe5b6020020181815250506110f88282600781106110e457fe5b602002015184611ccc90919063ffffffff16565b9250806001019050611065565b508181935093505050915091565b61111b610853565b421161118f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7761697420656e642074696d650000000000000000000000000000000000000081525060200191505060405180910390fd5b600080905061119c611ffc565b60008090505b6004811015611596576000600882600481106111ba57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809050600080905060008090505b600781101561146c576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826007811061124357fe5b600202019050611260816000015485611ccc90919063ffffffff16565b93506000600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083600781106112eb57fe5b0154905060008111156113f3576000600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846007811061138157fe5b018190555061139d818360000154611e2c90919063ffffffff16565b82600001819055506113b88185611ccc90919063ffffffff16565b93506113dd818989600481106113ca57fe5b6020020151611ccc90919063ffffffff16565b8888600481106113e957fe5b6020020181815250505b600084111561145f57600061142786611419878660010154611d5490919063ffffffff16565b611dda90919063ffffffff16565b9050611440818460010154611e2c90919063ffffffff16565b836001018190555061145b818b611ccc90919063ffffffff16565b9950505b50508060010190506111ee565b50600085856004811061147b57fe5b60200201511115611588576008846004811061149357fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888787600481106114dd57fe5b60200201516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b505050506040513d602081101561157557600080fd5b8101908080519060200190929190505050505b5050508060010190506111a2565b506000821161160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f52657761726420697320656d707479000000000000000000000000000000000081525060200191505060405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050506040513d60208110156116e057600080fd5b8101908080519060200190929190505050507fef00e9ee749a97027140bbf0e987bc723982be548b182c8dd67bc7ed045172d7838284604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600460200280838360005b83811015611773578082015181840152602081019050611758565b50505050905001828152602001935050505060405180910390a1505050565b60105442101561180a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5468652074696d6520686173206e6f7420636f6d65207965740000000000000081525060200191505060405180910390fd5b62093a8060105401421115611887576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7374616b696e6773206861732066696e6973686564000000000000000000000081525060200191505060405180910390fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f506f6f6c206e6f7420666f756e6400000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd61196a611e24565b30846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a0857600080fd5b505af1158015611a1c573d6000803e3d6000fd5b505050506040513d6020811015611a3257600080fd5b810190808051906020019092919050505050600062015180601054420381611a5657fe5b0490506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260078110611aa557fe5b600202019050611ac2838260000154611ccc90919063ffffffff16565b8160000181905550611b6583600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208460078110611b5557fe5b0154611ccc90919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360078110611bec57fe5b01819055507fca0734fffefec4fa0aa4c49098dbb7f153844791c9ec6093e432bc72d4670c9485856001850186604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828401905083811015611d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611d675760009050611dd4565b6000828402905082848281611d7857fe5b0414611dcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061207d6021913960400191505060405180910390fd5b809150505b92915050565b6000611e1c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e76565b905092915050565b600033905090565b6000611e6e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f3c565b905092915050565b60008083118290611f22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ee7578082015181840152602081019050611ecc565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611f2e57fe5b049050809150509392505050565b6000838311158290611fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fae578082015181840152602081019050611f93565b50505050905090810190601f168015611fdb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6040518060800160405280600490602082028036833780820191505090505090565b604051806040016040528060008152602001600081525090565b6040518060e00160405280600790602082028036833780820191505090505090565b604051806080016040528060049060208202803683378082019150509050509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122036f399fe92eb60bf86a21afc56090643976db9efb60e37f7bc380c81b500f68964736f6c634300060300330000000000000000000000005de7cc4bcbca31c473f6d2f27825cfb09cc0bb1600000000000000000000000000000000000000000000000000000000603631b0
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063673a2a1f1161008c578063b69788e311610066578063b69788e314610402578063d279c19114610489578063dfc2d1ba146104cd578063e95028821461053b576100cf565b8063673a2a1f1461031e57806378e97925146103645780637a76646014610382576100cf565b80631852e8d9146100d45780633197cbb61461018d5780633418a489146101ab578063474491481461024b5780635c9302c914610279578063661cf60914610297575b600080fd5b610120600480360360408110156100ea57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610585565b6040518083600460200280838360005b8381101561014b578082015181840152602081019050610130565b5050505090500182600460200280838360005b8381101561017957808201518184015260208101905061015e565b505050509050019250505060405180910390f35b610195610853565b6040518082815260200191505060405180910390f35b61020d600480360360408110156101c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610862565b6040518082600760200280838360005b8381101561023857808201518184015260208101905061021d565b5050505090500191505060405180910390f35b6102776004803603608081101561026157600080fd5b8101908080608001909192919290505050610935565b005b610281610d59565b6040518082815260200191505060405180910390f35b6102d9600480360360208110156102ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d9e565b6040518083815260200182600760200280838360005b8381101561030a5780820151818401526020810190506102ef565b505050509050019250505060405180910390f35b610326610e69565b6040518082600460200280838360005b83811015610351578082015181840152602081019050610336565b5050505090500191505060405180910390f35b61036c610eea565b6040518082815260200191505060405180910390f35b6103c46004803603602081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef4565b6040518082600460200280838360005b838110156103ef5780820151818401526020810190506103d4565b5050505090500191505060405180910390f35b6104446004803603602081101561041857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611048565b6040518083815260200182600760200280838360005b8381101561047557808201518184015260208101905061045a565b505050509050019250505060405180910390f35b6104cb6004803603602081101561049f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611113565b005b610539600480360360608110156104e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611792565b005b610543611ca2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058d611ffc565b610595611ffc565b61059d611ffc565b6105a5611ffc565b60006105af610853565b905060008614156105c2578095506105cf565b808611156105ce578095505b5b60008090505b6004811015610842576000600882600481106105ed57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809050600080905060008090505b60078110801561063d5750620151806001820102601054018b10155b156108335761064a61201e565b600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826007811061069457fe5b600202016040518060400160405290816000820154815260200160018201548152505090506106d0816000015185611ccc90919063ffffffff16565b93506000600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836007811061075b57fe5b0154905060008111156107b65761077b8185611ccc90919063ffffffff16565b93506107a0818b896004811061078d57fe5b6020020151611ccc90919063ffffffff16565b8a88600481106107ac57fe5b6020020181815250505b60008411156108265760006107ea866107dc878660200151611d5490919063ffffffff16565b611dda90919063ffffffff16565b905061080f818b8a600481106107fc57fe5b6020020151611ccc90919063ffffffff16565b8a896004811061081b57fe5b602002018181525050505b5050806001019050610621565b505050508060010190506105d5565b508282945094505050509250929050565b600062093a8060105401905090565b61086a612038565b610872612038565b60008090505b600781101561092a57600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020816007811061090857fe5b015482826007811061091657fe5b602002018181525050806001019050610878565b508091505092915050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610976611e24565b73ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f75736572206e6f7420616c6c6f77656420746f20696e697469616c697a65000081525060200191505060405180910390fd5b6000809054906101000a900460ff1615610a81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f636f6e747261637420616c726561647920696e697469616c697a65640000000081525060200191505060405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd610ac7611e24565b3069028a857425466f8000006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015610b6f57600080fd5b505af1158015610b83573d6000803e3d6000fd5b505050506040513d6020811015610b9957600080fd5b81019080805190602001909291905050505060008090505b6004811015610d3b576000828260048110610bc857fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1690506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828260048110610c4957fe5b602002013573ffffffffffffffffffffffffffffffffffffffff1660088360048110610c7157fe5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008090505b6007811015610d2e5760018160078110610ccc57fe5b0154600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260078110610d1857fe5b6002020160010181905550806001019050610cb6565b5050806001019050610bb1565b5060016000806101000a81548160ff02191690831515021790555050565b6000601054421015610d6e5760009050610d9b565b600062015180601054420381610d8057fe5b04905060078110610d92576000610d97565b600181015b9150505b90565b6000610da8612038565b6000809050610db5612038565b60008090505b6007811015610e5b57600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160078110610e0e57fe5b6002020160000154828260078110610e2257fe5b602002018181525050610e4e828260078110610e3a57fe5b602002015184611ccc90919063ffffffff16565b9250806001019050610dbb565b508181935093505050915091565b610e7161205a565b6008600480602002604051908101604052809291908260048015610ee0576020028201915b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610e96575b5050505050905090565b6000601054905090565b610efc611ffc565b610f04611ffc565b60008090505b600481101561103e576000828260048110610f2157fe5b60200201818152505060008090505b600781101561103257611012600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060088560048110610f8a57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260078110610ff157fe5b0154848460048110610fff57fe5b6020020151611ccc90919063ffffffff16565b83836004811061101e57fe5b602002018181525050806001019050610f30565b50806001019050610f0a565b5080915050919050565b6000611052612038565b600080905061105f612038565b60008090505b600781101561110557600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081600781106110b857fe5b60020201600101548282600781106110cc57fe5b6020020181815250506110f88282600781106110e457fe5b602002015184611ccc90919063ffffffff16565b9250806001019050611065565b508181935093505050915091565b61111b610853565b421161118f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f7761697420656e642074696d650000000000000000000000000000000000000081525060200191505060405180910390fd5b600080905061119c611ffc565b60008090505b6004811015611596576000600882600481106111ba57fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000809050600080905060008090505b600781101561146c576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826007811061124357fe5b600202019050611260816000015485611ccc90919063ffffffff16565b93506000600d60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083600781106112eb57fe5b0154905060008111156113f3576000600d60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846007811061138157fe5b018190555061139d818360000154611e2c90919063ffffffff16565b82600001819055506113b88185611ccc90919063ffffffff16565b93506113dd818989600481106113ca57fe5b6020020151611ccc90919063ffffffff16565b8888600481106113e957fe5b6020020181815250505b600084111561145f57600061142786611419878660010154611d5490919063ffffffff16565b611dda90919063ffffffff16565b9050611440818460010154611e2c90919063ffffffff16565b836001018190555061145b818b611ccc90919063ffffffff16565b9950505b50508060010190506111ee565b50600085856004811061147b57fe5b60200201511115611588576008846004811061149357fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888787600481106114dd57fe5b60200201516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561154b57600080fd5b505af115801561155f573d6000803e3d6000fd5b505050506040513d602081101561157557600080fd5b8101908080519060200190929190505050505b5050508060010190506111a2565b506000821161160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f52657761726420697320656d707479000000000000000000000000000000000081525060200191505060405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050506040513d60208110156116e057600080fd5b8101908080519060200190929190505050507fef00e9ee749a97027140bbf0e987bc723982be548b182c8dd67bc7ed045172d7838284604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600460200280838360005b83811015611773578082015181840152602081019050611758565b50505050905001828152602001935050505060405180910390a1505050565b60105442101561180a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5468652074696d6520686173206e6f7420636f6d65207965740000000000000081525060200191505060405180910390fd5b62093a8060105401421115611887576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7374616b696e6773206861732066696e6973686564000000000000000000000081525060200191505060405180910390fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f506f6f6c206e6f7420666f756e6400000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd61196a611e24565b30846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a0857600080fd5b505af1158015611a1c573d6000803e3d6000fd5b505050506040513d6020811015611a3257600080fd5b810190808051906020019092919050505050600062015180601054420381611a5657fe5b0490506000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208260078110611aa557fe5b600202019050611ac2838260000154611ccc90919063ffffffff16565b8160000181905550611b6583600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208460078110611b5557fe5b0154611ccc90919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208360078110611bec57fe5b01819055507fca0734fffefec4fa0aa4c49098dbb7f153844791c9ec6093e432bc72d4670c9485856001850186604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828401905083811015611d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415611d675760009050611dd4565b6000828402905082848281611d7857fe5b0414611dcf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061207d6021913960400191505060405180910390fd5b809150505b92915050565b6000611e1c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e76565b905092915050565b600033905090565b6000611e6e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f3c565b905092915050565b60008083118290611f22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ee7578082015181840152602081019050611ecc565b50505050905090810190601f168015611f145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611f2e57fe5b049050809150509392505050565b6000838311158290611fe9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611fae578082015181840152602081019050611f93565b50505050905090810190601f168015611fdb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6040518060800160405280600490602082028036833780820191505090505090565b604051806040016040528060008152602001600081525090565b6040518060e00160405280600790602082028036833780820191505090505090565b604051806080016040528060049060208202803683378082019150509050509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122036f399fe92eb60bf86a21afc56090643976db9efb60e37f7bc380c81b500f68964736f6c63430006030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005de7cc4bcbca31c473f6d2f27825cfb09cc0bb1600000000000000000000000000000000000000000000000000000000603631b0
-----Decoded View---------------
Arg [0] : xbe (address): 0x5DE7Cc4BcBCa31c473F6D2F27825Cfb09cc0Bb16
Arg [1] : startTime (uint256): 1614164400
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005de7cc4bcbca31c473f6d2f27825cfb09cc0bb16
Arg [1] : 00000000000000000000000000000000000000000000000000000000603631b0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.