ERC-20
Blockchain
Overview
Max Total Supply
120,000,000,000 NII
Holders
5,434 ( -0.018%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$334,800.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 15 Decimals)
Balance
55,558.730196000556501 NIIValue
$0.16 ( ~6.55801686230491E-05 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume | |
---|---|---|---|---|---|---|
There are no matching entriesPlease try again later |
Contract Name:
NahmiiToken
Compiler Version
v0.5.13+commit.5b0b510c
Optimization Enabled:
Yes with 0 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-02-03 */ pragma solidity >=0.4.25 <0.6.0; pragma experimental ABIEncoderV2; contract Context { constructor () internal { } function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract ERC20 is Context, IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance")); } } library Roles { struct Role { mapping (address => bool) bearer; } function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract MinterRole is Context { using Roles for Roles.Role; event MinterAdded(address indexed account); event MinterRemoved(address indexed account); Roles.Role private _minters; constructor () internal { _addMinter(_msgSender()); } modifier onlyMinter() { require(isMinter(_msgSender()), "MinterRole: caller does not have the Minter role"); _; } function isMinter(address account) public view returns (bool) { return _minters.has(account); } function addMinter(address account) public onlyMinter { _addMinter(account); } function renounceMinter() public { _removeMinter(_msgSender()); } function _addMinter(address account) internal { _minters.add(account); emit MinterAdded(account); } function _removeMinter(address account) internal { _minters.remove(account); emit MinterRemoved(account); } } contract ERC20Mintable is ERC20, MinterRole { function mint(address account, uint256 amount) public onlyMinter returns (bool) { _mint(account, amount); return true; } } library Math { function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } function average(uint256 a, uint256 b) internal pure returns (uint256) { return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); } } interface BalanceRecordable { function balanceRecordsCount(address account) external view returns (uint256); function recordBalance(address account, uint256 index) external view returns (uint256); function recordBlockNumber(address account, uint256 index) external view returns (uint256); function recordIndexByBlockNumber(address account, uint256 blockNumber) external view returns (int256); } contract TokenUpgradeAgent { address public origin; constructor(address _origin) public { origin = _origin; } function upgradeFrom(address from, uint256 value) public returns (bool); modifier onlyOrigin() { require(msg.sender == origin); _; } } contract RevenueToken is ERC20Mintable, BalanceRecordable { using SafeMath for uint256; using Math for uint256; struct BalanceRecord { uint256 blockNumber; uint256 balance; } mapping(address => BalanceRecord[]) public balanceRecords; bool public mintingDisabled; event DisableMinting(); event Upgrade(TokenUpgradeAgent tokenUpgradeAgent, address from, uint256 value); event UpgradeFrom(TokenUpgradeAgent tokenUpgradeAgent, address upgrader, address from, uint256 value); event UpgradeBalanceRecords(address account, uint256 startIndex, uint256 endIndex); function disableMinting() public onlyMinter { mintingDisabled = true; emit DisableMinting(); } function mint(address to, uint256 value) public onlyMinter returns (bool) { require(!mintingDisabled, "Minting disabled [RevenueToken.sol:68]"); bool minted = super.mint(to, value); if (minted) _addBalanceRecord(to); return minted; } function transfer(address to, uint256 value) public returns (bool) { bool transferred = super.transfer(to, value); if (transferred) { _addBalanceRecord(msg.sender); _addBalanceRecord(to); } return transferred; } function approve(address spender, uint256 value) public returns (bool) { require( 0 == value || 0 == allowance(msg.sender, spender), "Value or allowance non-zero [RevenueToken.sol:117]" ); return super.approve(spender, value); } function transferFrom(address from, address to, uint256 value) public returns (bool) { bool transferred = super.transferFrom(from, to, value); if (transferred) { _addBalanceRecord(from); _addBalanceRecord(to); } return transferred; } function upgrade(TokenUpgradeAgent tokenUpgradeAgent, uint256 value) public returns (bool) { _burn(msg.sender, value); bool upgraded = tokenUpgradeAgent.upgradeFrom(msg.sender, value); require(upgraded, "Upgrade failed [RevenueToken.sol:168]"); emit Upgrade(tokenUpgradeAgent, msg.sender, value); return upgraded; } function upgradeFrom(TokenUpgradeAgent tokenUpgradeAgent, address from, uint256 value) public returns (bool) { _burnFrom(from, value); bool upgraded = tokenUpgradeAgent.upgradeFrom(from, value); require(upgraded, "Upgrade failed [RevenueToken.sol:195]"); emit UpgradeFrom(tokenUpgradeAgent, msg.sender, from, value); return upgraded; } function balanceRecordsCount(address account) public view returns (uint256) { return balanceRecords[account].length; } function recordBalance(address account, uint256 index) public view returns (uint256) { return balanceRecords[account][index].balance; } function recordBlockNumber(address account, uint256 index) public view returns (uint256) { return balanceRecords[account][index].blockNumber; } function recordIndexByBlockNumber(address account, uint256 blockNumber) public view returns (int256) { for (uint256 i = balanceRecords[account].length; i > 0;) { i = i.sub(1); if (balanceRecords[account][i].blockNumber <= blockNumber) return int256(i); } return - 1; } function upgradeBalanceRecords(address account, BalanceRecord[] memory _balanceRecords) public onlyMinter { if (0 < _balanceRecords.length) { require(!mintingDisabled, "Minting disabled [RevenueToken.sol:280]"); uint256 startIndex = balanceRecords[account].length; uint256 endIndex = startIndex.add(_balanceRecords.length).sub(1); uint256 previousBlockNumber = startIndex > 0 ? balanceRecords[account][startIndex - 1].blockNumber : 0; for (uint256 i = 0; i < _balanceRecords.length; i++) { require(previousBlockNumber <= _balanceRecords[i].blockNumber, "Invalid balance record block number [RevenueToken.sol:292]"); balanceRecords[account].push(_balanceRecords[i]); previousBlockNumber = _balanceRecords[i].blockNumber; } emit UpgradeBalanceRecords(account, startIndex, endIndex); } } function _addBalanceRecord(address account) private { balanceRecords[account].push(BalanceRecord(block.number, balanceOf(account))); } } contract NahmiiToken is RevenueToken { string public name = "Nahmii"; string public symbol = "NII"; uint8 public constant decimals = 15; event SetName(string name); event SetSymbol(string symbol); function setName(string memory _name) public onlyMinter { name = _name; emit SetName(name); } function setSymbol(string memory _symbol) public onlyMinter { symbol = _symbol; emit SetSymbol(_symbol); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[],"name":"DisableMinting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"}],"name":"SetName","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"symbol","type":"string"}],"name":"SetSymbol","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract TokenUpgradeAgent","name":"tokenUpgradeAgent","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"startIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endIndex","type":"uint256"}],"name":"UpgradeBalanceRecords","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract TokenUpgradeAgent","name":"tokenUpgradeAgent","type":"address"},{"indexed":false,"internalType":"address","name":"upgrader","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"UpgradeFrom","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceRecords","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceRecordsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"recordBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"recordBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"recordIndexByBlockNumber","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract TokenUpgradeAgent","name":"tokenUpgradeAgent","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"upgrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"components":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"internalType":"struct RevenueToken.BalanceRecord[]","name":"_balanceRecords","type":"tuple[]"}],"name":"upgradeBalanceRecords","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract TokenUpgradeAgent","name":"tokenUpgradeAgent","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"upgradeFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052600660808190527f4e61686d6969000000000000000000000000000000000000000000000000000060a09081526200003e919081620001eb565b506040805180820190915260038082527f4e4949000000000000000000000000000000000000000000000000000000000060209092019182526200008591600791620001eb565b50620000ac6200009d6001600160e01b03620000b216565b6001600160e01b03620000b716565b6200035c565b335b90565b620000d28160036200010960201b620013621790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b6200011e82826001600160e01b036200018616565b1562000161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001589062000329565b60405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620001cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001589062000341565b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022e57805160ff19168380011785556200025e565b828001600101855582156200025e579182015b828111156200025e57825182559160200191906001019062000241565b506200026c92915062000270565b5090565b620000b491905b808211156200026c576000815560010162000277565b60006200029c601f8362000353565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b6000620002d760228362000353565b7f526f6c65733a206163636f756e7420697320746865207a65726f20616464726581527f7373000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b602080825281016200033b816200028d565b92915050565b602080825281016200033b81620002c8565b90815260200190565b61218a806200036c6000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c806306fdde031461014e578063095ea7b31461016c57806312c508ba1461018c57806318160ddd146101ac57806321afb5ee146101b457806323b872dd146101bc578063313ce567146101cf57806339509351146101e45780633d5a18b2146101f757806340c10f191461020a5780634c6c6a5c1461021d57806370a08231146102305780637319424f146102435780637e5cd5c11461025657806395d89b4114610260578063983b2d5614610268578063986502751461027b5780639f151d6614610283578063a457c2d714610296578063a9059cbb146102a9578063aa271e1a146102bc578063b84c8246146102cf578063c47f0027146102e2578063d1264b10146102f5578063dd62ed3e14610316578063e0622b2714610329578063f08c84151461033c575b600080fd5b61015661034f565b6040516101639190611dad565b60405180910390f35b61017f61017a3660046116c5565b6103dd565b6040516101639190611d38565b61019f61019a3660046116c5565b61042b565b6040516101639190611d9f565b61019f610469565b61017f610470565b61017f6101ca366004611631565b610479565b6101d76104ab565b6040516101639190611eed565b61017f6101f23660046116c5565b6104b0565b61019f6102053660046115d1565b610512565b61017f6102183660046116c5565b61052d565b61017f61022b366004611713565b610596565b61019f61023e3660046115d1565b610689565b61019f6102513660046116c5565b6106a4565b61025e61072c565b005b61015661078b565b61025e6102763660046115d1565b6107e6565b61025e610819565b61025e61029136600461167e565b61082b565b61017f6102a43660046116c5565b610a0d565b61017f6102b73660046116c5565b610a7b565b61017f6102ca3660046115d1565b610aa2565b61025e6102dd366004611753565b610ab5565b61025e6102f0366004611753565b610b2a565b6103086103033660046116c5565b610b95565b604051610163929190611edf565b61019f6103243660046115f7565b610bce565b61017f610337366004611734565b610bf9565b61019f61034a3660046116c5565b610ce9565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b505050505081565b60008115806103f357506103f13384610bce565b155b6104185760405162461bcd60e51b815260040161040f90611e1f565b60405180910390fd5b6104228383610d27565b90505b92915050565b6001600160a01b038216600090815260046020526040812080548390811061044f57fe5b906000526020600020906002020160010154905092915050565b6002545b90565b60055460ff1681565b600080610487858585610d3b565b905080156104a15761049885610dc3565b6104a184610dc3565b90505b9392505050565b600f81565b60006105096104bd610e2e565b8461050485600160006104ce610e2e565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610e3216565b610e57565b50600192915050565b6001600160a01b031660009081526004602052604090205490565b600061053a6102ca610e2e565b6105565760405162461bcd60e51b815260040161040f90611e2f565b60055460ff16156105795760405162461bcd60e51b815260040161040f90611e5f565b60006105858484610f0b565b905080156104225761042284610dc3565b60006105a28383610f3e565b60405163753e88e560e01b81526000906001600160a01b0386169063753e88e5906105d39087908790600401611d02565b602060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062591908101906116f5565b9050806106445760405162461bcd60e51b815260040161040f90611dcf565b7f9e86ce1ab9d3506dc3b13066468e34275a2b4defd12d8393095330769f46ea6f853386866040516106799493929190611d46565b60405180910390a1949350505050565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600460205260408120545b8015610721576106d581600163ffffffff610f9216565b6001600160a01b038516600090815260046020526040902080549192508491839081106106fe57fe5b9060005260206000209060020201600001541161071c579050610425565b6106be565b506000199392505050565b6107376102ca610e2e565b6107535760405162461bcd60e51b815260040161040f90611e2f565b6005805460ff191660011790556040517f2d86df2e5d84b22790939c34e14094e95a52090fbf291a1fa69b9b4e837c635390600090a1565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103d55780601f106103aa576101008083540402835291602001916103d5565b6107f16102ca610e2e565b61080d5760405162461bcd60e51b815260040161040f90611e2f565b61081681610fd4565b50565b610829610824610e2e565b61101c565b565b6108366102ca610e2e565b6108525760405162461bcd60e51b815260040161040f90611e2f565b805115610a095760055460ff161561087c5760405162461bcd60e51b815260040161040f90611e9f565b6001600160a01b03821660009081526004602052604081205482519091906108be906001906108b290859063ffffffff610e3216565b9063ffffffff610f9216565b905060008083116108d057600061090b565b6001600160a01b0385166000908152600460205260409020805460001985019081106108f857fe5b9060005260206000209060020201600001545b905060005b84518110156109c95784818151811061092557fe5b6020026020010151600001518211156109505760405162461bcd60e51b815260040161040f90611ebf565b6001600160a01b0386166000908152600460205260409020855186908390811061097657fe5b602090810291909101810151825460018181018555600094855293839020825160029092020190815591015191015584518590829081106109b357fe5b6020908102919091010151519150600101610910565b507f7ac4799cf246767cb06f9ce53099648140148e7942291ed50d4a6a46797cfd028584846040516109fd93929190611d10565b60405180910390a15050505b5050565b6000610509610a1a610e2e565b84610504856040518060600160405280602581526020016121236025913960016000610a44610e2e565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61106416565b600080610a888484611090565b9050801561042257610a9933610dc3565b61042284610dc3565b600061042560038363ffffffff6110a416565b610ac06102ca610e2e565b610adc5760405162461bcd60e51b815260040161040f90611e2f565b8051610aef9060079060208401906113f6565b507fadf3ae8bd543b3007d464f15cb8ea1db3f44e84d41d203164f40b95e27558ac681604051610b1f9190611dad565b60405180910390a150565b610b356102ca610e2e565b610b515760405162461bcd60e51b815260040161040f90611e2f565b8051610b649060069060208401906113f6565b507f4df9dcd34ae35f40f2c756fd8ac83210ed0b76d065543ee73d868aec7c7fcf026006604051610b1f9190611dbe565b60046020528160005260406000208181548110610bae57fe5b600091825260209091206002909102018054600190910154909250905082565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610c0533836110ec565b60405163753e88e560e01b81526000906001600160a01b0385169063753e88e590610c369033908790600401611ce7565b602060405180830381600087803b158015610c5057600080fd5b505af1158015610c64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c8891908101906116f5565b905080610ca75760405162461bcd60e51b815260040161040f90611eaf565b7f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac843385604051610cda93929190611d84565b60405180910390a19392505050565b6001600160a01b0382166000908152600460205260408120805483908110610d0d57fe5b906000526020600020906002020160000154905092915050565b6000610509610d34610e2e565b8484610e57565b6000610d488484846111bc565b610db984610d54610e2e565b61050485604051806060016040528060288152602001612097602891396001600160a01b038a16600090815260016020526040812090610d92610e2e565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61106416565b5060019392505050565b60046000826001600160a01b03166001600160a01b031681526020019081526020016000206040518060400160405280438152602001610e0284610689565b905281546001818101845560009384526020938490208351600290930201918255929091015191015550565b3390565b6000828201838110156104225760405162461bcd60e51b815260040161040f90611e0f565b6001600160a01b038316610e7d5760405162461bcd60e51b815260040161040f90611e8f565b6001600160a01b038216610ea35760405162461bcd60e51b815260040161040f90611dff565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610efe908590611d9f565b60405180910390a3505050565b6000610f186102ca610e2e565b610f345760405162461bcd60e51b815260040161040f90611e2f565b61050983836112c0565b610f4882826110ec565b610a0982610f54610e2e565b610504846040518060600160405280602481526020016120bf602491396001600160a01b038816600090815260016020526040812090610d92610e2e565b600061042283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611064565b610fe560038263ffffffff61136216565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61102d60038263ffffffff6113ae16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600081848411156110885760405162461bcd60e51b815260040161040f9190611dad565b505050900390565b600061050961109d610e2e565b84846111bc565b60006001600160a01b0382166110cc5760405162461bcd60e51b815260040161040f90611e4f565b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0382166111125760405162461bcd60e51b815260040161040f90611e6f565b6111558160405180606001604052806022815260200161204f602291396001600160a01b038516600090815260208190526040902054919063ffffffff61106416565b6001600160a01b038316600090815260208190526040902055600254611181908263ffffffff610f9216565b6002556040516000906001600160a01b038416906000805160206120e3833981519152906111b0908590611d9f565b60405180910390a35050565b6001600160a01b0383166111e25760405162461bcd60e51b815260040161040f90611e7f565b6001600160a01b0382166112085760405162461bcd60e51b815260040161040f90611ddf565b61124b81604051806060016040528060268152602001612071602691396001600160a01b038616600090815260208190526040902054919063ffffffff61106416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611280908263ffffffff610e3216565b6001600160a01b0380841660008181526020819052604090819020939093559151908516906000805160206120e383398151915290610efe908590611d9f565b6001600160a01b0382166112e65760405162461bcd60e51b815260040161040f90611ecf565b6002546112f9908263ffffffff610e3216565b6002556001600160a01b038216600090815260208190526040902054611325908263ffffffff610e3216565b6001600160a01b0383166000818152602081905260408082209390935591519091906000805160206120e3833981519152906111b0908590611d9f565b61136c82826110a4565b156113895760405162461bcd60e51b815260040161040f90611def565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6113b882826110a4565b6113d45760405162461bcd60e51b815260040161040f90611e3f565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061143757805160ff1916838001178555611464565b82800160010185558215611464579182015b82811115611464578251825591602001919060010190611449565b50611470929150611474565b5090565b61046d91905b80821115611470576000815560010161147a565b803561042581611fff565b600082601f8301126114aa57600080fd5b81356114bd6114b882611f21565b611efb565b915081818352602084019350602081019050838560408402820111156114e257600080fd5b60005b8381101561151057816114f8888261157f565b845250602090920191604091909101906001016114e5565b5050505092915050565b805161042581612013565b80356104258161201c565b600082601f83011261154157600080fd5b813561154f6114b882611f41565b9150808252602083016020830185838301111561156b57600080fd5b611576838284611fb9565b50505092915050565b60006040828403121561159157600080fd5b61159b6040611efb565b905060006115a984846115c6565b82525060206115ba848483016115c6565b60208301525092915050565b803561042581612025565b6000602082840312156115e357600080fd5b60006115ef848461148e565b949350505050565b6000806040838503121561160a57600080fd5b6000611616858561148e565b92505060206116278582860161148e565b9150509250929050565b60008060006060848603121561164657600080fd5b6000611652868661148e565b93505060206116638682870161148e565b9250506040611674868287016115c6565b9150509250925092565b6000806040838503121561169157600080fd5b600061169d858561148e565b92505060208301356001600160401b038111156116b957600080fd5b61162785828601611499565b600080604083850312156116d857600080fd5b60006116e4858561148e565b9250506020611627858286016115c6565b60006020828403121561170757600080fd5b60006115ef848461151a565b60008060006060848603121561172857600080fd5b60006116528686611525565b6000806040838503121561174757600080fd5b60006116e48585611525565b60006020828403121561176557600080fd5b81356001600160401b0381111561177b57600080fd5b6115ef84828501611530565b61179081611fae565b82525050565b61179081611f81565b61179081611f8c565b61179081611f91565b6117908161046d565b60006117c582611f74565b6117cf8185611f78565b93506117df818560208601611fc5565b6117e881611ff5565b9093019392505050565b60008154600181166000811461180f576001811461183557611874565b607f60028304166118208187611f78565b60ff1984168152955050602085019250611874565b600282046118438187611f78565b955061184e85611f68565b60005b8281101561186d57815488820152600190910190602001611851565b8701945050505b505092915050565b6000611889602583611f78565b6000805160206121038339815191528152643a3139355d60d81b602082015260400192915050565b60006118be602383611f78565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015260400192915050565b6000611903601f83611f78565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b600061193c602283611f78565b7f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611980601b83611f78565b7a536166654d6174683a206164646974696f6e206f766572666c6f7760281b815260200192915050565b60006119b7603283611f78565b7f56616c7565206f7220616c6c6f77616e6365206e6f6e2d7a65726f205b526576815271656e7565546f6b656e2e736f6c3a3131375d60701b602082015260400192915050565b6000611a0b603083611f78565b7f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526f20746865204d696e74657220726f6c6560801b602082015260400192915050565b6000611a5d602183611f78565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b6000611aa0602283611f78565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611ae4602683611f78565b60008051602061202f8339815191528152656f6c3a36385d60d01b602082015260400192915050565b6000611b1a602183611f78565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b602082015260400192915050565b6000611b5d602583611f78565b7f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015260400192915050565b6000611ba4602483611f78565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015260400192915050565b6000611bea602783611f78565b60008051602061202f8339815191528152666f6c3a3238305d60c81b602082015260400192915050565b6000611c21602583611f78565b6000805160206121038339815191528152643a3136385d60d81b602082015260400192915050565b6000611c56603a83611f78565b7f496e76616c69642062616c616e6365207265636f726420626c6f636b206e756d815279626572205b526576656e7565546f6b656e2e736f6c3a3239325d60301b602082015260400192915050565b6000611cb2601f83611f78565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300815260200192915050565b61179081611fa8565b60408101611cf58285611787565b6104a460208301846117b1565b60408101611cf58285611796565b60608101611d1e8286611796565b611d2b60208301856117b1565b6115ef60408301846117b1565b60208101610425828461179f565b60808101611d5482876117a8565b611d616020830186611787565b611d6e6040830185611796565b611d7b60608301846117b1565b95945050505050565b60608101611d9282866117a8565b611d2b6020830185611787565b6020810161042582846117b1565b6020808252810161042281846117ba565b6020808252810161042281846117f2565b602080825281016104258161187c565b60208082528101610425816118b1565b60208082528101610425816118f6565b602080825281016104258161192f565b6020808252810161042581611973565b60208082528101610425816119aa565b60208082528101610425816119fe565b6020808252810161042581611a50565b6020808252810161042581611a93565b6020808252810161042581611ad7565b6020808252810161042581611b0d565b6020808252810161042581611b50565b6020808252810161042581611b97565b6020808252810161042581611bdd565b6020808252810161042581611c14565b6020808252810161042581611c49565b6020808252810161042581611ca5565b60408101611cf582856117b1565b602081016104258284611cde565b6040518181016001600160401b0381118282101715611f1957600080fd5b604052919050565b60006001600160401b03821115611f3757600080fd5b5060209081020190565b60006001600160401b03821115611f5757600080fd5b506020601f91909101601f19160190565b60009081526020902090565b5190565b90815260200190565b600061042582611f9c565b151590565b600061042582611f81565b6001600160a01b031690565b60ff1690565b600061042582611f91565b82818337506000910152565b60005b83811015611fe0578181015183820152602001611fc8565b83811115611fef576000848401525b50505050565b601f01601f191690565b61200881611f81565b811461081657600080fd5b61200881611f8c565b61200881611f91565b6120088161046d56fe4d696e74696e672064697361626c6564205b526576656e7565546f6b656e2e7345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef55706772616465206661696c6564205b526576656e7565546f6b656e2e736f6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa365627a7a7231582067b65be887c78aa65ed120e4b140c9a6a0c1873d1defde40257327911fecf0656c6578706572696d656e74616cf564736f6c634300050d0040
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101495760003560e01c806306fdde031461014e578063095ea7b31461016c57806312c508ba1461018c57806318160ddd146101ac57806321afb5ee146101b457806323b872dd146101bc578063313ce567146101cf57806339509351146101e45780633d5a18b2146101f757806340c10f191461020a5780634c6c6a5c1461021d57806370a08231146102305780637319424f146102435780637e5cd5c11461025657806395d89b4114610260578063983b2d5614610268578063986502751461027b5780639f151d6614610283578063a457c2d714610296578063a9059cbb146102a9578063aa271e1a146102bc578063b84c8246146102cf578063c47f0027146102e2578063d1264b10146102f5578063dd62ed3e14610316578063e0622b2714610329578063f08c84151461033c575b600080fd5b61015661034f565b6040516101639190611dad565b60405180910390f35b61017f61017a3660046116c5565b6103dd565b6040516101639190611d38565b61019f61019a3660046116c5565b61042b565b6040516101639190611d9f565b61019f610469565b61017f610470565b61017f6101ca366004611631565b610479565b6101d76104ab565b6040516101639190611eed565b61017f6101f23660046116c5565b6104b0565b61019f6102053660046115d1565b610512565b61017f6102183660046116c5565b61052d565b61017f61022b366004611713565b610596565b61019f61023e3660046115d1565b610689565b61019f6102513660046116c5565b6106a4565b61025e61072c565b005b61015661078b565b61025e6102763660046115d1565b6107e6565b61025e610819565b61025e61029136600461167e565b61082b565b61017f6102a43660046116c5565b610a0d565b61017f6102b73660046116c5565b610a7b565b61017f6102ca3660046115d1565b610aa2565b61025e6102dd366004611753565b610ab5565b61025e6102f0366004611753565b610b2a565b6103086103033660046116c5565b610b95565b604051610163929190611edf565b61019f6103243660046115f7565b610bce565b61017f610337366004611734565b610bf9565b61019f61034a3660046116c5565b610ce9565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b505050505081565b60008115806103f357506103f13384610bce565b155b6104185760405162461bcd60e51b815260040161040f90611e1f565b60405180910390fd5b6104228383610d27565b90505b92915050565b6001600160a01b038216600090815260046020526040812080548390811061044f57fe5b906000526020600020906002020160010154905092915050565b6002545b90565b60055460ff1681565b600080610487858585610d3b565b905080156104a15761049885610dc3565b6104a184610dc3565b90505b9392505050565b600f81565b60006105096104bd610e2e565b8461050485600160006104ce610e2e565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610e3216565b610e57565b50600192915050565b6001600160a01b031660009081526004602052604090205490565b600061053a6102ca610e2e565b6105565760405162461bcd60e51b815260040161040f90611e2f565b60055460ff16156105795760405162461bcd60e51b815260040161040f90611e5f565b60006105858484610f0b565b905080156104225761042284610dc3565b60006105a28383610f3e565b60405163753e88e560e01b81526000906001600160a01b0386169063753e88e5906105d39087908790600401611d02565b602060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061062591908101906116f5565b9050806106445760405162461bcd60e51b815260040161040f90611dcf565b7f9e86ce1ab9d3506dc3b13066468e34275a2b4defd12d8393095330769f46ea6f853386866040516106799493929190611d46565b60405180910390a1949350505050565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b0382166000908152600460205260408120545b8015610721576106d581600163ffffffff610f9216565b6001600160a01b038516600090815260046020526040902080549192508491839081106106fe57fe5b9060005260206000209060020201600001541161071c579050610425565b6106be565b506000199392505050565b6107376102ca610e2e565b6107535760405162461bcd60e51b815260040161040f90611e2f565b6005805460ff191660011790556040517f2d86df2e5d84b22790939c34e14094e95a52090fbf291a1fa69b9b4e837c635390600090a1565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103d55780601f106103aa576101008083540402835291602001916103d5565b6107f16102ca610e2e565b61080d5760405162461bcd60e51b815260040161040f90611e2f565b61081681610fd4565b50565b610829610824610e2e565b61101c565b565b6108366102ca610e2e565b6108525760405162461bcd60e51b815260040161040f90611e2f565b805115610a095760055460ff161561087c5760405162461bcd60e51b815260040161040f90611e9f565b6001600160a01b03821660009081526004602052604081205482519091906108be906001906108b290859063ffffffff610e3216565b9063ffffffff610f9216565b905060008083116108d057600061090b565b6001600160a01b0385166000908152600460205260409020805460001985019081106108f857fe5b9060005260206000209060020201600001545b905060005b84518110156109c95784818151811061092557fe5b6020026020010151600001518211156109505760405162461bcd60e51b815260040161040f90611ebf565b6001600160a01b0386166000908152600460205260409020855186908390811061097657fe5b602090810291909101810151825460018181018555600094855293839020825160029092020190815591015191015584518590829081106109b357fe5b6020908102919091010151519150600101610910565b507f7ac4799cf246767cb06f9ce53099648140148e7942291ed50d4a6a46797cfd028584846040516109fd93929190611d10565b60405180910390a15050505b5050565b6000610509610a1a610e2e565b84610504856040518060600160405280602581526020016121236025913960016000610a44610e2e565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61106416565b600080610a888484611090565b9050801561042257610a9933610dc3565b61042284610dc3565b600061042560038363ffffffff6110a416565b610ac06102ca610e2e565b610adc5760405162461bcd60e51b815260040161040f90611e2f565b8051610aef9060079060208401906113f6565b507fadf3ae8bd543b3007d464f15cb8ea1db3f44e84d41d203164f40b95e27558ac681604051610b1f9190611dad565b60405180910390a150565b610b356102ca610e2e565b610b515760405162461bcd60e51b815260040161040f90611e2f565b8051610b649060069060208401906113f6565b507f4df9dcd34ae35f40f2c756fd8ac83210ed0b76d065543ee73d868aec7c7fcf026006604051610b1f9190611dbe565b60046020528160005260406000208181548110610bae57fe5b600091825260209091206002909102018054600190910154909250905082565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610c0533836110ec565b60405163753e88e560e01b81526000906001600160a01b0385169063753e88e590610c369033908790600401611ce7565b602060405180830381600087803b158015610c5057600080fd5b505af1158015610c64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c8891908101906116f5565b905080610ca75760405162461bcd60e51b815260040161040f90611eaf565b7f7e5c344a8141a805725cb476f76c6953b842222b967edd1f78ddb6e8b3f397ac843385604051610cda93929190611d84565b60405180910390a19392505050565b6001600160a01b0382166000908152600460205260408120805483908110610d0d57fe5b906000526020600020906002020160000154905092915050565b6000610509610d34610e2e565b8484610e57565b6000610d488484846111bc565b610db984610d54610e2e565b61050485604051806060016040528060288152602001612097602891396001600160a01b038a16600090815260016020526040812090610d92610e2e565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61106416565b5060019392505050565b60046000826001600160a01b03166001600160a01b031681526020019081526020016000206040518060400160405280438152602001610e0284610689565b905281546001818101845560009384526020938490208351600290930201918255929091015191015550565b3390565b6000828201838110156104225760405162461bcd60e51b815260040161040f90611e0f565b6001600160a01b038316610e7d5760405162461bcd60e51b815260040161040f90611e8f565b6001600160a01b038216610ea35760405162461bcd60e51b815260040161040f90611dff565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610efe908590611d9f565b60405180910390a3505050565b6000610f186102ca610e2e565b610f345760405162461bcd60e51b815260040161040f90611e2f565b61050983836112c0565b610f4882826110ec565b610a0982610f54610e2e565b610504846040518060600160405280602481526020016120bf602491396001600160a01b038816600090815260016020526040812090610d92610e2e565b600061042283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611064565b610fe560038263ffffffff61136216565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61102d60038263ffffffff6113ae16565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600081848411156110885760405162461bcd60e51b815260040161040f9190611dad565b505050900390565b600061050961109d610e2e565b84846111bc565b60006001600160a01b0382166110cc5760405162461bcd60e51b815260040161040f90611e4f565b506001600160a01b03166000908152602091909152604090205460ff1690565b6001600160a01b0382166111125760405162461bcd60e51b815260040161040f90611e6f565b6111558160405180606001604052806022815260200161204f602291396001600160a01b038516600090815260208190526040902054919063ffffffff61106416565b6001600160a01b038316600090815260208190526040902055600254611181908263ffffffff610f9216565b6002556040516000906001600160a01b038416906000805160206120e3833981519152906111b0908590611d9f565b60405180910390a35050565b6001600160a01b0383166111e25760405162461bcd60e51b815260040161040f90611e7f565b6001600160a01b0382166112085760405162461bcd60e51b815260040161040f90611ddf565b61124b81604051806060016040528060268152602001612071602691396001600160a01b038616600090815260208190526040902054919063ffffffff61106416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611280908263ffffffff610e3216565b6001600160a01b0380841660008181526020819052604090819020939093559151908516906000805160206120e383398151915290610efe908590611d9f565b6001600160a01b0382166112e65760405162461bcd60e51b815260040161040f90611ecf565b6002546112f9908263ffffffff610e3216565b6002556001600160a01b038216600090815260208190526040902054611325908263ffffffff610e3216565b6001600160a01b0383166000818152602081905260408082209390935591519091906000805160206120e3833981519152906111b0908590611d9f565b61136c82826110a4565b156113895760405162461bcd60e51b815260040161040f90611def565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6113b882826110a4565b6113d45760405162461bcd60e51b815260040161040f90611e3f565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061143757805160ff1916838001178555611464565b82800160010185558215611464579182015b82811115611464578251825591602001919060010190611449565b50611470929150611474565b5090565b61046d91905b80821115611470576000815560010161147a565b803561042581611fff565b600082601f8301126114aa57600080fd5b81356114bd6114b882611f21565b611efb565b915081818352602084019350602081019050838560408402820111156114e257600080fd5b60005b8381101561151057816114f8888261157f565b845250602090920191604091909101906001016114e5565b5050505092915050565b805161042581612013565b80356104258161201c565b600082601f83011261154157600080fd5b813561154f6114b882611f41565b9150808252602083016020830185838301111561156b57600080fd5b611576838284611fb9565b50505092915050565b60006040828403121561159157600080fd5b61159b6040611efb565b905060006115a984846115c6565b82525060206115ba848483016115c6565b60208301525092915050565b803561042581612025565b6000602082840312156115e357600080fd5b60006115ef848461148e565b949350505050565b6000806040838503121561160a57600080fd5b6000611616858561148e565b92505060206116278582860161148e565b9150509250929050565b60008060006060848603121561164657600080fd5b6000611652868661148e565b93505060206116638682870161148e565b9250506040611674868287016115c6565b9150509250925092565b6000806040838503121561169157600080fd5b600061169d858561148e565b92505060208301356001600160401b038111156116b957600080fd5b61162785828601611499565b600080604083850312156116d857600080fd5b60006116e4858561148e565b9250506020611627858286016115c6565b60006020828403121561170757600080fd5b60006115ef848461151a565b60008060006060848603121561172857600080fd5b60006116528686611525565b6000806040838503121561174757600080fd5b60006116e48585611525565b60006020828403121561176557600080fd5b81356001600160401b0381111561177b57600080fd5b6115ef84828501611530565b61179081611fae565b82525050565b61179081611f81565b61179081611f8c565b61179081611f91565b6117908161046d565b60006117c582611f74565b6117cf8185611f78565b93506117df818560208601611fc5565b6117e881611ff5565b9093019392505050565b60008154600181166000811461180f576001811461183557611874565b607f60028304166118208187611f78565b60ff1984168152955050602085019250611874565b600282046118438187611f78565b955061184e85611f68565b60005b8281101561186d57815488820152600190910190602001611851565b8701945050505b505092915050565b6000611889602583611f78565b6000805160206121038339815191528152643a3139355d60d81b602082015260400192915050565b60006118be602383611f78565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b602082015260400192915050565b6000611903601f83611f78565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b600061193c602283611f78565b7f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611980601b83611f78565b7a536166654d6174683a206164646974696f6e206f766572666c6f7760281b815260200192915050565b60006119b7603283611f78565b7f56616c7565206f7220616c6c6f77616e6365206e6f6e2d7a65726f205b526576815271656e7565546f6b656e2e736f6c3a3131375d60701b602082015260400192915050565b6000611a0b603083611f78565b7f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526f20746865204d696e74657220726f6c6560801b602082015260400192915050565b6000611a5d602183611f78565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b6000611aa0602283611f78565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611ae4602683611f78565b60008051602061202f8339815191528152656f6c3a36385d60d01b602082015260400192915050565b6000611b1a602183611f78565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b602082015260400192915050565b6000611b5d602583611f78565b7f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b602082015260400192915050565b6000611ba4602483611f78565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b602082015260400192915050565b6000611bea602783611f78565b60008051602061202f8339815191528152666f6c3a3238305d60c81b602082015260400192915050565b6000611c21602583611f78565b6000805160206121038339815191528152643a3136385d60d81b602082015260400192915050565b6000611c56603a83611f78565b7f496e76616c69642062616c616e6365207265636f726420626c6f636b206e756d815279626572205b526576656e7565546f6b656e2e736f6c3a3239325d60301b602082015260400192915050565b6000611cb2601f83611f78565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300815260200192915050565b61179081611fa8565b60408101611cf58285611787565b6104a460208301846117b1565b60408101611cf58285611796565b60608101611d1e8286611796565b611d2b60208301856117b1565b6115ef60408301846117b1565b60208101610425828461179f565b60808101611d5482876117a8565b611d616020830186611787565b611d6e6040830185611796565b611d7b60608301846117b1565b95945050505050565b60608101611d9282866117a8565b611d2b6020830185611787565b6020810161042582846117b1565b6020808252810161042281846117ba565b6020808252810161042281846117f2565b602080825281016104258161187c565b60208082528101610425816118b1565b60208082528101610425816118f6565b602080825281016104258161192f565b6020808252810161042581611973565b60208082528101610425816119aa565b60208082528101610425816119fe565b6020808252810161042581611a50565b6020808252810161042581611a93565b6020808252810161042581611ad7565b6020808252810161042581611b0d565b6020808252810161042581611b50565b6020808252810161042581611b97565b6020808252810161042581611bdd565b6020808252810161042581611c14565b6020808252810161042581611c49565b6020808252810161042581611ca5565b60408101611cf582856117b1565b602081016104258284611cde565b6040518181016001600160401b0381118282101715611f1957600080fd5b604052919050565b60006001600160401b03821115611f3757600080fd5b5060209081020190565b60006001600160401b03821115611f5757600080fd5b506020601f91909101601f19160190565b60009081526020902090565b5190565b90815260200190565b600061042582611f9c565b151590565b600061042582611f81565b6001600160a01b031690565b60ff1690565b600061042582611f91565b82818337506000910152565b60005b83811015611fe0578181015183820152602001611fc8565b83811115611fef576000848401525b50505050565b601f01601f191690565b61200881611f81565b811461081657600080fd5b61200881611f8c565b61200881611f91565b6120088161046d56fe4d696e74696e672064697361626c6564205b526576656e7565546f6b656e2e7345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef55706772616465206661696c6564205b526576656e7565546f6b656e2e736f6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa365627a7a7231582067b65be887c78aa65ed120e4b140c9a6a0c1873d1defde40257327911fecf0656c6578706572696d656e74616cf564736f6c634300050d0040
Swarm Source
bzzr://67b65be887c78aa65ed120e4b140c9a6a0c1873d1defde40257327911fecf065
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.