Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 154 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20273051 | 200 days ago | IN | 0 ETH | 0.00021136 | ||||
Approve | 19315801 | 334 days ago | IN | 0 ETH | 0.00202842 | ||||
Approve | 19099464 | 364 days ago | IN | 0 ETH | 0.00070033 | ||||
Approve | 18812857 | 404 days ago | IN | 0 ETH | 0.00195356 | ||||
Approve | 18812851 | 404 days ago | IN | 0 ETH | 0.00171804 | ||||
Approve | 18746953 | 413 days ago | IN | 0 ETH | 0.00126211 | ||||
Approve | 18627163 | 430 days ago | IN | 0 ETH | 0.0017023 | ||||
Approve | 18596471 | 435 days ago | IN | 0 ETH | 0.00080427 | ||||
Approve | 18589380 | 436 days ago | IN | 0 ETH | 0.00091945 | ||||
Approve | 18540760 | 442 days ago | IN | 0 ETH | 0.00143512 | ||||
Approve | 18409857 | 461 days ago | IN | 0 ETH | 0.00047058 | ||||
Transfer | 18381022 | 465 days ago | IN | 0 ETH | 0.00069386 | ||||
Approve | 18290805 | 477 days ago | IN | 0 ETH | 0.00049013 | ||||
Transfer | 18210797 | 488 days ago | IN | 0 ETH | 0.00092971 | ||||
Approve | 18199731 | 490 days ago | IN | 0 ETH | 0.00039687 | ||||
Transfer | 18199721 | 490 days ago | IN | 0 ETH | 0.00096355 | ||||
Approve | 18185122 | 492 days ago | IN | 0 ETH | 0.00056949 | ||||
Approve | 18177141 | 493 days ago | IN | 0 ETH | 0.00071898 | ||||
Transfer | 18177119 | 493 days ago | IN | 0 ETH | 0.00158999 | ||||
Approve | 18161110 | 495 days ago | IN | 0 ETH | 0.00039184 | ||||
Transfer | 18159573 | 496 days ago | IN | 0 ETH | 0.00073446 | ||||
Transfer | 18159558 | 496 days ago | IN | 0 ETH | 0.00092054 | ||||
Approve | 18154758 | 496 days ago | IN | 0 ETH | 0.00039076 | ||||
Transfer | 18154755 | 496 days ago | IN | 0 ETH | 0.00087058 | ||||
Approve | 18064791 | 509 days ago | IN | 0 ETH | 0.00105378 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
BlackToken
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-18 */ /** *Submitted for verification at BscScan.com on 2023-03-29 */ /** *Submitted for verification at BscScan.com on 2021-05-18 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.2; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the BEP20 standard as defined in the EIP. */ interface IBEP20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract BlackToken is Context, IBEP20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; string private _NAME; string private _SYMBOL; uint256 private _DECIMALS; address public FeeAddress; uint256 private _MAX = ~uint256(0); uint256 private _DECIMALFACTOR; uint256 private _GRANULARITY = 100; uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal; uint256 private _tBurnTotal; uint256 private _tCharityTotal; uint256 public _TAX_FEE; uint256 public _BURN_FEE; uint256 public _CHARITY_FEE; // Track original fees to bypass fees for charity account uint256 private ORIG_TAX_FEE; uint256 private ORIG_BURN_FEE; uint256 private ORIG_CHARITY_FEE; constructor (string memory _name, string memory _symbol, uint256 _decimals, uint256 _supply, address _FeeAddress,address tokenOwner) { _NAME = _name; _SYMBOL = _symbol; _DECIMALS = _decimals; _DECIMALFACTOR = 10 ** _DECIMALS; _tTotal =_supply * _DECIMALFACTOR; _rTotal = (_MAX - (_MAX % _tTotal)); _TAX_FEE = 0 * 100; _BURN_FEE = 0 * 100; _CHARITY_FEE = 3 * 100; ORIG_TAX_FEE = _TAX_FEE; ORIG_BURN_FEE = _BURN_FEE; ORIG_CHARITY_FEE = _CHARITY_FEE; FeeAddress = _FeeAddress; _owner = tokenOwner; _rOwned[tokenOwner] = _rTotal; emit Transfer(address(0),tokenOwner, _tTotal); } function name() public view returns (string memory) { return _NAME; } function symbol() public view returns (string memory) { return _SYMBOL; } function decimals() public view returns (uint8) { return uint8(_DECIMALS); } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "TOKEN20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "TOKEN20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function totalBurn() public view returns (uint256) { return _tBurnTotal; } function totalCharity() public view returns (uint256) { return _tCharityTotal; } function deliver(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function excludeAccount(address account) external onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already included"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function setAsCharityAccount(address account) external onlyOwner() { FeeAddress = account; } function updateFee(uint256 _charityFee) onlyOwner() public{ require(_charityFee < 10); _CHARITY_FEE = _charityFee* 100; ORIG_CHARITY_FEE = _CHARITY_FEE; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "TOKEN20: approve from the zero address"); require(spender != address(0), "TOKEN20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "TOKEN20: transfer from the zero address"); require(recipient != address(0), "TOKEN20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); // Remove fees for transfers to and from charity account or to excluded account bool takeFee = true; if (FeeAddress == sender || FeeAddress == recipient || _isExcluded[recipient]) { takeFee = false; } if (!takeFee) removeAllFee(); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } if (!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _standardTransferContent(sender, recipient, rAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _standardTransferContent(address sender, address recipient, uint256 rAmount, uint256 rTransferAmount) private { _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _excludedFromTransferContent(sender, recipient, tTransferAmount, rAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _excludedFromTransferContent(address sender, address recipient, uint256 tTransferAmount, uint256 rAmount, uint256 rTransferAmount) private { _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _excludedToTransferContent(sender, recipient, tAmount, rAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _excludedToTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 rTransferAmount) private { _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _bothTransferContent(sender, recipient, tAmount, rAmount, tTransferAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _bothTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 tTransferAmount, uint256 rTransferAmount) private { _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn, uint256 tCharity) private { _rTotal = _rTotal.sub(rFee).sub(rBurn); _tFeeTotal = _tFeeTotal.add(tFee); _tBurnTotal = _tBurnTotal.add(tBurn); _tCharityTotal = _tCharityTotal.add(tCharity); _tTotal = _tTotal.sub(tBurn); emit Transfer(address(this), address(0), tBurn); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tFee, uint256 tBurn, uint256 tCharity) = _getTBasics(tAmount, _TAX_FEE, _BURN_FEE, _CHARITY_FEE); uint256 tTransferAmount = getTTransferAmount(tAmount, tFee, tBurn, tCharity); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rFee) = _getRBasics(tAmount, tFee, currentRate); uint256 rTransferAmount = _getRTransferAmount(rAmount, rFee, tBurn, tCharity, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn, tCharity); } function _getTBasics(uint256 tAmount, uint256 taxFee, uint256 burnFee, uint256 charityFee) private view returns (uint256, uint256, uint256) { uint256 tFee = ((tAmount.mul(taxFee)).div(_GRANULARITY)).div(100); uint256 tBurn = ((tAmount.mul(burnFee)).div(_GRANULARITY)).div(100); uint256 tCharity = ((tAmount.mul(charityFee)).div(_GRANULARITY)).div(100); return (tFee, tBurn, tCharity); } function getTTransferAmount(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) private pure returns (uint256) { return tAmount.sub(tFee).sub(tBurn).sub(tCharity); } function _getRBasics(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); return (rAmount, rFee); } function _getRTransferAmount(uint256 rAmount, uint256 rFee, uint256 tBurn, uint256 tCharity, uint256 currentRate) private pure returns (uint256) { uint256 rBurn = tBurn.mul(currentRate); uint256 rCharity = tCharity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).sub(rCharity); return rTransferAmount; } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply.sub(_rOwned[_excluded[i]]); tSupply = tSupply.sub(_tOwned[_excluded[i]]); } if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _sendToCharity(uint256 tCharity, address sender) private { uint256 currentRate = _getRate(); uint256 rCharity = tCharity.mul(currentRate); _rOwned[FeeAddress] = _rOwned[FeeAddress].add(rCharity); _tOwned[FeeAddress] = _tOwned[FeeAddress].add(tCharity); emit Transfer(sender, FeeAddress, tCharity); } function removeAllFee() private { if(_CHARITY_FEE == 0) return; ORIG_CHARITY_FEE = _CHARITY_FEE; _CHARITY_FEE = 0; } function restoreAllFee() private { _CHARITY_FEE = ORIG_CHARITY_FEE; } function _getTaxFee() private view returns(uint256) { return _TAX_FEE; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_decimals","type":"uint256"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"address","name":"_FeeAddress","type":"address"},{"internalType":"address","name":"tokenOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[],"name":"FeeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BURN_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_CHARITY_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setAsCharityAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCharity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"uint256","name":"_charityFee","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600019600a556064600c553480156200001c57600080fd5b5060405162002502380380620025028339810160408190526200003f9162000230565b60066200004d878262000360565b5060076200005c868262000360565b5060088490556200006f84600a62000541565b600b81905562000080908462000556565b600d819055600a5462000094919062000570565b600a54620000a3919062000593565b600e81905560006012819055601381905561012c601481905560158290556016829055601755600980546001600160a01b038087166001600160a01b03199283161790925582549185169116811782558082526001602052604080832093909355600d54925190927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200013a91815260200190565b60405180910390a3505050505050620005a9565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200017657600080fd5b81516001600160401b03808211156200019357620001936200014e565b604051601f8301601f19908116603f01168101908282118183101715620001be57620001be6200014e565b81604052838152602092508683858801011115620001db57600080fd5b600091505b83821015620001ff5785820183015181830184015290820190620001e0565b600093810190920192909252949350505050565b80516001600160a01b03811681146200022b57600080fd5b919050565b60008060008060008060c087890312156200024a57600080fd5b86516001600160401b03808211156200026257600080fd5b620002708a838b0162000164565b975060208901519150808211156200028757600080fd5b506200029689828a0162000164565b9550506040870151935060608701519250620002b56080880162000213565b9150620002c560a0880162000213565b90509295509295509295565b600181811c90821680620002e657607f821691505b6020821081036200030757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200035b57600081815260208120601f850160051c81016020861015620003365750805b601f850160051c820191505b81811015620003575782815560010162000342565b5050505b505050565b81516001600160401b038111156200037c576200037c6200014e565b62000394816200038d8454620002d1565b846200030d565b602080601f831160018114620003cc5760008415620003b35750858301515b600019600386901b1c1916600185901b17855562000357565b600085815260208120601f198616915b82811015620003fd57888601518255948401946001909101908401620003dc565b50858210156200041c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004835781600019048211156200046757620004676200042c565b808516156200047557918102915b93841c939080029062000447565b509250929050565b6000826200049c575060016200053b565b81620004ab575060006200053b565b8160018114620004c45760028114620004cf57620004ef565b60019150506200053b565b60ff841115620004e357620004e36200042c565b50506001821b6200053b565b5060208310610133831016604e8410600b841016171562000514575081810a6200053b565b62000520838362000442565b80600019048211156200053757620005376200042c565b0290505b92915050565b60006200054f83836200048b565b9392505050565b80820281158282048414176200053b576200053b6200042c565b6000826200058e57634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200053b576200053b6200042c565b611f4980620005b96000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80637b7e8bac11610104578063b2bdfa7b116100a2578063dd62ed3e11610071578063dd62ed3e146103c5578063f2cc0c18146103fe578063f2fde38b14610411578063f84354f11461042457600080fd5b8063b2bdfa7b14610375578063b586242814610388578063cba0e99614610391578063d608b3b2146103bd57600080fd5b806395d89b41116100de57806395d89b411461033e578063a457c2d714610346578063a9059cbb14610359578063ae9dd5e01461036c57600080fd5b80637b7e8bac146102ef5780638da5cb5b1461031a5780639012c4a81461032b57600080fd5b8063395093511161017c578063457bdf6c1161014b578063457bdf6c146102b857806370a08231146102cb578063715018a6146102de57806377ef7993146102e657600080fd5b806339509351146102755780633bd5d173146102885780633c9f861d1461029d5780634549b039146102a557600080fd5b806318160ddd116101b857806318160ddd1461023257806323b872dd1461023a5780632d8381191461024d578063313ce5671461026057600080fd5b806306fdde03146101df578063095ea7b3146101fd57806313114a9d14610220575b600080fd5b6101e7610437565b6040516101f49190611c2d565b60405180910390f35b61021061020b366004611c97565b6104c9565b60405190151581526020016101f4565b600f545b6040519081526020016101f4565b600d54610224565b610210610248366004611cc1565b6104e0565b61022461025b366004611cfd565b610549565b60085460405160ff90911681526020016101f4565b610210610283366004611c97565b6105d2565b61029b610296366004611cfd565b610608565b005b601054610224565b6102246102b3366004611d16565b6106f4565b61029b6102c6366004611d4b565b610783565b6102246102d9366004611d4b565b6107cf565b61029b61082e565b61022460135481565b600954610302906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b6000546001600160a01b0316610302565b61029b610339366004611cfd565b6108a2565b6101e76108ef565b610210610354366004611c97565b6108fe565b610210610367366004611c97565b61094d565b61022460145481565b600054610302906001600160a01b031681565b61022460125481565b61021061039f366004611d4b565b6001600160a01b031660009081526004602052604090205460ff1690565b601154610224565b6102246103d3366004611d66565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61029b61040c366004611d4b565b61095a565b61029b61041f366004611d4b565b610aad565b61029b610432366004611d4b565b610b97565b60606006805461044690611d99565b80601f016020809104026020016040519081016040528092919081815260200182805461047290611d99565b80156104bf5780601f10610494576101008083540402835291602001916104bf565b820191906000526020600020905b8154815290600101906020018083116104a257829003601f168201915b5050505050905090565b60006104d6338484610d4d565b5060015b92915050565b60006104ed848484610e75565b61053f843361053a856040518060600160405280602a8152602001611eea602a91396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611170565b610d4d565b5060019392505050565b6000600e548211156105b55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084015b60405180910390fd5b60006105bf6111aa565b90506105cb83826111cd565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104d691859061053a908661120f565b3360008181526004602052604090205460ff161561067d5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016105ac565b60006106888361126e565b5050506001600160a01b0386166000908152600160205260409020549394506106b6939250849150506112f2565b6001600160a01b038316600090815260016020526040902055600e546106dc90826112f2565b600e55600f546106ec908461120f565b600f55505050565b6000600d548311156107485760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016105ac565b816107685760006107588461126e565b509496506104da95505050505050565b60006107738461126e565b509396506104da95505050505050565b6000546001600160a01b031633146107ad5760405162461bcd60e51b81526004016105ac90611dd3565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526004602052604081205460ff161561080c57506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546104da90610549565b6000546001600160a01b031633146108585760405162461bcd60e51b81526004016105ac90611dd3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cc5760405162461bcd60e51b81526004016105ac90611dd3565b600a81106108d957600080fd5b6108e4816064611e1e565b601481905560175550565b60606007805461044690611d99565b60006104d6338461053a85604051806060016040528060278152602001611ec3602791393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611170565b60006104d6338484610e75565b6000546001600160a01b031633146109845760405162461bcd60e51b81526004016105ac90611dd3565b6001600160a01b03811660009081526004602052604090205460ff16156109ed5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016105ac565b6001600160a01b03811660009081526001602052604090205415610a47576001600160a01b038116600090815260016020526040902054610a2d90610549565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6000546001600160a01b03163314610ad75760405162461bcd60e51b81526004016105ac90611dd3565b6001600160a01b038116610b3c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ac565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bc15760405162461bcd60e51b81526004016105ac90611dd3565b6001600160a01b03811660009081526004602052604090205460ff16610c295760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016105ac565b60005b600554811015610d4957816001600160a01b031660058281548110610c5357610c53611e35565b6000918252602090912001546001600160a01b031603610d375760058054610c7d90600190611e4b565b81548110610c8d57610c8d611e35565b600091825260209091200154600580546001600160a01b039092169183908110610cb957610cb9611e35565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610d1157610d11611e5e565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d4181611e74565b915050610c2c565b5050565b6001600160a01b038316610db25760405162461bcd60e51b815260206004820152602660248201527f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105ac565b6001600160a01b038216610e145760405162461bcd60e51b8152602060048201526024808201527f544f4b454e32303a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105ac565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610edb5760405162461bcd60e51b815260206004820152602760248201527f544f4b454e32303a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b60648201526084016105ac565b6001600160a01b038216610f3f5760405162461bcd60e51b815260206004820152602560248201527f544f4b454e32303a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016105ac565b60008111610fa15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ac565b6009546001906001600160a01b0385811691161480610fcd57506009546001600160a01b038481169116145b80610ff057506001600160a01b03831660009081526004602052604090205460ff165b15610ff9575060005b8061100657611006611334565b6001600160a01b03841660009081526004602052604090205460ff16801561104757506001600160a01b03831660009081526004602052604090205460ff16155b1561105c5761105784848461134d565b61115a565b6001600160a01b03841660009081526004602052604090205460ff1615801561109d57506001600160a01b03831660009081526004602052604090205460ff165b156110ad57611057848484611411565b6001600160a01b03841660009081526004602052604090205460ff161580156110ef57506001600160a01b03831660009081526004602052604090205460ff16155b156110ff57611057848484611463565b6001600160a01b03841660009081526004602052604090205460ff16801561113f57506001600160a01b03831660009081526004602052604090205460ff165b1561114f576110578484846114b4565b61115a848484611463565b8061116a5761116a601754601455565b50505050565b600081848411156111945760405162461bcd60e51b81526004016105ac9190611c2d565b5060006111a18486611e4b565b95945050505050565b60008060006111b7611507565b90925090506111c682826111cd565b9250505090565b60006105cb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611689565b60008061121c8385611e8d565b9050838110156105cb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ac565b60008060008060008060008060008061128f8b6012546013546014546116b7565b92509250925060006112a38c858585611736565b905060006112af6111aa565b90506000806112bf8f888561174e565b9150915060006112d28383898988611778565b929e50919c509a5091985093965091945092505050919395979092949650565b60006105cb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611170565b60145460000361134057565b6014805460175560009055565b60006113576111aa565b9050600080600080600080600061136d8961126e565b9650965096509650965096509650600061139089846117b490919063ffffffff16565b905061139f8c8c8c8b8b611836565b6113a9828d6118da565b6113b686828686866119bb565b8a6001600160a01b03168c6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516113fb91815260200190565b60405180910390a3505050505050505050505050565b600061141b6111aa565b905060008060008060008060006114318961126e565b9650965096509650965096509650600061145489846117b490919063ffffffff16565b905061139f8c8c878b8b611a56565b600061146d6111aa565b905060008060008060008060006114838961126e565b965096509650965096509650965060006114a689846117b490919063ffffffff16565b905061139f8c8c8a8a611ade565b60006114be6111aa565b905060008060008060008060006114d48961126e565b965096509650965096509650965060006114f789846117b490919063ffffffff16565b905061139f8c8c8c8b898c611b52565b600e54600d546000918291825b6005548110156116595782600160006005848154811061153657611536611e35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806115a1575081600260006005848154811061157a5761157a611e35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156115b757600e54600d54945094505050509091565b6115fd60016000600584815481106115d1576115d1611e35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906112f2565b9250611645600260006005848154811061161957611619611e35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906112f2565b91508061165181611e74565b915050611514565b50600d54600e54611669916111cd565b82101561168057600e54600d549350935050509091565b90939092509050565b600081836116aa5760405162461bcd60e51b81526004016105ac9190611c2d565b5060006111a18486611ea0565b6000806000806116e160646116db600c546116db8b8d6117b490919063ffffffff16565b906111cd565b9050600061170360646116db600c546116db8b8e6117b490919063ffffffff16565b9050600061172560646116db600c546116db8b8f6117b490919063ffffffff16565b929a91995091975095505050505050565b60006111a182611748858189896112f2565b906112f2565b6000808061175c86856117b4565b9050600061176a86866117b4565b919791965090945050505050565b60008061178585846117b4565b9050600061179385856117b4565b905060006117a78261174885818d8d6112f2565b9998505050505050505050565b6000826000036117c6575060006104da565b60006117d28385611e1e565b9050826117df8583611ea0565b146105cb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ac565b6001600160a01b03851660009081526002602052604090205461185990846112f2565b6001600160a01b03861660009081526002602090815260408083209390935560019052205461188890836112f2565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546118b7908261120f565b6001600160a01b0390941660009081526001602052604090209390935550505050565b60006118e46111aa565b905060006118f284836117b4565b6009546001600160a01b031660009081526001602052604090205490915061191a908261120f565b600980546001600160a01b039081166000908152600160209081526040808320959095559254909116815260029091522054611956908561120f565b600980546001600160a01b03908116600090815260026020908152604091829020949094559154915187815291811692908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6119d48461174887600e546112f290919063ffffffff16565b600e55600f546119e4908461120f565b600f556010546119f4908361120f565b601055601154611a04908261120f565b601155600d54611a1490836112f2565b600d5560405182815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6001600160a01b038516600090815260016020526040902054611a7990836112f2565b6001600160a01b03808716600090815260016020908152604080832094909455918716815260029091522054611aaf908461120f565b6001600160a01b0385166000908152600260209081526040808320939093556001905220546118b7908261120f565b6001600160a01b038416600090815260016020526040902054611b0190836112f2565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611b30908261120f565b6001600160a01b03909316600090815260016020526040902092909255505050565b6001600160a01b038616600090815260026020526040902054611b7590856112f2565b6001600160a01b038716600090815260026020908152604080832093909355600190522054611ba490846112f2565b6001600160a01b03808816600090815260016020908152604080832094909455918816815260029091522054611bda908361120f565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611c09908261120f565b6001600160a01b039095166000908152600160205260409020949094555050505050565b600060208083528351808285015260005b81811015611c5a57858101830151858201604001528201611c3e565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611c9257600080fd5b919050565b60008060408385031215611caa57600080fd5b611cb383611c7b565b946020939093013593505050565b600080600060608486031215611cd657600080fd5b611cdf84611c7b565b9250611ced60208501611c7b565b9150604084013590509250925092565b600060208284031215611d0f57600080fd5b5035919050565b60008060408385031215611d2957600080fd5b8235915060208301358015158114611d4057600080fd5b809150509250929050565b600060208284031215611d5d57600080fd5b6105cb82611c7b565b60008060408385031215611d7957600080fd5b611d8283611c7b565b9150611d9060208401611c7b565b90509250929050565b600181811c90821680611dad57607f821691505b602082108103611dcd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104da576104da611e08565b634e487b7160e01b600052603260045260246000fd5b818103818111156104da576104da611e08565b634e487b7160e01b600052603160045260246000fd5b600060018201611e8657611e86611e08565b5060010190565b808201808211156104da576104da611e08565b600082611ebd57634e487b7160e01b600052601260045260246000fd5b50049056fe544f4b454e32303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f544f4b454e32303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e66a18b60b7c9902114017181c609c57dcd40b7a9c5d3f930cfb141854451ff864736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000028ff8d5e5bb7e5c81a5c53db1044e921e83d43c2000000000000000000000000ed6d615e042aa066300ccaa3de74f981ef7aa8d7000000000000000000000000000000000000000000000000000000000000000b426c61636b20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005424c41434b000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80637b7e8bac11610104578063b2bdfa7b116100a2578063dd62ed3e11610071578063dd62ed3e146103c5578063f2cc0c18146103fe578063f2fde38b14610411578063f84354f11461042457600080fd5b8063b2bdfa7b14610375578063b586242814610388578063cba0e99614610391578063d608b3b2146103bd57600080fd5b806395d89b41116100de57806395d89b411461033e578063a457c2d714610346578063a9059cbb14610359578063ae9dd5e01461036c57600080fd5b80637b7e8bac146102ef5780638da5cb5b1461031a5780639012c4a81461032b57600080fd5b8063395093511161017c578063457bdf6c1161014b578063457bdf6c146102b857806370a08231146102cb578063715018a6146102de57806377ef7993146102e657600080fd5b806339509351146102755780633bd5d173146102885780633c9f861d1461029d5780634549b039146102a557600080fd5b806318160ddd116101b857806318160ddd1461023257806323b872dd1461023a5780632d8381191461024d578063313ce5671461026057600080fd5b806306fdde03146101df578063095ea7b3146101fd57806313114a9d14610220575b600080fd5b6101e7610437565b6040516101f49190611c2d565b60405180910390f35b61021061020b366004611c97565b6104c9565b60405190151581526020016101f4565b600f545b6040519081526020016101f4565b600d54610224565b610210610248366004611cc1565b6104e0565b61022461025b366004611cfd565b610549565b60085460405160ff90911681526020016101f4565b610210610283366004611c97565b6105d2565b61029b610296366004611cfd565b610608565b005b601054610224565b6102246102b3366004611d16565b6106f4565b61029b6102c6366004611d4b565b610783565b6102246102d9366004611d4b565b6107cf565b61029b61082e565b61022460135481565b600954610302906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b6000546001600160a01b0316610302565b61029b610339366004611cfd565b6108a2565b6101e76108ef565b610210610354366004611c97565b6108fe565b610210610367366004611c97565b61094d565b61022460145481565b600054610302906001600160a01b031681565b61022460125481565b61021061039f366004611d4b565b6001600160a01b031660009081526004602052604090205460ff1690565b601154610224565b6102246103d3366004611d66565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61029b61040c366004611d4b565b61095a565b61029b61041f366004611d4b565b610aad565b61029b610432366004611d4b565b610b97565b60606006805461044690611d99565b80601f016020809104026020016040519081016040528092919081815260200182805461047290611d99565b80156104bf5780601f10610494576101008083540402835291602001916104bf565b820191906000526020600020905b8154815290600101906020018083116104a257829003601f168201915b5050505050905090565b60006104d6338484610d4d565b5060015b92915050565b60006104ed848484610e75565b61053f843361053a856040518060600160405280602a8152602001611eea602a91396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611170565b610d4d565b5060019392505050565b6000600e548211156105b55760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084015b60405180910390fd5b60006105bf6111aa565b90506105cb83826111cd565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104d691859061053a908661120f565b3360008181526004602052604090205460ff161561067d5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016105ac565b60006106888361126e565b5050506001600160a01b0386166000908152600160205260409020549394506106b6939250849150506112f2565b6001600160a01b038316600090815260016020526040902055600e546106dc90826112f2565b600e55600f546106ec908461120f565b600f55505050565b6000600d548311156107485760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c790060448201526064016105ac565b816107685760006107588461126e565b509496506104da95505050505050565b60006107738461126e565b509396506104da95505050505050565b6000546001600160a01b031633146107ad5760405162461bcd60e51b81526004016105ac90611dd3565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526004602052604081205460ff161561080c57506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546104da90610549565b6000546001600160a01b031633146108585760405162461bcd60e51b81526004016105ac90611dd3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108cc5760405162461bcd60e51b81526004016105ac90611dd3565b600a81106108d957600080fd5b6108e4816064611e1e565b601481905560175550565b60606007805461044690611d99565b60006104d6338461053a85604051806060016040528060278152602001611ec3602791393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611170565b60006104d6338484610e75565b6000546001600160a01b031633146109845760405162461bcd60e51b81526004016105ac90611dd3565b6001600160a01b03811660009081526004602052604090205460ff16156109ed5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016105ac565b6001600160a01b03811660009081526001602052604090205415610a47576001600160a01b038116600090815260016020526040902054610a2d90610549565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6000546001600160a01b03163314610ad75760405162461bcd60e51b81526004016105ac90611dd3565b6001600160a01b038116610b3c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ac565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bc15760405162461bcd60e51b81526004016105ac90611dd3565b6001600160a01b03811660009081526004602052604090205460ff16610c295760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016105ac565b60005b600554811015610d4957816001600160a01b031660058281548110610c5357610c53611e35565b6000918252602090912001546001600160a01b031603610d375760058054610c7d90600190611e4b565b81548110610c8d57610c8d611e35565b600091825260209091200154600580546001600160a01b039092169183908110610cb957610cb9611e35565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610d1157610d11611e5e565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610d4181611e74565b915050610c2c565b5050565b6001600160a01b038316610db25760405162461bcd60e51b815260206004820152602660248201527f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105ac565b6001600160a01b038216610e145760405162461bcd60e51b8152602060048201526024808201527f544f4b454e32303a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105ac565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610edb5760405162461bcd60e51b815260206004820152602760248201527f544f4b454e32303a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b60648201526084016105ac565b6001600160a01b038216610f3f5760405162461bcd60e51b815260206004820152602560248201527f544f4b454e32303a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016105ac565b60008111610fa15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105ac565b6009546001906001600160a01b0385811691161480610fcd57506009546001600160a01b038481169116145b80610ff057506001600160a01b03831660009081526004602052604090205460ff165b15610ff9575060005b8061100657611006611334565b6001600160a01b03841660009081526004602052604090205460ff16801561104757506001600160a01b03831660009081526004602052604090205460ff16155b1561105c5761105784848461134d565b61115a565b6001600160a01b03841660009081526004602052604090205460ff1615801561109d57506001600160a01b03831660009081526004602052604090205460ff165b156110ad57611057848484611411565b6001600160a01b03841660009081526004602052604090205460ff161580156110ef57506001600160a01b03831660009081526004602052604090205460ff16155b156110ff57611057848484611463565b6001600160a01b03841660009081526004602052604090205460ff16801561113f57506001600160a01b03831660009081526004602052604090205460ff165b1561114f576110578484846114b4565b61115a848484611463565b8061116a5761116a601754601455565b50505050565b600081848411156111945760405162461bcd60e51b81526004016105ac9190611c2d565b5060006111a18486611e4b565b95945050505050565b60008060006111b7611507565b90925090506111c682826111cd565b9250505090565b60006105cb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611689565b60008061121c8385611e8d565b9050838110156105cb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ac565b60008060008060008060008060008061128f8b6012546013546014546116b7565b92509250925060006112a38c858585611736565b905060006112af6111aa565b90506000806112bf8f888561174e565b9150915060006112d28383898988611778565b929e50919c509a5091985093965091945092505050919395979092949650565b60006105cb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611170565b60145460000361134057565b6014805460175560009055565b60006113576111aa565b9050600080600080600080600061136d8961126e565b9650965096509650965096509650600061139089846117b490919063ffffffff16565b905061139f8c8c8c8b8b611836565b6113a9828d6118da565b6113b686828686866119bb565b8a6001600160a01b03168c6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516113fb91815260200190565b60405180910390a3505050505050505050505050565b600061141b6111aa565b905060008060008060008060006114318961126e565b9650965096509650965096509650600061145489846117b490919063ffffffff16565b905061139f8c8c878b8b611a56565b600061146d6111aa565b905060008060008060008060006114838961126e565b965096509650965096509650965060006114a689846117b490919063ffffffff16565b905061139f8c8c8a8a611ade565b60006114be6111aa565b905060008060008060008060006114d48961126e565b965096509650965096509650965060006114f789846117b490919063ffffffff16565b905061139f8c8c8c8b898c611b52565b600e54600d546000918291825b6005548110156116595782600160006005848154811061153657611536611e35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806115a1575081600260006005848154811061157a5761157a611e35565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156115b757600e54600d54945094505050509091565b6115fd60016000600584815481106115d1576115d1611e35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205484906112f2565b9250611645600260006005848154811061161957611619611e35565b60009182526020808320909101546001600160a01b0316835282019290925260400190205483906112f2565b91508061165181611e74565b915050611514565b50600d54600e54611669916111cd565b82101561168057600e54600d549350935050509091565b90939092509050565b600081836116aa5760405162461bcd60e51b81526004016105ac9190611c2d565b5060006111a18486611ea0565b6000806000806116e160646116db600c546116db8b8d6117b490919063ffffffff16565b906111cd565b9050600061170360646116db600c546116db8b8e6117b490919063ffffffff16565b9050600061172560646116db600c546116db8b8f6117b490919063ffffffff16565b929a91995091975095505050505050565b60006111a182611748858189896112f2565b906112f2565b6000808061175c86856117b4565b9050600061176a86866117b4565b919791965090945050505050565b60008061178585846117b4565b9050600061179385856117b4565b905060006117a78261174885818d8d6112f2565b9998505050505050505050565b6000826000036117c6575060006104da565b60006117d28385611e1e565b9050826117df8583611ea0565b146105cb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ac565b6001600160a01b03851660009081526002602052604090205461185990846112f2565b6001600160a01b03861660009081526002602090815260408083209390935560019052205461188890836112f2565b6001600160a01b0380871660009081526001602052604080822093909355908616815220546118b7908261120f565b6001600160a01b0390941660009081526001602052604090209390935550505050565b60006118e46111aa565b905060006118f284836117b4565b6009546001600160a01b031660009081526001602052604090205490915061191a908261120f565b600980546001600160a01b039081166000908152600160209081526040808320959095559254909116815260029091522054611956908561120f565b600980546001600160a01b03908116600090815260026020908152604091829020949094559154915187815291811692908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6119d48461174887600e546112f290919063ffffffff16565b600e55600f546119e4908461120f565b600f556010546119f4908361120f565b601055601154611a04908261120f565b601155600d54611a1490836112f2565b600d5560405182815260009030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6001600160a01b038516600090815260016020526040902054611a7990836112f2565b6001600160a01b03808716600090815260016020908152604080832094909455918716815260029091522054611aaf908461120f565b6001600160a01b0385166000908152600260209081526040808320939093556001905220546118b7908261120f565b6001600160a01b038416600090815260016020526040902054611b0190836112f2565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611b30908261120f565b6001600160a01b03909316600090815260016020526040902092909255505050565b6001600160a01b038616600090815260026020526040902054611b7590856112f2565b6001600160a01b038716600090815260026020908152604080832093909355600190522054611ba490846112f2565b6001600160a01b03808816600090815260016020908152604080832094909455918816815260029091522054611bda908361120f565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611c09908261120f565b6001600160a01b039095166000908152600160205260409020949094555050505050565b600060208083528351808285015260005b81811015611c5a57858101830151858201604001528201611c3e565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611c9257600080fd5b919050565b60008060408385031215611caa57600080fd5b611cb383611c7b565b946020939093013593505050565b600080600060608486031215611cd657600080fd5b611cdf84611c7b565b9250611ced60208501611c7b565b9150604084013590509250925092565b600060208284031215611d0f57600080fd5b5035919050565b60008060408385031215611d2957600080fd5b8235915060208301358015158114611d4057600080fd5b809150509250929050565b600060208284031215611d5d57600080fd5b6105cb82611c7b565b60008060408385031215611d7957600080fd5b611d8283611c7b565b9150611d9060208401611c7b565b90509250929050565b600181811c90821680611dad57607f821691505b602082108103611dcd57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104da576104da611e08565b634e487b7160e01b600052603260045260246000fd5b818103818111156104da576104da611e08565b634e487b7160e01b600052603160045260246000fd5b600060018201611e8657611e86611e08565b5060010190565b808201808211156104da576104da611e08565b600082611ebd57634e487b7160e01b600052601260045260246000fd5b50049056fe544f4b454e32303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f544f4b454e32303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e66a18b60b7c9902114017181c609c57dcd40b7a9c5d3f930cfb141854451ff864736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000028ff8d5e5bb7e5c81a5c53db1044e921e83d43c2000000000000000000000000ed6d615e042aa066300ccaa3de74f981ef7aa8d7000000000000000000000000000000000000000000000000000000000000000b426c61636b20546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005424c41434b000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Black Token
Arg [1] : _symbol (string): BLACK
Arg [2] : _decimals (uint256): 18
Arg [3] : _supply (uint256): 1000000000
Arg [4] : _FeeAddress (address): 0x28Ff8d5E5bb7e5C81a5C53Db1044E921E83d43C2
Arg [5] : tokenOwner (address): 0xEd6d615E042Aa066300ccaa3de74F981Ef7aA8D7
-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 00000000000000000000000028ff8d5e5bb7e5c81a5c53db1044e921e83d43c2
Arg [5] : 000000000000000000000000ed6d615e042aa066300ccaa3de74f981ef7aa8d7
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [7] : 426c61636b20546f6b656e000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [9] : 424c41434b000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
16707:15801:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18544:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19463:161;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;19463:161:0;1004:187:1;20584:87:0;20653:10;;20584:87;;;1342:25:1;;;1330:2;1315:18;20584:87:0;1196:177:1;18828:95:0;18908:7;;18828:95;;19632:315;;;;;;:::i;:::-;;:::i;21717:253::-;;;;;;:::i;:::-;;:::i;18730:90::-;18802:9;;18730:90;;2068:4:1;2056:17;;;2038:36;;2026:2;2011:18;18730:90:0;1896:184:1;19955:218:0;;;;;;:::i;:::-;;:::i;20885:378::-;;;;;;:::i;:::-;;:::i;:::-;;20683:88;20752:11;;20683:88;;21271:438;;;;;;:::i;:::-;;:::i;22804:106::-;;;;;;:::i;:::-;;:::i;18931:198::-;;;;;;:::i;:::-;;:::i;16153:148::-;;;:::i;17565:27::-;;;;;;17193:25;;;;;-1:-1:-1;;;;;17193:25:0;;;;;;-1:-1:-1;;;;;2786:32:1;;;2768:51;;2756:2;2741:18;17193:25:0;2622:203:1;15511:79:0;15549:7;15576:6;-1:-1:-1;;;;;15576:6:0;15511:79;;22924:186;;;;;;:::i;:::-;;:::i;18635:87::-;;;:::i;20181:271::-;;;;;;:::i;:::-;;:::i;19137:167::-;;;;;;:::i;:::-;;:::i;17599:27::-;;;;;;15314:21;;;;;-1:-1:-1;;;;;15314:21:0;;;17531:27;;;;;;20460:110;;;;;;:::i;:::-;-1:-1:-1;;;;;20542:20:0;20518:4;20542:20;;;:11;:20;;;;;;;;;20460:110;20783:94;20855:14;;20783:94;;19312:143;;;;;;:::i;:::-;-1:-1:-1;;;;;19420:18:0;;;19393:7;19420:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19312:143;21978:332;;;;;;:::i;:::-;;:::i;16456:244::-;;;;;;:::i;:::-;;:::i;22318:478::-;;;;;;:::i;:::-;;:::i;18544:83::-;18581:13;18614:5;18607:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18544:83;:::o;19463:161::-;19538:4;19555:39;333:10;19578:7;19587:6;19555:8;:39::i;:::-;-1:-1:-1;19612:4:0;19463:161;;;;;:::o;19632:315::-;19730:4;19747:36;19757:6;19765:9;19776:6;19747:9;:36::i;:::-;19794:123;19803:6;333:10;19825:91;19863:6;19825:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19825:19:0;;;;;;:11;:19;;;;;;;;333:10;19825:33;;;;;;;;;;:37;:91::i;:::-;19794:8;:123::i;:::-;-1:-1:-1;19935:4:0;19632:315;;;;;:::o;21717:253::-;21783:7;21822;;21811;:18;;21803:73;;;;-1:-1:-1;;;21803:73:0;;3682:2:1;21803:73:0;;;3664:21:1;3721:2;3701:18;;;3694:30;3760:34;3740:18;;;3733:62;-1:-1:-1;;;3811:18:1;;;3804:40;3861:19;;21803:73:0;;;;;;;;;21887:19;21910:10;:8;:10::i;:::-;21887:33;-1:-1:-1;21938:24:0;:7;21887:33;21938:11;:24::i;:::-;21931:31;21717:253;-1:-1:-1;;;21717:253:0:o;19955:218::-;333:10;20043:4;20092:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20092:34:0;;;;;;;;;;20043:4;;20060:83;;20083:7;;20092:50;;20131:10;20092:38;:50::i;20885:378::-;333:10;20937:14;20986:19;;;:11;:19;;;;;;;;20985:20;20977:77;;;;-1:-1:-1;;;20977:77:0;;4093:2:1;20977:77:0;;;4075:21:1;4132:2;4112:18;;;4105:30;4171:34;4151:18;;;4144:62;-1:-1:-1;;;4222:18:1;;;4215:42;4274:19;;20977:77:0;3891:408:1;20977:77:0;21066:15;21091:19;21102:7;21091:10;:19::i;:::-;-1:-1:-1;;;;;;;;21139:15:0;;;;;;:7;:15;;;;;;21065:45;;-1:-1:-1;21139:28:0;;:15;-1:-1:-1;21065:45:0;;-1:-1:-1;;21139:19:0;:28::i;:::-;-1:-1:-1;;;;;21121:15:0;;;;;;:7;:15;;;;;:46;21188:7;;:20;;21200:7;21188:11;:20::i;:::-;21178:7;:30;21232:10;;:23;;21247:7;21232:14;:23::i;:::-;21219:10;:36;-1:-1:-1;;;20885:378:0:o;21271:438::-;21361:7;21400;;21389;:18;;21381:62;;;;-1:-1:-1;;;21381:62:0;;4506:2:1;21381:62:0;;;4488:21:1;4545:2;4525:18;;;4518:30;4584:33;4564:18;;;4557:61;4635:18;;21381:62:0;4304:355:1;21381:62:0;21459:17;21454:248;;21494:15;21519:19;21530:7;21519:10;:19::i;:::-;-1:-1:-1;21493:45:0;;-1:-1:-1;21553:14:0;;-1:-1:-1;;;;;;21553:14:0;21454:248;21602:23;21634:19;21645:7;21634:10;:19::i;:::-;-1:-1:-1;21600:53:0;;-1:-1:-1;21668:22:0;;-1:-1:-1;;;;;;21668:22:0;22804:106;15723:6;;-1:-1:-1;;;;;15723:6:0;333:10;15723:22;15715:67;;;;-1:-1:-1;;;15715:67:0;;;;;;;:::i;:::-;22882:10:::1;:20:::0;;-1:-1:-1;;;;;;22882:20:0::1;-1:-1:-1::0;;;;;22882:20:0;;;::::1;::::0;;;::::1;::::0;;22804:106::o;18931:198::-;-1:-1:-1;;;;;19021:20:0;;18997:7;19021:20;;;:11;:20;;;;;;;;19017:49;;;-1:-1:-1;;;;;;19050:16:0;;;;;:7;:16;;;;;;;18931:198::o;19017:49::-;-1:-1:-1;;;;;19104:16:0;;;;;;:7;:16;;;;;;19084:37;;:19;:37::i;16153:148::-;15723:6;;-1:-1:-1;;;;;15723:6:0;333:10;15723:22;15715:67;;;;-1:-1:-1;;;15715:67:0;;;;;;;:::i;:::-;16260:1:::1;16244:6:::0;;16223:40:::1;::::0;-1:-1:-1;;;;;16244:6:0;;::::1;::::0;16223:40:::1;::::0;16260:1;;16223:40:::1;16291:1;16274:19:::0;;-1:-1:-1;;;;;;16274:19:0::1;::::0;;16153:148::o;22924:186::-;15723:6;;-1:-1:-1;;;;;15723:6:0;333:10;15723:22;15715:67;;;;-1:-1:-1;;;15715:67:0;;;;;;;:::i;:::-;23015:2:::1;23001:11;:16;22993:25;;;::::0;::::1;;23044:16;:11:::0;23057:3:::1;23044:16;:::i;:::-;23029:12;:31:::0;;;23071:16:::1;:31:::0;-1:-1:-1;22924:186:0:o;18635:87::-;18674:13;18707:7;18700:14;;;;;:::i;20181:271::-;20274:4;20291:131;333:10;20314:7;20323:98;20362:15;20323:98;;;;;;;;;;;;;;;;;333:10;20323:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20323:34:0;;;;;;;;;;;;:38;:98::i;19137:167::-;19215:4;19232:42;333:10;19256:9;19267:6;19232:9;:42::i;21978:332::-;15723:6;;-1:-1:-1;;;;;15723:6:0;333:10;15723:22;15715:67;;;;-1:-1:-1;;;15715:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22060:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22059:21;22051:61;;;::::0;-1:-1:-1;;;22051:61:0;;5532:2:1;22051:61:0::1;::::0;::::1;5514:21:1::0;5571:2;5551:18;;;5544:30;5610:29;5590:18;;;5583:57;5657:18;;22051:61:0::1;5330:351:1::0;22051:61:0::1;-1:-1:-1::0;;;;;22126:16:0;::::1;22145:1;22126:16:::0;;;:7:::1;:16;::::0;;;;;:20;22123:108:::1;;-1:-1:-1::0;;;;;22202:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22182:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22163:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22123:108:::1;-1:-1:-1::0;;;;;22241:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22241:27:0::1;22264:4;22241:27:::0;;::::1;::::0;;;22279:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22279:23:0::1;::::0;;::::1;::::0;;21978:332::o;16456:244::-;15723:6;;-1:-1:-1;;;;;15723:6:0;333:10;15723:22;15715:67;;;;-1:-1:-1;;;15715:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16545:22:0;::::1;16537:73;;;::::0;-1:-1:-1;;;16537:73:0;;5888:2:1;16537:73:0::1;::::0;::::1;5870:21:1::0;5927:2;5907:18;;;5900:30;5966:34;5946:18;;;5939:62;-1:-1:-1;;;6017:18:1;;;6010:36;6063:19;;16537:73:0::1;5686:402:1::0;16537:73:0::1;16647:6;::::0;;16626:38:::1;::::0;-1:-1:-1;;;;;16626:38:0;;::::1;::::0;16647:6;::::1;::::0;16626:38:::1;::::0;::::1;16675:6;:17:::0;;-1:-1:-1;;;;;;16675:17:0::1;-1:-1:-1::0;;;;;16675:17:0;;;::::1;::::0;;;::::1;::::0;;16456:244::o;22318:478::-;15723:6;;-1:-1:-1;;;;;15723:6:0;333:10;15723:22;15715:67;;;;-1:-1:-1;;;15715:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22399:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22391:60;;;::::0;-1:-1:-1;;;22391:60:0;;6295:2:1;22391:60:0::1;::::0;::::1;6277:21:1::0;6334:2;6314:18;;;6307:30;6373:29;6353:18;;;6346:57;6420:18;;22391:60:0::1;6093:351:1::0;22391:60:0::1;22467:9;22462:327;22486:9;:16:::0;22482:20;::::1;22462:327;;;22544:7;-1:-1:-1::0;;;;;22528:23:0::1;:9;22538:1;22528:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22528:12:0::1;:23:::0;22524:254:::1;;22587:9;22597:16:::0;;:20:::1;::::0;22616:1:::1;::::0;22597:20:::1;:::i;:::-;22587:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;22572:9:::1;:12:::0;;-1:-1:-1;;;;;22587:31:0;;::::1;::::0;22582:1;;22572:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22572:46:0::1;-1:-1:-1::0;;;;;22572:46:0;;::::1;;::::0;;22637:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22676:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22676:28:0::1;::::0;;22723:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;22723:15:0;;;;;-1:-1:-1;;;;;;22723:15:0::1;::::0;;;;;22462:327:::1;22318:478:::0;:::o;22524:254::-:1;22504:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22462:327;;;;22318:478:::0;:::o;23130:341::-;-1:-1:-1;;;;;23223:19:0;;23215:70;;;;-1:-1:-1;;;23215:70:0;;7188:2:1;23215:70:0;;;7170:21:1;7227:2;7207:18;;;7200:30;7266:34;7246:18;;;7239:62;-1:-1:-1;;;7317:18:1;;;7310:36;7363:19;;23215:70:0;6986:402:1;23215:70:0;-1:-1:-1;;;;;23304:21:0;;23296:70;;;;-1:-1:-1;;;23296:70:0;;7595:2:1;23296:70:0;;;7577:21:1;7634:2;7614:18;;;7607:30;7673:34;7653:18;;;7646:62;-1:-1:-1;;;7724:18:1;;;7717:34;7768:19;;23296:70:0;7393:400:1;23296:70:0;-1:-1:-1;;;;;23379:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;23431:32;;1342:25:1;;;23431:32:0;;1315:18:1;23431:32:0;;;;;;;23130:341;;;:::o;23479:1290::-;-1:-1:-1;;;;;23576:20:0;;23568:72;;;;-1:-1:-1;;;23568:72:0;;8000:2:1;23568:72:0;;;7982:21:1;8039:2;8019:18;;;8012:30;8078:34;8058:18;;;8051:62;-1:-1:-1;;;8129:18:1;;;8122:37;8176:19;;23568:72:0;7798:403:1;23568:72:0;-1:-1:-1;;;;;23659:23:0;;23651:73;;;;-1:-1:-1;;;23651:73:0;;8408:2:1;23651:73:0;;;8390:21:1;8447:2;8427:18;;;8420:30;8486:34;8466:18;;;8459:62;-1:-1:-1;;;8537:18:1;;;8530:35;8582:19;;23651:73:0;8206:401:1;23651:73:0;23752:1;23743:6;:10;23735:64;;;;-1:-1:-1;;;23735:64:0;;8814:2:1;23735:64:0;;;8796:21:1;8853:2;8833:18;;;8826:30;8892:34;8872:18;;;8865:62;-1:-1:-1;;;8943:18:1;;;8936:39;8992:19;;23735:64:0;8612:405:1;23735:64:0;23935:10;;23916:4;;-1:-1:-1;;;;;23935:20:0;;;:10;;:20;;:47;;-1:-1:-1;23959:10:0;;-1:-1:-1;;;;;23959:23:0;;;:10;;:23;23935:47;:73;;;-1:-1:-1;;;;;;23986:22:0;;;;;;:11;:22;;;;;;;;23935:73;23931:121;;;-1:-1:-1;24035:5:0;23931:121;24069:7;24064:28;;24078:14;:12;:14::i;:::-;-1:-1:-1;;;;;24127:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;24151:22:0;;;;;;:11;:22;;;;;;;;24150:23;24127:46;24123:597;;;24190:48;24212:6;24220:9;24231:6;24190:21;:48::i;:::-;24123:597;;;-1:-1:-1;;;;;24261:19:0;;;;;;:11;:19;;;;;;;;24260:20;:46;;;;-1:-1:-1;;;;;;24284:22:0;;;;;;:11;:22;;;;;;;;24260:46;24256:464;;;24323:46;24343:6;24351:9;24362:6;24323:19;:46::i;24256:464::-;-1:-1:-1;;;;;24392:19:0;;;;;;:11;:19;;;;;;;;24391:20;:47;;;;-1:-1:-1;;;;;;24416:22:0;;;;;;:11;:22;;;;;;;;24415:23;24391:47;24387:333;;;24455:44;24473:6;24481:9;24492:6;24455:17;:44::i;24387:333::-;-1:-1:-1;;;;;24521:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;24544:22:0;;;;;;:11;:22;;;;;;;;24521:45;24517:203;;;24583:48;24605:6;24613:9;24624:6;24583:21;:48::i;24517:203::-;24664:44;24682:6;24690:9;24701:6;24664:17;:44::i;:::-;24737:7;24732:29;;24746:15;32379:16;;32364:12;:31;32320:83;24746:15;23557:1212;23479:1290;;;:::o;5056:192::-;5142:7;5178:12;5170:6;;;;5162:29;;;;-1:-1:-1;;;5162:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5202:9:0;5214:5;5218:1;5214;:5;:::i;:::-;5202:17;5056:192;-1:-1:-1;;;;;5056:192:0:o;31044:163::-;31085:7;31106:15;31123;31142:19;:17;:19::i;:::-;31105:56;;-1:-1:-1;31105:56:0;-1:-1:-1;31179:20:0;31105:56;;31179:11;:20::i;:::-;31172:27;;;;31044:163;:::o;6454:132::-;6512:7;6539:39;6543:1;6546;6539:39;;;;;;;;;;;;;;;;;:3;:39::i;4153:181::-;4211:7;;4243:5;4247:1;4243;:5;:::i;:::-;4231:17;;4272:1;4267;:6;;4259:46;;;;-1:-1:-1;;;4259:46:0;;9354:2:1;4259:46:0;;;9336:21:1;9393:2;9373:18;;;9366:30;9432:29;9412:18;;;9405:57;9479:18;;4259:46:0;9152:351:1;29095:652:0;29154:7;29163;29172;29181;29190;29199;29208;29229:12;29243:13;29258:16;29278:55;29290:7;29299:8;;29309:9;;29320:12;;29278:11;:55::i;:::-;29228:105;;;;;;29344:23;29370:50;29389:7;29398:4;29404:5;29411:8;29370:18;:50::i;:::-;29344:76;;29431:19;29454:10;:8;:10::i;:::-;29431:33;;29476:15;29493:12;29509:39;29521:7;29530:4;29536:11;29509;:39::i;:::-;29475:73;;;;29559:23;29585:64;29605:7;29614:4;29620:5;29627:8;29637:11;29585:19;:64::i;:::-;29668:7;;-1:-1:-1;29559:90:0;;-1:-1:-1;29694:4:0;-1:-1:-1;29700:15:0;;-1:-1:-1;29717:4:0;;-1:-1:-1;29723:5:0;;-1:-1:-1;29730:8:0;-1:-1:-1;;;29095:652:0;;;;;;;;;:::o;4617:136::-;4675:7;4702:43;4706:1;4709;4702:43;;;;;;;;;;;;;;;;;:3;:43::i;32150:158::-;32196:12;;32212:1;32196:17;32193:29;;32150:158::o;32193:29::-;32261:12;;;32242:16;:31;-1:-1:-1;32284:16:0;;32150:158::o;26654:606::-;26756:19;26779:10;:8;:10::i;:::-;26756:33;;26801:15;26818:23;26843:12;26857:23;26882:12;26896:13;26911:16;26931:19;26942:7;26931:10;:19::i;:::-;26800:150;;;;;;;;;;;;;;26961:13;26978:22;26988:11;26978:5;:9;;:22;;;;:::i;:::-;26961:39;;27011:80;27038:6;27046:9;27057:7;27066;27075:15;27011:26;:80::i;:::-;27102:32;27117:8;27127:6;27102:14;:32::i;:::-;27145:47;27157:4;27163:5;27170:4;27176:5;27183:8;27145:11;:47::i;:::-;27225:9;-1:-1:-1;;;;;27208:44:0;27217:6;-1:-1:-1;;;;;27208:44:0;;27236:15;27208:44;;;;1342:25:1;;1330:2;1315:18;;1196:177;27208:44:0;;;;;;;;26745:515;;;;;;;;;26654:606;;;:::o;25647:622::-;25747:19;25770:10;:8;:10::i;:::-;25747:33;;25792:15;25809:23;25834:12;25848:23;25873:12;25887:13;25902:16;25922:19;25933:7;25922:10;:19::i;:::-;25791:150;;;;;;;;;;;;;;25952:13;25969:22;25979:11;25969:5;:9;;:22;;;;:::i;:::-;25952:39;;26002:90;26031:6;26039:9;26050:15;26067:7;26076:15;26002:28;:90::i;24777:591::-;24875:19;24898:10;:8;:10::i;:::-;24875:33;;24920:15;24937:23;24962:12;24976:23;25001:12;25015:13;25030:16;25050:19;25061:7;25050:10;:19::i;:::-;24919:150;;;;;;;;;;;;;;25080:13;25097:22;25107:11;25097:5;:9;;:22;;;;:::i;:::-;25080:39;;25130:69;25155:6;25163:9;25174:7;25183:15;25130:24;:69::i;27613:619::-;27715:19;27738:10;:8;:10::i;:::-;27715:33;;27760:15;27777:23;27802:12;27816:23;27841:12;27855:13;27870:16;27890:19;27901:7;27890:10;:19::i;:::-;27759:150;;;;;;;;;;;;;;27920:13;27937:22;27947:11;27937:5;:9;;:22;;;;:::i;:::-;27920:39;;27970:91;27991:6;27999:9;28010:7;28019;28028:15;28045;27970:20;:91::i;31215:561::-;31312:7;;31348;;31265;;;;;31372:289;31396:9;:16;31392:20;;31372:289;;;31462:7;31438;:21;31446:9;31456:1;31446:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;31446:12:0;31438:21;;;;;;;;;;;;;:31;;:66;;;31497:7;31473;:21;31481:9;31491:1;31481:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;31481:12:0;31473:21;;;;;;;;;;;;;:31;31438:66;31434:97;;;31514:7;;31523;;31506:25;;;;;;;31215:561;;:::o;31434:97::-;31556:34;31568:7;:21;31576:9;31586:1;31576:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;31576:12:0;31568:21;;;;;;;;;;;;;31556:7;;:11;:34::i;:::-;31546:44;;31615:34;31627:7;:21;31635:9;31645:1;31635:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;31635:12:0;31627:21;;;;;;;;;;;;;31615:7;;:11;:34::i;:::-;31605:44;-1:-1:-1;31414:3:0;;;;:::i;:::-;;;;31372:289;;;-1:-1:-1;31697:7:0;;31685;;:20;;:11;:20::i;:::-;31675:7;:30;31671:61;;;31715:7;;31724;;31707:25;;;;;;31215:561;;:::o;31671:61::-;31751:7;;31760;;-1:-1:-1;31215:561:0;-1:-1:-1;31215:561:0:o;7082:278::-;7168:7;7203:12;7196:5;7188:28;;;;-1:-1:-1;;;7188:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7227:9:0;7239:5;7243:1;7239;:5;:::i;29759:427::-;29872:7;29881;29890;29910:12;29925:50;29971:3;29926:39;29952:12;;29927:19;29939:6;29927:7;:11;;:19;;;;:::i;:::-;29926:25;;:39::i;29925:50::-;29910:65;;29986:13;30002:51;30049:3;30003:40;30030:12;;30004:20;30016:7;30004;:11;;:20;;;;:::i;30002:51::-;29986:67;;30064:16;30083:54;30133:3;30084:43;30114:12;;30085:23;30097:10;30085:7;:11;;:23;;;;:::i;30083:54::-;30156:4;;30162:5;;-1:-1:-1;30156:4:0;;-1:-1:-1;29759:427:0;-1:-1:-1;;;;;;29759:427:0:o;30198:191::-;30312:7;30339:42;30372:8;30339:28;30361:5;30339:28;:7;30351:4;30339:11;:17::i;:::-;:21;;:28::i;30401:254::-;30496:7;;;30543:24;:7;30555:11;30543;:24::i;:::-;30525:42;-1:-1:-1;30578:12:0;30593:21;:4;30602:11;30593:8;:21::i;:::-;30633:7;;;;-1:-1:-1;30401:254:0;;-1:-1:-1;;;;;30401:254:0:o;30667:369::-;30803:7;;30839:22;:5;30849:11;30839:9;:22::i;:::-;30823:38;-1:-1:-1;30872:16:0;30891:25;:8;30904:11;30891:12;:25::i;:::-;30872:44;-1:-1:-1;30927:23:0;30953:42;30872:44;30953:28;30975:5;30953:28;:7;30965:4;30953:11;:17::i;:42::-;30927:68;30667:369;-1:-1:-1;;;;;;;;;30667:369:0:o;5507:471::-;5565:7;5810:1;5815;5810:6;5806:47;;-1:-1:-1;5840:1:0;5833:8;;5806:47;5865:9;5877:5;5881:1;5877;:5;:::i;:::-;5865:17;-1:-1:-1;5910:1:0;5901:5;5905:1;5865:17;5901:5;:::i;:::-;:10;5893:56;;;;-1:-1:-1;;;5893:56:0;;9932:2:1;5893:56:0;;;9914:21:1;9971:2;9951:18;;;9944:30;10010:34;9990:18;;;9983:62;-1:-1:-1;;;10061:18:1;;;10054:31;10102:19;;5893:56:0;9730:397:1;27272:333:0;-1:-1:-1;;;;;27439:15:0;;;;;;:7;:15;;;;;;:28;;27459:7;27439:19;:28::i;:::-;-1:-1:-1;;;;;27421:15:0;;;;;;:7;:15;;;;;;;;:46;;;;27496:7;:15;;;;:28;;27516:7;27496:19;:28::i;:::-;-1:-1:-1;;;;;27478:15:0;;;;;;;:7;:15;;;;;;:46;;;;27556:18;;;;;;;:39;;27579:15;27556:22;:39::i;:::-;-1:-1:-1;;;;;27535:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;;27272:333:0:o;31784:358::-;31861:19;31883:10;:8;:10::i;:::-;31861:32;-1:-1:-1;31904:16:0;31923:25;:8;31861:32;31923:12;:25::i;:::-;31989:10;;-1:-1:-1;;;;;31989:10:0;31981:19;;;;:7;:19;;;;;;31904:44;;-1:-1:-1;31981:33:0;;31904:44;31981:23;:33::i;:::-;31967:10;;;-1:-1:-1;;;;;31967:10:0;;;31959:19;;;;:7;:19;;;;;;;;:55;;;;32055:10;;;;;32047:19;;:7;:19;;;;;:33;;32071:8;32047:23;:33::i;:::-;32033:10;;;-1:-1:-1;;;;;32033:10:0;;;32025:19;;;;:7;:19;;;;;;;;;:55;;;;32113:10;;32096:38;;1342:25:1;;;32113:10:0;;;;32096:38;;;;;;1315:18:1;32096:38:0;;;;;;;31850:292;;31784:358;;:::o;28675:406::-;28801:28;28823:5;28801:17;28813:4;28801:7;;:11;;:17;;;;:::i;:28::-;28791:7;:38;28853:10;;:20;;28868:4;28853:14;:20::i;:::-;28840:10;:33;28898:11;;:22;;28914:5;28898:15;:22::i;:::-;28884:11;:36;28948:14;;:28;;28967:8;28948:18;:28::i;:::-;28931:14;:45;28997:7;;:18;;29009:5;28997:11;:18::i;:::-;28987:7;:28;29031:42;;1342:25:1;;;29063:1:0;;29048:4;;29031:42;;1330:2:1;1315:18;29031:42:0;;;;;;;28675:406;;;;;:::o;26281:359::-;-1:-1:-1;;;;;26458:15:0;;;;;;:7;:15;;;;;;:28;;26478:7;26458:19;:28::i;:::-;-1:-1:-1;;;;;26440:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;26518:18;;;;;:7;:18;;;;;:39;;26541:15;26518:22;:39::i;:::-;-1:-1:-1;;;;;26497:18:0;;;;;;:7;:18;;;;;;;;:60;;;;26589:7;:18;;;;:39;;26612:15;26589:22;:39::i;25380:255::-;-1:-1:-1;;;;;25528:15:0;;;;;;:7;:15;;;;;;:28;;25548:7;25528:19;:28::i;:::-;-1:-1:-1;;;;;25510:15:0;;;;;;;:7;:15;;;;;;:46;;;;25588:18;;;;;;;:39;;25611:15;25588:22;:39::i;:::-;-1:-1:-1;;;;;25567:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;25380:255:0:o;28244:423::-;-1:-1:-1;;;;;28430:15:0;;;;;;:7;:15;;;;;;:28;;28450:7;28430:19;:28::i;:::-;-1:-1:-1;;;;;28412:15:0;;;;;;:7;:15;;;;;;;;:46;;;;28487:7;:15;;;;:28;;28507:7;28487:19;:28::i;:::-;-1:-1:-1;;;;;28469:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;28547:18;;;;;:7;:18;;;;;:39;;28570:15;28547:22;:39::i;:::-;-1:-1:-1;;;;;28526:18:0;;;;;;:7;:18;;;;;;;;:60;;;;28618:7;:18;;;;:39;;28641:15;28618:22;:39::i;:::-;-1:-1:-1;;;;;28597:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;;;28244:423:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:180::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;-1:-1:-1;1862:23:1;;1711:180;-1:-1:-1;1711:180:1:o;2085:341::-;2150:6;2158;2211:2;2199:9;2190:7;2186:23;2182:32;2179:52;;;2227:1;2224;2217:12;2179:52;2263:9;2250:23;2240:33;;2323:2;2312:9;2308:18;2295:32;2370:5;2363:13;2356:21;2349:5;2346:32;2336:60;;2392:1;2389;2382:12;2336:60;2415:5;2405:15;;;2085:341;;;;;:::o;2431:186::-;2490:6;2543:2;2531:9;2522:7;2518:23;2514:32;2511:52;;;2559:1;2556;2549:12;2511:52;2582:29;2601:9;2582:29;:::i;2830:260::-;2898:6;2906;2959:2;2947:9;2938:7;2934:23;2930:32;2927:52;;;2975:1;2972;2965:12;2927:52;2998:29;3017:9;2998:29;:::i;:::-;2988:39;;3046:38;3080:2;3069:9;3065:18;3046:38;:::i;:::-;3036:48;;2830:260;;;;;:::o;3095:380::-;3174:1;3170:12;;;;3217;;;3238:61;;3292:4;3284:6;3280:17;3270:27;;3238:61;3345:2;3337:6;3334:14;3314:18;3311:38;3308:161;;3391:10;3386:3;3382:20;3379:1;3372:31;3426:4;3423:1;3416:15;3454:4;3451:1;3444:15;3308:161;;3095:380;;;:::o;4664:356::-;4866:2;4848:21;;;4885:18;;;4878:30;4944:34;4939:2;4924:18;;4917:62;5011:2;4996:18;;4664:356::o;5025:127::-;5086:10;5081:3;5077:20;5074:1;5067:31;5117:4;5114:1;5107:15;5141:4;5138:1;5131:15;5157:168;5230:9;;;5261;;5278:15;;;5272:22;;5258:37;5248:71;;5299:18;;:::i;6449:127::-;6510:10;6505:3;6501:20;6498:1;6491:31;6541:4;6538:1;6531:15;6565:4;6562:1;6555:15;6581:128;6648:9;;;6669:11;;;6666:37;;;6683:18;;:::i;6714:127::-;6775:10;6770:3;6766:20;6763:1;6756:31;6806:4;6803:1;6796:15;6830:4;6827:1;6820:15;6846:135;6885:3;6906:17;;;6903:43;;6926:18;;:::i;:::-;-1:-1:-1;6973:1:1;6962:13;;6846:135::o;9022:125::-;9087:9;;;9108:10;;;9105:36;;;9121:18;;:::i;9508:217::-;9548:1;9574;9564:132;;9618:10;9613:3;9609:20;9606:1;9599:31;9653:4;9650:1;9643:15;9681:4;9678:1;9671:15;9564:132;-1:-1:-1;9710:9:1;;9508:217::o
Swarm Source
ipfs://e66a18b60b7c9902114017181c609c57dcd40b7a9c5d3f930cfb141854451ff8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.