Overview
Max Total Supply
218,566.426289732 SVX
Holders
1,304 (0.00%)
Market
Price
$0.08 @ 0.000034 ETH
Onchain Market Cap
$16,860.46
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4.134909758 SVXValue
$0.32 ( ~0.000140033799402569 Eth) [0.0019%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
This contract contains unverified libraries: SafeMath
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Savix
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
No with 200 runs
Other Settings:
petersburg EvmVersion, Audited
Contract Source Code (Solidity Standard Json-Input format)Audit Report
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; import "./IERC20.sol"; import "./SafeMath.sol"; import "./SavixSupply.sol"; contract Savix is IERC20 { using SafeMath for uint256; address private _owner; string private constant NAME = "Savix"; string private constant SYMBOL = "SVX"; uint private constant DECIMALS = 9; uint private _constGradient = 0; address private constant BURNADDR = 0x000000000000000000000000000000000000dEaD; // global burn address bool private _stakingActive = false; uint256 private _stakingSince = 0; uint256 private constant MAX_UINT256 = 2**256 - 1; uint256 private constant INITIAL_TOKEN_SUPPLY = 10**5 * 10**DECIMALS; // TOTAL_FRAGMENTS is a multiple of INITIAL_TOKEN_SUPPLY so that _fragmentsPerToken is an integer. // Use the highest value that fits in a uint256 for max granularity. uint256 private constant TOTAL_FRAGMENTS = MAX_UINT256 - (MAX_UINT256 % INITIAL_TOKEN_SUPPLY); uint256 private _totalSupply = INITIAL_TOKEN_SUPPLY; uint256 private _lastTotalSupply = INITIAL_TOKEN_SUPPLY; // ** added: new variable _adjustTime uint256 private _adjustTime = 0; uint256 private _lastAdjustTime = 0; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _burnAmount; uint256[2][] private _supplyMap; constructor() public { _owner = msg.sender; _totalSupply = INITIAL_TOKEN_SUPPLY; _balances[_owner] = TOTAL_FRAGMENTS; _supplyMap.push([0, 100000 * 10**DECIMALS]); _supplyMap.push([7 * SavixSupply.SECPERDAY, 115000 * 10**DECIMALS]); _supplyMap.push([30 * SavixSupply.SECPERDAY, 130000 * 10**DECIMALS]); _supplyMap.push([6 * 30 * SavixSupply.SECPERDAY, 160000 * 10**DECIMALS]); _supplyMap.push([12 * 30 * SavixSupply.SECPERDAY, 185000 * 10**DECIMALS]); _supplyMap.push([18 * 30 * SavixSupply.SECPERDAY, 215000 * 10**DECIMALS]); _supplyMap.push([24 * 30 * SavixSupply.SECPERDAY, 240000 * 10**DECIMALS]); _supplyMap.push([48 * 30 * SavixSupply.SECPERDAY, 300000 * 10**DECIMALS]); // ** changed: gradient changed for slightly higher interest in far future // _constGradient = SafeMath.div(INITIAL_TOKEN_SUPPLY * CONSTINTEREST, 360 * SavixSupply.SECPERDAY * 100); ** old version _constGradient = 8 * 10**(DECIMALS - 4); } modifier validRecipient(address to) { require(to != address(0) && to != address(this), "Invalid Recipient"); _; } modifier onlyOwner { require(msg.sender == _owner, "Only owner can call this function."); _; } function supplyMap() external view returns (uint256[2][] memory) { return _supplyMap; } function initialSupply() external pure returns (uint256) { return INITIAL_TOKEN_SUPPLY; } function finalGradient() external view returns (uint) { return _constGradient; } function lastAdjustTime() external view returns (uint) { return _lastAdjustTime; } function lastTotalSupply() external view returns (uint) { return _lastTotalSupply; } function startStaking() external onlyOwner { _stakingActive = true; _stakingSince = block.timestamp; _totalSupply = _supplyMap[0][1]; _lastTotalSupply = _totalSupply; _lastAdjustTime = 0; // ** added: new variable _adjustTime _adjustTime = 0; } function name() external pure returns (string memory) { return NAME; } function symbol() external pure returns (string memory) { return SYMBOL; } function decimals() external pure returns (uint8) { return uint8(DECIMALS); } function stakingActive() external view returns (bool) { return _stakingActive; } function stakingSince() external view returns (uint256) { return _stakingSince; } function stakingFrequence() external pure returns (uint) { return SavixSupply.MINTIMEWIN; } function totalSupply() override external view returns (uint256) { // since we cannot directly decrease total supply without affecting all balances, we // track burned tokens and substract them here // we also substact burned tokens from the global burn address return _totalSupply - _burnAmount.div(TOTAL_FRAGMENTS.div(_totalSupply)) - balanceOf(BURNADDR); } // dailyInterest rate is given in percent with 2 decimals => result has to be divede by 10**9 to get correct number with precision 2 function dailyInterest() external view returns (uint) { return SavixSupply.getDailyInterest(block.timestamp - _stakingSince, _lastAdjustTime, _totalSupply, _lastTotalSupply); } // ** new method // yearlyInterest rate is given in percent with 2 decimals => result has to be divede by 10**9 to get correct number with precision 2 function yearlyInterest() external view returns (uint) { return SavixSupply.getYearlyInterest(block.timestamp - _stakingSince, _lastAdjustTime, _totalSupply, _lastTotalSupply); } function balanceOf(address account) override public view returns (uint256) { return _balances[account].div(TOTAL_FRAGMENTS.div(_totalSupply)); } function _calculateFragments(uint256 value) internal returns (uint256) { if(_stakingActive && (block.timestamp - _stakingSince) - _lastAdjustTime >= SavixSupply.MINTIMEWIN) { uint256 newSupply = SavixSupply.getAdjustedSupply(_supplyMap, (block.timestamp - _stakingSince), _constGradient); if (_totalSupply != newSupply) { // ** changed: assignment order // ** added: new variable _adjustTime _lastAdjustTime = _adjustTime; _adjustTime = block.timestamp - _stakingSince; _lastTotalSupply = _totalSupply; _totalSupply = newSupply; } } // return value.mul(TOTAL_FRAGMENTS.div(_totalSupply)); ** old version // return TOTAL_FRAGMENTS.mul(value).div(_totalSupply); ** this would be appropriate in order to multiply before division // But => leads to multiplication overflow due to extremly high numbers in which supply fragments are held return TOTAL_FRAGMENTS.div(_totalSupply).mul(value); } function burn(uint256 value) external returns (bool) { uint256 rAmount = _calculateFragments(value); _balances[msg.sender] = _balances[msg.sender].sub(rAmount,"burn amount exceeds balance"); // cannot modify totalsupply directly, otherwise all balances would decrease // we keep track of the burn amount and use it in the totalSupply() function to correctly // compute the totalsupply // also, burned tokens have to be stored as fragments (percentage) of the total supply // This means they gets affected by staking: the burned amount will automatically increase accordingly _burnAmount += rAmount; emit Transfer(msg.sender, address(0), value); return true; } function getBurnAmount() external view returns (uint256) { return _burnAmount.div(TOTAL_FRAGMENTS.div(_totalSupply)) + balanceOf(BURNADDR); } function transfer(address to, uint256 value) override external validRecipient(to) returns (bool) { uint256 rAmount = _calculateFragments(value); _balances[msg.sender] = _balances[msg.sender].sub(rAmount,"ERC20: transfer amount exceeds balance"); _balances[to] = _balances[to].add(rAmount); emit Transfer(msg.sender, to, value); return true; } /** * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 value) override external returns (bool) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(value,"ERC20: transfer amount exceeds allowance"); uint256 rAmount = _calculateFragments(value); _balances[sender] = _balances[sender].sub(rAmount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(rAmount); emit Transfer(sender, recipient, value); return true; } function allowance(address owner, address spender) override external view returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { uint256 newValue = _allowances[msg.sender][spender].add(addedValue); _allowances[msg.sender][spender] = 0; _approve(msg.sender, spender, newValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 newValue = _allowances[msg.sender][spender].sub(subtractedValue,"ERC20: decreased allowance below zero"); _allowances[msg.sender][spender] = 0; _approve(msg.sender, spender, newValue); return true; } function approve(address spender, uint256 value) override external returns (bool) { _allowances[msg.sender][spender] = 0; _approve(msg.sender, spender, value); return true; } function _approve(address owner, address spender, uint256 value) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); // In order to exclude front-running attacks: // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 require((value == 0 || _allowances[owner][spender] == 0), "possible front-running attack"); _allowances[owner][spender] = value; emit Approval(owner, spender, value); } // use same logic to adjust balances as in function transfer // only distribute from owner wallet (ecosystem fund) // gas friendly way to do airdrops or giveaways function distributeTokens(address[] memory addresses, uint256 value) external onlyOwner { uint256 rAmount = _calculateFragments(value); _balances[_owner] = _balances[_owner].sub(rAmount * addresses.length,"ERC20: distribution total amount exceeds balance"); uint256 addressesLength = addresses.length; for (uint i = 0; i < addressesLength; i++) { _balances[addresses[i]] = _balances[addresses[i]].add(rAmount); emit Transfer(_owner, addresses[i], value); } } // use same logic to adjust balances as in function transfer // only distribute from owner wallet (ecosystem fund) // gas friendly way to do airdrops or giveaways function distributeTokensFlexSum(address[] memory addresses, uint256[] memory values) external onlyOwner { // there has to be exacly 1 value per address require(addresses.length == values.length, "there has to be exacly 1 value per address"); // Overflow check uint256 valuesum = 0; uint256 valueLength = values.length; for (uint i = 0; i < valueLength; i++) valuesum += values[i]; _balances[_owner] = _balances[_owner].sub( _calculateFragments(valuesum),"ERC20: distribution total amount exceeds balance"); uint256 addressesLength = addresses.length; for (uint i = 0; i < addressesLength; i++) { _balances[addresses[i]] = _balances[addresses[i]].add(_calculateFragments(values[i])); emit Transfer(_owner, addresses[i], values[i]); } } function getOwner() external view returns(address) { return _owner; } }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @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); }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @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) public 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) public 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) public 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) public 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) public 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) public pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 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) public 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) public pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity 0.6.12; import "./SafeMath.sol"; /** * @dev savix interest and supply calculations. * */ library SavixSupply { uint256 public constant MAX_UINT256 = 2**256 - 1; uint256 public constant MAX_UINT128 = 2**128 - 1; uint public constant MINTIMEWIN = 7200; // 2 hours uint public constant SECPERDAY = 3600 * 24; uint public constant DECIMALS = 9; struct SupplyWinBoundary { uint256 x1; uint256 x2; uint256 y1; uint256 y2; } function getSupplyWindow(uint256[2][] memory map, uint256 calcTime) internal pure returns (SupplyWinBoundary memory) { SupplyWinBoundary memory winBound; winBound.x1 = 0; winBound.x2 = 0; winBound.y1 = map[0][1]; winBound.y2 = 0; for (uint i=0; i < map.length; i++) { if (map[i][0] == 0) continue; if (calcTime < map[i][0]) { winBound.x2 = map[i][0]; winBound.y2 = map[i][1]; break; } else { winBound.x1 = map[i][0]; winBound.y1 = map[i][1]; } } if (winBound.x2 == 0) winBound.x2 = MAX_UINT128; if (winBound.y2 == 0) winBound.y2 = MAX_UINT128; return winBound; } // function to calculate new Supply with SafeMath for divisions only, shortest (cheapest) form function getAdjustedSupply(uint256[2][] memory map, uint256 transactionTime, uint constGradient) internal pure returns (uint256) { if (transactionTime >= map[map.length-1][0]) { // return (map[map.length-1][1] + constGradient * (SafeMath.sub(transactionTime, map[map.length-1][0]))); ** old version return (map[map.length-1][1] + SafeMath.mul(constGradient, SafeMath.sub(transactionTime, map[map.length-1][0]))); } SupplyWinBoundary memory winBound = getSupplyWindow(map, transactionTime); // return (winBound.y1 + SafeMath.div(winBound.y2 - winBound.y1, winBound.x2 - winBound.x1) * (transactionTime - winBound.x1)); ** old version return (winBound.y1 + SafeMath.div(SafeMath.mul(SafeMath.sub(winBound.y2, winBound.y1), SafeMath.sub(transactionTime, winBound.x1)), SafeMath.sub(winBound.x2, winBound.x1))); } function getDailyInterest(uint256 currentTime, uint256 lastAdjustTime, uint256 currentSupply, uint256 lastSupply) internal pure returns (uint) { if (currentTime <= lastAdjustTime) { return uint128(0); } // ** old version // uint256 InterestSinceLastAdjust = SafeMath.div((currentSupply - lastSupply) * 100, lastSupply); // return (SafeMath.div(InterestSinceLastAdjust * SECPERDAY, currentTime - lastAdjustTime)); return (SafeMath.div(SafeMath.sub(currentSupply, lastSupply) * 100 * 10**DECIMALS * SECPERDAY, SafeMath.mul(SafeMath.sub(currentTime, lastAdjustTime), lastSupply))); } // ** new method // yearlyInterest rate is given in percent with 2 decimals => result has to be divede by 10**9 to get correct number with precision 2 function getYearlyInterest(uint256 currentTime, uint256 lastAdjustTime, uint256 currentSupply, uint256 lastSupply) internal pure returns (uint) { if (currentTime <= lastAdjustTime) { return uint128(0); } return (SafeMath.div(SafeMath.sub(currentSupply, lastSupply) * 100 * 10**DECIMALS * SECPERDAY * 360, SafeMath.mul(SafeMath.sub(currentTime, lastAdjustTime), lastSupply))); } }
{ "remappings": [], "optimizer": { "enabled": false, "runs": 200 }, "evmVersion": "petersburg", "libraries": { "/C/prj/Savix/contracts/SafeMath.sol": { "SafeMath": "0x2BF254D95FC0f968ACcC0B12E6E7a91384619c7A" } }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- Quill Audits - March 2nd, 2021 - Security Audit Report
[{"inputs":[],"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":"value","type":"uint256"}],"name":"Approval","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dailyInterest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"distributeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"distributeTokensFlexSum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalGradient","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"initialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lastAdjustTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"stakingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingFrequence","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"stakingSince","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supplyMap","outputs":[{"internalType":"uint256[2][]","name":"","type":"uint256[2][]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"yearlyInterest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405260006001556000600260006101000a81548160ff02191690831515021790555060006003556009600a0a620186a0026004556009600a0a620186a002600555600060065560006007553480156200005a57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a0a620186a0026004819055506009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81620000de57fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b6040518060400160405280600081526020016009600a0a620186a0028152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002620001bf9291906200047b565b50600b60405180604001604052806201518060070281526020016009600a0a6201c1380281525090806001815401808255809150506001900390600052602060002090600202016000909190919091509060026200021f9291906200047b565b50600b604051806040016040528062015180601e0281526020016009600a0a6201fbd00281525090806001815401808255809150506001900390600052602060002090600202016000909190919091509060026200027f9291906200047b565b50600b60405180604001604052806201518060b40281526020016009600a0a62027100028152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002620002df9291906200047b565b50600b6040518060400160405280620151806101680281526020016009600a0a6202d2a8028152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002620003409291906200047b565b50600b60405180604001604052806201518061021c0281526020016009600a0a620347d8028152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002620003a19291906200047b565b50600b6040518060400160405280620151806102d00281526020016009600a0a6203a980028152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002620004029291906200047b565b50600b6040518060400160405280620151806105a00281526020016009600a0a620493e0028152509080600181540180825580915050600190039060005260206000209060020201600090919091909150906002620004639291906200047b565b506004600903600a0a600802600181905550620004df565b8260028101928215620004ad579160200282015b82811115620004ac5782518255916020019190600101906200048f565b5b509050620004bc9190620004c0565b5090565b5b80821115620004db576000816000905550600101620004c1565b5090565b613c2180620004ef6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806342966c68116100f9578063a6ac4b3511610097578063c3351da911610071578063c3351da914610815578063d0c5c58514610833578063d46aa5e514610851578063dd62ed3e1461099d576101a9565b8063a6ac4b3514610773578063a9059cbb14610793578063b6508067146107f7576101a9565b806371b0cbfa116100d357806371b0cbfa1461064e578063893d20e81461065857806395d89b411461068c578063a457c2d71461070f576101a9565b806342966c68146105945780634c1c3321146105d857806370a08231146105f6576101a9565b8063256fa241116101665780633515a560116101405780633515a560146104d6578063378dc3dc146104f4578063395093511461051257806341d98b8214610576576101a9565b8063256fa241146103d5578063273aa9e314610497578063313ce567146104b5576101a9565b806302bc7b11146101ae578063043fb5111461022e57806306fdde031461024c578063095ea7b3146102cf57806318160ddd1461033357806323b872dd14610351575b600080fd5b6101b6610a15565b60405180806020018281038252838181518152602001915080516000925b8184101561021d5782846020026020010151600260200280838360005b8381101561020c5780820151818401526020810190506101f1565b5050505090500192600101926101d4565b925050509250505060405180910390f35b610236610aa5565b6040518082815260200191505060405180910390f35b610254610ac2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610294578082015181840152602081019050610279565b50505050905090810190601f1680156102c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031b600480360360408110156102e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aff565b60405180821515815260200191505060405180910390f35b61033b610b97565b6040518082815260200191505060405180910390f35b6103bd6004803603606081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d2d565b60405180821515815260200191505060405180910390f35b610495600480360360408110156103eb57600080fd5b810190808035906020019064010000000081111561040857600080fd5b82018360208201111561041a57600080fd5b8035906020019184602083028401116401000000008311171561043c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506111a1565b005b61049f6115c2565b6040518082815260200191505060405180910390f35b6104bd6115cc565b604051808260ff16815260200191505060405180910390f35b6104de6115d5565b6040518082815260200191505060405180910390f35b6104fc6115f2565b6040518082815260200191505060405180910390f35b61055e6004803603604081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611603565b60405180821515815260200191505060405180910390f35b61057e6117b0565b6040518082815260200191505060405180910390f35b6105c0600480360360208110156105aa57600080fd5b81019080803590602001909291905050506117ba565b60405180821515815260200191505060405180910390f35b6105e0611997565b6040518082815260200191505060405180910390f35b6106386004803603602081101561060c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a1565b6040518082815260200191505060405180910390f35b610656611b66565b005b610660611c77565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610694611ca0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d45780820151818401526020810190506106b9565b50505050905090810190601f1680156107015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61075b6004803603604081101561072557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cdd565b60405180821515815260200191505060405180910390f35b61077b611ea6565b60405180821515815260200191505060405180910390f35b6107df600480360360408110156107a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ebd565b60405180821515815260200191505060405180910390f35b6107ff612261565b6040518082815260200191505060405180910390f35b61081d61226b565b6040518082815260200191505060405180910390f35b61083b612275565b6040518082815260200191505060405180910390f35b61099b6004803603604081101561086757600080fd5b810190808035906020019064010000000081111561088457600080fd5b82018360208201111561089657600080fd5b803590602001918460208302840111640100000000831117156108b857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561091857600080fd5b82018360208201111561092a57600080fd5b8035906020019184602083028401116401000000008311171561094c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612407565b005b6109ff600480360360408110156109b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128e1565b6040518082815260200191505060405180910390f35b6060600b805480602002602001604051908101604052809291908181526020016000905b82821015610a9c5783829060005260206000209060020201600280602002604051908101604052809291908260028015610a88576020028201915b815481526020019060010190808311610a74575b505050505081526020019060010190610a39565b50505050905090565b6000610abd6003544203600754600454600554612968565b905090565b60606040518060400160405280600581526020017f5361766978000000000000000000000000000000000000000000000000000000815250905090565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b8d338484612bea565b6001905092915050565b6000610ba461dead6119a1565b600a54732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81610bf557fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610c7257600080fd5b505af4158015610c86573d6000803e3d6000fd5b505050506040513d6020811015610c9c57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610ce857600080fd5b505af4158015610cfc573d6000803e3d6000fd5b505050506040513d6020811015610d1257600080fd5b81019080805190602001909291905050506004540303905090565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091846040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526028815260200180613b4b60289139604001935050505060206040518083038186803b158015610e2057600080fd5b505af4158015610e34573d6000803e3d6000fd5b505050506040513d6020811015610e4a57600080fd5b8101908080519060200190929190505050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610ee683612ede565b9050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091836040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526026815260200180613b2560269139604001935050505060206040518083038186803b158015610f9c57600080fd5b505af4158015610fb0573d6000803e3d6000fd5b505050506040513d6020811015610fc657600080fd5b8101908080519060200190929190505050600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156110b257600080fd5b505af41580156110c6573d6000803e3d6000fd5b505050506040513d60208110156110dc57600080fd5b8101908080519060200190929190505050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611245576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ab76022913960400191505060405180910390fd5b600061125082612ede565b9050600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091855184026040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526030815260200180613b9760309139604001935050505060206040518083038186803b15801561132a57600080fd5b505af415801561133e573d6000803e3d6000fd5b505050506040513d602081101561135457600080fd5b8101908080519060200190929190505050600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008351905060005b818110156115bb57600860008683815181106113ea57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561148557600080fd5b505af4158015611499573d6000803e3d6000fd5b505050506040513d60208110156114af57600080fd5b8101908080519060200190929190505050600860008784815181106114d057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084818151811061152257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a380806001019150506113d2565b5050505050565b6000611c20905090565b60006009905090565b60006115ed600354420360075460045460055461315c565b905090565b60006009600a0a620186a002905090565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116db57600080fd5b505af41580156116ef573d6000803e3d6000fd5b505050506040513d602081101561170557600080fd5b810190808051906020019092919050505090506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a5338583612bea565b600191505092915050565b6000600754905090565b6000806117c683612ede565b9050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091836040518363ffffffff1660e01b815260040180838152602001828152602001806020018281038252601b8152602001807f6275726e20616d6f756e7420657863656564732062616c616e63650000000000815250602001935050505060206040518083038186803b15801561189957600080fd5b505af41580156118ad573d6000803e3d6000fd5b505050506040513d60208110156118c357600080fd5b8101908080519060200190929190505050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600a60008282540192505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b6000600354905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81611a3157fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611aae57600080fd5b505af4158015611ac2573d6000803e3d6000fd5b505050506040513d6020811015611ad857600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b2457600080fd5b505af4158015611b38573d6000803e3d6000fd5b505050506040513d6020811015611b4e57600080fd5b81019080805190602001909291905050509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ab76022913960400191505060405180910390fd5b6001600260006101000a81548160ff02191690831515021790555042600381905550600b600081548110611c3a57fe5b9060005260206000209060020201600160028110611c5457fe5b015460048190555060045460058190555060006007819055506000600681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5356580000000000000000000000000000000000000000000000000000000000815250905090565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091856040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526025815260200180613bc760259139604001935050505060206040518083038186803b158015611dd157600080fd5b505af4158015611de5573d6000803e3d6000fd5b505050506040513d6020811015611dfb57600080fd5b810190808051906020019092919050505090506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9b338583612bea565b600191505092915050565b6000600260009054906101000a900460ff16905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611f2957503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611f9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c696420526563697069656e7400000000000000000000000000000081525060200191505060405180910390fd5b6000611fa684612ede565b9050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091836040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526026815260200180613b2560269139604001935050505060206040518083038186803b15801561205c57600080fd5b505af4158015612070573d6000803e3d6000fd5b505050506040513d602081101561208657600080fd5b8101908080519060200190929190505050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561217257600080fd5b505af4158015612186573d6000803e3d6000fd5b505050506040513d602081101561219c57600080fd5b8101908080519060200190929190505050600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000600554905090565b6000600154905090565b600061228261dead6119a1565b600a54732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816122d357fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561235057600080fd5b505af4158015612364573d6000803e3d6000fd5b505050506040513d602081101561237a57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156123c657600080fd5b505af41580156123da573d6000803e3d6000fd5b505050506040513d60208110156123f057600080fd5b810190808051906020019092919050505001905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ab76022913960400191505060405180910390fd5b8051825114612505576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613afb602a913960400191505060405180910390fd5b6000808251905060005b8181101561253c5783818151811061252357fe5b602002602001015183019250808060010191505061250f565b50600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a90916125c385612ede565b6040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526030815260200180613b9760309139604001935050505060206040518083038186803b15801561261a57600080fd5b505af415801561262e573d6000803e3d6000fd5b505050506040513d602081101561264457600080fd5b8101908080519060200190929190505050600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008451905060005b818110156128d957600860008783815181106126da57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f7909161275588858151811061274857fe5b6020026020010151612ede565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561279057600080fd5b505af41580156127a4573d6000803e3d6000fd5b505050506040513d60208110156127ba57600080fd5b8101908080519060200190929190505050600860008884815181106127db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085818151811061282d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8784815181106128af57fe5b60200260200101516040518082815260200191505060405180910390a380806001019150506126c2565b505050505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600083851161298c5760006fffffffffffffffffffffffffffffffff169050612be2565b732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b620151806009600a0a6064732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c589896040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612a0857600080fd5b505af4158015612a1c573d6000803e3d6000fd5b505050506040513d6020811015612a3257600080fd5b8101908080519060200190929190505050020202732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58b8b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612ab757600080fd5b505af4158015612acb573d6000803e3d6000fd5b505050506040513d6020811015612ae157600080fd5b8101908080519060200190929190505050876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612b2e57600080fd5b505af4158015612b42573d6000803e3d6000fd5b505050506040513d6020811015612b5857600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612ba457600080fd5b505af4158015612bb8573d6000803e3d6000fd5b505050506040513d6020811015612bce57600080fd5b810190808051906020019092919050505090505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ad96022913960400191505060405180910390fd5b6000811480612d8157506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f706f737369626c652066726f6e742d72756e6e696e672061747461636b00000081525060200191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000600260009054906101000a900460ff168015612f065750611c2060075460035442030310155b15612fd8576000612fa6600b805480602002602001604051908101604052809291908181526020016000905b82821015612f955783829060005260206000209060020201600280602002604051908101604052809291908260028015612f81576020028201915b815481526020019060010190808311612f6d575b505050505081526020019060010190612f32565b5050505060035442036001546133e2565b90508060045414612fd6576006546007819055506003544203600681905550600454600581905550806004819055505b505b6009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8161300a57fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561308757600080fd5b505af415801561309b573d6000803e3d6000fd5b505050506040513d60208110156130b157600080fd5b8101908080519060200190929190505050732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c9091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561311a57600080fd5b505af415801561312e573d6000803e3d6000fd5b505050506040513d602081101561314457600080fd5b81019080805190602001909291905050509050919050565b60008385116131805760006fffffffffffffffffffffffffffffffff1690506133da565b732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b610168620151806009600a0a6064732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58a8a6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156131ff57600080fd5b505af4158015613213573d6000803e3d6000fd5b505050506040513d602081101561322957600080fd5b810190808051906020019092919050505002020202732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58b8b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156132af57600080fd5b505af41580156132c3573d6000803e3d6000fd5b505050506040513d60208110156132d957600080fd5b8101908080519060200190929190505050876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561332657600080fd5b505af415801561333a573d6000803e3d6000fd5b505050506040513d602081101561335057600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561339c57600080fd5b505af41580156133b0573d6000803e3d6000fd5b505050506040513d60208110156133c657600080fd5b810190808051906020019092919050505090505b949350505050565b6000836001855103815181106133f457fe5b602002602001015160006002811061340857fe5b6020020151831061358f57732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c83732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c5878960018b51038151811061345957fe5b602002602001015160006002811061346d57fe5b60200201516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156134ad57600080fd5b505af41580156134c1573d6000803e3d6000fd5b505050506040513d60208110156134d757600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561352357600080fd5b505af4158015613537573d6000803e3d6000fd5b505050506040513d602081101561354d57600080fd5b81019080805190602001909291905050508460018651038151811061356e57fe5b602002602001015160016002811061358257fe5b6020020151019050613897565b613597613a8e565b6135a1858561389e565b9050732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c5866060015187604001516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561363657600080fd5b505af415801561364a573d6000803e3d6000fd5b505050506040513d602081101561366057600080fd5b8101908080519060200190929190505050732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58a88600001516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156136cc57600080fd5b505af41580156136e0573d6000803e3d6000fd5b505050506040513d60208110156136f657600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561374257600080fd5b505af4158015613756573d6000803e3d6000fd5b505050506040513d602081101561376c57600080fd5b8101908080519060200190929190505050732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c5856020015186600001516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156137dc57600080fd5b505af41580156137f0573d6000803e3d6000fd5b505050506040513d602081101561380657600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561385257600080fd5b505af4158015613866573d6000803e3d6000fd5b505050506040513d602081101561387c57600080fd5b81019080805190602001909291905050508160400151019150505b9392505050565b6138a6613a8e565b6138ae613a8e565b60008160000181815250506000816020018181525050836000815181106138d157fe5b60200260200101516001600281106138e557fe5b6020020151816040018181525050600081606001818152505060005b8451811015613a3357600085828151811061391857fe5b602002602001015160006002811061392c57fe5b6020020151141561393c57613a26565b84818151811061394857fe5b602002602001015160006002811061395c57fe5b60200201518410156139c95784818151811061397457fe5b602002602001015160006002811061398857fe5b60200201518260200181815250508481815181106139a257fe5b60200260200101516001600281106139b657fe5b6020020151826060018181525050613a33565b8481815181106139d557fe5b60200260200101516000600281106139e957fe5b6020020151826000018181525050848181518110613a0357fe5b6020026020010151600160028110613a1757fe5b60200201518260400181815250505b8080600101915050613901565b50600081602001511415613a5c576fffffffffffffffffffffffffffffffff8160200181815250505b600081606001511415613a84576fffffffffffffffffffffffffffffffff8160600181815250505b8091505092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6e2e45524332303a20617070726f766520746f20746865207a65726f206164647265737374686572652068617320746f20626520657861636c7920312076616c756520706572206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a20646973747269627574696f6e20746f74616c20616d6f756e7420657863656564732062616c616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d4eaae6b3d5b35bea78b5ddcaf35f410ec3f02f8625ebe0164d702880ba0a01164736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806342966c68116100f9578063a6ac4b3511610097578063c3351da911610071578063c3351da914610815578063d0c5c58514610833578063d46aa5e514610851578063dd62ed3e1461099d576101a9565b8063a6ac4b3514610773578063a9059cbb14610793578063b6508067146107f7576101a9565b806371b0cbfa116100d357806371b0cbfa1461064e578063893d20e81461065857806395d89b411461068c578063a457c2d71461070f576101a9565b806342966c68146105945780634c1c3321146105d857806370a08231146105f6576101a9565b8063256fa241116101665780633515a560116101405780633515a560146104d6578063378dc3dc146104f4578063395093511461051257806341d98b8214610576576101a9565b8063256fa241146103d5578063273aa9e314610497578063313ce567146104b5576101a9565b806302bc7b11146101ae578063043fb5111461022e57806306fdde031461024c578063095ea7b3146102cf57806318160ddd1461033357806323b872dd14610351575b600080fd5b6101b6610a15565b60405180806020018281038252838181518152602001915080516000925b8184101561021d5782846020026020010151600260200280838360005b8381101561020c5780820151818401526020810190506101f1565b5050505090500192600101926101d4565b925050509250505060405180910390f35b610236610aa5565b6040518082815260200191505060405180910390f35b610254610ac2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610294578082015181840152602081019050610279565b50505050905090810190601f1680156102c15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031b600480360360408110156102e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aff565b60405180821515815260200191505060405180910390f35b61033b610b97565b6040518082815260200191505060405180910390f35b6103bd6004803603606081101561036757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d2d565b60405180821515815260200191505060405180910390f35b610495600480360360408110156103eb57600080fd5b810190808035906020019064010000000081111561040857600080fd5b82018360208201111561041a57600080fd5b8035906020019184602083028401116401000000008311171561043c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291905050506111a1565b005b61049f6115c2565b6040518082815260200191505060405180910390f35b6104bd6115cc565b604051808260ff16815260200191505060405180910390f35b6104de6115d5565b6040518082815260200191505060405180910390f35b6104fc6115f2565b6040518082815260200191505060405180910390f35b61055e6004803603604081101561052857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611603565b60405180821515815260200191505060405180910390f35b61057e6117b0565b6040518082815260200191505060405180910390f35b6105c0600480360360208110156105aa57600080fd5b81019080803590602001909291905050506117ba565b60405180821515815260200191505060405180910390f35b6105e0611997565b6040518082815260200191505060405180910390f35b6106386004803603602081101561060c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a1565b6040518082815260200191505060405180910390f35b610656611b66565b005b610660611c77565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610694611ca0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d45780820151818401526020810190506106b9565b50505050905090810190601f1680156107015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61075b6004803603604081101561072557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cdd565b60405180821515815260200191505060405180910390f35b61077b611ea6565b60405180821515815260200191505060405180910390f35b6107df600480360360408110156107a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ebd565b60405180821515815260200191505060405180910390f35b6107ff612261565b6040518082815260200191505060405180910390f35b61081d61226b565b6040518082815260200191505060405180910390f35b61083b612275565b6040518082815260200191505060405180910390f35b61099b6004803603604081101561086757600080fd5b810190808035906020019064010000000081111561088457600080fd5b82018360208201111561089657600080fd5b803590602001918460208302840111640100000000831117156108b857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561091857600080fd5b82018360208201111561092a57600080fd5b8035906020019184602083028401116401000000008311171561094c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612407565b005b6109ff600480360360408110156109b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128e1565b6040518082815260200191505060405180910390f35b6060600b805480602002602001604051908101604052809291908181526020016000905b82821015610a9c5783829060005260206000209060020201600280602002604051908101604052809291908260028015610a88576020028201915b815481526020019060010190808311610a74575b505050505081526020019060010190610a39565b50505050905090565b6000610abd6003544203600754600454600554612968565b905090565b60606040518060400160405280600581526020017f5361766978000000000000000000000000000000000000000000000000000000815250905090565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b8d338484612bea565b6001905092915050565b6000610ba461dead6119a1565b600a54732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81610bf557fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610c7257600080fd5b505af4158015610c86573d6000803e3d6000fd5b505050506040513d6020811015610c9c57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015610ce857600080fd5b505af4158015610cfc573d6000803e3d6000fd5b505050506040513d6020811015610d1257600080fd5b81019080805190602001909291905050506004540303905090565b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091846040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526028815260200180613b4b60289139604001935050505060206040518083038186803b158015610e2057600080fd5b505af4158015610e34573d6000803e3d6000fd5b505050506040513d6020811015610e4a57600080fd5b8101908080519060200190929190505050600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610ee683612ede565b9050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091836040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526026815260200180613b2560269139604001935050505060206040518083038186803b158015610f9c57600080fd5b505af4158015610fb0573d6000803e3d6000fd5b505050506040513d6020811015610fc657600080fd5b8101908080519060200190929190505050600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156110b257600080fd5b505af41580156110c6573d6000803e3d6000fd5b505050506040513d60208110156110dc57600080fd5b8101908080519060200190929190505050600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611245576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ab76022913960400191505060405180910390fd5b600061125082612ede565b9050600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091855184026040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526030815260200180613b9760309139604001935050505060206040518083038186803b15801561132a57600080fd5b505af415801561133e573d6000803e3d6000fd5b505050506040513d602081101561135457600080fd5b8101908080519060200190929190505050600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008351905060005b818110156115bb57600860008683815181106113ea57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561148557600080fd5b505af4158015611499573d6000803e3d6000fd5b505050506040513d60208110156114af57600080fd5b8101908080519060200190929190505050600860008784815181106114d057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084818151811061152257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a380806001019150506113d2565b5050505050565b6000611c20905090565b60006009905090565b60006115ed600354420360075460045460055461315c565b905090565b60006009600a0a620186a002905090565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156116db57600080fd5b505af41580156116ef573d6000803e3d6000fd5b505050506040513d602081101561170557600080fd5b810190808051906020019092919050505090506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a5338583612bea565b600191505092915050565b6000600754905090565b6000806117c683612ede565b9050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091836040518363ffffffff1660e01b815260040180838152602001828152602001806020018281038252601b8152602001807f6275726e20616d6f756e7420657863656564732062616c616e63650000000000815250602001935050505060206040518083038186803b15801561189957600080fd5b505af41580156118ad573d6000803e3d6000fd5b505050506040513d60208110156118c357600080fd5b8101908080519060200190929190505050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600a60008282540192505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36001915050919050565b6000600354905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81611a3157fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611aae57600080fd5b505af4158015611ac2573d6000803e3d6000fd5b505050506040513d6020811015611ad857600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015611b2457600080fd5b505af4158015611b38573d6000803e3d6000fd5b505050506040513d6020811015611b4e57600080fd5b81019080805190602001909291905050509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ab76022913960400191505060405180910390fd5b6001600260006101000a81548160ff02191690831515021790555042600381905550600b600081548110611c3a57fe5b9060005260206000209060020201600160028110611c5457fe5b015460048190555060045460058190555060006007819055506000600681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5356580000000000000000000000000000000000000000000000000000000000815250905090565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091856040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526025815260200180613bc760259139604001935050505060206040518083038186803b158015611dd157600080fd5b505af4158015611de5573d6000803e3d6000fd5b505050506040513d6020811015611dfb57600080fd5b810190808051906020019092919050505090506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9b338583612bea565b600191505092915050565b6000600260009054906101000a900460ff16905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611f2957503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b611f9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c696420526563697069656e7400000000000000000000000000000081525060200191505060405180910390fd5b6000611fa684612ede565b9050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a9091836040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526026815260200180613b2560269139604001935050505060206040518083038186803b15801561205c57600080fd5b505af4158015612070573d6000803e3d6000fd5b505050506040513d602081101561208657600080fd5b8101908080519060200190929190505050600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f79091836040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561217257600080fd5b505af4158015612186573d6000803e3d6000fd5b505050506040513d602081101561219c57600080fd5b8101908080519060200190929190505050600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000600554905090565b6000600154905090565b600061228261dead6119a1565b600a54732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816122d357fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561235057600080fd5b505af4158015612364573d6000803e3d6000fd5b505050506040513d602081101561237a57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156123c657600080fd5b505af41580156123da573d6000803e3d6000fd5b505050506040513d60208110156123f057600080fd5b810190808051906020019092919050505001905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ab76022913960400191505060405180910390fd5b8051825114612505576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613afb602a913960400191505060405180910390fd5b6000808251905060005b8181101561253c5783818151811061252357fe5b602002602001015183019250808060010191505061250f565b50600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63e31bdc0a90916125c385612ede565b6040518363ffffffff1660e01b8152600401808381526020018281526020018060200182810382526030815260200180613b9760309139604001935050505060206040518083038186803b15801561261a57600080fd5b505af415801561262e573d6000803e3d6000fd5b505050506040513d602081101561264457600080fd5b8101908080519060200190929190505050600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008451905060005b818110156128d957600860008783815181106126da57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054732bf254d95fc0f968accc0b12e6e7a91384619c7a63771602f7909161275588858151811061274857fe5b6020026020010151612ede565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561279057600080fd5b505af41580156127a4573d6000803e3d6000fd5b505050506040513d60208110156127ba57600080fd5b8101908080519060200190929190505050600860008884815181106127db57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085818151811061282d57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8784815181106128af57fe5b60200260200101516040518082815260200191505060405180910390a380806001019150506126c2565b505050505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600083851161298c5760006fffffffffffffffffffffffffffffffff169050612be2565b732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b620151806009600a0a6064732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c589896040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612a0857600080fd5b505af4158015612a1c573d6000803e3d6000fd5b505050506040513d6020811015612a3257600080fd5b8101908080519060200190929190505050020202732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58b8b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612ab757600080fd5b505af4158015612acb573d6000803e3d6000fd5b505050506040513d6020811015612ae157600080fd5b8101908080519060200190929190505050876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612b2e57600080fd5b505af4158015612b42573d6000803e3d6000fd5b505050506040513d6020811015612b5857600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612ba457600080fd5b505af4158015612bb8573d6000803e3d6000fd5b505050506040513d6020811015612bce57600080fd5b810190808051906020019092919050505090505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b736024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613ad96022913960400191505060405180910390fd5b6000811480612d8157506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b612df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f706f737369626c652066726f6e742d72756e6e696e672061747461636b00000081525060200191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000600260009054906101000a900460ff168015612f065750611c2060075460035442030310155b15612fd8576000612fa6600b805480602002602001604051908101604052809291908181526020016000905b82821015612f955783829060005260206000209060020201600280602002604051908101604052809291908260028015612f81576020028201915b815481526020019060010190808311612f6d575b505050505081526020019060010190612f32565b5050505060035442036001546133e2565b90508060045414612fd6576006546007819055506003544203600681905550600454600581905550806004819055505b505b6009600a0a620186a0027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8161300a57fe5b067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b90916004546040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561308757600080fd5b505af415801561309b573d6000803e3d6000fd5b505050506040513d60208110156130b157600080fd5b8101908080519060200190929190505050732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c9091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561311a57600080fd5b505af415801561312e573d6000803e3d6000fd5b505050506040513d602081101561314457600080fd5b81019080805190602001909291905050509050919050565b60008385116131805760006fffffffffffffffffffffffffffffffff1690506133da565b732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b610168620151806009600a0a6064732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58a8a6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156131ff57600080fd5b505af4158015613213573d6000803e3d6000fd5b505050506040513d602081101561322957600080fd5b810190808051906020019092919050505002020202732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58b8b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156132af57600080fd5b505af41580156132c3573d6000803e3d6000fd5b505050506040513d60208110156132d957600080fd5b8101908080519060200190929190505050876040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561332657600080fd5b505af415801561333a573d6000803e3d6000fd5b505050506040513d602081101561335057600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561339c57600080fd5b505af41580156133b0573d6000803e3d6000fd5b505050506040513d60208110156133c657600080fd5b810190808051906020019092919050505090505b949350505050565b6000836001855103815181106133f457fe5b602002602001015160006002811061340857fe5b6020020151831061358f57732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c83732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c5878960018b51038151811061345957fe5b602002602001015160006002811061346d57fe5b60200201516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156134ad57600080fd5b505af41580156134c1573d6000803e3d6000fd5b505050506040513d60208110156134d757600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561352357600080fd5b505af4158015613537573d6000803e3d6000fd5b505050506040513d602081101561354d57600080fd5b81019080805190602001909291905050508460018651038151811061356e57fe5b602002602001015160016002811061358257fe5b6020020151019050613897565b613597613a8e565b6135a1858561389e565b9050732bf254d95fc0f968accc0b12e6e7a91384619c7a63a391c15b732bf254d95fc0f968accc0b12e6e7a91384619c7a63c8a4ac9c732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c5866060015187604001516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561363657600080fd5b505af415801561364a573d6000803e3d6000fd5b505050506040513d602081101561366057600080fd5b8101908080519060200190929190505050732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c58a88600001516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156136cc57600080fd5b505af41580156136e0573d6000803e3d6000fd5b505050506040513d60208110156136f657600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561374257600080fd5b505af4158015613756573d6000803e3d6000fd5b505050506040513d602081101561376c57600080fd5b8101908080519060200190929190505050732bf254d95fc0f968accc0b12e6e7a91384619c7a63b67d77c5856020015186600001516040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156137dc57600080fd5b505af41580156137f0573d6000803e3d6000fd5b505050506040513d602081101561380657600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561385257600080fd5b505af4158015613866573d6000803e3d6000fd5b505050506040513d602081101561387c57600080fd5b81019080805190602001909291905050508160400151019150505b9392505050565b6138a6613a8e565b6138ae613a8e565b60008160000181815250506000816020018181525050836000815181106138d157fe5b60200260200101516001600281106138e557fe5b6020020151816040018181525050600081606001818152505060005b8451811015613a3357600085828151811061391857fe5b602002602001015160006002811061392c57fe5b6020020151141561393c57613a26565b84818151811061394857fe5b602002602001015160006002811061395c57fe5b60200201518410156139c95784818151811061397457fe5b602002602001015160006002811061398857fe5b60200201518260200181815250508481815181106139a257fe5b60200260200101516001600281106139b657fe5b6020020151826060018181525050613a33565b8481815181106139d557fe5b60200260200101516000600281106139e957fe5b6020020151826000018181525050848181518110613a0357fe5b6020026020010151600160028110613a1757fe5b60200201518260400181815250505b8080600101915050613901565b50600081602001511415613a5c576fffffffffffffffffffffffffffffffff8160200181815250505b600081606001511415613a84576fffffffffffffffffffffffffffffffff8160600181815250505b8091505092915050565b604051806080016040528060008152602001600081526020016000815260200160008152509056fe4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6e2e45524332303a20617070726f766520746f20746865207a65726f206164647265737374686572652068617320746f20626520657861636c7920312076616c756520706572206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a20646973747269627574696f6e20746f74616c20616d6f756e7420657863656564732062616c616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d4eaae6b3d5b35bea78b5ddcaf35f410ec3f02f8625ebe0164d702880ba0a01164736f6c634300060c0033
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.