ETH Price: $3,164.20 (-7.45%)
Gas: 4 Gwei

Token

Tollar (TLR)
 

Overview

Max Total Supply

475,880.252426668 TLR

Holders

810

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
20.43997516 TLR

Value
$0.00
0xa5dec63a95102f3d58820660ee6b09199c0de811
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Tollar

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : SafeMathInt.sol
pragma solidity 0.7.5;

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

File 2 of 6 : Tollar.sol
pragma solidity 0.7.5;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/math/SafeMath.sol";
import "../libraries/SafeMathInt.sol";

abstract contract ERC20Detailed is IERC20 {
  string private _name;
  string private _symbol;
  uint8 private _decimals;

  function initialize(string memory __name, string memory __symbol, uint8 __decimals) internal {
    _name = __name;
    _symbol = __symbol;
    _decimals = __decimals;
  }

  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 _decimals;
  }
}

/**
 * @dev Tollar token of ERC20 standard.
 * @author Over1 Team
 *
 * name           : Tollar
 * symbol         : TLR
 * decimal        : 9
 * basic supply   : 1,000,000 TLR
 */
contract Tollar is Ownable, ERC20Detailed {
    // PLEASE READ BEFORE CHANGING ANY ACCOUNTING OR MATH
    // Anytime there is division, there is a risk of numerical instability from rounding errors. In
    // order to minimize this risk, we adhere to the following guidelines:
    // 1) The conversion rate adopted is the number of gons that equals 1 fragment.
    //    The inverse rate must not be used--TOTAL_GONS is always the numerator and _totalSupply is
    //    always the denominator. (i.e. If you want to convert gons to fragments instead of
    //    multiplying by the inverse rate, you should divide by the normal rate)
    // 2) Gon balances converted into Fragments are always rounded down (truncated).
    //
    // We make the following guarantees:
    // - If address 'A' transfers x Fragments to address 'B'. A's resulting external balance will
    //   be decreased by precisely x Fragments, and B's external balance will be precisely
    //   increased by x Fragments.
    //
    // We do not guarantee that the sum of all balances equals the result of calling totalSupply().
    // This is because, for any conversion function 'f()' that has non-zero rounding error,
    // f(x0) + f(x1) + ... + f(xn) is not always equal to f(x0 + x1 + ... xn).

    using SafeMath for uint256;
    using SafeMathInt for int256;

    struct Transaction {
        bool enabled;
        address destination;
        bytes data;
    }

    event TransactionFailed(address indexed destination, uint index, bytes data);

    // Stable ordering is not guaranteed.

    Transaction[] public transactions;

    event LogRebase(uint256 indexed epoch, uint256 totalSupply);

    uint256 private constant DECIMALS = 9;
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 1000000 * 10**DECIMALS;

    // TOTAL_GONS is a multiple of INITIAL_FRAGMENTS_SUPPLY so that _gonsPerFragment is an integer.
    // Use the highest value that fits in a uint256 for max granularity.
    uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);

    // MAX_SUPPLY = maximum integer < (sqrt(4*TOTAL_GONS + 1) - 1) / 2
    uint256 private constant MAX_SUPPLY = ~uint128(0);  // (2^128) - 1

    uint256 private _epoch;

    uint256 private _totalSupply;
    uint256 private _gonsPerFragment;
    mapping(address => uint256) private _gonBalances;

    // This is denominated in Fragments, because the gons-fragments conversion might change before
    // it's fully paid.
    mapping (address => mapping (address => uint256)) private _allowedFragments;

    /**
     * @dev Notifies Fragments contract about a new rebase cycle.
     * @param supplyDelta The number of new fragment tokens to add into circulation via expansion.
     * @return The total number of fragments after the supply adjustment.
     */
    function rebase(int256 supplyDelta) external onlyOwner returns (uint256) {
        _epoch = _epoch.add(1);

        if (supplyDelta == 0) {
            emit LogRebase(_epoch, _totalSupply);
            return _totalSupply;
        }

        if (supplyDelta < 0) {
            _totalSupply = _totalSupply.sub(uint256(supplyDelta.abs()));
        } else {
            _totalSupply = _totalSupply.add(uint256(supplyDelta));
        }

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);

        // From this point forward, _gonsPerFragment is taken as the source of truth.
        // We recalculate a new _totalSupply to be in agreement with the _gonsPerFragment
        // conversion rate.
        // This means our applied supplyDelta can deviate from the requested supplyDelta,
        // but this deviation is guaranteed to be < (_totalSupply^2)/(TOTAL_GONS - _totalSupply).
        //
        // In the case of _totalSupply <= MAX_UINT128 (our current supply cap), this
        // deviation is guaranteed to be < 1, so we can omit this step. If the supply cap is
        // ever increased, it must be re-included.
        // _totalSupply = TOTAL_GONS.div(_gonsPerFragment)

        emit LogRebase(_epoch, _totalSupply);

        for (uint i = 0; i < transactions.length; i++) {
            Transaction storage t = transactions[i];
            if (t.enabled) {
                bool result = externalCall(t.destination, t.data);
                if (!result) {
                    emit TransactionFailed(t.destination, i, t.data);
                    revert("Transaction Failed");
                }
            }
        }

        return _totalSupply;
    }

    constructor() public Ownable() {
        ERC20Detailed.initialize('Tollar', 'TLR', uint8(DECIMALS));
        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        _gonBalances[msg.sender] = TOTAL_GONS;
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);

        emit Transfer(address(0x0), msg.sender, _totalSupply);
    }

    /**
     * @return The total number of fragments.
     */
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @param who The address to query.
     * @return The balance of the specified address.
     */
    function balanceOf(address who) public view override returns (uint256) {
        return _gonBalances[who].div(_gonsPerFragment);
    }

    /**
     * @dev Transfer tokens to a specified address.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     * @return True on success, false otherwise.
     */
    function transfer(address to, uint256 value) public override returns (bool) {
        uint256 merValue = value.mul(_gonsPerFragment);
        _gonBalances[msg.sender] = _gonBalances[msg.sender].sub(merValue);
        _gonBalances[to] = _gonBalances[to].add(merValue);
        emit Transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner has allowed to a spender.
     * @param owner_ The address which owns the funds.
     * @param spender The address which will spend the funds.
     * @return The number of tokens still available for the spender.
     */
    function allowance(address owner_, address spender) public view override returns (uint256) {
        return _allowedFragments[owner_][spender];
    }

    /**
     * @dev Transfer tokens from one address to another.
     * @param from The address you want to send tokens from.
     * @param to The address you want to transfer to.
     * @param value The amount of tokens to be transferred.
     */
    function transferFrom(address from, address to, uint256 value) public override returns (bool) {
        _allowedFragments[from][msg.sender] = _allowedFragments[from][msg.sender].sub(value);

        uint256 merValue = value.mul(_gonsPerFragment);
        _gonBalances[from] = _gonBalances[from].sub(merValue);
        _gonBalances[to] = _gonBalances[to].add(merValue);
        emit Transfer(from, to, value);

        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of
     * msg.sender. This method is included for ERC20 compatibility.
     * increaseAllowance and decreaseAllowance should be used instead.
     * Changing an allowance with this method brings the risk that someone may transfer both
     * the old and the new allowance - if they are both greater than zero - if a transfer
     * transaction is mined before the later approve() call is mined.
     *
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public override returns (bool) {
        _allowedFragments[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner has allowed to a spender.
     * This method should be used instead of approve() to avoid the double approval vulnerability
     * described above.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _allowedFragments[msg.sender][spender] =
            _allowedFragments[msg.sender][spender].add(addedValue);
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner has allowed to a spender.
     *
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        uint256 oldValue = _allowedFragments[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedFragments[msg.sender][spender] = 0;
        } else {
            _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue);
        }
        emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]);
        return true;
    }

    /**
     * @notice Adds a transaction that gets called for a downstream receiver of rebases
     * @param destination Address of contract destination
     * @param data Transaction data payload
     */
    function addTransaction(address destination, bytes memory data) external onlyOwner {
        transactions.push(Transaction({
            enabled: true,
            destination: destination,
            data: data
        }));
    }

    /**
     * @param index Index of transaction to remove.
     *              Transaction ordering may have changed since adding.
     */
    function removeTransaction(uint index) external onlyOwner {
        require(index < transactions.length, "index out of bounds");

        if (index < transactions.length - 1) {
            transactions[index] = transactions[transactions.length - 1];
        }

        transactions.pop();
    }

    /**
     * @param index Index of transaction. Transaction ordering may have changed since adding.
     * @param enabled True for enabled, false for disabled.
     */
    function setTransactionEnabled(uint index, bool enabled) external onlyOwner {
        require(index < transactions.length, "index must be in range of stored tx list");
        transactions[index].enabled = enabled;
    }

    /**
     * @return Number of transactions, both enabled and disabled, in transactions list.
     */
    function transactionsSize() external view returns (uint256) {
        return transactions.length;
    }

    /**
     * @dev wrapper to call the encoded transactions on downstream consumers.
     * @param destination Address of destination contract.
     * @param data The encoded data payload.
     * @return True on success
     */
    function externalCall(address destination, bytes memory data) internal returns (bool)
    {
        bool result;
        assembly {
            // "Allocate" memory for output
            // (0x40 is where "free memory" pointer is stored by convention)
            let outputAddress := mload(0x40)

            // First 32 bytes are the padded length of data, so exclude that
            let dataAddress := add(data, 32)

            result := call(
                // 34710 is the value that solidity is currently emitting
                // It includes callGas (700) + callVeryLow (3, to pay for SUB)
                // + callValueTransferGas (9000) + callNewAccountGas
                // (25000, in case the destination address does not exist and needs creating)
                sub(gas(), 34710),
                destination,
                0, // transfer value in wei
                dataAddress,
                mload(data),  // Size of the input, in bytes. Stored in position 0 of the array.
                outputAddress,
                0  // Output is ignored, therefore the output size is zero
            )
        }
        return result;
    }
}

File 3 of 6 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.7.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 4 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.7.0;

import "../GSN/Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 5 of 6 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.7.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library 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;
    }
}

File 6 of 6 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.7.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {
    "": {}
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","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":"destination","type":"address"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"TransactionFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"addTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"removeTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setTransactionEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactions","outputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transactionsSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060006200001e6200013f565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000ba604051806040016040528060068152602001652a37b63630b960d11b815250604051806040016040528060038152602001622a262960e91b81525060096200014360201b620013c41760201c565b66038d7ea4c6800060069081553360009081526008602090815260409091206507326b47ffff19908190559154620000fc92916200140462000187821b17901c565b600755600654604080519182525133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a36200032b565b3390565b8251620001589060019060208601906200027f565b5081516200016e9060029060208501906200027f565b506003805460ff191660ff929092169190911790555050565b6000620001d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620001d860201b60201c565b9392505050565b60008183620002685760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200022c57818101518382015260200162000212565b50505050905090810190601f1680156200025a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200027557fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620002b7576000855562000302565b82601f10620002d257805160ff191683800117855562000302565b8280016001018555821562000302579182015b8281111562000302578251825591602001919060010190620002e5565b506200031092915062000314565b5090565b5b8082111562000310576000815560010162000315565b6118bd806200033b6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad5780639ace38c2116100715780639ace38c214610401578063a457c2d7146104af578063a9059cbb146104db578063dd62ed3e14610507578063f2fde38b146105355761012c565b806370a082311461039f578063715018a6146103c55780638da5cb5b146103cd57806391d4ec18146103f157806395d89b41146103f95761012c565b806323b872dd116100f457806323b872dd146102dd578063313ce56714610313578063395093511461033157806346c3bd1f1461035d5780636e9dde991461037a5761012c565b806306fdde0314610131578063095ea7b3146101ae5780630ab114f9146101ee578063126e19be1461021d57806318160ddd146102d5575b600080fd5b61013961055b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b0381351690602001356105f0565b604080519115158252519081900360200190f35b61020b6004803603602081101561020457600080fd5b5035610657565b60408051918252519081900360200190f35b6102d36004803603604081101561023357600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561025e57600080fd5b82018360208201111561027057600080fd5b8035906020019184600183028401116401000000008311171561029257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109b5945050505050565b005b61020b610ad6565b6101da600480360360608110156102f357600080fd5b506001600160a01b03813581169160208101359091169060400135610adc565b61031b610bf6565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561034757600080fd5b506001600160a01b038135169060200135610bff565b6102d36004803603602081101561037357600080fd5b5035610c92565b6102d36004803603604081101561039057600080fd5b50803590602001351515610e2a565b61020b600480360360208110156103b557600080fd5b50356001600160a01b0316610ef3565b6102d3610f1b565b6103d5610fbd565b604080516001600160a01b039092168252519081900360200190f35b61020b610fcc565b610139610fd2565b61041e6004803603602081101561041757600080fd5b5035611030565b604051808415158152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561047257818101518382015260200161045a565b50505050905090810190601f16801561049f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6101da600480360360408110156104c557600080fd5b506001600160a01b0381351690602001356110f8565b6101da600480360360408110156104f157600080fd5b506001600160a01b0381351690602001356111e1565b61020b6004803603604081101561051d57600080fd5b506001600160a01b03813581169160200135166112a1565b6102d36004803603602081101561054b57600080fd5b50356001600160a01b03166112cc565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600061066161144d565b6000546001600160a01b039081169116146106b1576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6005546106bf906001611451565b600555816107085760055460065460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a2506006546109b0565b600082121561072e5761072661071d836114ab565b600654906114d3565b60065561073f565b60065461073b9083611451565b6006555b6006546001600160801b03101561075c576001600160801b036006555b600654610771906507326b47ffff1990611404565b60075560055460065460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a260005b6004548110156109aa576000600482815481106107c857fe5b60009182526020909120600290910201805490915060ff16156109a15780546001808301805460408051602060026101009685161587026000190190941693909304601f81018490048402820184019092528181526000956108909590046001600160a01b03169390929091908301828280156108865780601f1061085b57610100808354040283529160200191610886565b820191906000526020600020905b81548152906001019060200180831161086957829003601f168201915b5050505050611515565b90508061099f5781546040805185815260208101828152600180870180546002610100938216158402600019019091160494840185905294046001600160a01b0316937f8091ecaaa54ebb82e02d36c2c336528e0fcb9b3430fc1291ac88295032b9c26393889391929060608301908490801561094e5780601f106109235761010080835404028352916020019161094e565b820191906000526020600020905b81548152906001019060200180831161093157829003601f168201915b5050935050505060405180910390a26040805162461bcd60e51b8152602060048201526012602482015271151c985b9cd858dd1a5bdb8811985a5b195960721b604482015290519081900360640190fd5b505b506001016107af565b50506006545b919050565b6109bd61144d565b6000546001600160a01b03908116911614610a0d576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6040805160608101825260018082526001600160a01b038086166020808501918252948401868152600480549485018155600052845160029094027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b81018054935190941661010002610100600160a81b031995151560ff19909416939093179490941691909117825551805193949193610acf937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c0192919091019061168d565b5050505050565b60065490565b6001600160a01b0383166000908152600960209081526040808320338452909152812054610b0a90836114d3565b6001600160a01b0385166000908152600960209081526040808320338452909152812091909155600754610b3f908490611538565b6001600160a01b038616600090815260086020526040902054909150610b6590826114d3565b6001600160a01b038087166000908152600860205260408082209390935590861681522054610b949082611451565b6001600160a01b0380861660008181526008602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b60035460ff1690565b3360009081526009602090815260408083206001600160a01b0386168452909152812054610c2d9083611451565b3360008181526009602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610c9a61144d565b6000546001600160a01b03908116911614610cea576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6004548110610d36576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b60045460001901811015610de757600480546000198101908110610d5657fe5b906000526020600020906002020160048281548110610d7157fe5b6000918252602090912082546002928302909101805460ff191660ff9092161515919091178082558354610100600160a81b0319909116610100918290046001600160a01b03168202178255600180850180549394610de3948387019492938116159092026000190190911604611719565b5050505b6004805480610df257fe5b60008281526020812060026000199093019283020180546001600160a81b031916815590610e23600183018261179c565b5050905550565b610e3261144d565b6000546001600160a01b03908116911614610e82576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6004548210610ec25760405162461bcd60e51b815260040180806020018281038252602881526020018061181f6028913960400191505060405180910390fd5b8060048381548110610ed057fe5b60009182526020909120600290910201805460ff19169115159190911790555050565b6007546001600160a01b03821660009081526008602052604081205490916106519190611404565b610f2361144d565b6000546001600160a01b03908116911614610f73576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60045490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105e65780601f106105bb576101008083540402835291602001916105e6565b6004818154811061104057600080fd5b6000918252602091829020600291820201805460018083018054604080516101009483161585026000190190921696909604601f810188900488028201880190965285815260ff84169750919092046001600160a01b031694929390928301828280156110ee5780601f106110c3576101008083540402835291602001916110ee565b820191906000526020600020905b8154815290600101906020018083116110d157829003601f168201915b5050505050905083565b3360009081526009602090815260408083206001600160a01b038616845290915281205480831061114c573360009081526009602090815260408083206001600160a01b038816845290915281205561117b565b61115681846114d3565b3360009081526009602090815260408083206001600160a01b03891684529091529020555b3360008181526009602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000806111f96007548461153890919063ffffffff16565b3360009081526008602052604090205490915061121690826114d3565b33600090815260086020526040808220929092556001600160a01b038616815220546112429082611451565b6001600160a01b0385166000818152600860209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6112d461144d565b6000546001600160a01b03908116911614611324576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6001600160a01b0381166113695760405162461bcd60e51b81526004018080602001828103825260268152602001806117f96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b82516113d790600190602086019061168d565b5081516113eb90600290602085019061168d565b506003805460ff191660ff929092169190911790555050565b600061144683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611591565b9392505050565b3390565b600082820183811015611446576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000600160ff1b8214156114be57600080fd5b600082126114cc5781610651565b5060000390565b600061144683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611633565b6000806040516020840160008286518360008a6187965a03f19695505050505050565b60008261154757506000610651565b8282028284828161155457fe5b04146114465760405162461bcd60e51b81526004018080602001828103825260218152602001806118476021913960400191505060405180910390fd5b6000818361161d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115e25781810151838201526020016115ca565b50505050905090810190601f16801561160f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161162957fe5b0495945050505050565b600081848411156116855760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156115e25781810151838201526020016115ca565b505050900390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826116c35760008555611709565b82601f106116dc57805160ff1916838001178555611709565b82800160010185558215611709579182015b828111156117095782518255916020019190600101906116ee565b506117159291506117e3565b5090565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261174f5760008555611709565b82601f106117605780548555611709565b8280016001018555821561170957600052602060002091601f016020900482015b82811115611709578254825591600101919060010190611781565b50805460018160011615610100020316600290046000825580601f106117c257506117e0565b601f0160209004906000526020600020908101906117e091906117e3565b50565b5b8082111561171557600081556001016117e456fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373696e646578206d75737420626520696e2072616e6765206f662073746f726564207478206c697374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122005dbc14a903ff8be3ce93490d01dbd1d2f370e9c85939ffa03103e06f4c4935364736f6c63430007050033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad5780639ace38c2116100715780639ace38c214610401578063a457c2d7146104af578063a9059cbb146104db578063dd62ed3e14610507578063f2fde38b146105355761012c565b806370a082311461039f578063715018a6146103c55780638da5cb5b146103cd57806391d4ec18146103f157806395d89b41146103f95761012c565b806323b872dd116100f457806323b872dd146102dd578063313ce56714610313578063395093511461033157806346c3bd1f1461035d5780636e9dde991461037a5761012c565b806306fdde0314610131578063095ea7b3146101ae5780630ab114f9146101ee578063126e19be1461021d57806318160ddd146102d5575b600080fd5b61013961055b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017357818101518382015260200161015b565b50505050905090810190601f1680156101a05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101da600480360360408110156101c457600080fd5b506001600160a01b0381351690602001356105f0565b604080519115158252519081900360200190f35b61020b6004803603602081101561020457600080fd5b5035610657565b60408051918252519081900360200190f35b6102d36004803603604081101561023357600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561025e57600080fd5b82018360208201111561027057600080fd5b8035906020019184600183028401116401000000008311171561029257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109b5945050505050565b005b61020b610ad6565b6101da600480360360608110156102f357600080fd5b506001600160a01b03813581169160208101359091169060400135610adc565b61031b610bf6565b6040805160ff9092168252519081900360200190f35b6101da6004803603604081101561034757600080fd5b506001600160a01b038135169060200135610bff565b6102d36004803603602081101561037357600080fd5b5035610c92565b6102d36004803603604081101561039057600080fd5b50803590602001351515610e2a565b61020b600480360360208110156103b557600080fd5b50356001600160a01b0316610ef3565b6102d3610f1b565b6103d5610fbd565b604080516001600160a01b039092168252519081900360200190f35b61020b610fcc565b610139610fd2565b61041e6004803603602081101561041757600080fd5b5035611030565b604051808415158152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561047257818101518382015260200161045a565b50505050905090810190601f16801561049f5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6101da600480360360408110156104c557600080fd5b506001600160a01b0381351690602001356110f8565b6101da600480360360408110156104f157600080fd5b506001600160a01b0381351690602001356111e1565b61020b6004803603604081101561051d57600080fd5b506001600160a01b03813581169160200135166112a1565b6102d36004803603602081101561054b57600080fd5b50356001600160a01b03166112cc565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105e65780601f106105bb576101008083540402835291602001916105e6565b820191906000526020600020905b8154815290600101906020018083116105c957829003601f168201915b5050505050905090565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600061066161144d565b6000546001600160a01b039081169116146106b1576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6005546106bf906001611451565b600555816107085760055460065460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a2506006546109b0565b600082121561072e5761072661071d836114ab565b600654906114d3565b60065561073f565b60065461073b9083611451565b6006555b6006546001600160801b03101561075c576001600160801b036006555b600654610771906507326b47ffff1990611404565b60075560055460065460408051918252517f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f29181900360200190a260005b6004548110156109aa576000600482815481106107c857fe5b60009182526020909120600290910201805490915060ff16156109a15780546001808301805460408051602060026101009685161587026000190190941693909304601f81018490048402820184019092528181526000956108909590046001600160a01b03169390929091908301828280156108865780601f1061085b57610100808354040283529160200191610886565b820191906000526020600020905b81548152906001019060200180831161086957829003601f168201915b5050505050611515565b90508061099f5781546040805185815260208101828152600180870180546002610100938216158402600019019091160494840185905294046001600160a01b0316937f8091ecaaa54ebb82e02d36c2c336528e0fcb9b3430fc1291ac88295032b9c26393889391929060608301908490801561094e5780601f106109235761010080835404028352916020019161094e565b820191906000526020600020905b81548152906001019060200180831161093157829003601f168201915b5050935050505060405180910390a26040805162461bcd60e51b8152602060048201526012602482015271151c985b9cd858dd1a5bdb8811985a5b195960721b604482015290519081900360640190fd5b505b506001016107af565b50506006545b919050565b6109bd61144d565b6000546001600160a01b03908116911614610a0d576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6040805160608101825260018082526001600160a01b038086166020808501918252948401868152600480549485018155600052845160029094027f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b81018054935190941661010002610100600160a81b031995151560ff19909416939093179490941691909117825551805193949193610acf937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c0192919091019061168d565b5050505050565b60065490565b6001600160a01b0383166000908152600960209081526040808320338452909152812054610b0a90836114d3565b6001600160a01b0385166000908152600960209081526040808320338452909152812091909155600754610b3f908490611538565b6001600160a01b038616600090815260086020526040902054909150610b6590826114d3565b6001600160a01b038087166000908152600860205260408082209390935590861681522054610b949082611451565b6001600160a01b0380861660008181526008602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b60035460ff1690565b3360009081526009602090815260408083206001600160a01b0386168452909152812054610c2d9083611451565b3360008181526009602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610c9a61144d565b6000546001600160a01b03908116911614610cea576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6004548110610d36576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b60045460001901811015610de757600480546000198101908110610d5657fe5b906000526020600020906002020160048281548110610d7157fe5b6000918252602090912082546002928302909101805460ff191660ff9092161515919091178082558354610100600160a81b0319909116610100918290046001600160a01b03168202178255600180850180549394610de3948387019492938116159092026000190190911604611719565b5050505b6004805480610df257fe5b60008281526020812060026000199093019283020180546001600160a81b031916815590610e23600183018261179c565b5050905550565b610e3261144d565b6000546001600160a01b03908116911614610e82576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6004548210610ec25760405162461bcd60e51b815260040180806020018281038252602881526020018061181f6028913960400191505060405180910390fd5b8060048381548110610ed057fe5b60009182526020909120600290910201805460ff19169115159190911790555050565b6007546001600160a01b03821660009081526008602052604081205490916106519190611404565b610f2361144d565b6000546001600160a01b03908116911614610f73576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60045490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105e65780601f106105bb576101008083540402835291602001916105e6565b6004818154811061104057600080fd5b6000918252602091829020600291820201805460018083018054604080516101009483161585026000190190921696909604601f810188900488028201880190965285815260ff84169750919092046001600160a01b031694929390928301828280156110ee5780601f106110c3576101008083540402835291602001916110ee565b820191906000526020600020905b8154815290600101906020018083116110d157829003601f168201915b5050505050905083565b3360009081526009602090815260408083206001600160a01b038616845290915281205480831061114c573360009081526009602090815260408083206001600160a01b038816845290915281205561117b565b61115681846114d3565b3360009081526009602090815260408083206001600160a01b03891684529091529020555b3360008181526009602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000806111f96007548461153890919063ffffffff16565b3360009081526008602052604090205490915061121690826114d3565b33600090815260086020526040808220929092556001600160a01b038616815220546112429082611451565b6001600160a01b0385166000818152600860209081526040918290209390935580518681529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060019392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6112d461144d565b6000546001600160a01b03908116911614611324576040805162461bcd60e51b81526020600482018190526024820152600080516020611868833981519152604482015290519081900360640190fd5b6001600160a01b0381166113695760405162461bcd60e51b81526004018080602001828103825260268152602001806117f96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b82516113d790600190602086019061168d565b5081516113eb90600290602085019061168d565b506003805460ff191660ff929092169190911790555050565b600061144683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611591565b9392505050565b3390565b600082820183811015611446576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000600160ff1b8214156114be57600080fd5b600082126114cc5781610651565b5060000390565b600061144683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611633565b6000806040516020840160008286518360008a6187965a03f19695505050505050565b60008261154757506000610651565b8282028284828161155457fe5b04146114465760405162461bcd60e51b81526004018080602001828103825260218152602001806118476021913960400191505060405180910390fd5b6000818361161d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115e25781810151838201526020016115ca565b50505050905090810190601f16801561160f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161162957fe5b0495945050505050565b600081848411156116855760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156115e25781810151838201526020016115ca565b505050900390565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826116c35760008555611709565b82601f106116dc57805160ff1916838001178555611709565b82800160010185558215611709579182015b828111156117095782518255916020019190600101906116ee565b506117159291506117e3565b5090565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261174f5760008555611709565b82601f106117605780548555611709565b8280016001018555821561170957600052602060002091601f016020900482015b82811115611709578254825591600101919060010190611781565b50805460018160011615610100020316600290046000825580601f106117c257506117e0565b601f0160209004906000526020600020908101906117e091906117e3565b50565b5b8082111561171557600081556001016117e456fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373696e646578206d75737420626520696e2072616e6765206f662073746f726564207478206c697374536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a264697066735822122005dbc14a903ff8be3ce93490d01dbd1d2f370e9c85939ffa03103e06f4c4935364736f6c63430007050033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.