Overview
Max Total Supply
4,023,151.228304343583503997 xETH-G
Holders
1,026 (0.00%)
Market
Price
$0.40 @ 0.000126 ETH
Onchain Market Cap
$1,605,774.89
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Filtered by Token Holder
Polygon (Matic): Old Matic TokenBalance
36.756885792291173961 xETH-GValue
$14.67 ( ~0.00463748122930139 Eth) [0.0009%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
XplosiveEthereum
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
petersburg EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED /** * * ██╗ ██╗███████╗████████╗██╗ ██╗ * ╚██╗██╔╝██╔════╝╚══██╔══╝██║ ██║ * ╚███╔╝ █████╗ ██║ ███████║ * ██╔██╗ ██╔══╝ ██║ ██╔══██║ * ██╔╝ ██╗███████╗ ██║ ██║ ██║ * ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ * * An Ethereum pegged * base-down, burn-up currency. * * https://xEth.finance * * **/ /// SWC-103: Floating Pragma pragma solidity 0.6.12; import "./XplosiveSafeMath.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import '@openzeppelin/contracts/utils/Pausable.sol'; import './XplosiveRebaser.sol'; contract XplosiveEthereum is Ownable, Pausable, Rebasable { using XplosiveSafeMath for uint256; event Transfer(address indexed from, address indexed to, uint amount); event Approval(address indexed owner, address indexed spender, uint amount); event Rebase(uint256 indexed epoch, uint256 scalingFactor); event WhitelistFrom(address _addr, bool _whitelisted); event WhitelistTo(address _addr, bool _whitelisted); event WhitelistRebase(address _addr, bool _whitelisted); string public name = "xETH-G"; string public symbol = "xETH-G"; uint8 public decimals = 18; // address public rebaser; address public rewardAddress; /** * @notice Internal decimals used to handle scaling factor */ uint256 public constant internalDecimals = 10**24; /** * @notice Used for percentage maths */ uint256 public constant BASE = 10**18; /** * @notice Scaling factor that adjusts everyone's balances */ uint256 public xETHScalingFactor = BASE; mapping (address => uint256) internal _xETHBalances; mapping (address => mapping (address => uint256)) internal _allowedFragments; mapping(address => bool) public whitelistFrom; mapping(address => bool) public whitelistTo; mapping(address => bool) public whitelistRebase; address public noRebaseAddress; uint256 initSupply = 0; uint256 _totalSupply = 0; uint16 public SELL_FEE = 33; uint16 public TX_FEE = 50; constructor( uint256 initialSupply, address initialSupplyAddr ) public Ownable() Pausable() Rebasable() { _mint(initialSupplyAddr,initialSupply); } function totalSupply() public view returns (uint256) { return _totalSupply; } function getSellBurn(uint256 value) public view whenNotPaused returns (uint256) { uint256 nPercent = value.divRound(SELL_FEE); return nPercent; } function getTxBurn(uint256 value) public view whenNotPaused returns (uint256) { uint256 nPercent = value.divRound(TX_FEE); return nPercent; } function _isWhitelisted(address _from, address _to) internal view returns (bool) { return whitelistFrom[_from]||whitelistTo[_to]; } function _isRebaseWhitelisted(address _addr) internal view returns (bool) { return whitelistRebase[_addr]; } function setWhitelistedTo(address _addr, bool _whitelisted) external onlyOwner { emit WhitelistTo(_addr, _whitelisted); whitelistTo[_addr] = _whitelisted; } function setTxFee(uint16 fee) external onlyRebaser whenNotPaused { TX_FEE = fee; } function setSellFee(uint16 fee) external onlyRebaser whenNotPaused { SELL_FEE = fee; } function setWhitelistedFrom(address _addr, bool _whitelisted) external onlyOwner { emit WhitelistFrom(_addr, _whitelisted); whitelistFrom[_addr] = _whitelisted; } function setWhitelistedRebase(address _addr, bool _whitelisted) external onlyOwner { emit WhitelistRebase(_addr, _whitelisted); whitelistRebase[_addr] = _whitelisted; } function setNoRebaseAddress(address _addr) external onlyOwner { noRebaseAddress = _addr; } /** * @notice Computes the current max scaling factor */ function maxScalingFactor() external view whenNotPaused returns (uint256) { return _maxScalingFactor(); } function _maxScalingFactor() internal view returns (uint256) { // scaling factor can only go up to 2**256-1 = initSupply * xETHScalingFactor // this is used to check if xETHScalingFactor will be too high to compute balances when rebasing. return uint256(-1) / initSupply; } function _mint(address to, uint256 amount) internal { // increase totalSupply _totalSupply = _totalSupply.add(amount); // get underlying value uint256 xETHValue = amount.mul(internalDecimals).div(xETHScalingFactor); // increase initSupply initSupply = initSupply.add(xETHValue); // make sure the mint didnt push maxScalingFactor too low require(xETHScalingFactor <= _maxScalingFactor(), "max scaling factor too low"); // add balance _xETHBalances[to] = _xETHBalances[to].add(xETHValue); emit Transfer(address(0),to,amount); } /* - ERC20 functionality - */ /** * @dev Transfer tokens to a specified address. * @param to The address to transfer to. * @param value The amount to be transferred. * @return True on success, false otherwise. */ function transfer(address to, uint256 value) external whenNotPaused returns (bool) { // underlying balance is stored in xETH, so divide by current scaling factor // note, this means as scaling factor grows, dust will be untransferrable. // minimum transfer value == xETHScalingFactor / 1e24; // get amount in underlying //from noRebaseWallet if(_isRebaseWhitelisted(msg.sender)) { uint256 noReValue = value.mul(internalDecimals).div(BASE); uint256 noReNextValue = noReValue.mul(BASE).div(xETHScalingFactor); _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(noReValue); //value==underlying _xETHBalances[to] = _xETHBalances[to].add(noReNextValue); emit Transfer(msg.sender, to, value); } else if(_isRebaseWhitelisted(to)) { uint256 fee = getSellBurn(value); uint256 tokensToBurn = fee/2; uint256 tokensForRewards = fee-tokensToBurn; uint256 tokensToTransfer = value-fee; uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHNextValue = xETHValueKeep.mul(xETHScalingFactor).div(BASE); _totalSupply = _totalSupply-fee; _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2); _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(xETHValue); _xETHBalances[to] = _xETHBalances[to].add(xETHNextValue); _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward); emit Transfer(msg.sender, to, tokensToTransfer); emit Transfer(msg.sender, address(0), tokensToBurn); emit Transfer(msg.sender, rewardAddress, tokensForRewards); } else { if(!_isWhitelisted(msg.sender, to)) { uint256 fee = getTxBurn(value); uint256 tokensToBurn = fee/2; uint256 tokensForRewards = fee-tokensToBurn; uint256 tokensToTransfer = value-fee; uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor); _totalSupply = _totalSupply-fee; _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2); _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(xETHValue); _xETHBalances[to] = _xETHBalances[to].add(xETHValueKeep); _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward); emit Transfer(msg.sender, to, tokensToTransfer); emit Transfer(msg.sender, address(0), tokensToBurn); emit Transfer(msg.sender, rewardAddress, tokensForRewards); } else { uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor); _xETHBalances[msg.sender] = _xETHBalances[msg.sender].sub(xETHValue); _xETHBalances[to] = _xETHBalances[to].add(xETHValue); emit Transfer(msg.sender, to, xETHValue); } } return true; } /** * @dev Transfer tokens from one address to another. * @param from The address you want to send tokens from. * @param to The address you want to transfer to. * @param value The amount of tokens to be transferred. */ function transferFrom(address from, address to, uint256 value) external whenNotPaused returns (bool) { // decrease allowance _allowedFragments[from][msg.sender] = _allowedFragments[from][msg.sender].sub(value); if(_isRebaseWhitelisted(from)) { uint256 noReValue = value.mul(internalDecimals).div(BASE); uint256 noReNextValue = noReValue.mul(BASE).div(xETHScalingFactor); _xETHBalances[from] = _xETHBalances[from].sub(noReValue); //value==underlying _xETHBalances[to] = _xETHBalances[to].add(noReNextValue); emit Transfer(from, to, value); } else if(_isRebaseWhitelisted(to)) { uint256 fee = getSellBurn(value); uint256 tokensForRewards = fee-(fee/2); uint256 tokensToTransfer = value-fee; uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHNextValue = xETHValueKeep.mul(xETHScalingFactor).div(BASE); _totalSupply = _totalSupply-fee; _xETHBalances[from] = _xETHBalances[from].sub(xETHValue); _xETHBalances[to] = _xETHBalances[to].add(xETHNextValue); _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward); _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2); emit Transfer(from, to, tokensToTransfer); emit Transfer(from, address(0), fee/2); emit Transfer(from, rewardAddress, tokensForRewards); } else { if(!_isWhitelisted(from, to)) { uint256 fee = getTxBurn(value); uint256 tokensToBurn = fee/2; uint256 tokensForRewards = fee-tokensToBurn; uint256 tokensToTransfer = value-fee; uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueKeep = tokensToTransfer.mul(internalDecimals).div(xETHScalingFactor); uint256 xETHValueReward = tokensForRewards.mul(internalDecimals).div(xETHScalingFactor); _totalSupply = _totalSupply-fee; _xETHBalances[address(0)] = _xETHBalances[address(0)].add(fee/2); _xETHBalances[from] = _xETHBalances[from].sub(xETHValue); _xETHBalances[to] = _xETHBalances[to].add(xETHValueKeep); _xETHBalances[rewardAddress] = _xETHBalances[rewardAddress].add(xETHValueReward); emit Transfer(from, to, tokensToTransfer); emit Transfer(from, address(0), tokensToBurn); emit Transfer(from, rewardAddress, tokensForRewards); } else { uint256 xETHValue = value.mul(internalDecimals).div(xETHScalingFactor); _xETHBalances[from] = _xETHBalances[from].sub(xETHValue); _xETHBalances[to] = _xETHBalances[to].add(xETHValue); emit Transfer(from, to, xETHValue); } } return true; } /** * @param who The address to query. * @return The balance of the specified address. */ function balanceOf(address who) external view returns (uint256) { if(_isRebaseWhitelisted(who)) { return _xETHBalances[who].mul(BASE).div(internalDecimals); } else { return _xETHBalances[who].mul(xETHScalingFactor).div(internalDecimals); } } /** @notice Currently returns the internal storage amount * @param who The address to query. * @return The underlying balance of the specified address. */ function balanceOfUnderlying(address who) external view returns (uint256) { return _xETHBalances[who]; } /** * @dev Function to check the amount of tokens that an owner has allowed to a spender. * @param owner_ The address which owns the funds. * @param spender The address which will spend the funds. * @return The number of tokens still available for the spender. */ function allowance(address owner_, address spender) external view whenNotPaused returns (uint256) { return _allowedFragments[owner_][spender]; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of * msg.sender. This method is included for ERC20 compatibility. * increaseAllowance and decreaseAllowance should be used instead. * Changing an allowance with this method brings the risk that someone may transfer both * the old and the new allowance - if they are both greater than zero - if a transfer * transaction is mined before the later approve() call is mined. * * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) external whenNotPaused returns (bool) { _allowedFragments[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } /** * @dev Increase the amount of tokens that an owner has allowed to a spender. * This method should be used instead of approve() to avoid the double approval vulnerability * described above. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) external whenNotPaused returns (bool) { _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner has allowed to a spender. * * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) external whenNotPaused returns (bool) { uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue); } emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } function _setRewardAddress(address rewards_) external onlyOwner { rewardAddress = rewards_; } /** * @notice Initiates a new rebase operation, provided the minimum time period has elapsed. * * @dev The supply adjustment equals (totalSupply * DeviationFromTargetRate) / rebaseLag * Where DeviationFromTargetRate is (MarketOracleRate - targetRate) / targetRate * and targetRate is CpiOracleRate / baseCpi */ function rebase(uint256 epoch, uint256 indexDelta, bool positive) external onlyRebaser whenNotPaused returns (uint256) { if (indexDelta == 0 || !positive) { emit Rebase(epoch, xETHScalingFactor); return _totalSupply; } uint256 newScalingFactor = xETHScalingFactor.mul(BASE.add(indexDelta)).div(BASE); if (newScalingFactor < _maxScalingFactor()) { xETHScalingFactor = newScalingFactor; } else { xETHScalingFactor = _maxScalingFactor(); } _totalSupply = ((initSupply.sub(_xETHBalances[address(0)]).sub(_xETHBalances[noRebaseAddress])) .mul(xETHScalingFactor).div(internalDecimals)) .add(_xETHBalances[noRebaseAddress].mul(BASE).div(internalDecimals)); emit Rebase(epoch, xETHScalingFactor); return _totalSupply; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.6.12; import "@openzeppelin/contracts/access/Ownable.sol"; contract Rebasable is Ownable { address private _rebaser; event TransferredRebasership(address indexed previousRebaser, address indexed newRebaser); constructor() internal { address msgSender = _msgSender(); _rebaser = msgSender; emit TransferredRebasership(address(0), msgSender); } function Rebaser() public view returns(address) { return _rebaser; } modifier onlyRebaser() { require(_rebaser == _msgSender(), "caller is not rebaser"); _; } function transferRebasership(address newRebaser) public virtual onlyOwner { require(newRebaser != address(0), "new rebaser is address zero"); emit TransferredRebasership(_rebaser, newRebaser); _rebaser = newRebaser; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.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 XplosiveSafeMath { /** * @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; } function ceil(uint256 a, uint256 m) internal pure returns (uint256) { uint256 c = add(a,m); uint256 d = sub(c,1); return mul(div(d,m),m); } function divRound(uint256 x, uint256 y) internal pure returns (uint256) { require(y != 0, "Div by zero"); uint256 r = x / y; if (x % y != 0) { r = r + 1; } return r; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.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; import "../GSN/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. */ 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; import "../GSN/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor () internal { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!_paused, "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(_paused, "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "petersburg", "libraries": { "": {} }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"initialSupplyAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"scalingFactor","type":"uint256"}],"name":"Rebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousRebaser","type":"address"},{"indexed":true,"internalType":"address","name":"newRebaser","type":"address"}],"name":"TransferredRebasership","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"WhitelistFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"WhitelistRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"WhitelistTo","type":"event"},{"inputs":[],"name":"BASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Rebaser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SELL_FEE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TX_FEE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"rewards_","type":"address"}],"name":"_setRewardAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOfUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"getSellBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"getTxBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"internalDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxScalingFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noRebaseAddress","outputs":[{"internalType":"address","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":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"uint256","name":"indexDelta","type":"uint256"},{"internalType":"bool","name":"positive","type":"bool"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setNoRebaseAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"fee","type":"uint16"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"fee","type":"uint16"}],"name":"setTxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"setWhitelistedFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"setWhitelistedRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"setWhitelistedTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRebaser","type":"address"}],"name":"transferRebasership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xETHScalingFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c0604052600660808190527f784554482d47000000000000000000000000000000000000000000000000000060a090815262000040916002919062000579565b506040805180820190915260068082527f784554482d4700000000000000000000000000000000000000000000000000006020909201918252620000879160039162000579565b5060048054601260ff19909116179055670de0b6b3a76400006005556000600c819055600d55600e8054602161ffff199091161763ffff0000191662320000179055348015620000d657600080fd5b5060405162002f1938038062002f1983398181016040526040811015620000fc57600080fd5b508051602090910151600062000111620001d4565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b1916815562000172620001d4565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907fe8a195812977ad9c31215cd36cddec4a0a2cef58eb984d1169225de6e823ff43908290a350620001cc8183620001d8565b505062000615565b3390565b620001f481600d546200036260201b620024e01790919060201c565b600d8190555060006200023b6005546200022769d3c21bcecceda100000085620003e060201b6200253a1790919060201c565b6200045860201b620025931790919060201c565b90506200025981600c546200036260201b620024e01790919060201c565b600c5562000266620004a2565b6005541115620002d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6d6178207363616c696e6720666163746f7220746f6f206c6f77000000000000604482015290519081900360640190fd5b6001600160a01b03831660009081526006602090815260409091205462000309918390620024e062000362821b17901c565b6001600160a01b03841660008181526006602090815260408083209490945583518681529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505050565b600082820183811015620003d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600082620003f157506000620003da565b82820282848281620003ff57fe5b0414620003d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002ef86021913960400191505060405180910390fd5b6000620003d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004b860201b60201c565b6000600c5460001981620004b257fe5b04905090565b6000818362000562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620005265781810151838201526020016200050c565b50505050905090810190601f168015620005545780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200056f57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005bc57805160ff1916838001178555620005ec565b82800160010185558215620005ec579182015b82811115620005ec578251825591602001919060010190620005cf565b50620005fa929150620005fe565b5090565b5b80821115620005fa5760008155600101620005ff565b6128d380620006256000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c8063715018a61161013b578063b72bb3d5116100b8578063e064648a1161007c578063e064648a146106a0578063ec342ad0146106c1578063f2fde38b146106c9578063fcdc7b1d146106ef578063ff12bbf4146107155761023d565b8063b72bb3d51461060e578063bf79cb0d14610616578063dd62ed3e14610644578063de2f716014610672578063de52014b146106985761023d565b80638da5cb5b116100ff5780638da5cb5b1461057857806395d89b4114610580578063a457c2d714610588578063a486309d146105b4578063a9059cbb146105e25761023d565b8063715018a6146104fc5780637af548c1146105045780637dbaed881461052f578063896871161461054c5780638cf57cb9146105705761023d565b806339509351116101c95780634773a6a91161018d5780634773a6a91461049f5780635c975abb146104be57806364dd48f5146104c65780636f97857b146104ce57806370a08231146104d65761023d565b806339509351146103e05780633986829d1461040c5780633af9e6691461042d5780633d1c28331461045357806343684b21146104795761023d565b806316b627d11161021057806316b627d11461033657806318160ddd1461035c57806323b872dd146103645780632411e7171461039a578063313ce567146103c25761023d565b806304cf86821461024257806306fdde0314610271578063095ea7b3146102ee57806311d3e6c41461032e575b600080fd5b61025f6004803603602081101561025857600080fd5b5035610743565b60408051918252519081900360200190f35b6102796107b4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b357818101518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a6004803603604081101561030457600080fd5b506001600160a01b03813516906020013561083f565b604080519115158252519081900360200190f35b61025f6108fa565b61031a6004803603602081101561034c57600080fd5b50356001600160a01b031661095a565b61025f61096f565b61031a6004803603606081101561037a57600080fd5b506001600160a01b03813581169160208101359091169060400135610975565b6103c0600480360360208110156103b057600080fd5b50356001600160a01b031661103d565b005b6103ca61114c565b6040805160ff9092168252519081900360200190f35b61031a600480360360408110156103f657600080fd5b506001600160a01b038135169060200135611155565b6103c06004803603602081101561042257600080fd5b503561ffff1661123b565b61025f6004803603602081101561044357600080fd5b50356001600160a01b031661130f565b6103c06004803603602081101561046957600080fd5b50356001600160a01b031661132a565b61031a6004803603602081101561048f57600080fd5b50356001600160a01b03166113a4565b6104a76113b9565b6040805161ffff9092168252519081900360200190f35b61031a6113c3565b61025f6113d3565b61025f6113e1565b61025f600480360360208110156104ec57600080fd5b50356001600160a01b03166113e7565b6103c061146e565b61025f6004803603606081101561051a57600080fd5b50803590602081013590604001351515611510565b61025f6004803603602081101561054557600080fd5b5035611754565b6105546117c2565b604080516001600160a01b039092168252519081900360200190f35b6105546117d1565b6105546117e5565b6102796117f4565b61031a6004803603604081101561059e57600080fd5b506001600160a01b03813516906020013561184f565b6103c0600480360360408110156105ca57600080fd5b506001600160a01b038135169060200135151561198b565b61031a600480360360408110156105f857600080fd5b506001600160a01b038135169060200135611a53565b61055461204d565b6103c06004803603604081101561062c57600080fd5b506001600160a01b038135169060200135151561205c565b61025f6004803603604081101561065a57600080fd5b506001600160a01b0381358116916020013516612124565b61031a6004803603602081101561068857600080fd5b50356001600160a01b03166121a3565b6104a76121b8565b6103c0600480360360208110156106b657600080fd5b503561ffff166121c8565b61025f612294565b6103c0600480360360208110156106df57600080fd5b50356001600160a01b03166122a0565b6103c06004803603602081101561070557600080fd5b50356001600160a01b0316612398565b6103c06004803603604081101561072b57600080fd5b506001600160a01b0381351690602001351515612418565b60008054600160a01b900460ff1615610796576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e546000906107ab90849061ffff166125d5565b9150505b919050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b505050505081565b60008054600160a01b900460ff1615610892576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3360008181526007602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60008054600160a01b900460ff161561094d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61095561263e565b905090565b60096020526000908152604090205460ff1681565b600d5490565b60008054600160a01b900460ff16156109c8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b03841660009081526007602090815260408083203384529091529020546109f69083612653565b6001600160a01b0385166000908152600760209081526040808320338452909152902055610a2384612695565b15610b16576000610a50670de0b6b3a7640000610a4a8569d3c21bcecceda100000061253a565b90612593565b90506000610a75600554610a4a670de0b6b3a76400008561253a90919063ffffffff16565b6001600160a01b038716600090815260066020526040902054909150610a9b9083612653565b6001600160a01b038088166000908152600660205260408082209390935590871681522054610aca90826124e0565b6001600160a01b0380871660008181526006602090815260409182902094909455805188815290519193928a169260008051602061285e83398151915292918290030190a35050611032565b610b1f83612695565b15610d72576000610b2f83610743565b6005549091506002820482039082850390600090610b5b90610a4a8869d3c21bcecceda100000061253a565b90506000610b82600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000610ba9600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b90506000610bce670de0b6b3a7640000610a4a6005548661253a90919063ffffffff16565b600d805489900390556001600160a01b038c16600090815260066020526040902054909150610bfd9085612653565b6001600160a01b03808d1660009081526006602052604080822093909355908c1681522054610c2c90826124e0565b6001600160a01b03808c1660009081526006602052604080822093909355600454610100900490911681522054610c6390836124e0565b60045461010090046001600160a01b0316600090815260066020526040902055610cab6002885b60008052600660205260008051602061287e833981519152549190046124e0565b600080526006602090815260008051602061287e833981519152919091556040805187815290516001600160a01b038d811693908f169260008051602061285e833981519152929081900390910190a360006001600160a01b038c1660008051602061285e83398151915260028a60408051929091048252519081900360200190a36004546040805188815290516001600160a01b036101009093048316928e169160008051602061285e833981519152919081900360200190a350505050505050611032565b610d7c84846126b3565b610f78576000610d8b83611754565b60055490915060028204908183039083860390600090610db990610a4a8969d3c21bcecceda100000061253a565b90506000610de0600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000610e07600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b600d805489900390559050610e1d600288610c8a565b600660205260008051602061287e833981519152556001600160a01b038b1660009081526040902054610e509084612653565b6001600160a01b03808d1660009081526006602052604080822093909355908c1681522054610e7f90836124e0565b6001600160a01b03808c1660009081526006602052604080822093909355600454610100900490911681522054610eb690826124e0565b6004546001600160a01b03610100909104811660009081526006602090815260409182902093909355805187815290518d831693928f169260008051602061285e833981519152928290030190a36040805187815290516000916001600160a01b038e169160008051602061285e8339815191529181900360200190a36004546040805187815290516001600160a01b036101009093048316928e169160008051602061285e833981519152919081900360200190a350505050505050611032565b600554600090610f9690610a4a8569d3c21bcecceda100000061253a565b6001600160a01b038616600090815260066020526040902054909150610fbc9082612653565b6001600160a01b038087166000908152600660205260408082209390935590861681522054610feb90826124e0565b6001600160a01b03808616600081815260066020908152604091829020949094558051858152905191939289169260008051602061285e83398151915292918290030190a3505b5060015b9392505050565b6110456126f6565b6000546001600160a01b03908116911614611095576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b6001600160a01b0381166110f0576040805162461bcd60e51b815260206004820152601b60248201527f6e657720726562617365722069732061646472657373207a65726f0000000000604482015290519081900360640190fd5b6001546040516001600160a01b038084169216907fe8a195812977ad9c31215cd36cddec4a0a2cef58eb984d1169225de6e823ff4390600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60045460ff1681565b60008054600160a01b900460ff16156111a8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020546111d690836124e0565b3360008181526007602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6112436126f6565b6001546001600160a01b0390811691161461129d576040805162461bcd60e51b815260206004820152601560248201527431b0b63632b91034b9903737ba103932b130b9b2b960591b604482015290519081900360640190fd5b600054600160a01b900460ff16156112ef576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e805461ffff909216620100000263ffff000019909216919091179055565b6001600160a01b031660009081526006602052604090205490565b6113326126f6565b6000546001600160a01b03908116911614611382576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60086020526000908152604090205460ff1681565b600e5461ffff1681565b600054600160a01b900460ff1690565b69d3c21bcecceda100000081565b60055481565b60006113f282612695565b15611439576001600160a01b0382166000908152600660205260409020546114329069d3c21bcecceda100000090610a4a90670de0b6b3a764000061253a565b90506107af565b6005546001600160a01b0383166000908152600660205260409020546114329169d3c21bcecceda100000091610a4a9161253a565b6114766126f6565b6000546001600160a01b039081169116146114c6576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061151a6126f6565b6001546001600160a01b03908116911614611574576040805162461bcd60e51b815260206004820152601560248201527431b0b63632b91034b9903737ba103932b130b9b2b960591b604482015290519081900360640190fd5b600054600160a01b900460ff16156115c6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b8215806115d1575081155b1561161757600554604080519182525185917f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511919081900360200190a250600d54611036565b600061163b670de0b6b3a7640000610a4a61163282886124e0565b6005549061253a565b905061164561263e565b811015611656576005819055611662565b61165e61263e565b6005555b600b546001600160a01b031660009081526006602052604090205461170d906116a39069d3c21bcecceda100000090610a4a90670de0b6b3a764000061253a565b600554600b546001600160a01b031660009081526006602052604081205490805260008051602061287e83398151915254600c546117079369d3c21bcecceda100000093610a4a939192611701926116fb9190612653565b90612653565b9061253a565b906124e0565b600d55600554604080519182525186917f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511919081900360200190a25050600d549392505050565b60008054600160a01b900460ff16156117a7576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e546000906107ab90849062010000900461ffff166125d5565b6001546001600160a01b031690565b60045461010090046001600160a01b031681565b6000546001600160a01b031690565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b60008054600160a01b900460ff16156118a2576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020548083106118f6573360009081526007602090815260408083206001600160a01b0388168452909152812055611925565b6119008184612653565b3360009081526007602090815260408083206001600160a01b03891684529091529020555b3360008181526007602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6119936126f6565b6000546001600160a01b039081169116146119e3576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b604080516001600160a01b0384168152821515602082015281517f88cf9b943f64811022537ee9f0141770d85e612eae3a3a39241abe5ca9f11382929181900390910190a16001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b60008054600160a01b900460ff1615611aa6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611aaf33612695565b15611b8e576000611ad6670de0b6b3a7640000610a4a8569d3c21bcecceda100000061253a565b90506000611afb600554610a4a670de0b6b3a76400008561253a90919063ffffffff16565b33600090815260066020526040902054909150611b189083612653565b33600090815260066020526040808220929092556001600160a01b03871681522054611b4490826124e0565b6001600160a01b03861660008181526006602090815260409182902093909355805187815290519192339260008051602061285e8339815191529281900390910190a35050612044565b611b9783612695565b15611da6576000611ba783610743565b60055490915060028204908183039083860390600090611bd590610a4a8969d3c21bcecceda100000061253a565b90506000611bfc600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000611c23600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b90506000611c48670de0b6b3a7640000610a4a6005548661253a90919063ffffffff16565b600d80548a900390559050611c5e600289610c8a565b600660205260008051602061287e833981519152553360009081526040902054611c889085612653565b33600090815260066020526040808220929092556001600160a01b038d1681522054611cb490826124e0565b6001600160a01b03808d1660009081526006602052604080822093909355600454610100900490911681522054611ceb90836124e0565b6004546001600160a01b0361010090910481166000908152600660209081526040918290209390935580518881529051918e1692339260008051602061285e8339815191529281900390910190a3604080518881529051600091339160008051602061285e8339815191529181900360200190a36004546040805188815290516001600160a01b036101009093049290921691339160008051602061285e833981519152919081900360200190a35050505050505050612044565b611db033846126b3565b611f98576000611dbf83611754565b60055490915060028204908183039083860390600090611ded90610a4a8969d3c21bcecceda100000061253a565b90506000611e14600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000611e3b600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b600d805489900390559050611e51600288610c8a565b600660205260008051602061287e833981519152553360009081526040902054611e7b9084612653565b33600090815260066020526040808220929092556001600160a01b038c1681522054611ea790836124e0565b6001600160a01b03808c1660009081526006602052604080822093909355600454610100900490911681522054611ede90826124e0565b6004546001600160a01b0361010090910481166000908152600660209081526040918290209390935580518781529051918d1692339260008051602061285e8339815191529281900390910190a3604080518781529051600091339160008051602061285e8339815191529181900360200190a36004546040805187815290516001600160a01b036101009093049290921691339160008051602061285e833981519152919081900360200190a350505050505050612044565b600554600090611fb690610a4a8569d3c21bcecceda100000061253a565b33600090815260066020526040902054909150611fd39082612653565b33600090815260066020526040808220929092556001600160a01b03861681522054611fff90826124e0565b6001600160a01b03851660008181526006602090815260409182902093909355805184815290519192339260008051602061285e8339815191529281900390910190a3505b50600192915050565b600b546001600160a01b031681565b6120646126f6565b6000546001600160a01b039081169116146120b4576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b604080516001600160a01b0384168152821515602082015281517fcea48012bdb313072f54da033c891e9ad17d42f6fff9a5a1b74dfc865c37e051929181900390910190a16001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60008054600160a01b900460ff1615612177576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b506001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b600a6020526000908152604090205460ff1681565b600e5462010000900461ffff1681565b6121d06126f6565b6001546001600160a01b0390811691161461222a576040805162461bcd60e51b815260206004820152601560248201527431b0b63632b91034b9903737ba103932b130b9b2b960591b604482015290519081900360640190fd5b600054600160a01b900460ff161561227c576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e805461ffff191661ffff92909216919091179055565b670de0b6b3a764000081565b6122a86126f6565b6000546001600160a01b039081169116146122f8576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b6001600160a01b03811661233d5760405162461bcd60e51b81526004018080602001828103825260268152602001806127f76026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6123a06126f6565b6000546001600160a01b039081169116146123f0576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6124206126f6565b6000546001600160a01b03908116911614612470576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b604080516001600160a01b0384168152821515602082015281517fc3d26c130d120a4bb874de56c8b5fb727ad2cfc3551ca49cd42ef248e893b69a929181900390910190a16001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b600082820183811015611036576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082612549575060006108f4565b8282028284828161255657fe5b04146110365760405162461bcd60e51b815260040180806020018281038252602181526020018061281d6021913960400191505060405180910390fd5b600061103683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fa565b600081612617576040805162461bcd60e51b815260206004820152600b60248201526a446976206279207a65726f60a81b604482015290519081900360640190fd5b600082848161262257fe5b04905082848161262e57fe5b0615611036576001019392505050565b6000600c546000198161264d57fe5b04905090565b600061103683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061279c565b6001600160a01b03166000908152600a602052604090205460ff1690565b6001600160a01b03821660009081526008602052604081205460ff16806110365750506001600160a01b031660009081526009602052604090205460ff16919050565b3390565b600081836127865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561274b578181015183820152602001612733565b50505050905090810190601f1680156127785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161279257fe5b0495945050505050565b600081848411156127ee5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561274b578181015183820152602001612733565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a2646970667358221220b3f1b09a486a66c7a94b6e12f6895a69db0ce8565303207cedc174ca6461f00b64736f6c634300060c0033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77000000000000000000000000000000000000000000026def16caa31719a00000000000000000000000000000447eea0067a045ca363c7da86a1376e93f59bf8d
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061023d5760003560e01c8063715018a61161013b578063b72bb3d5116100b8578063e064648a1161007c578063e064648a146106a0578063ec342ad0146106c1578063f2fde38b146106c9578063fcdc7b1d146106ef578063ff12bbf4146107155761023d565b8063b72bb3d51461060e578063bf79cb0d14610616578063dd62ed3e14610644578063de2f716014610672578063de52014b146106985761023d565b80638da5cb5b116100ff5780638da5cb5b1461057857806395d89b4114610580578063a457c2d714610588578063a486309d146105b4578063a9059cbb146105e25761023d565b8063715018a6146104fc5780637af548c1146105045780637dbaed881461052f578063896871161461054c5780638cf57cb9146105705761023d565b806339509351116101c95780634773a6a91161018d5780634773a6a91461049f5780635c975abb146104be57806364dd48f5146104c65780636f97857b146104ce57806370a08231146104d65761023d565b806339509351146103e05780633986829d1461040c5780633af9e6691461042d5780633d1c28331461045357806343684b21146104795761023d565b806316b627d11161021057806316b627d11461033657806318160ddd1461035c57806323b872dd146103645780632411e7171461039a578063313ce567146103c25761023d565b806304cf86821461024257806306fdde0314610271578063095ea7b3146102ee57806311d3e6c41461032e575b600080fd5b61025f6004803603602081101561025857600080fd5b5035610743565b60408051918252519081900360200190f35b6102796107b4565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102b357818101518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a6004803603604081101561030457600080fd5b506001600160a01b03813516906020013561083f565b604080519115158252519081900360200190f35b61025f6108fa565b61031a6004803603602081101561034c57600080fd5b50356001600160a01b031661095a565b61025f61096f565b61031a6004803603606081101561037a57600080fd5b506001600160a01b03813581169160208101359091169060400135610975565b6103c0600480360360208110156103b057600080fd5b50356001600160a01b031661103d565b005b6103ca61114c565b6040805160ff9092168252519081900360200190f35b61031a600480360360408110156103f657600080fd5b506001600160a01b038135169060200135611155565b6103c06004803603602081101561042257600080fd5b503561ffff1661123b565b61025f6004803603602081101561044357600080fd5b50356001600160a01b031661130f565b6103c06004803603602081101561046957600080fd5b50356001600160a01b031661132a565b61031a6004803603602081101561048f57600080fd5b50356001600160a01b03166113a4565b6104a76113b9565b6040805161ffff9092168252519081900360200190f35b61031a6113c3565b61025f6113d3565b61025f6113e1565b61025f600480360360208110156104ec57600080fd5b50356001600160a01b03166113e7565b6103c061146e565b61025f6004803603606081101561051a57600080fd5b50803590602081013590604001351515611510565b61025f6004803603602081101561054557600080fd5b5035611754565b6105546117c2565b604080516001600160a01b039092168252519081900360200190f35b6105546117d1565b6105546117e5565b6102796117f4565b61031a6004803603604081101561059e57600080fd5b506001600160a01b03813516906020013561184f565b6103c0600480360360408110156105ca57600080fd5b506001600160a01b038135169060200135151561198b565b61031a600480360360408110156105f857600080fd5b506001600160a01b038135169060200135611a53565b61055461204d565b6103c06004803603604081101561062c57600080fd5b506001600160a01b038135169060200135151561205c565b61025f6004803603604081101561065a57600080fd5b506001600160a01b0381358116916020013516612124565b61031a6004803603602081101561068857600080fd5b50356001600160a01b03166121a3565b6104a76121b8565b6103c0600480360360208110156106b657600080fd5b503561ffff166121c8565b61025f612294565b6103c0600480360360208110156106df57600080fd5b50356001600160a01b03166122a0565b6103c06004803603602081101561070557600080fd5b50356001600160a01b0316612398565b6103c06004803603604081101561072b57600080fd5b506001600160a01b0381351690602001351515612418565b60008054600160a01b900460ff1615610796576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e546000906107ab90849061ffff166125d5565b9150505b919050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b820191906000526020600020905b81548152906001019060200180831161081a57829003601f168201915b505050505081565b60008054600160a01b900460ff1615610892576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3360008181526007602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60008054600160a01b900460ff161561094d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61095561263e565b905090565b60096020526000908152604090205460ff1681565b600d5490565b60008054600160a01b900460ff16156109c8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b03841660009081526007602090815260408083203384529091529020546109f69083612653565b6001600160a01b0385166000908152600760209081526040808320338452909152902055610a2384612695565b15610b16576000610a50670de0b6b3a7640000610a4a8569d3c21bcecceda100000061253a565b90612593565b90506000610a75600554610a4a670de0b6b3a76400008561253a90919063ffffffff16565b6001600160a01b038716600090815260066020526040902054909150610a9b9083612653565b6001600160a01b038088166000908152600660205260408082209390935590871681522054610aca90826124e0565b6001600160a01b0380871660008181526006602090815260409182902094909455805188815290519193928a169260008051602061285e83398151915292918290030190a35050611032565b610b1f83612695565b15610d72576000610b2f83610743565b6005549091506002820482039082850390600090610b5b90610a4a8869d3c21bcecceda100000061253a565b90506000610b82600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000610ba9600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b90506000610bce670de0b6b3a7640000610a4a6005548661253a90919063ffffffff16565b600d805489900390556001600160a01b038c16600090815260066020526040902054909150610bfd9085612653565b6001600160a01b03808d1660009081526006602052604080822093909355908c1681522054610c2c90826124e0565b6001600160a01b03808c1660009081526006602052604080822093909355600454610100900490911681522054610c6390836124e0565b60045461010090046001600160a01b0316600090815260066020526040902055610cab6002885b60008052600660205260008051602061287e833981519152549190046124e0565b600080526006602090815260008051602061287e833981519152919091556040805187815290516001600160a01b038d811693908f169260008051602061285e833981519152929081900390910190a360006001600160a01b038c1660008051602061285e83398151915260028a60408051929091048252519081900360200190a36004546040805188815290516001600160a01b036101009093048316928e169160008051602061285e833981519152919081900360200190a350505050505050611032565b610d7c84846126b3565b610f78576000610d8b83611754565b60055490915060028204908183039083860390600090610db990610a4a8969d3c21bcecceda100000061253a565b90506000610de0600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000610e07600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b600d805489900390559050610e1d600288610c8a565b600660205260008051602061287e833981519152556001600160a01b038b1660009081526040902054610e509084612653565b6001600160a01b03808d1660009081526006602052604080822093909355908c1681522054610e7f90836124e0565b6001600160a01b03808c1660009081526006602052604080822093909355600454610100900490911681522054610eb690826124e0565b6004546001600160a01b03610100909104811660009081526006602090815260409182902093909355805187815290518d831693928f169260008051602061285e833981519152928290030190a36040805187815290516000916001600160a01b038e169160008051602061285e8339815191529181900360200190a36004546040805187815290516001600160a01b036101009093048316928e169160008051602061285e833981519152919081900360200190a350505050505050611032565b600554600090610f9690610a4a8569d3c21bcecceda100000061253a565b6001600160a01b038616600090815260066020526040902054909150610fbc9082612653565b6001600160a01b038087166000908152600660205260408082209390935590861681522054610feb90826124e0565b6001600160a01b03808616600081815260066020908152604091829020949094558051858152905191939289169260008051602061285e83398151915292918290030190a3505b5060015b9392505050565b6110456126f6565b6000546001600160a01b03908116911614611095576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b6001600160a01b0381166110f0576040805162461bcd60e51b815260206004820152601b60248201527f6e657720726562617365722069732061646472657373207a65726f0000000000604482015290519081900360640190fd5b6001546040516001600160a01b038084169216907fe8a195812977ad9c31215cd36cddec4a0a2cef58eb984d1169225de6e823ff4390600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60045460ff1681565b60008054600160a01b900460ff16156111a8576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020546111d690836124e0565b3360008181526007602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6112436126f6565b6001546001600160a01b0390811691161461129d576040805162461bcd60e51b815260206004820152601560248201527431b0b63632b91034b9903737ba103932b130b9b2b960591b604482015290519081900360640190fd5b600054600160a01b900460ff16156112ef576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e805461ffff909216620100000263ffff000019909216919091179055565b6001600160a01b031660009081526006602052604090205490565b6113326126f6565b6000546001600160a01b03908116911614611382576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60086020526000908152604090205460ff1681565b600e5461ffff1681565b600054600160a01b900460ff1690565b69d3c21bcecceda100000081565b60055481565b60006113f282612695565b15611439576001600160a01b0382166000908152600660205260409020546114329069d3c21bcecceda100000090610a4a90670de0b6b3a764000061253a565b90506107af565b6005546001600160a01b0383166000908152600660205260409020546114329169d3c21bcecceda100000091610a4a9161253a565b6114766126f6565b6000546001600160a01b039081169116146114c6576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061151a6126f6565b6001546001600160a01b03908116911614611574576040805162461bcd60e51b815260206004820152601560248201527431b0b63632b91034b9903737ba103932b130b9b2b960591b604482015290519081900360640190fd5b600054600160a01b900460ff16156115c6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b8215806115d1575081155b1561161757600554604080519182525185917f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511919081900360200190a250600d54611036565b600061163b670de0b6b3a7640000610a4a61163282886124e0565b6005549061253a565b905061164561263e565b811015611656576005819055611662565b61165e61263e565b6005555b600b546001600160a01b031660009081526006602052604090205461170d906116a39069d3c21bcecceda100000090610a4a90670de0b6b3a764000061253a565b600554600b546001600160a01b031660009081526006602052604081205490805260008051602061287e83398151915254600c546117079369d3c21bcecceda100000093610a4a939192611701926116fb9190612653565b90612653565b9061253a565b906124e0565b600d55600554604080519182525186917f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a21511919081900360200190a25050600d549392505050565b60008054600160a01b900460ff16156117a7576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e546000906107ab90849062010000900461ffff166125d5565b6001546001600160a01b031690565b60045461010090046001600160a01b031681565b6000546001600160a01b031690565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108375780601f1061080c57610100808354040283529160200191610837565b60008054600160a01b900460ff16156118a2576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b03871684529091529020548083106118f6573360009081526007602090815260408083206001600160a01b0388168452909152812055611925565b6119008184612653565b3360009081526007602090815260408083206001600160a01b03891684529091529020555b3360008181526007602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6119936126f6565b6000546001600160a01b039081169116146119e3576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b604080516001600160a01b0384168152821515602082015281517f88cf9b943f64811022537ee9f0141770d85e612eae3a3a39241abe5ca9f11382929181900390910190a16001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b60008054600160a01b900460ff1615611aa6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611aaf33612695565b15611b8e576000611ad6670de0b6b3a7640000610a4a8569d3c21bcecceda100000061253a565b90506000611afb600554610a4a670de0b6b3a76400008561253a90919063ffffffff16565b33600090815260066020526040902054909150611b189083612653565b33600090815260066020526040808220929092556001600160a01b03871681522054611b4490826124e0565b6001600160a01b03861660008181526006602090815260409182902093909355805187815290519192339260008051602061285e8339815191529281900390910190a35050612044565b611b9783612695565b15611da6576000611ba783610743565b60055490915060028204908183039083860390600090611bd590610a4a8969d3c21bcecceda100000061253a565b90506000611bfc600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000611c23600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b90506000611c48670de0b6b3a7640000610a4a6005548661253a90919063ffffffff16565b600d80548a900390559050611c5e600289610c8a565b600660205260008051602061287e833981519152553360009081526040902054611c889085612653565b33600090815260066020526040808220929092556001600160a01b038d1681522054611cb490826124e0565b6001600160a01b03808d1660009081526006602052604080822093909355600454610100900490911681522054611ceb90836124e0565b6004546001600160a01b0361010090910481166000908152600660209081526040918290209390935580518881529051918e1692339260008051602061285e8339815191529281900390910190a3604080518881529051600091339160008051602061285e8339815191529181900360200190a36004546040805188815290516001600160a01b036101009093049290921691339160008051602061285e833981519152919081900360200190a35050505050505050612044565b611db033846126b3565b611f98576000611dbf83611754565b60055490915060028204908183039083860390600090611ded90610a4a8969d3c21bcecceda100000061253a565b90506000611e14600554610a4a69d3c21bcecceda10000008661253a90919063ffffffff16565b90506000611e3b600554610a4a69d3c21bcecceda10000008861253a90919063ffffffff16565b600d805489900390559050611e51600288610c8a565b600660205260008051602061287e833981519152553360009081526040902054611e7b9084612653565b33600090815260066020526040808220929092556001600160a01b038c1681522054611ea790836124e0565b6001600160a01b03808c1660009081526006602052604080822093909355600454610100900490911681522054611ede90826124e0565b6004546001600160a01b0361010090910481166000908152600660209081526040918290209390935580518781529051918d1692339260008051602061285e8339815191529281900390910190a3604080518781529051600091339160008051602061285e8339815191529181900360200190a36004546040805187815290516001600160a01b036101009093049290921691339160008051602061285e833981519152919081900360200190a350505050505050612044565b600554600090611fb690610a4a8569d3c21bcecceda100000061253a565b33600090815260066020526040902054909150611fd39082612653565b33600090815260066020526040808220929092556001600160a01b03861681522054611fff90826124e0565b6001600160a01b03851660008181526006602090815260409182902093909355805184815290519192339260008051602061285e8339815191529281900390910190a3505b50600192915050565b600b546001600160a01b031681565b6120646126f6565b6000546001600160a01b039081169116146120b4576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b604080516001600160a01b0384168152821515602082015281517fcea48012bdb313072f54da033c891e9ad17d42f6fff9a5a1b74dfc865c37e051929181900390910190a16001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60008054600160a01b900460ff1615612177576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b506001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b600a6020526000908152604090205460ff1681565b600e5462010000900461ffff1681565b6121d06126f6565b6001546001600160a01b0390811691161461222a576040805162461bcd60e51b815260206004820152601560248201527431b0b63632b91034b9903737ba103932b130b9b2b960591b604482015290519081900360640190fd5b600054600160a01b900460ff161561227c576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600e805461ffff191661ffff92909216919091179055565b670de0b6b3a764000081565b6122a86126f6565b6000546001600160a01b039081169116146122f8576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b6001600160a01b03811661233d5760405162461bcd60e51b81526004018080602001828103825260268152602001806127f76026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6123a06126f6565b6000546001600160a01b039081169116146123f0576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6124206126f6565b6000546001600160a01b03908116911614612470576040805162461bcd60e51b8152602060048201819052602482015260008051602061283e833981519152604482015290519081900360640190fd5b604080516001600160a01b0384168152821515602082015281517fc3d26c130d120a4bb874de56c8b5fb727ad2cfc3551ca49cd42ef248e893b69a929181900390910190a16001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b600082820183811015611036576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082612549575060006108f4565b8282028284828161255657fe5b04146110365760405162461bcd60e51b815260040180806020018281038252602181526020018061281d6021913960400191505060405180910390fd5b600061103683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506126fa565b600081612617576040805162461bcd60e51b815260206004820152600b60248201526a446976206279207a65726f60a81b604482015290519081900360640190fd5b600082848161262257fe5b04905082848161262e57fe5b0615611036576001019392505050565b6000600c546000198161264d57fe5b04905090565b600061103683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061279c565b6001600160a01b03166000908152600a602052604090205460ff1690565b6001600160a01b03821660009081526008602052604081205460ff16806110365750506001600160a01b031660009081526009602052604090205460ff16919050565b3390565b600081836127865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561274b578181015183820152602001612733565b50505050905090810190601f1680156127785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161279257fe5b0495945050505050565b600081848411156127ee5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561274b578181015183820152602001612733565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a2646970667358221220b3f1b09a486a66c7a94b6e12f6895a69db0ce8565303207cedc174ca6461f00b64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000026def16caa31719a00000000000000000000000000000447eea0067a045ca363c7da86a1376e93f59bf8d
-----Decoded View---------------
Arg [0] : initialSupply (uint256): 2937000000000000000000000
Arg [1] : initialSupplyAddr (address): 0x447eea0067A045ca363C7dA86A1376E93f59BF8D
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000026def16caa31719a00000
Arg [1] : 000000000000000000000000447eea0067a045ca363c7da86a1376e93f59bf8d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.