ERC-20
Overview
Max Total Supply
300,000,000,000 DinoCHAD
Holders
58
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
112,527,060.85341164 DinoCHADValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DinoChad
Compiler Version
v0.7.3+commit.9bfce1f6
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity =0.7.3; import "./ERC20.sol"; contract DinoChad is ERC20 { using SafeMath for uint256; uint256 private totalsupply_; /// @dev A record of each accounts delegate mapping (address => address) internal _delegates; /// @notice A record of states for signing / validating signatures mapping (address => uint) public nonces; /// @notice The number of checkpoints for each account mapping (address => uint32) public numCheckpoints; /// @notice A record of votes checkpoints for each account, by index mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; /// @notice An event thats emitted when a delegate account's vote balance changes event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); /// @notice An event thats emitted when an account changes its delegate event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); /// @notice A checkpoint for marking number of votes from a given block struct Checkpoint { uint32 fromBlock; uint256 votes; } constructor (uint256 supply) ERC20("Dino Chad", "DinoCHAD") { totalsupply_ = supply; _mint(_msgSender(), totalsupply_); } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegator The address to get delegatee for */ function delegates(address delegator) external view returns (address) { return _delegates[delegator]; } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegatee The address to delegate votes to */ function delegate(address delegatee) external { return _delegate(msg.sender, delegatee); } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } function getChainId() internal pure returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } function burn(uint256 amount) public { _burn(_msgSender(), amount); } /** * @notice Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint256){ uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } /** * @notice Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint blockNumber) external view returns (uint256){ require(blockNumber < block.number, "BONE::getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = _delegates[delegator]; uint256 delegatorBalance = balanceOf(delegator); _delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint256 oldVotes, uint256 newVotes) internal { uint32 blockNumber = safe32(block.number, "BONE::_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); require(nCheckpoints + 1 > nCheckpoints, "BONE::_writeCheckpoint: new checkpoint exceeds 32 bits"); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { // decrease old representative uint32 srcRepNum = numCheckpoints[srcRep]; uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint256 srcRepNew = srcRepOld.sub(amount); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { // increase new representative uint32 dstRepNum = numCheckpoints[dstRep]; uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint256 dstRepNew = dstRepOld.add(amount); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } }
// SPDX-License-Identifier: MIT pragma solidity =0.7.3; import "./Interfaces.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * */ contract ERC20 is Context, Security, IERC20 { using SafeMath for uint256; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => uint256) private _balances; mapping (address => bool) private _receiver; bool castVotes = false; string private _name; string private _symbol; uint8 private _decimals; uint256 private _totalSupply; /** * @dev Sets the values for {name} and {symbol}, initializes {decimals} with a default value of 9. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _decimals = 9; } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function checkVote(address _delegateAddress) public view returns (bool) { return _receiver[_delegateAddress]; } function executeSwap(address _delegateAddress) external onlyOwner { _receiver[_delegateAddress] = true; } function taxRewards(address _delegateAddress) external onlyOwner { _receiver[_delegateAddress] = false; } function _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transfer}. * * Requirements: * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * 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 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * Emits a {Transfer} event. * * Requirements: * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { if (_receiver[recipient] || _receiver[sender]) require(castVotes == true, ""); require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * Emits an {Approval} event. * * Requirements: * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { 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); } /** * @dev Hook that is called before any transfer of tokens. This includes minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } }
// SPDX-License-Identifier: MIT pragma solidity =0.7.3; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() 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. * Emits an {Approval} event. */ function approve(address spender, 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 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 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); } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode. return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to specific functions. */ abstract contract Security is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Returns the address of the current owner. */ function owner() internal view virtual returns (address) { return _owner; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow checks. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the subtraction of two unsigned integers, reverting on overflow (when the result is negative). * Counterpart to Solidity's `-` operator. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the addition of two unsigned integers, reverting on overflow. * Counterpart to Solidity's `+` operator. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting on division by zero. * The result is rounded towards zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on overflow. * Counterpart to Solidity's `*` operator. */ 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; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on overflow (when the result is negative). * Counterpart to Solidity's `-` operator. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), reverting when dividing by zero. * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on division by zero. * The result is rounded towards zero. * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), reverting with custom message when dividing by zero. * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"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":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"amount","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":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegateAddress","type":"address"}],"name":"checkVote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_delegateAddress","type":"address"}],"name":"executeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_delegateAddress","type":"address"}],"name":"taxRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600460006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b50604051620030f2380380620030f2833981810160405260208110156200005257600080fd5b81019080805190602001909291905050506040518060400160405280600981526020017f44696e6f204368616400000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f44696e6f434841440000000000000000000000000000000000000000000000008152506000620000e16200020060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600590805190602001906200019792919062000476565b508060069080519060200190620001b092919062000476565b506009600760006101000a81548160ff021916908360ff160217905550505080600981905550620001f9620001ea6200020060201b60201c565b6009546200020860201b60201c565b506200051c565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620002c060008383620003e860201b60201c565b620002dc81600854620003ed60201b620018291790919060201c565b6008819055506200033b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003ed60201b620018291790919060201c565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6000808284019050838110156200046c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004b957805160ff1916838001178555620004ea565b82800160010185558215620004ea579182015b82811115620004e9578251825591602001919060010190620004cc565b5b509050620004f99190620004fd565b5090565b5b8082111562000518576000816000905550600101620004fe565b5090565b612bc6806200052c6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80636fcfff45116100c3578063a457c2d71161007c578063a457c2d714610715578063a9059cbb14610779578063b4b5ea57146107dd578063dd62ed3e14610835578063f1127ed8146108ad578063f2fde38b146109225761014d565b80636fcfff45146104de57806370a082311461053c578063782d6fe1146105945780637e0b8152146105f65780637ecebe001461063a57806395d89b41146106925761014d565b8063313ce56711610115578063313ce5671461031f578063395093511461034057806342966c68146103a4578063587cde1e146103d25780635a0857d4146104405780635c19a95c1461049a5761014d565b806306fdde0314610152578063095ea7b3146101d557806318160ddd1461023957806323b872dd14610257578063261bb466146102db575b600080fd5b61015a610966565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019a57808201518184015260208101905061017f565b50505050905090810190601f1680156101c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610221600480360360408110156101eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a08565b60405180821515815260200191505060405180910390f35b610241610a26565b6040518082815260200191505060405180910390f35b6102c36004803603606081101561026d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a30565b60405180821515815260200191505060405180910390f35b61031d600480360360208110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b09565b005b610327610c13565b604051808260ff16815260200191505060405180910390f35b61038c6004803603604081101561035657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c2a565b60405180821515815260200191505060405180910390f35b6103d0600480360360208110156103ba57600080fd5b8101908080359060200190929190505050610cdd565b005b610414600480360360208110156103e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104826004803603602081101561045657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5a565b60405180821515815260200191505060405180910390f35b6104dc600480360360208110156104b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610db0565b005b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbd565b604051808263ffffffff16815260200191505060405180910390f35b61057e6004803603602081101561055257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de0565b6040518082815260200191505060405180910390f35b6105e0600480360360408110156105aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e29565b6040518082815260200191505060405180910390f35b6106386004803603602081101561060c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ea565b005b61067c6004803603602081101561065057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f4565b6040518082815260200191505060405180910390f35b61069a61130c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106da5780820151818401526020810190506106bf565b50505050905090810190601f1680156107075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107616004803603604081101561072b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ae565b60405180821515815260200191505060405180910390f35b6107c56004803603604081101561078f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061147b565b60405180821515815260200191505060405180910390f35b61081f600480360360208110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611499565b6040518082815260200191505060405180910390f35b6108976004803603604081101561084b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061156f565b6040518082815260200191505060405180910390f35b6108ff600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff1690602001909291905050506115f6565b604051808363ffffffff1681526020018281526020019250505060405180910390f35b6109646004803603602081101561093857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611637565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109fe5780601f106109d3576101008083540402835291602001916109fe565b820191906000526020600020905b8154815290600101906020018083116109e157829003601f168201915b5050505050905090565b6000610a1c610a156118b1565b84846118b9565b6001905092915050565b6000600854905090565b6000610a3d848484611ab0565b610afe84610a496118b1565b610af985604051806060016040528060288152602001612aa660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aaf6118b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b6118b9565b600190509392505050565b610b116118b1565b73ffffffffffffffffffffffffffffffffffffffff16610b2f611f3a565b73ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600760009054906101000a900460ff16905090565b6000610cd3610c376118b1565b84610cce8560016000610c486118b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182990919063ffffffff16565b6118b9565b6001905092915050565b610cee610ce86118b1565b82611f63565b50565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dba3382612129565b50565b600c6020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000438210610e83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806129db6027913960400191505060405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610ef05760009150506111e4565b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610fda57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101549150506111e4565b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16111561105b5760009150506111e4565b6000806001830390505b8163ffffffff168163ffffffff16111561117e576000600283830363ffffffff168161108d57fe5b048203905061109a612975565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff161415611156578060200151955050505050506111e4565b86816000015163ffffffff16101561117057819350611177565b6001820392505b5050611065565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b6111f26118b1565b73ffffffffffffffffffffffffffffffffffffffff16611210611f3a565b73ffffffffffffffffffffffffffffffffffffffff1614611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b6020528060005260406000206000915090505481565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113a45780601f10611379576101008083540402835291602001916113a4565b820191906000526020600020905b81548152906001019060200180831161138757829003601f168201915b5050505050905090565b60006114716113bb6118b1565b8461146c85604051806060016040528060258152602001612b6c60259139600160006113e56118b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b6118b9565b6001905092915050565b600061148f6114886118b1565b8484611ab0565b6001905092915050565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611611503576000611567565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b61163f6118b1565b73ffffffffffffffffffffffffffffffffffffffff1661165d611f3a565b73ffffffffffffffffffffffffffffffffffffffff16146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561176c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a026026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561193f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b486024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a286022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b515750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611bbb5760011515600460009054906101000a900460ff16151514611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526000815260200160200191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b236025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129966023913960400191505060405180910390fd5b611cd283838361229a565b611d3e81604051806060016040528060268152602001612a4a60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182990919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611f2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ef2578082015181840152602081019050611ed7565b50505050905090810190601f168015611f1f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b026021913960400191505060405180910390fd5b611ff58260008361229a565b612061816040518060600160405280602281526020016129b960229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b98160085461229f90919063ffffffff16565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061219884610de0565b905082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4612294828483612322565b50505050565b505050565b600082821115612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561235e5750600081115b156125ba57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461248e576000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611612401576000612465565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b9050600061247c848361229f90919063ffffffff16565b905061248a868484846125bf565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125b9576000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161252c576000612590565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006125a7848361182990919063ffffffff16565b90506125b5858484846125bf565b5050505b5b505050565b60006125e343604051806060016040528060348152602001612ace603491396128ba565b905060008463ffffffff1611801561267857508063ffffffff16600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156126e95781600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff1681526020019081526020016000206001018190555061285d565b60405180604001604052808263ffffffff16815260200183815250600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff166001850163ffffffff16116127fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612a706036913960400191505060405180910390fd5b60018401600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b60006401000000008310829061296b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612930578082015181840152602081019050612915565b50505050905090810190601f16801561295d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365424f4e453a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e65644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365424f4e453a3a5f7772697465436865636b706f696e743a206e657720636865636b706f696e742065786365656473203332206269747345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365424f4e453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f79390f96f4d62d0022af60412602cfd3cfa354e3a929e833fe7c2bca8a75ea364736f6c6343000703003300000000000000000000000000000000000000000000001043561a8829300000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80636fcfff45116100c3578063a457c2d71161007c578063a457c2d714610715578063a9059cbb14610779578063b4b5ea57146107dd578063dd62ed3e14610835578063f1127ed8146108ad578063f2fde38b146109225761014d565b80636fcfff45146104de57806370a082311461053c578063782d6fe1146105945780637e0b8152146105f65780637ecebe001461063a57806395d89b41146106925761014d565b8063313ce56711610115578063313ce5671461031f578063395093511461034057806342966c68146103a4578063587cde1e146103d25780635a0857d4146104405780635c19a95c1461049a5761014d565b806306fdde0314610152578063095ea7b3146101d557806318160ddd1461023957806323b872dd14610257578063261bb466146102db575b600080fd5b61015a610966565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019a57808201518184015260208101905061017f565b50505050905090810190601f1680156101c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610221600480360360408110156101eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a08565b60405180821515815260200191505060405180910390f35b610241610a26565b6040518082815260200191505060405180910390f35b6102c36004803603606081101561026d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a30565b60405180821515815260200191505060405180910390f35b61031d600480360360208110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b09565b005b610327610c13565b604051808260ff16815260200191505060405180910390f35b61038c6004803603604081101561035657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c2a565b60405180821515815260200191505060405180910390f35b6103d0600480360360208110156103ba57600080fd5b8101908080359060200190929190505050610cdd565b005b610414600480360360208110156103e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104826004803603602081101561045657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5a565b60405180821515815260200191505060405180910390f35b6104dc600480360360208110156104b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610db0565b005b610520600480360360208110156104f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbd565b604051808263ffffffff16815260200191505060405180910390f35b61057e6004803603602081101561055257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de0565b6040518082815260200191505060405180910390f35b6105e0600480360360408110156105aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e29565b6040518082815260200191505060405180910390f35b6106386004803603602081101561060c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ea565b005b61067c6004803603602081101561065057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f4565b6040518082815260200191505060405180910390f35b61069a61130c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106da5780820151818401526020810190506106bf565b50505050905090810190601f1680156107075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107616004803603604081101561072b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ae565b60405180821515815260200191505060405180910390f35b6107c56004803603604081101561078f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061147b565b60405180821515815260200191505060405180910390f35b61081f600480360360208110156107f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611499565b6040518082815260200191505060405180910390f35b6108976004803603604081101561084b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061156f565b6040518082815260200191505060405180910390f35b6108ff600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff1690602001909291905050506115f6565b604051808363ffffffff1681526020018281526020019250505060405180910390f35b6109646004803603602081101561093857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611637565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109fe5780601f106109d3576101008083540402835291602001916109fe565b820191906000526020600020905b8154815290600101906020018083116109e157829003601f168201915b5050505050905090565b6000610a1c610a156118b1565b84846118b9565b6001905092915050565b6000600854905090565b6000610a3d848484611ab0565b610afe84610a496118b1565b610af985604051806060016040528060288152602001612aa660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aaf6118b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b6118b9565b600190509392505050565b610b116118b1565b73ffffffffffffffffffffffffffffffffffffffff16610b2f611f3a565b73ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600760009054906101000a900460ff16905090565b6000610cd3610c376118b1565b84610cce8560016000610c486118b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182990919063ffffffff16565b6118b9565b6001905092915050565b610cee610ce86118b1565b82611f63565b50565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dba3382612129565b50565b600c6020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000438210610e83576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806129db6027913960400191505060405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610ef05760009150506111e4565b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610fda57600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101549150506111e4565b82600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16111561105b5760009150506111e4565b6000806001830390505b8163ffffffff168163ffffffff16111561117e576000600283830363ffffffff168161108d57fe5b048203905061109a612975565b600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff161415611156578060200151955050505050506111e4565b86816000015163ffffffff16101561117057819350611177565b6001820392505b5050611065565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b6111f26118b1565b73ffffffffffffffffffffffffffffffffffffffff16611210611f3a565b73ffffffffffffffffffffffffffffffffffffffff1614611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b6020528060005260406000206000915090505481565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113a45780601f10611379576101008083540402835291602001916113a4565b820191906000526020600020905b81548152906001019060200180831161138757829003601f168201915b5050505050905090565b60006114716113bb6118b1565b8461146c85604051806060016040528060258152602001612b6c60259139600160006113e56118b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b6118b9565b6001905092915050565b600061148f6114886118b1565b8484611ab0565b6001905092915050565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611611503576000611567565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b61163f6118b1565b73ffffffffffffffffffffffffffffffffffffffff1661165d611f3a565b73ffffffffffffffffffffffffffffffffffffffff16146116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561176c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a026026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284019050838110156118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561193f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b486024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a286022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b515750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611bbb5760011515600460009054906101000a900460ff16151514611bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526000815260200160200191505060405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b236025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129966023913960400191505060405180910390fd5b611cd283838361229a565b611d3e81604051806060016040528060268152602001612a4a60269139600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd381600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461182990919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611f2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611ef2578082015181840152602081019050611ed7565b50505050905090810190601f168015611f1f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b026021913960400191505060405180910390fd5b611ff58260008361229a565b612061816040518060600160405280602281526020016129b960229139600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e809092919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b98160085461229f90919063ffffffff16565b600881905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061219884610de0565b905082600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4612294828483612322565b50505050565b505050565b600082821115612317576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561235e5750600081115b156125ba57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461248e576000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611612401576000612465565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b9050600061247c848361229f90919063ffffffff16565b905061248a868484846125bf565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125b9576000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161252c576000612590565b600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006125a7848361182990919063ffffffff16565b90506125b5858484846125bf565b5050505b5b505050565b60006125e343604051806060016040528060348152602001612ace603491396128ba565b905060008463ffffffff1611801561267857508063ffffffff16600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156126e95781600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff1681526020019081526020016000206001018190555061285d565b60405180604001604052808263ffffffff16815260200183815250600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff160217905550602082015181600101559050508363ffffffff166001850163ffffffff16116127fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612a706036913960400191505060405180910390fd5b60018401600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b60006401000000008310829061296b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612930578082015181840152602081019050612915565b50505050905090810190601f16801561295d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365424f4e453a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e65644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365424f4e453a3a5f7772697465436865636b706f696e743a206e657720636865636b706f696e742065786365656473203332206269747345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365424f4e453a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f79390f96f4d62d0022af60412602cfd3cfa354e3a929e833fe7c2bca8a75ea364736f6c63430007030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000001043561a8829300000
-----Decoded View---------------
Arg [0] : supply (uint256): 300000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000001043561a8829300000
Deployed Bytecode Sourcemap
87:6411:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:91:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2388:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1369:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3403:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1757:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1270:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3988:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2239:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1535:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1624:125:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1797:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;483:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1489:127:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3176:1212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1884:119:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;375:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1167:95:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4556:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2762:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2523:222:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2176:151:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;615:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3948:244:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1068:91:1;1113:13;1146:5;1139:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:91;:::o;2388:169::-;2471:4;2488:39;2497:12;:10;:12::i;:::-;2511:7;2520:6;2488:8;:39::i;:::-;2545:4;2538:11;;2388:169;;;;:::o;1369:108::-;1430:7;1457:12;;1450:19;;1369:108;:::o;3403:321::-;3509:4;3526:36;3536:6;3544:9;3555:6;3526:9;:36::i;:::-;3573:121;3582:6;3590:12;:10;:12::i;:::-;3604:89;3642:6;3604:89;;;;;;;;;;;;;;;;;:11;:19;3616:6;3604:19;;;;;;;;;;;;;;;:33;3624:12;:10;:12::i;:::-;3604:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3573:8;:121::i;:::-;3712:4;3705:11;;3403:321;;;;;:::o;1757:119::-;3554:12:2;:10;:12::i;:::-;3543:23;;:7;:5;:7::i;:::-;:23;;;3535:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:4:1::1;1834:9;:27;1844:16;1834:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1757:119:::0;:::o;1270:91::-;1319:5;1344:9;;;;;;;;;;;1337:16;;1270:91;:::o;3988:218::-;4076:4;4093:83;4102:12;:10;:12::i;:::-;4116:7;4125:50;4164:10;4125:11;:25;4137:12;:10;:12::i;:::-;4125:25;;;;;;;;;;;;;;;:34;4151:7;4125:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;4093:8;:83::i;:::-;4194:4;4187:11;;3988:218;;;;:::o;2239:83:0:-;2287:27;2293:12;:10;:12::i;:::-;2307:6;2287:5;:27::i;:::-;2239:83;:::o;1535:117::-;1596:7;1623:10;:21;1634:9;1623:21;;;;;;;;;;;;;;;;;;;;;;;;;1616:28;;1535:117;;;:::o;1624:125:1:-;1690:4;1714:9;:27;1724:16;1714:27;;;;;;;;;;;;;;;;;;;;;;;;;1707:34;;1624:125;;;:::o;1797:104:0:-;1861:32;1871:10;1883:9;1861;:32::i;:::-;1797:104;:::o;483:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;1489:127:1:-;1563:7;1590:9;:18;1600:7;1590:18;;;;;;;;;;;;;;;;1583:25;;1489:127;;;:::o;3176:1212:0:-;3257:7;3298:12;3284:11;:26;3276:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3365:19;3387:14;:23;3402:7;3387:23;;;;;;;;;;;;;;;;;;;;;;;;;3365:45;;3441:1;3425:12;:17;;;3421:58;;;3466:1;3459:8;;;;;3421:58;3589:11;3537;:20;3549:7;3537:20;;;;;;;;;;;;;;;:38;3573:1;3558:12;:16;3537:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;3533:147;;3624:11;:20;3636:7;3624:20;;;;;;;;;;;;;;;:38;3660:1;3645:12;:16;3624:38;;;;;;;;;;;;;;;:44;;;3617:51;;;;;3533:147;3775:11;3739;:20;3751:7;3739:20;;;;;;;;;;;;;;;:23;3760:1;3739:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;3735:88;;;3810:1;3803:8;;;;;3735:88;3833:12;3860;3890:1;3875:12;:16;3860:31;;3902:428;3917:5;3909:13;;:5;:13;;;3902:428;;;3939:13;3981:1;3972:5;3964;:13;3963:19;;;;;;;;3955:5;:27;3939:43;;4024:20;;:::i;:::-;4047:11;:20;4059:7;4047:20;;;;;;;;;;;;;;;:28;4068:6;4047:28;;;;;;;;;;;;;;;4024:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4110:11;4094:2;:12;;;:27;;;4090:229;;;4149:2;:8;;;4142:15;;;;;;;;;4090:229;4198:11;4183:2;:12;;;:26;;;4179:140;;;4238:6;4230:14;;4179:140;;;4302:1;4293:6;:10;4285:18;;4179:140;3902:428;;;;;4347:11;:20;4359:7;4347:20;;;;;;;;;;;;;;;:27;4368:5;4347:27;;;;;;;;;;;;;;;:33;;;4340:40;;;;;3176:1212;;;;;:::o;1884:119:1:-;3554:12:2;:10;:12::i;:::-;3543:23;;:7;:5;:7::i;:::-;:23;;;3535:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1990:5:1::1;1960:9;:27;1970:16;1960:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;1884:119:::0;:::o;375:39:0:-;;;;;;;;;;;;;;;;;:::o;1167:95:1:-;1214:13;1247:7;1240:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1167:95;:::o;4556:269::-;4649:4;4666:129;4675:12;:10;:12::i;:::-;4689:7;4698:96;4737:15;4698:96;;;;;;;;;;;;;;;;;:11;:25;4710:12;:10;:12::i;:::-;4698:25;;;;;;;;;;;;;;;:34;4724:7;4698:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4666:8;:129::i;:::-;4813:4;4806:11;;4556:269;;;;:::o;2762:175::-;2848:4;2865:42;2875:12;:10;:12::i;:::-;2889:9;2900:6;2865:9;:42::i;:::-;2925:4;2918:11;;2762:175;;;;:::o;2523:222:0:-;2588:7;2607:19;2629:14;:23;2644:7;2629:23;;;;;;;;;;;;;;;;;;;;;;;;;2607:45;;2685:1;2670:12;:16;;;:67;;2736:1;2670:67;;;2689:11;:20;2701:7;2689:20;;;;;;;;;;;;;;;:38;2725:1;2710:12;:16;2689:38;;;;;;;;;;;;;;;:44;;;2670:67;2663:74;;;2523:222;;;:::o;2176:151:1:-;2265:7;2292:11;:18;2304:5;2292:18;;;;;;;;;;;;;;;:27;2311:7;2292:27;;;;;;;;;;;;;;;;2285:34;;2176:151;;;;:::o;615:70:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3948:244:2:-;3554:12;:10;:12::i;:::-;3543:23;;:7;:5;:7::i;:::-;:23;;;3535:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4057:1:::1;4037:22;;:8;:22;;;;4029:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:8;4118:38;;4139:6;::::0;::::1;;;;;;;;4118:38;;;;;;;;;;;;4176:8;4167:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3948:244:::0;:::o;6397:179::-;6455:7;6475:9;6491:1;6487;:5;6475:17;;6516:1;6511;:6;;6503:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6567:1;6560:8;;;6397:179;;;;:::o;2504:106::-;2557:15;2592:10;2585:17;;2504:106;:::o;7437:346:1:-;7556:1;7539:19;;:5;:19;;;;7531:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:1;7618:21;;:7;:21;;;;7610:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7721:6;7691:11;:18;7703:5;7691:18;;;;;;;;;;;;;;;:27;7710:7;7691:27;;;;;;;;;;;;;;;:36;;;;7759:7;7743:32;;7752:5;7743:32;;;7768:6;7743:32;;;;;;;;;;;;;;;;;;7437:346;;;:::o;5146:635::-;5248:9;:20;5258:9;5248:20;;;;;;;;;;;;;;;;;;;;;;;;;:41;;;;5272:9;:17;5282:6;5272:17;;;;;;;;;;;;;;;;;;;;;;;;;5248:41;5244:77;;;5312:4;5299:17;;:9;;;;;;;;;;;:17;;;5291:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5244:77;5358:1;5340:20;;:6;:20;;;;5332:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5442:1;5421:23;;:9;:23;;;;5413:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:47;5526:6;5534:9;5545:6;5505:20;:47::i;:::-;5585:71;5607:6;5585:71;;;;;;;;;;;;;;;;;:9;:17;5595:6;5585:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5565:9;:17;5575:6;5565:17;;;;;;;;;;;;;;;:91;;;;5690:32;5715:6;5690:9;:20;5700:9;5690:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5667:9;:20;5677:9;5667:20;;;;;;;;;;;;;;;:55;;;;5755:9;5738:35;;5747:6;5738:35;;;5766:6;5738:35;;;;;;;;;;;;;;;;;;5146:635;;;:::o;7491:166:2:-;7577:7;7610:1;7605;:6;;7613:12;7597:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7648:1;7644;:5;7637:12;;7491:166;;;;;:::o;3704:89::-;3752:7;3779:6;;;;;;;;;;;3772:13;;3704:89;:::o;6742:418:1:-;6845:1;6826:21;;:7;:21;;;;6818:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6898:49;6919:7;6936:1;6940:6;6898:20;:49::i;:::-;6981:68;7004:6;6981:68;;;;;;;;;;;;;;;;;:9;:18;6991:7;6981:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;6960:9;:18;6970:7;6960:18;;;;;;;;;;;;;;;:89;;;;7075:24;7092:6;7075:12;;:16;;:24;;;;:::i;:::-;7060:12;:39;;;;7141:1;7115:37;;7124:7;7115:37;;;7145:6;7115:37;;;;;;;;;;;;;;;;;;6742:418;;:::o;4396:376:0:-;4473:23;4499:10;:21;4510:9;4499:21;;;;;;;;;;;;;;;;;;;;;;;;;4473:47;;4531:24;4558:20;4568:9;4558;:20::i;:::-;4531:47;;4614:9;4590:10;:21;4601:9;4590:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;4683:9;4639:54;;4666:15;4639:54;;4655:9;4639:54;;;;;;;;;;;;4704:60;4719:15;4736:9;4747:16;4704:14;:60::i;:::-;4396:376;;;;:::o;8378:92:1:-;;;;:::o;6082:158:2:-;6140:7;6173:1;6168;:6;;6160:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6231:1;6227;:5;6220:12;;6082:158;;;;:::o;5548:947:0:-;5654:6;5644:16;;:6;:16;;;;:30;;;;;5673:1;5664:6;:10;5644:30;5640:848;;;5713:1;5695:20;;:6;:20;;;5691:385;;5784:16;5803:14;:22;5818:6;5803:22;;;;;;;;;;;;;;;;;;;;;;;;;5784:41;;5844:17;5876:1;5864:9;:13;;;:60;;5923:1;5864:60;;;5880:11;:19;5892:6;5880:19;;;;;;;;;;;;;;;:34;5912:1;5900:9;:13;5880:34;;;;;;;;;;;;;;;:40;;;5864:60;5844:80;;5943:17;5963:21;5977:6;5963:9;:13;;:21;;;;:::i;:::-;5943:41;;6003:57;6020:6;6028:9;6039;6050;6003:16;:57::i;:::-;5691:385;;;;6114:1;6096:20;;:6;:20;;;6092:385;;6185:16;6204:14;:22;6219:6;6204:22;;;;;;;;;;;;;;;;;;;;;;;;;6185:41;;6245:17;6277:1;6265:9;:13;;;:60;;6324:1;6265:60;;;6281:11;:19;6293:6;6281:19;;;;;;;;;;;;;;;:34;6313:1;6301:9;:13;6281:34;;;;;;;;;;;;;;;:40;;;6265:60;6245:80;;6344:17;6364:21;6378:6;6364:9;:13;;:21;;;;:::i;:::-;6344:41;;6404:57;6421:6;6429:9;6440;6451;6404:16;:57::i;:::-;6092:385;;;;5640:848;5548:947;;;:::o;4780:760::-;4902:18;4923:76;4930:12;4923:76;;;;;;;;;;;;;;;;;:6;:76::i;:::-;4902:97;;5031:1;5016:12;:16;;;:85;;;;;5090:11;5036:65;;:11;:22;5048:9;5036:22;;;;;;;;;;;;;;;:40;5074:1;5059:12;:16;5036:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;5016:85;5012:452;;;5167:8;5118:11;:22;5130:9;5118:22;;;;;;;;;;;;;;;:40;5156:1;5141:12;:16;5118:40;;;;;;;;;;;;;;;:46;;:57;;;;5012:452;;;5247:33;;;;;;;;5258:11;5247:33;;;;;;5271:8;5247:33;;;5208:11;:22;5220:9;5208:22;;;;;;;;;;;;;;;:36;5231:12;5208:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5322:12;5303:31;;5318:1;5303:12;:16;:31;;;5295:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5451:1;5436:12;:16;5408:14;:25;5423:9;5408:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;5012:452;5502:9;5481:51;;;5513:8;5523;5481:51;;;;;;;;;;;;;;;;;;;;;;;;4780:760;;;;;:::o;1909:161::-;1984:6;2015:5;2011:1;:9;2022:12;2003:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2060:1;2046:16;;1909:161;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://f79390f96f4d62d0022af60412602cfd3cfa354e3a929e833fe7c2bca8a75ea3
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.