Contract 0x00AbA6fE5557De1a1d565658cBDdddf7C710a1eb 2

 

Contract Overview

EasyFi: EZ Token
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Block
From
To
Value
0x6a998ac0e686dbe386322a481ca44138f1bdfe7b58adb0f770e0d7c41d454786Approve(pending)2021-12-12 12:12:492 days 21 hrs ago0xb1d525416fd9a817f37db4aefd419244ee172925 IN EasyFi: EZ Token0 Ether(Pending)(Pending)
0x76d92a6534d9d1c49cb586f8db2daf16fe70758842e5505893e51fbddc0ec3a4Transfer138071082021-12-15 2:41:237 hrs 3 mins ago0x68842ccd38fac9a4f79606efffcf9e8bad7bd3e7 IN  EasyFi: EZ Token0 Ether0.0030604896
0xb04f3bc88ef31d09512e8da523473886defc31072a95492522817dbf8d00ce2fTransfer138046582021-12-14 17:31:4916 hrs 12 mins ago0xc11276b994d9d000d3464dee6cc4b202e177fb58 IN  EasyFi: EZ Token0 Ether0.003676742473 75.12141373
0x6e4265c735fcf6ae956f4f6f83fc3bc3386b054edb66f7552c0228c3e90de912Transfer138036222021-12-14 13:44:1220 hrs ago0x7adb499fe342a2da42f419c30ebbd1a78d0d3fdf IN  EasyFi: EZ Token0 Ether0.004744377035 96.887294465
0xc0e6546c280aa5651c06b58f89037200d62747610d63cc351bf43e06ed8d32eaTransfer138030002021-12-14 11:22:1122 hrs 22 mins ago0x9aa23adcfcc6d037f1211d64825b4687af3039b6 IN  EasyFi: EZ Token0 Ether0.0013794396643.318667883
0x2fa600d9e0332d10401168e6a5e4dd8941af7504ff89a5ada2f0fa83133329aaApprove138011282021-12-14 4:17:251 day 5 hrs ago0xbbc38fdef6b4d900a6ecde06a9e3287d489c695b IN  EasyFi: EZ Token0 Ether0.00349074665 75.137686744
0xcbe4144dd30f2c41ba275c0f87d8eccb284a2e18da1a102e2f6fe04cb115cb74Approve137993272021-12-13 21:34:511 day 12 hrs ago0xda30ed32dbc0db17b0501643ba272bb2463cc0ff IN  EasyFi: EZ Token0 Ether0.005000641965 107.637908777
0x4bc9da3665bf6311ef47ca291975fe6c3e6a111120b7aae658ee73bd20e04de9Approve137970482021-12-13 13:15:181 day 20 hrs ago0x81ab808853e54f283676daa7faf3c29dcb4f52ea IN  EasyFi: EZ Token0 Ether0.001921547746 41.360965754
0xdfabbbea7bea2d9d3cf30aef347137a04a458e1322ff8bfff755a00a4b287926Approve137969412021-12-13 12:53:281 day 20 hrs ago0xeac2c3d4f65cce2cb9197221934c04a4d1feb863 IN  EasyFi: EZ Token0 Ether0.001599081969 34.419948541
0xb323ba27fb9c3255b833ed92032a09fa0a7978fa92d8cf204ca5c86fe387495cApprove137967442021-12-13 12:12:261 day 21 hrs ago0x924ef4402aaad25181b13673b6cd6ff3412df75c IN  EasyFi: EZ Token0 Ether0.001202866385 41.378272643
0x2515da2545fd7862177aae86602df4960d77d42f52b2e715f82cea7a483480a5Transfer137891502021-12-12 8:14:073 days 1 hr ago0xd07a6e814bc9c3386361c24c8789edb0da2e615d IN  EasyFi: EZ Token0 Ether0.00249871249451.039964349
0x482017d9b42d7c98905a80d0f48a8dc0da35a549bab791963a3c3603188a567aTransfer137887392021-12-12 6:37:203 days 3 hrs agoBinance 14 IN  EasyFi: EZ Token0 Ether0.00451550484
0xe8670784d5752564812fd47941f35e55134bbdd4f8a60d915e1b0c2887255185Transfer137881142021-12-12 4:17:433 days 5 hrs agoAscendEX 3 IN  EasyFi: EZ Token0 Ether0.001912860
0x3fa0a872fcb45c44a6b54103d50ed37491b42df5d61df0524e437a50fd913ecdTransfer137844692021-12-11 14:44:243 days 19 hrs agoBinance 16 IN  EasyFi: EZ Token0 Ether0.00451550484
0x71695bc1115549f503dd2a308f419f1f8a3b829ed3f401c9bb54d027f8cd36adApprove137835252021-12-11 11:14:043 days 22 hrs ago0x8e954f83609e25841a31d22776acbe2e2af60808 IN  EasyFi: EZ Token0 Ether0.001922759394 41.387046245
0xfb0e12e19743c18226dbfbdca2982f73e718f68af3d1e2a7a3134af77b2a081cTransfer137833282021-12-11 10:30:593 days 23 hrs agoBinance 15 IN  EasyFi: EZ Token0 Ether0.00451550484
0x1b7b6e5e050efedca489cfc3055549582521b7a4a7506687d0641e08e40e75bcApprove137820212021-12-11 5:32:524 days 4 hrs ago0xc7a1f081ec4764540aac917360a406dbc3f0dc2a IN  EasyFi: EZ Token0 Ether0.002816137846 60.616854932
0x4ff35fefdfd6adc2d5ded0956d50d0aea90d87c9178f5b928bae60e39864feddTransfer137818892021-12-11 5:02:214 days 4 hrs ago0xb7d04ec2beeee0a287ce2f7be469929ff5d5c9be IN  EasyFi: EZ Token0 Ether0.00181703414 57.081997372
0x207a5a2402f6fe305a72a1290f1330bc406120a13f7ef0e0f50b6b392748e1d6Transfer137818062021-12-11 4:45:014 days 4 hrs agoBinance 14 IN  EasyFi: EZ Token0 Ether0.00451550484
0x3bfaa9a3826d49d0bce5924ab3066c137b054bac94973b820224789d8c553b2eApprove137809662021-12-11 1:47:044 days 7 hrs ago0x7e5e71c8c09752ea97b1c70fd37599fb6d740a7c IN  EasyFi: EZ Token0 Ether0.00362560627 78.040515533
0x79f6e5b147ac0dd027ab2f3fa943072d131b93ab3dfcd6f12939388b25d286deTransfer137776442021-12-10 13:23:264 days 20 hrs ago0x85692189c3d15bcbbbe208fc9b6f4f94bb750b04 IN  EasyFi: EZ Token0 Ether0.002463361355 50.33020095
0x739ef03beb992665e947de1237c282f049c5ebd06daec12ac2e1d95cda41132bTransfer137766152021-12-10 9:38:455 days 5 mins agoBinance 16 IN  EasyFi: EZ Token0 Ether0.00451651284
0x0c994b9b3419a45d61f970ba602bc3cc179e5a4cd335e7aaecafe910b871ffb1Transfer137762552021-12-10 8:23:045 days 1 hr agoAscendEX 3 IN  EasyFi: EZ Token0 Ether0.00333034802661.966880523
0x0cea3f0126b7996069a73d34d1a41abd7fcabf60f539c8f67769b58fe8d800a5Transfer137739842021-12-09 23:38:505 days 10 hrs ago0x618ffd1cdabee36ce5992a857cc7463f21272bd7 IN  EasyFi: EZ Token0 Ether0.010318848192
0x3b6b656084e7239e7c72a7a3b2768f3a97e6ad5359cdaafef613143c0e9197a9Approve137730172021-12-09 20:01:245 days 13 hrs ago0xda30ed32dbc0db17b0501643ba272bb2463cc0ff IN  EasyFi: EZ Token0 Ether0.003466001074 74.605042722
[ Download CSV Export 

OVERVIEW

Lending protocol for digital assets. EasyFi is a protocol built with a vision to solve some of the inherent challenges faced by gen 1 DeFi solutions with respect to the transaction speed and cost which are a bottleneck for DeFi operations at scale.

View more zero value Internal Transactions in Advanced View mode
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x1eb754b8355d3185a7429109bde75e473434b26b

Contract Name:
EasyToken

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-26
*/

/**
 *Submitted for verification at Etherscan.io on 2020-09-30
*/

/*
 * @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.
 */
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view 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 ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see {ERC20Detailed}.
 */
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);
}

/**
 * @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.
     *
     * _Available since v2.4.0._
     */
    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.
     *
     * _Available since v2.4.0._
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) 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.
     *
     * _Available since v2.4.0._
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20Mintable}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20};
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

     /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See {_burn} and {_approve}.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance"));
    }
}

contract EasyToken is ERC20 {

    uint public totalTokensAmount = 10000000;

    string public name = "EASY V2";
    string public symbol = "EZ";
    uint8 public decimals = 18;

    bool public paused = false;

    address public pauser;

    event Paused();
    event Unpaused();

    constructor() public {
        // mint totalTokensAmount times 10^decimals for operator
        _mint(_msgSender(), totalTokensAmount  * (10 ** uint256(decimals)));

        pauser = _msgSender();
    }

    function changePauser(address pauser_) external {
        require(_msgSender() == pauser, "Invalid access");
        pauser = pauser_;
    }

    function pause() external {
        require(_msgSender() == pauser, "Invalid access");
        paused = true;
        emit Paused();
    }

    function unpause() external {
        require(_msgSender() == pauser, "Invalid access");
        paused = false;
        pauser = address(0); //Can only be paused once
        emit Unpaused();
    }


    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    )
        internal
    {
        require(!paused, "Transfer is paused");
        super._transfer(sender, recipient, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"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":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"pauser_","type":"address"}],"name":"changePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pauser","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6298968060035560c0604052600760808190526622a0a9ac902b1960c91b60a09081526200003191600491906200025c565b506040805180820190915260028082526122ad60f11b60209092019182526200005d916005916200025c565b506006805461ff001960ff199091166012171690553480156200007f57600080fd5b50620000b5620000976001600160e01b03620000f416565b60065460035460ff909116600a0a026001600160e01b03620000f916565b620000c86001600160e01b03620000f416565b600660026101000a8154816001600160a01b0302191690836001600160a01b03160217905550620002fe565b335b90565b6001600160a01b03821662000155576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200017181600254620001fa60201b62000cff1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620001a491839062000cff620001fa821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008282018381101562000255576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029f57805160ff1916838001178555620002cf565b82800160010185558215620002cf579182015b82811115620002cf578251825591602001919060010190620002b2565b50620002dd929150620002e1565b5090565b620000f691905b80821115620002dd5760008155600101620002e8565b611081806200030e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80635c975abb116100b25780639fd0506d11610081578063a9059cbb11610066578063a9059cbb14610390578063dd62ed3e146103c9578063f26230f1146104045761011b565b80639fd0506d14610326578063a457c2d7146103575761011b565b80635c975abb146102db57806370a08231146102e35780638456cb591461031657806395d89b411461031e5761011b565b80632cd271e7116100ee5780632cd271e714610247578063313ce5671461027c578063395093511461029a5780633f4ba83a146102d35761011b565b806306fdde0314610120578063095ea7b31461019d57806318160ddd146101ea57806323b872dd14610204575b600080fd5b61012861040c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561016257818101518382015260200161014a565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d6600480360360408110156101b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356104b8565b604080519115158252519081900360200190f35b6101f26104d5565b60408051918252519081900360200190f35b6101d66004803603606081101561021a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104db565b61027a6004803603602081101561025d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610582565b005b610284610678565b6040805160ff9092168252519081900360200190f35b6101d6600480360360408110156102b057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610681565b61027a6106e2565b6101d66107de565b6101f2600480360360208110156102f957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ec565b61027a610814565b610128610914565b61032e61098d565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101d66004803603604081101561036d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356109af565b6101d6600480360360408110156103a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a2a565b6101f2600480360360408110156103df57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610a3e565b6101f2610a76565b6004805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104b05780601f10610485576101008083540402835291602001916104b0565b820191906000526020600020905b81548152906001019060200180831161049357829003601f168201915b505050505081565b60006104cc6104c5610a7c565b8484610a80565b50600192915050565b60025490565b60006104e8848484610bc7565b610578846104f4610a7c565b61057385604051806060016040528060288152602001610fb76028913973ffffffffffffffffffffffffffffffffffffffff8a1660009081526001602052604081209061053f610a7c565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054919063ffffffff610c4e16565b610a80565b5060019392505050565b60065462010000900473ffffffffffffffffffffffffffffffffffffffff166105a9610a7c565b73ffffffffffffffffffffffffffffffffffffffff161461062b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c696420616363657373000000000000000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b60065460ff1681565b60006104cc61068e610a7c565b84610573856001600061069f610a7c565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610cff16565b60065462010000900473ffffffffffffffffffffffffffffffffffffffff16610709610a7c565b73ffffffffffffffffffffffffffffffffffffffff161461078b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c696420616363657373000000000000000000000000000000000000604482015290519081900360640190fd5b600680547fffffffffffffffffffff000000000000000000000000000000000000000000ff1690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b600654610100900460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b60065462010000900473ffffffffffffffffffffffffffffffffffffffff1661083b610a7c565b73ffffffffffffffffffffffffffffffffffffffff16146108bd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c696420616363657373000000000000000000000000000000000000604482015290519081900360640190fd5b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6005805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156104b05780601f10610485576101008083540402835291602001916104b0565b60065462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60006104cc6109bc610a7c565b846105738560405180606001604052806025815260200161102860259139600160006109e6610a7c565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610c4e16565b60006104cc610a37610a7c565b8484610bc7565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60035481565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316610aec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806110046024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610f6f6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600654610100900460ff1615610c3e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f5472616e73666572206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b610c49838383610d7a565b505050565b60008184841115610cf7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbc578181015183820152602001610ca4565b50505050905090810190601f168015610ce95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610d7357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8316610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610fdf6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610f4c6023913960400191505060405180910390fd5b610ea281604051806060016040528060268152602001610f916026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919063ffffffff610c4e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152602081905260408082209390935590841681522054610ee4908263ffffffff610cff16565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820f4824b2034b6a107f3241830c85e467328bab0cd12757f462f40a6cdc59c318464736f6c63430005110032

Deployed ByteCode Sourcemap

17615:1272:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17615:1272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17701:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17701:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11870:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11870:152:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;10891:91;;;:::i;:::-;;;;;;;;;;;;;;;;12494:304;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12494:304:0;;;;;;;;;;;;;;;;;;:::i;18133:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18133:143:0;;;;:::i;:::-;;17772:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13207:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13207:210:0;;;;;;;;;:::i;18434:203::-;;;:::i;17807:26::-;;;:::i;11045:110::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11045:110:0;;;;:::i;18284:142::-;;;:::i;17738:27::-;;;:::i;17842:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13920:261;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13920:261:0;;;;;;;;;:::i;11368:158::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11368:158:0;;;;;;;;;:::i;11589:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11589:134:0;;;;;;;;;;;:::i;17652:40::-;;;:::i;17701:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11870:152::-;11936:4;11953:39;11962:12;:10;:12::i;:::-;11976:7;11985:6;11953:8;:39::i;:::-;-1:-1:-1;12010:4:0;11870:152;;;;:::o;10891:91::-;10962:12;;10891:91;:::o;12494:304::-;12583:4;12600:36;12610:6;12618:9;12629:6;12600:9;:36::i;:::-;12647:121;12656:6;12664:12;:10;:12::i;:::-;12678:89;12716:6;12678:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;12698:12;:10;:12::i;:::-;12678:33;;;;;;;;;;;;;-1:-1:-1;12678:33:0;;;:89;;:37;:89;:::i;:::-;12647:8;:121::i;:::-;-1:-1:-1;12786:4:0;12494:304;;;;;:::o;18133:143::-;18216:6;;;;;;;18200:12;:10;:12::i;:::-;:22;;;18192:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18252:6;:16;;;;;;;;;;;;;;;;;;18133:143::o;17772:26::-;;;;;;:::o;13207:210::-;13287:4;13304:83;13313:12;:10;:12::i;:::-;13327:7;13336:50;13375:10;13336:11;:25;13348:12;:10;:12::i;:::-;13336:25;;;;;;;;;;;;;;;;;;-1:-1:-1;13336:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;18434:203::-;18497:6;;;;;;;18481:12;:10;:12::i;:::-;:22;;;18473:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18533:6;:14;;18558:19;;;;18619:10;;;;18542:5;;18619:10;18434:203::o;17807:26::-;;;;;;;;;:::o;11045:110::-;11129:18;;11102:7;11129:18;;;;;;;;;;;;11045:110::o;18284:142::-;18345:6;;;;;;;18329:12;:10;:12::i;:::-;:22;;;18321:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18381:6;:13;;;;;;;;18410:8;;;;18381:13;;18410:8;18284:142::o;17738:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17842:21;;;;;;;;;:::o;13920:261::-;14005:4;14022:129;14031:12;:10;:12::i;:::-;14045:7;14054:96;14093:15;14054:96;;;;;;;;;;;;;;;;;:11;:25;14066:12;:10;:12::i;:::-;14054:25;;;;;;;;;;;;;;;;;;-1:-1:-1;14054:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;11368:158::-;11437:4;11454:42;11464:12;:10;:12::i;:::-;11478:9;11489:6;11454:9;:42::i;11589:134::-;11688:18;;;;11661:7;11688:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11589:134::o;17652:40::-;;;;:::o;850:98::-;930:10;850:98;:::o;16852:338::-;16946:19;;;16938:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17025:21;;;17017:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17098:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17150:32;;;;;;;;;;;;;;;;;16852:338;;;:::o;18647:237::-;18794:6;;;;;;;18793:7;18785:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18834:42;18850:6;18858:9;18869:6;18834:15;:42::i;:::-;18647:237;;;:::o;5743:192::-;5829:7;5865:12;5857:6;;;;5849:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5849:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5901:5:0;;;5743:192::o;4814:181::-;4872:7;4904:5;;;4928:6;;;;4920:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4986:1;4814:181;-1:-1:-1;;;4814:181:0:o;14671:471::-;14769:20;;;14761:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14850:23;;;14842:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14946;14968:6;14946:71;;;;;;;;;;;;;;;;;:17;;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;14926:17;;;;:9;:17;;;;;;;;;;;:91;;;;15051:20;;;;;;;:32;;15076:6;15051:32;:24;:32;:::i;:::-;15028:20;;;;:9;:20;;;;;;;;;;;;:55;;;;15099:35;;;;;;;15028:20;;15099:35;;;;;;;;;;;;;14671:471;;;:::o

Swarm Source

bzzr://f4824b2034b6a107f3241830c85e467328bab0cd12757f462f40a6cdc59c3184
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.