ETH Price: $3,266.34 (+1.85%)

Contract

0x9B39A0B97319a9bd5fed217c1dB7b030453bac91
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve209558872024-10-13 9:54:2389 days ago1728813263IN
TigerCash: Old TCH Token
0 ETH0.000225769.23363923
Approve207441152024-09-13 20:35:23119 days ago1726259723IN
TigerCash: Old TCH Token
0 ETH0.000162936.66392936
Transfer183925792023-10-20 15:58:59448 days ago1697817539IN
TigerCash: Old TCH Token
0 ETH0.0005143515.47270591
Approve183585022023-10-15 21:36:47453 days ago1697405807IN
TigerCash: Old TCH Token
0 ETH0.000143055.83662314
Approve183584982023-10-15 21:35:59453 days ago1697405759IN
TigerCash: Old TCH Token
0 ETH0.000152426.21889042
Transfer178866172023-08-10 19:37:11519 days ago1691696231IN
TigerCash: Old TCH Token
0 ETH0.0008569225.7775488
Transfer178866102023-08-10 19:35:47519 days ago1691696147IN
TigerCash: Old TCH Token
0 ETH0.0008833626.57309498
Transfer178866052023-08-10 19:34:47519 days ago1691696087IN
TigerCash: Old TCH Token
0 ETH0.0008863226.66213532
Transfer174041402023-06-04 1:58:11586 days ago1685843891IN
TigerCash: Old TCH Token
0 ETH0.00058917.71831382
Transfer174041362023-06-04 1:57:23586 days ago1685843843IN
TigerCash: Old TCH Token
0 ETH0.0006584219.80633415
Transfer174041312023-06-04 1:56:11586 days ago1685843771IN
TigerCash: Old TCH Token
0 ETH0.0006545419.68970125
Transfer168776832023-03-21 18:06:59661 days ago1679422019IN
TigerCash: Old TCH Token
0 ETH0.0008614425.92302993
Transfer168759242023-03-21 12:10:23661 days ago1679400623IN
TigerCash: Old TCH Token
0 ETH0.000414112.4705472
Transfer168747202023-03-21 8:05:59661 days ago1679385959IN
TigerCash: Old TCH Token
0 ETH0.0003905911.75385133
Transfer168747132023-03-21 8:04:35661 days ago1679385875IN
TigerCash: Old TCH Token
0 ETH0.0003731411.22876134
Approve168439082023-03-17 0:15:47665 days ago1679012147IN
TigerCash: Old TCH Token
0 ETH0.0008741335.82241752
Transfer158484732022-10-28 18:52:35805 days ago1666983155IN
TigerCash: Old TCH Token
0 ETH0.0007964323.95795022
Transfer158484682022-10-28 18:51:35805 days ago1666983095IN
TigerCash: Old TCH Token
0 ETH0.0006260418.83250945
Transfer158337702022-10-26 17:34:11807 days ago1666805651IN
TigerCash: Old TCH Token
0 ETH0.0007271721.88253993
Transfer156589322022-10-02 7:21:23831 days ago1664695283IN
TigerCash: Old TCH Token
0 ETH0.000498115
Transfer155994832022-09-23 23:58:23839 days ago1663977503IN
TigerCash: Old TCH Token
0 ETH0.000144734.35543422
Transfer153462062022-08-15 13:12:26879 days ago1660569146IN
TigerCash: Old TCH Token
0 ETH0.0005749217.30697173
Transfer153461982022-08-15 13:10:35879 days ago1660569035IN
TigerCash: Old TCH Token
0 ETH0.0005683317.09628407
Transfer151266302022-07-12 7:51:11913 days ago1657612271IN
TigerCash: Old TCH Token
0 ETH0.0006478819.51038156
Transfer151251142022-07-12 2:18:11913 days ago1657592291IN
TigerCash: Old TCH Token
0 ETH0.0005938617.87731914
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TigerCash

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-08-11
*/

pragma solidity 0.5.10;


/**
 * Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 */
library SafeMath {
    /**
     * 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;
    }

    /**
     * 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) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * 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.
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * 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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * 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) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

/**
 * @title Roles
 * Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

contract Ownable {
    address public owner;

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


    /**
     * The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }

    /**
     *Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: the caller must be owner");
        _;
    }

    /**
     * Allows the current owner to transfer control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function transferOwnership(address _newOwner) public onlyOwner {
        _transferOwnership(_newOwner);
    }

    /**
     * Transfers control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address _newOwner) internal {
        require(_newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

/**
 * Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */
interface IERC20 {
    /**
     * Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

    /**
     * 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);

    /**
     * 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);

    /**
     * Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * > 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);

    /**
     * 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);

    /**
     * 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);

    /**
     *  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);
}

/**
 *  Implementation of the `IERC20` interface.
 *
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) internal _balances;

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

    uint256 internal _totalSupply;

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

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

    /**
     *  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(msg.sender, recipient, amount);
        return true;
    }

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

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

    /**
     * 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 `value`.
     * - 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, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    /**
     * 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 increaseApproval(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     *  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 decreaseApproval(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     *  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);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     */
    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);
    }

    /**
     *  Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

}
/**
 *  Optional functions from the ERC20 standard.
 */
contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     *  Set the values for `name`, `symbol`, and `decimals`. All three of
     * these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    /**
     *  Return the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     *  Return the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     *  Return the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

/**
 *  Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 */
contract Pausable is Ownable {
    /**
     *  Emitted when the pause is triggered by a pauser (`account`).
     */
    event Paused(address account);

    /**
     *  Emitted when the pause is lifted by a pauser (`account`).
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     *  Initialize the contract in unpaused state. Assigns the Pauser role
     * to the deployer.
     */
    constructor () internal {
        _paused = false;
    }

    /**
     *  Return true if the contract is paused, and false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     *  Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused, "Pausable: paused");
        _;
    }

    /**
     *  Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused, "Pausable: not paused");
        _;
    }

    /**
     *  Called by a pauser to pause, triggers stopped state.
     */
    function pause() public onlyOwner whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     *  Called by a pauser to unpause, returns to normal state.
     */
    function unpause() public onlyOwner whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

/**
 * @title Pausable token
 *  ERC20 modified with pausable transfers.
 */
contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseApproval(address spender, uint addedValue) public whenNotPaused returns (bool) {
        return super.increaseApproval(spender, addedValue);
    }

    function decreaseApproval(address spender, uint subtractedValue) public whenNotPaused returns (bool) {
        return super.decreaseApproval(spender, subtractedValue);
    }
}

contract MinterRole is Ownable {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    modifier onlyMinter() {
        require(isMinter(msg.sender) || msg.sender == owner, "MinterRole: caller does not have the Minter role");
        _;
    }
    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyOwner {
        _addMinter(account);
    }

    function removeMinter(address account) public onlyOwner {
        _removeMinter(account);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

/**
 *  Extension of `ERC20` that adds a set of accounts with the `MinterRole`,
 * which have permission to mint (create) new tokens as they see fit.
 *
 * At construction, the deployer of the contract is the only minter.
 */
contract ERC20Mintable is ERC20, MinterRole {
    /**
     *  See `ERC20._mint`.
     *
     * Requirements:
     * - the caller must have the `MinterRole`.
     */
    function mint(address account, uint256 amount) public onlyMinter returns (bool) {
        _mint(account, amount);
        return true;
    }
}

/**
 *  Extension of `ERC20Mintable` that adds a cap to the supply of tokens.
 */
contract ERC20Capped is ERC20Mintable {
    uint256 internal _cap;
    bool public isFinishMint;

    /**
     * Returns the cap on the token's total supply.
     */
    function cap() public view returns (uint256) {
        return _cap;
    }

    /**
     *  See `ERC20Mintable.mint`.
     *
     * Requirements:
     *
     * - `value` must not cause the total supply to go over the cap.
     */
    function _mint(address account, uint256 value) internal {
        require(!isFinishMint, "ERC20Capped: minting has been finished");
        require(totalSupply().add(value) <= _cap, "ERC20Capped: cap exceeded");
        if(totalSupply().add(value) == _cap) {
            isFinishMint = true;
        }
        super._mint(account, value);
    }

    function finishMint() public onlyOwner {
        require(!isFinishMint, "ERC20Capped: minting has been finished");
        isFinishMint = true;
    }
}

/**
 * @title ERC20Burnable
 * Implement the function of ERC20 token burning.
 */
contract ERC20Burnable is ERC20, Ownable {

    event Burn(address indexed owner, uint256 amount);

    /**
     * @dev Burn a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
    function burn(uint256 _value) public onlyOwner {
        require(_value <= _balances[msg.sender], "ERC20Burnable: not enough token balance");
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        _balances[msg.sender] = _balances[msg.sender].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Burn(msg.sender, _value);
        emit Transfer(msg.sender, address(0), _value);
    }
}

/**
 *  Implementation of the TigerCash.
 */ 
contract TigerCash is ERC20Detailed, ERC20Pausable, ERC20Capped, ERC20Burnable {

    // The total amount of locks at the specified address.
    mapping (address => uint256) public totalLockAmount;
    // The amount of released addresses of the specified address.
    mapping (address => uint256) public releasedAmount;

    mapping (address => uint256) public lockedAmount;

    mapping (address => allocation[]) public allocations;

    struct allocation {
        uint256 releaseTime;
        uint256 releaseAmount;
    }

    event LockToken(address indexed beneficiary, uint256[] releaseAmounts, uint256[] releaseTimes);
    event ReleaseToken(address indexed user, uint256 releaseAmount, uint256 releaseTime);

    /**
     *  Initialize token basic information.
     */
    constructor(string memory token_name, string memory token_symbol, uint8 token_decimals, uint256 token_cap) public
        ERC20Detailed(token_name, token_symbol, token_decimals) {
        _cap = token_cap * 10 ** uint256(token_decimals);
        
    }

    /**
     *  Send the token to the beneficiary and lock it, and the timestamp and quantity of locks can be set by owner.
     * @param _beneficiary A specified address.
     * @param _releaseTimes Array,the timesamp of release token.
     * @param _releaseAmounts Array,the amount of release token.
     */
    function lockToken(address _beneficiary, uint256[] memory _releaseTimes, uint256[] memory _releaseAmounts) public onlyOwner returns(bool) {
        require(_beneficiary != address(0), "Token: the target address cannot be a zero address");
        require(_releaseTimes.length == _releaseAmounts.length, "Token: the array length must be equal");
        uint256 _lockedAmount;
        for (uint256 i = 0; i < _releaseTimes.length; i++) {
            _lockedAmount = _lockedAmount.add(_releaseAmounts[i]);
            require(_releaseAmounts[i] > 0, "Token: the amount must be greater than 0");
            require(_releaseTimes[i] >= now, "Token: the time must be greater than current time");
            //Save the locktoken information
            allocations[_beneficiary].push(allocation(_releaseTimes[i], _releaseAmounts[i]));
        }
        lockedAmount[_beneficiary] = lockedAmount[_beneficiary].add(_lockedAmount);
        totalLockAmount[_beneficiary] = totalLockAmount[_beneficiary].add(_lockedAmount);
        _balances[owner] = _balances[owner].sub(_lockedAmount); //Remove this part of the locked token from the owner.
        _balances[_beneficiary] = _balances[_beneficiary].add(_lockedAmount);
        emit Transfer(owner, _beneficiary, _lockedAmount);
        emit LockToken(_beneficiary, _releaseAmounts, _releaseTimes);
        return true;
    }

    /**
     * Rewrite the transfer function to automatically unlock the locked token.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        if(releasableAmount(msg.sender) > 0) {
            _releaseToken(msg.sender);
        }

        require(_balances[msg.sender].sub(lockedAmount[msg.sender]) >= value, "Token: not enough token balance");
        super.transfer(to, value);
        return true;
    }

    /**
     *  Rewrite the transferFrom function to automatically unlock the locked token.
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        if(releasableAmount(from) > 0) {
            _releaseToken(from);
        }
        require(_balances[from].sub(lockedAmount[from]) >= value, "Token: not enough token balance");
        super.transferFrom(from, to, value);
        return true;
    }

    /**
     *  Get the amount of current timestamps that can be released.
     * @param addr A specified address.
     */
    function releasableAmount(address addr) public view returns(uint256) {
        uint256 num = 0;
        for (uint256 i = 0; i < allocations[addr].length; i++) {
            if (now >= allocations[addr][i].releaseTime) {
                num = num.add(allocations[addr][i].releaseAmount);
            }
        }
        return num.sub(releasedAmount[addr]);
    }

    /**
     * Internal function, implement the basic functions of releasing tokens.
     */
    function _releaseToken(address _owner) internal returns(bool) {
        
        //Get the amount of release and update the lock-plans data.
        uint256 amount = releasableAmount(_owner);
        require(amount > 0, "Token: no releasable tokens");
        lockedAmount[_owner] = lockedAmount[_owner].sub(amount);
        releasedAmount[_owner] = releasedAmount[_owner].add(amount);
        // If the token on this address has been completely released, the address lock record and the total amount of locks and the released amount are cleared.
        if (releasedAmount[_owner] == totalLockAmount[_owner]) {
            delete allocations[_owner]; // Clear the address history data.
            totalLockAmount[_owner] = 0;
            releasedAmount[_owner] = 0;
            lockedAmount[_owner] = 0;
        }
        emit ReleaseToken(_owner, amount, now);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"allocations","outputs":[{"name":"releaseTime","type":"uint256"},{"name":"releaseAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"releasableAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"releasedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removeMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFinishMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"totalLockAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"},{"name":"_releaseTimes","type":"uint256[]"},{"name":"_releaseAmounts","type":"uint256[]"}],"name":"lockToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"token_name","type":"string"},{"name":"token_symbol","type":"string"},{"name":"token_decimals","type":"uint8"},{"name":"token_cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"releaseAmounts","type":"uint256[]"},{"indexed":false,"name":"releaseTimes","type":"uint256[]"}],"name":"LockToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"releaseAmount","type":"uint256"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"ReleaseToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040523480156200001157600080fd5b50604051620024f7380380620024f7833981810160405260808110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505092919060200180516401000000008111156200009c57600080fd5b82016020810184811115620000b057600080fd5b8151640100000000811182820187101715620000cb57600080fd5b50506020808301516040909301518651929550929350859185918591620000f9916000919086019062000154565b5081516200010f90600190602085019062000154565b506002805460ff191660ff92831617905560068054336001600160a01b03199091161760ff60a01b1916905593909316600a0a9190910260085550620001f992505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019757805160ff1916838001178555620001c7565b82800160010185558215620001c7579182015b82811115620001c7578251825591602001919060010190620001aa565b50620001d5929150620001d9565b5090565b620001f691905b80821115620001d55760008155600101620001e0565b90565b6122ee80620002096000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636618846311610104578063a6b3aae3116100a2578063d73dd62311610071578063d73dd623146106ad578063dd62ed3e146106d9578063e4cc18be14610707578063f2fde38b1461070f576101da565b8063a6b3aae3146104fe578063a9059cbb14610524578063aa271e1a14610550578063c1dfc81b14610576576101da565b80638da5cb5b116100de5780638da5cb5b1461048657806395d89b41146104aa578063983b2d56146104b2578063a153e708146104d8576101da565b8063661884631461042c57806370a08231146104585780638456cb591461047e576101da565b80633092afd51161017c57806340c10f191161014b57806340c10f19146103d357806342966c68146103ff578063572b40321461041c5780635c975abb14610424576101da565b80633092afd51461037d578063313ce567146103a5578063355274ea146103c35780633f4ba83a146103cb576101da565b80631726cbc8116101b85780631726cbc8146102e157806318160ddd146103195780631cf1bb721461032157806323b872dd14610347576101da565b8063010bc33c146101df57806306fdde0314610224578063095ea7b3146102a1575b600080fd5b61020b600480360360408110156101f557600080fd5b506001600160a01b038135169060200135610735565b6040805192835260208301919091528051918290030190f35b61022c61076e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026657818101518382015260200161024e565b50505050905090810190601f1680156102935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cd600480360360408110156102b757600080fd5b506001600160a01b038135169060200135610805565b604080519115158252519081900360200190f35b610307600480360360208110156102f757600080fd5b50356001600160a01b031661086b565b60408051918252519081900360200190f35b61030761094c565b6103076004803603602081101561033757600080fd5b50356001600160a01b0316610952565b6102cd6004803603606081101561035d57600080fd5b506001600160a01b03813581169160208101359091169060400135610964565b6103a36004803603602081101561039357600080fd5b50356001600160a01b0316610a21565b005b6103ad610a76565b6040805160ff9092168252519081900360200190f35b610307610a7f565b6103a3610a85565b6102cd600480360360408110156103e957600080fd5b506001600160a01b038135169060200135610b65565b6103a36004803603602081101561041557600080fd5b5035610bd3565b6102cd610d0f565b6102cd610d18565b6102cd6004803603604081101561044257600080fd5b506001600160a01b038135169060200135610d28565b6103076004803603602081101561046e57600080fd5b50356001600160a01b0316610d87565b6103a3610da2565b61048e610e85565b604080516001600160a01b039092168252519081900360200190f35b61022c610e94565b6103a3600480360360208110156104c857600080fd5b50356001600160a01b0316610ef4565b610307600480360360208110156104ee57600080fd5b50356001600160a01b0316610f46565b6103076004803603602081101561051457600080fd5b50356001600160a01b0316610f58565b6102cd6004803603604081101561053a57600080fd5b506001600160a01b038135169060200135610f6a565b6102cd6004803603602081101561056657600080fd5b50356001600160a01b031661101c565b6102cd6004803603606081101561058c57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105b757600080fd5b8201836020820111156105c957600080fd5b803590602001918460208302840111640100000000831117156105eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561063b57600080fd5b82018360208201111561064d57600080fd5b8035906020019184602083028401116401000000008311171561066f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611035945050505050565b6102cd600480360360408110156106c357600080fd5b506001600160a01b03813516906020013561145a565b610307600480360360408110156106ef57600080fd5b506001600160a01b03813581169160200135166114b9565b6103a36114e4565b6103a36004803603602081101561072557600080fd5b50356001600160a01b031661157e565b600d602052816000526040600020818154811061074e57fe5b600091825260209091206002909102018054600190910154909250905082565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b820191906000526020600020905b8154815290600101906020018083116107dd57829003601f168201915b505050505090505b90565b600654600090600160a01b900460ff161561085a576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836115d0565b9392505050565b600080805b6001600160a01b0384166000908152600d6020526040902054811015610921576001600160a01b0384166000908152600d602052604090208054829081106108b457fe5b9060005260206000209060020201600001544210610919576001600160a01b0384166000908152600d6020526040902080546109169190839081106108f557fe5b906000526020600020906002020160010154836115dd90919063ffffffff16565b91505b600101610870565b506001600160a01b0383166000908152600b602052604090205461086490829063ffffffff61163716565b60055490565b600b6020526000908152604090205481565b6000806109708561086b565b11156109815761097f84611694565b505b6001600160a01b0384166000908152600c602090815260408083205460039092529091205483916109b8919063ffffffff61163716565b1015610a0b576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b610a16848484611820565b506001949350505050565b6006546001600160a01b03163314610a6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611888565b50565b60025460ff1690565b60085490565b6006546001600160a01b03163314610ace5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff16610b23576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805460ff60a01b191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610b703361101c565b80610b8557506006546001600160a01b031633145b610bc05760405162461bcd60e51b81526004018080602001828103825260308152602001806121406030913960400191505060405180910390fd5b610bca83836118d0565b50600192915050565b6006546001600160a01b03163314610c1c5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b33600090815260036020526040902054811115610c6a5760405162461bcd60e51b81526004018080602001828103825260278152602001806120e86027913960400191505060405180910390fd5b33600090815260036020526040902054610c8a908263ffffffff61163716565b33600090815260036020526040902055600554610cad908263ffffffff61163716565b60055560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051828152905160009133916000805160206121e58339815191529181900360200190a350565b60095460ff1681565b600654600160a01b900460ff1690565b600654600090600160a01b900460ff1615610d7d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836119b1565b6001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610deb5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff1615610e3d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006805460ff60a01b1916600160a01b1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6006546001600160a01b031681565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b6006546001600160a01b03163314610f3d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a73816119f2565b600c6020526000908152604090205481565b600a6020526000908152604090205481565b600080610f763361086b565b1115610f8757610f8533611694565b505b336000908152600c60209081526040808320546003909252909120548391610fb5919063ffffffff61163716565b1015611008576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b6110128383611a3a565b5060019392505050565b600061102f60078363ffffffff611a9916565b92915050565b6006546000906001600160a01b031633146110815760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b6001600160a01b0384166110c65760405162461bcd60e51b81526004018080602001828103825260328152602001806121916032913960400191505060405180910390fd5b81518351146111065760405162461bcd60e51b81526004018080602001828103825260258152602001806122956025913960400191505060405180910390fd5b6000805b845181101561126d5761113984828151811061112257fe5b6020026020010151836115dd90919063ffffffff16565b9150600084828151811061114957fe5b60200260200101511161118d5760405162461bcd60e51b81526004018080602001828103825260288152602001806120786028913960400191505060405180910390fd5b4285828151811061119a57fe5b602002602001015110156111df5760405162461bcd60e51b815260040180806020018281038252603181526020018061210f6031913960400191505060405180910390fd5b600d6000876001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061121b57fe5b6020026020010151815260200186848151811061123457fe5b6020908102919091018101519091528254600181810185556000948552938290208351600290920201908155910151908201550161110a565b506001600160a01b0385166000908152600c6020526040902054611297908263ffffffff6115dd16565b6001600160a01b0386166000908152600c6020908152604080832093909355600a905220546112cc908263ffffffff6115dd16565b6001600160a01b038087166000908152600a602090815260408083209490945560065490921681526003909152205461130b908263ffffffff61163716565b6006546001600160a01b039081166000908152600360205260408082209390935590871681522054611343908263ffffffff6115dd16565b6001600160a01b03808716600081815260036020908152604091829020949094556006548151868152915192949316926000805160206121e583398151915292918290030190a3846001600160a01b03167f8c8c8463f847d83e72b703e7e1b28ccf15a9053b3889b1ae0df933a38a2d01638486604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156113fb5781810151838201526020016113e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561143a578181015183820152602001611422565b5050505090500194505050505060405180910390a2506001949350505050565b600654600090600160a01b900460ff16156114af576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611b00565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6006546001600160a01b0316331461152d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b60095460ff161561156f5760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b6009805460ff19166001179055565b6006546001600160a01b031633146115c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611b3c565b6000610bca338484611bdd565b600082820183811015610864576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561168e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000806116a08361086b565b9050600081116116f7576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206e6f2072656c65617361626c6520746f6b656e730000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600c6020526040902054611720908263ffffffff61163716565b6001600160a01b0384166000908152600c6020908152604080832093909355600b90522054611755908263ffffffff6115dd16565b6001600160a01b0384166000908152600b60208181526040808420859055600a825290922054915214156117d5576001600160a01b0383166000908152600d602052604081206117a491612014565b6001600160a01b0383166000908152600a60209081526040808320839055600b8252808320839055600c9091528120555b6040805182815242602082015281516001600160a01b038616927f5a2536278184a2bc9988c418f737538d0903d5ee8944d2d784ce41fd82b17415928290030190a250600192915050565b600654600090600160a01b900460ff1615611875576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611880848484611cc9565b949350505050565b61189960078263ffffffff611d1116565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60095460ff16156119125760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b60085461192d8261192161094c565b9063ffffffff6115dd16565b1115611980576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b60085461198f8261192161094c565b14156119a3576009805460ff191660011790555b6119ad8282611d78565b5050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff61163716565b611bdd565b611a0360078263ffffffff611e5816565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600654600090600160a01b900460ff1615611a8f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611ed9565b60006001600160a01b038216611ae05760405162461bcd60e51b81526004018080602001828103825260228152602001806121c36022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff6115dd16565b6001600160a01b038116611b815760405162461bcd60e51b81526004018080602001828103825260268152602001806120a06026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611c225760405162461bcd60e51b81526004018080602001828103825260248152602001806122506024913960400191505060405180910390fd5b6001600160a01b038216611c675760405162461bcd60e51b81526004018080602001828103825260228152602001806120c66022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611cd6848484611ee2565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546110129186916119ed908663ffffffff61163716565b611d1b8282611a99565b611d565760405162461bcd60e51b81526004018080602001828103825260218152602001806121706021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038216611dd3576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600554611de6908263ffffffff6115dd16565b6005556001600160a01b038216600090815260036020526040902054611e12908263ffffffff6115dd16565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391926000805160206121e58339815191529281900390910190a35050565b611e628282611a99565b15611eb4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610bca3384845b6001600160a01b038316611f275760405162461bcd60e51b81526004018080602001828103825260258152602001806122056025913960400191505060405180910390fd5b6001600160a01b038216611f6c5760405162461bcd60e51b81526004018080602001828103825260238152602001806120556023913960400191505060405180910390fd5b6001600160a01b038316600090815260036020526040902054611f95908263ffffffff61163716565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611fca908263ffffffff6115dd16565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716926000805160206121e583398151915292918290030190a3505050565b5080546000825560020290600052602060002090810190610a73919061080291905b808211156120505760008082556001820155600201612036565b509056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373546f6b656e3a2074686520616d6f756e74206d7573742062652067726561746572207468616e20304f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332304275726e61626c653a206e6f7420656e6f75676820746f6b656e2062616c616e6365546f6b656e3a207468652074696d65206d7573742062652067726561746572207468616e2063757272656e742074696d654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65546f6b656e3a207468652074617267657420616464726573732063616e6e6f742062652061207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332304361707065643a206d696e74696e6720686173206265656e2066696e697368656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a207468652063616c6c6572206d757374206265206f776e6572546f6b656e3a20746865206172726179206c656e677468206d75737420626520657175616ca265627a7a7230582032d2c6730282ffbf163bfb3ef29ab9c581c33acc5034332da3aefef5ca4c8a2864736f6c634300050a0032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000009546967657243617368000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035443480000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636618846311610104578063a6b3aae3116100a2578063d73dd62311610071578063d73dd623146106ad578063dd62ed3e146106d9578063e4cc18be14610707578063f2fde38b1461070f576101da565b8063a6b3aae3146104fe578063a9059cbb14610524578063aa271e1a14610550578063c1dfc81b14610576576101da565b80638da5cb5b116100de5780638da5cb5b1461048657806395d89b41146104aa578063983b2d56146104b2578063a153e708146104d8576101da565b8063661884631461042c57806370a08231146104585780638456cb591461047e576101da565b80633092afd51161017c57806340c10f191161014b57806340c10f19146103d357806342966c68146103ff578063572b40321461041c5780635c975abb14610424576101da565b80633092afd51461037d578063313ce567146103a5578063355274ea146103c35780633f4ba83a146103cb576101da565b80631726cbc8116101b85780631726cbc8146102e157806318160ddd146103195780631cf1bb721461032157806323b872dd14610347576101da565b8063010bc33c146101df57806306fdde0314610224578063095ea7b3146102a1575b600080fd5b61020b600480360360408110156101f557600080fd5b506001600160a01b038135169060200135610735565b6040805192835260208301919091528051918290030190f35b61022c61076e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026657818101518382015260200161024e565b50505050905090810190601f1680156102935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cd600480360360408110156102b757600080fd5b506001600160a01b038135169060200135610805565b604080519115158252519081900360200190f35b610307600480360360208110156102f757600080fd5b50356001600160a01b031661086b565b60408051918252519081900360200190f35b61030761094c565b6103076004803603602081101561033757600080fd5b50356001600160a01b0316610952565b6102cd6004803603606081101561035d57600080fd5b506001600160a01b03813581169160208101359091169060400135610964565b6103a36004803603602081101561039357600080fd5b50356001600160a01b0316610a21565b005b6103ad610a76565b6040805160ff9092168252519081900360200190f35b610307610a7f565b6103a3610a85565b6102cd600480360360408110156103e957600080fd5b506001600160a01b038135169060200135610b65565b6103a36004803603602081101561041557600080fd5b5035610bd3565b6102cd610d0f565b6102cd610d18565b6102cd6004803603604081101561044257600080fd5b506001600160a01b038135169060200135610d28565b6103076004803603602081101561046e57600080fd5b50356001600160a01b0316610d87565b6103a3610da2565b61048e610e85565b604080516001600160a01b039092168252519081900360200190f35b61022c610e94565b6103a3600480360360208110156104c857600080fd5b50356001600160a01b0316610ef4565b610307600480360360208110156104ee57600080fd5b50356001600160a01b0316610f46565b6103076004803603602081101561051457600080fd5b50356001600160a01b0316610f58565b6102cd6004803603604081101561053a57600080fd5b506001600160a01b038135169060200135610f6a565b6102cd6004803603602081101561056657600080fd5b50356001600160a01b031661101c565b6102cd6004803603606081101561058c57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105b757600080fd5b8201836020820111156105c957600080fd5b803590602001918460208302840111640100000000831117156105eb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561063b57600080fd5b82018360208201111561064d57600080fd5b8035906020019184602083028401116401000000008311171561066f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611035945050505050565b6102cd600480360360408110156106c357600080fd5b506001600160a01b03813516906020013561145a565b610307600480360360408110156106ef57600080fd5b506001600160a01b03813581169160200135166114b9565b6103a36114e4565b6103a36004803603602081101561072557600080fd5b50356001600160a01b031661157e565b600d602052816000526040600020818154811061074e57fe5b600091825260209091206002909102018054600190910154909250905082565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b820191906000526020600020905b8154815290600101906020018083116107dd57829003601f168201915b505050505090505b90565b600654600090600160a01b900460ff161561085a576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836115d0565b9392505050565b600080805b6001600160a01b0384166000908152600d6020526040902054811015610921576001600160a01b0384166000908152600d602052604090208054829081106108b457fe5b9060005260206000209060020201600001544210610919576001600160a01b0384166000908152600d6020526040902080546109169190839081106108f557fe5b906000526020600020906002020160010154836115dd90919063ffffffff16565b91505b600101610870565b506001600160a01b0383166000908152600b602052604090205461086490829063ffffffff61163716565b60055490565b600b6020526000908152604090205481565b6000806109708561086b565b11156109815761097f84611694565b505b6001600160a01b0384166000908152600c602090815260408083205460039092529091205483916109b8919063ffffffff61163716565b1015610a0b576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b610a16848484611820565b506001949350505050565b6006546001600160a01b03163314610a6a5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611888565b50565b60025460ff1690565b60085490565b6006546001600160a01b03163314610ace5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff16610b23576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805460ff60a01b191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6000610b703361101c565b80610b8557506006546001600160a01b031633145b610bc05760405162461bcd60e51b81526004018080602001828103825260308152602001806121406030913960400191505060405180910390fd5b610bca83836118d0565b50600192915050565b6006546001600160a01b03163314610c1c5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b33600090815260036020526040902054811115610c6a5760405162461bcd60e51b81526004018080602001828103825260278152602001806120e86027913960400191505060405180910390fd5b33600090815260036020526040902054610c8a908263ffffffff61163716565b33600090815260036020526040902055600554610cad908263ffffffff61163716565b60055560408051828152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a260408051828152905160009133916000805160206121e58339815191529181900360200190a350565b60095460ff1681565b600654600160a01b900460ff1690565b600654600090600160a01b900460ff1615610d7d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b61086483836119b1565b6001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610deb5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b600654600160a01b900460ff1615610e3d576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6006805460ff60a01b1916600160a01b1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6006546001600160a01b031681565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156107fa5780601f106107cf576101008083540402835291602001916107fa565b6006546001600160a01b03163314610f3d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a73816119f2565b600c6020526000908152604090205481565b600a6020526000908152604090205481565b600080610f763361086b565b1115610f8757610f8533611694565b505b336000908152600c60209081526040808320546003909252909120548391610fb5919063ffffffff61163716565b1015611008576040805162461bcd60e51b815260206004820152601f60248201527f546f6b656e3a206e6f7420656e6f75676820746f6b656e2062616c616e636500604482015290519081900360640190fd5b6110128383611a3a565b5060019392505050565b600061102f60078363ffffffff611a9916565b92915050565b6006546000906001600160a01b031633146110815760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b6001600160a01b0384166110c65760405162461bcd60e51b81526004018080602001828103825260328152602001806121916032913960400191505060405180910390fd5b81518351146111065760405162461bcd60e51b81526004018080602001828103825260258152602001806122956025913960400191505060405180910390fd5b6000805b845181101561126d5761113984828151811061112257fe5b6020026020010151836115dd90919063ffffffff16565b9150600084828151811061114957fe5b60200260200101511161118d5760405162461bcd60e51b81526004018080602001828103825260288152602001806120786028913960400191505060405180910390fd5b4285828151811061119a57fe5b602002602001015110156111df5760405162461bcd60e51b815260040180806020018281038252603181526020018061210f6031913960400191505060405180910390fd5b600d6000876001600160a01b03166001600160a01b03168152602001908152602001600020604051806040016040528087848151811061121b57fe5b6020026020010151815260200186848151811061123457fe5b6020908102919091018101519091528254600181810185556000948552938290208351600290920201908155910151908201550161110a565b506001600160a01b0385166000908152600c6020526040902054611297908263ffffffff6115dd16565b6001600160a01b0386166000908152600c6020908152604080832093909355600a905220546112cc908263ffffffff6115dd16565b6001600160a01b038087166000908152600a602090815260408083209490945560065490921681526003909152205461130b908263ffffffff61163716565b6006546001600160a01b039081166000908152600360205260408082209390935590871681522054611343908263ffffffff6115dd16565b6001600160a01b03808716600081815260036020908152604091829020949094556006548151868152915192949316926000805160206121e583398151915292918290030190a3846001600160a01b03167f8c8c8463f847d83e72b703e7e1b28ccf15a9053b3889b1ae0df933a38a2d01638486604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156113fb5781810151838201526020016113e3565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561143a578181015183820152602001611422565b5050505090500194505050505060405180910390a2506001949350505050565b600654600090600160a01b900460ff16156114af576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611b00565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6006546001600160a01b0316331461152d5760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b60095460ff161561156f5760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b6009805460ff19166001179055565b6006546001600160a01b031633146115c75760405162461bcd60e51b81526004018080602001828103825260218152602001806122746021913960400191505060405180910390fd5b610a7381611b3c565b6000610bca338484611bdd565b600082820183811015610864576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561168e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000806116a08361086b565b9050600081116116f7576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206e6f2072656c65617361626c6520746f6b656e730000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600c6020526040902054611720908263ffffffff61163716565b6001600160a01b0384166000908152600c6020908152604080832093909355600b90522054611755908263ffffffff6115dd16565b6001600160a01b0384166000908152600b60208181526040808420859055600a825290922054915214156117d5576001600160a01b0383166000908152600d602052604081206117a491612014565b6001600160a01b0383166000908152600a60209081526040808320839055600b8252808320839055600c9091528120555b6040805182815242602082015281516001600160a01b038616927f5a2536278184a2bc9988c418f737538d0903d5ee8944d2d784ce41fd82b17415928290030190a250600192915050565b600654600090600160a01b900460ff1615611875576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611880848484611cc9565b949350505050565b61189960078263ffffffff611d1116565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b60095460ff16156119125760405162461bcd60e51b815260040180806020018281038252602681526020018061222a6026913960400191505060405180910390fd5b60085461192d8261192161094c565b9063ffffffff6115dd16565b1115611980576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b60085461198f8261192161094c565b14156119a3576009805460ff191660011790555b6119ad8282611d78565b5050565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff61163716565b611bdd565b611a0360078263ffffffff611e5816565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b600654600090600160a01b900460ff1615611a8f576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6108648383611ed9565b60006001600160a01b038216611ae05760405162461bcd60e51b81526004018080602001828103825260228152602001806121c36022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610bca9185906119ed908663ffffffff6115dd16565b6001600160a01b038116611b815760405162461bcd60e51b81526004018080602001828103825260268152602001806120a06026913960400191505060405180910390fd5b6006546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611c225760405162461bcd60e51b81526004018080602001828103825260248152602001806122506024913960400191505060405180910390fd5b6001600160a01b038216611c675760405162461bcd60e51b81526004018080602001828103825260228152602001806120c66022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611cd6848484611ee2565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546110129186916119ed908663ffffffff61163716565b611d1b8282611a99565b611d565760405162461bcd60e51b81526004018080602001828103825260218152602001806121706021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6001600160a01b038216611dd3576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600554611de6908263ffffffff6115dd16565b6005556001600160a01b038216600090815260036020526040902054611e12908263ffffffff6115dd16565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391926000805160206121e58339815191529281900390910190a35050565b611e628282611a99565b15611eb4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610bca3384845b6001600160a01b038316611f275760405162461bcd60e51b81526004018080602001828103825260258152602001806122056025913960400191505060405180910390fd5b6001600160a01b038216611f6c5760405162461bcd60e51b81526004018080602001828103825260238152602001806120556023913960400191505060405180910390fd5b6001600160a01b038316600090815260036020526040902054611f95908263ffffffff61163716565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611fca908263ffffffff6115dd16565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716926000805160206121e583398151915292918290030190a3505050565b5080546000825560020290600052602060002090810190610a73919061080291905b808211156120505760008082556001820155600201612036565b509056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373546f6b656e3a2074686520616d6f756e74206d7573742062652067726561746572207468616e20304f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332304275726e61626c653a206e6f7420656e6f75676820746f6b656e2062616c616e6365546f6b656e3a207468652074696d65206d7573742062652067726561746572207468616e2063757272656e742074696d654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65546f6b656e3a207468652074617267657420616464726573732063616e6e6f742062652061207a65726f2061646472657373526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332304361707065643a206d696e74696e6720686173206265656e2066696e697368656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a207468652063616c6c6572206d757374206265206f776e6572546f6b656e3a20746865206172726179206c656e677468206d75737420626520657175616ca265627a7a7230582032d2c6730282ffbf163bfb3ef29ab9c581c33acc5034332da3aefef5ca4c8a2864736f6c634300050a0032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000009546967657243617368000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035443480000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : token_name (string): TigerCash
Arg [1] : token_symbol (string): TCH
Arg [2] : token_decimals (uint8): 18
Arg [3] : token_cap (uint256): 1000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 5469676572436173680000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5443480000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

20512:5205:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20512:5205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20901:52;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20901:52:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13862:83;;;:::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;13862:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16548:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16548:140:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;24332:370;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24332:370:0;-1:-1:-1;;;;;24332:370:0;;:::i;:::-;;;;;;;;;;;;;;;;8317:91;;;:::i;20785:50::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20785:50:0;-1:-1:-1;;;;;20785:50:0;;:::i;23846:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23846:351:0;;;;;;;;;;;;;;;;;:::i;17641:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17641:97:0;-1:-1:-1;;;;;17641:97:0;;:::i;:::-;;14388:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18833:75;;;:::i;15986:117::-;;;:::i;18421:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18421:143:0;;;;;;;;:::i;19910:546::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19910:546:0;;:::i;18729:24::-;;;:::i;15212:78::-;;;:::i;16869:175::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16869:175:0;;;;;;;;:::i;8467:110::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8467:110:0;-1:-1:-1;;;;;8467:110:0;;:::i;15780:115::-;;;:::i;4047:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;4047:20:0;;;;;;;;;;;;;;14059:87;;;:::i;17542:91::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17542:91:0;-1:-1:-1;;;;;17542:91:0;;:::i;20844:48::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20844:48:0;-1:-1:-1;;;;;20844:48:0;;:::i;20660:51::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20660:51:0;-1:-1:-1;;;;;20660:51:0;;:::i;23386:349::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23386:349:0;;;;;;;;:::i;17425:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17425:109:0;-1:-1:-1;;;;;17425:109:0;;:::i;21895:1385::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;21895:1385:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;21895:1385:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21895:1385:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21895:1385:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21895:1385:0;;;;;;;;-1:-1:-1;21895:1385:0;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;21895:1385:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;21895:1385:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21895:1385:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21895:1385:0;;-1:-1:-1;21895:1385:0;;-1:-1:-1;;;;;21895:1385:0:i;16696:165::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16696:165:0;;;;;;;;:::i;9001:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9001:134:0;;;;;;;;;;:::i;19436:152::-;;;:::i;4728:111::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4728:111:0;-1:-1:-1;;;;;4728:111:0;;:::i;20901:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20901:52:0;-1:-1:-1;20901:52:0;:::o;13862:83::-;13932:5;13925:12;;;;;;;;-1:-1:-1;;13925:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13899:13;;13925:12;;13932:5;;13925:12;;13932:5;13925:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13862:83;;:::o;16548:140::-;15445:7;;16627:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16651:29;16665:7;16674:5;16651:13;:29::i;:::-;16644:36;16548:140;-1:-1:-1;;;16548:140:0:o;24332:370::-;24392:7;;;24438:210;-1:-1:-1;;;;;24462:17:0;;;;;;:11;:17;;;;;:24;24458:28;;24438:210;;;-1:-1:-1;;;;;24519:17:0;;;;;;:11;:17;;;;;:20;;24537:1;;24519:20;;;;;;;;;;;;;;;;:32;;;24512:3;:39;24508:129;;-1:-1:-1;;;;;24586:17:0;;;;;;:11;:17;;;;;:20;;24578:43;;24586:17;24604:1;;24586:20;;;;;;;;;;;;;;;;:34;;;24578:3;:7;;:43;;;;:::i;:::-;24572:49;;24508:129;24488:3;;24438:210;;;-1:-1:-1;;;;;;24673:20:0;;;;;;:14;:20;;;;;;24665:29;;:3;;:29;:7;:29;:::i;8317:91::-;8388:12;;8317:91;:::o;20785:50::-;;;;;;;;;;;;;:::o;23846:351::-;23925:4;23970:1;23945:22;23962:4;23945:16;:22::i;:::-;:26;23942:77;;;23988:19;24002:4;23988:13;:19::i;:::-;;23942:77;-1:-1:-1;;;;;24057:18:0;;;;;;:12;:18;;;;;;;;;24037:9;:15;;;;;;;24080:5;;24037:39;;:15;:39;:19;:39;:::i;:::-;:48;;24029:92;;;;;-1:-1:-1;;;24029:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24132:35;24151:4;24157:2;24161:5;24132:18;:35::i;:::-;-1:-1:-1;24185:4:0;;23846:351;-1:-1:-1;;;;23846:351:0:o;17641:97::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17708:22;17722:7;17708:13;:22::i;:::-;17641:97;:::o;14388:83::-;14454:9;;;;14388:83;:::o;18833:75::-;18896:4;;18833:75;:::o;15986:117::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15640:7;;-1:-1:-1;;;15640:7:0;;;;15632:40;;;;;-1:-1:-1;;;15632:40:0;;;;;;;;;;;;-1:-1:-1;;;15632:40:0;;;;;;;;;;;;;;;16044:7;:15;;-1:-1:-1;;;;16044:15:0;;;16075:20;;;16084:10;16075:20;;;;;;;;;;;;;15986:117::o;18421:143::-;18495:4;17303:20;17312:10;17303:8;:20::i;:::-;:43;;;-1:-1:-1;17341:5:0;;-1:-1:-1;;;;;17341:5:0;17327:10;:19;17303:43;17295:104;;;;-1:-1:-1;;;17295:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18512:22;18518:7;18527:6;18512:5;:22::i;:::-;-1:-1:-1;18552:4:0;18421:143;;;;:::o;19910:546::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19996:10;19986:21;;;;:9;:21;;;;;;19976:31;;;19968:83;;;;-1:-1:-1;;;19968:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20279:10;20269:21;;;;:9;:21;;;;;;:33;;20295:6;20269:33;:25;:33;:::i;:::-;20255:10;20245:21;;;;:9;:21;;;;;:57;20328:12;;:24;;20345:6;20328:24;:16;:24;:::i;:::-;20313:12;:39;20368:24;;;;;;;;20373:10;;20368:24;;;;;;;;;;20408:40;;;;;;;;20437:1;;20417:10;;-1:-1:-1;;;;;;;;;;;20408:40:0;;;;;;;;19910:546;:::o;18729:24::-;;;;;;:::o;15212:78::-;15275:7;;-1:-1:-1;;;15275:7:0;;;;;15212:78::o;16869:175::-;15445:7;;16964:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16988:48;17011:7;17020:15;16988:22;:48::i;8467:110::-;-1:-1:-1;;;;;8551:18:0;8524:7;8551:18;;;:9;:18;;;;;;;8467:110::o;15780:115::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15445:7;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;15839:7;:14;;-1:-1:-1;;;;15839:14:0;-1:-1:-1;;;15839:14:0;;;15869:18;;;15876:10;15869:18;;;;;;;;;;;;;15780:115::o;4047:20::-;;;-1:-1:-1;;;;;4047:20:0;;:::o;14059:87::-;14131:7;14124:14;;;;;;;;-1:-1:-1;;14124:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14098:13;;14124:14;;14131:7;;14124:14;;14131:7;14124:14;;;;;;;;;;;;;;;;;;;;;;;;17542:91;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17606:19;17617:7;17606:10;:19::i;20844:48::-;;;;;;;;;;;;;:::o;20660:51::-;;;;;;;;;;;;;:::o;23386:349::-;23447:4;23498:1;23467:28;23484:10;23467:16;:28::i;:::-;:32;23464:89;;;23516:25;23530:10;23516:13;:25::i;:::-;;23464:89;23612:10;23599:24;;;;:12;:24;;;;;;;;;23573:9;:21;;;;;;;23628:5;;23573:51;;:21;:51;:25;:51;:::i;:::-;:60;;23565:104;;;;;-1:-1:-1;;;23565:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23680:25;23695:2;23699:5;23680:14;:25::i;:::-;-1:-1:-1;23723:4:0;;23386:349;-1:-1:-1;;;23386:349:0:o;17425:109::-;17481:4;17505:21;:8;17518:7;17505:21;:12;:21;:::i;:::-;17498:28;17425:109;-1:-1:-1;;17425:109:0:o;21895:1385::-;4492:5;;22027:4;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22052:26:0;;22044:89;;;;-1:-1:-1;;;22044:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22176:15;:22;22152:13;:20;:46;22144:96;;;;-1:-1:-1;;;22144:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22251:21;;22283:462;22307:13;:20;22303:1;:24;22283:462;;;22365:37;22383:15;22399:1;22383:18;;;;;;;;;;;;;;22365:13;:17;;:37;;;;:::i;:::-;22349:53;;22446:1;22425:15;22441:1;22425:18;;;;;;;;;;;;;;:22;22417:75;;;;-1:-1:-1;;;22417:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22535:3;22515:13;22529:1;22515:16;;;;;;;;;;;;;;:23;;22507:85;;;;-1:-1:-1;;;22507:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22653:11;:25;22665:12;-1:-1:-1;;;;;22653:25:0;-1:-1:-1;;;;;22653:25:0;;;;;;;;;;;;22684:48;;;;;;;;22695:13;22709:1;22695:16;;;;;;;;;;;;;;22684:48;;;;22713:15;22729:1;22713:18;;;;;;;;;;;;;;;;;;;22684:48;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;22653:80:0;;;;;;;;;;;;;;;;;;;;;;;;22329:3;22283:462;;;-1:-1:-1;;;;;;22784:26:0;;;;;;:12;:26;;;;;;:45;;22815:13;22784:45;:30;:45;:::i;:::-;-1:-1:-1;;;;;22755:26:0;;;;;;:12;:26;;;;;;;;:74;;;;22872:15;:29;;;;:48;;22906:13;22872:48;:33;:48;:::i;:::-;-1:-1:-1;;;;;22840:29:0;;;;;;;:15;:29;;;;;;;;:80;;;;22960:5;;;;;22950:16;;:9;:16;;;;;:35;;22971:13;22950:35;:20;:35;:::i;:::-;22941:5;;-1:-1:-1;;;;;22941:5:0;;;22931:16;;;;:9;:16;;;;;;:54;;;;23077:23;;;;;;;:42;;23105:13;23077:42;:27;:42;:::i;:::-;-1:-1:-1;;;;;23051:23:0;;;;;;;:9;:23;;;;;;;;;:68;;;;23144:5;;23135:44;;;;;;;23051:23;;23144:5;;;-1:-1:-1;;;;;;;;;;;23135:44:0;;;;;;;;23205:12;-1:-1:-1;;;;;23195:55:0;;23219:15;23236:13;23195:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;23195:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;23195:55:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;23268:4:0;;21895:1385;-1:-1:-1;;;;21895:1385:0:o;16696:165::-;15445:7;;16786:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16810:43;16833:7;16842:10;16810:22;:43::i;9001:134::-;-1:-1:-1;;;;;9100:18:0;;;9073:7;9100:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9001:134::o;19436:152::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19495:12;;;;19494:13;19486:64;;;;-1:-1:-1;;;19486:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19561:12;:19;;-1:-1:-1;;19561:19:0;19576:4;19561:19;;;19436:152::o;4728:111::-;4492:5;;-1:-1:-1;;;;;4492:5:0;4478:10;:19;4470:65;;;;-1:-1:-1;;;4470:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4802:29;4821:9;4802:18;:29::i;9278:148::-;9343:4;9360:36;9369:10;9381:7;9390:5;9360:8;:36::i;372:181::-;430:7;462:5;;;486:6;;;;478:46;;;;;-1:-1:-1;;;478:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;823:184;881:7;914:1;909;:6;;901:49;;;;;-1:-1:-1;;;901:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;973:5:0;;;823:184::o;24806:906::-;24862:4;24958:14;24975:24;24992:6;24975:16;:24::i;:::-;24958:41;;25027:1;25018:6;:10;25010:50;;;;;-1:-1:-1;;;25010:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25094:20:0;;;;;;:12;:20;;;;;;:32;;25119:6;25094:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;25071:20:0;;;;;;:12;:20;;;;;;;;:55;;;;25162:14;:22;;;;:34;;25189:6;25162:34;:26;:34;:::i;:::-;-1:-1:-1;;;;;25137:22:0;;;;;;:14;:22;;;;;;;;:59;;;25399:15;:23;;;;;;25373:22;;:49;25369:265;;;-1:-1:-1;;;;;25446:19:0;;;;;;:11;:19;;;;;25439:26;;;:::i;:::-;-1:-1:-1;;;;;25515:23:0;;25541:1;25515:23;;;:15;:23;;;;;;;;:27;;;25557:14;:22;;;;;:26;;;25598:12;:20;;;;;:24;25369:265;25649:33;;;;;;25678:3;25649:33;;;;;;-1:-1:-1;;;;;25649:33:0;;;;;;;;;;;-1:-1:-1;25700:4:0;;24806:906;-1:-1:-1;;24806:906:0:o;16380:160::-;15445:7;;16473:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16497:35;16516:4;16522:2;16526:5;16497:18;:35::i;:::-;16490:42;16380:160;-1:-1:-1;;;;16380:160:0:o;17876:130::-;17936:24;:8;17952:7;17936:24;:15;:24;:::i;:::-;17976:22;;-1:-1:-1;;;;;17976:22:0;;;;;;;;17876:130;:::o;19077:351::-;19153:12;;;;19152:13;19144:64;;;;-1:-1:-1;;;19144:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19255:4;;19227:24;19245:5;19227:13;:11;:13::i;:::-;:17;:24;:17;:24;:::i;:::-;:32;;19219:70;;;;;-1:-1:-1;;;19219:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19331:4;;19303:24;19321:5;19303:13;:11;:13::i;:24::-;:32;19300:83;;;19352:12;:19;;-1:-1:-1;;19352:19:0;19367:4;19352:19;;;19300:83;19393:27;19405:7;19414:5;19393:11;:27::i;:::-;19077:351;;:::o;11256:215::-;11366:10;11340:4;11387:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11387:32:0;;;;;;;;;;11340:4;;11357:84;;11378:7;;11387:53;;11424:15;11387:53;:36;:53;:::i;:::-;11357:8;:84::i;17746:122::-;17803:21;:8;17816:7;17803:21;:12;:21;:::i;:::-;17840:20;;-1:-1:-1;;;;;17840:20:0;;;;;;;;17746:122;:::o;16240:132::-;15445:7;;16315:4;;-1:-1:-1;;;15445:7:0;;;;15444:8;15436:37;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;-1:-1:-1;;;15436:37:0;;;;;;;;;;;;;;;16339:25;16354:2;16358:5;16339:14;:25::i;3813:203::-;3885:4;-1:-1:-1;;;;;3910:21:0;;3902:68;;;;-1:-1:-1;;;3902:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3988:20:0;:11;:20;;;;;;;;;;;;;;;3813:203::o;10552:205::-;10657:10;10631:4;10678:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10678:32:0;;;;;;;;;;10631:4;;10648:79;;10669:7;;10678:48;;10715:10;10678:48;:36;:48;:::i;4985:231::-;-1:-1:-1;;;;;5060:23:0;;5052:74;;;;-1:-1:-1;;;5052:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5163:5;;5142:38;;-1:-1:-1;;;;;5142:38:0;;;;5163:5;;5142:38;;5163:5;;5142:38;5191:5;:17;;-1:-1:-1;;;;;;5191:17:0;-1:-1:-1;;;;;5191:17:0;;;;;;;;;;4985:231::o;12917:335::-;-1:-1:-1;;;;;13010:19:0;;13002:68;;;;-1:-1:-1;;;13002:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13089:21:0;;13081:68;;;;-1:-1:-1;;;13081:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13162:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;13213:31;;;;;;;;;;;;;;;;;12917:335;;;:::o;9892:256::-;9981:4;9998:36;10008:6;10016:9;10027:6;9998:9;:36::i;:::-;-1:-1:-1;;;;;10074:19:0;;;;;;:11;:19;;;;;;;;10062:10;10074:31;;;;;;;;;10045:73;;10054:6;;10074:43;;10110:6;10074:43;:35;:43;:::i;3540:183::-;3620:18;3624:4;3630:7;3620:3;:18::i;:::-;3612:64;;;;-1:-1:-1;;;3612:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3687:20:0;3710:5;3687:20;;;;;;;;;;;:28;;-1:-1:-1;;3687:28:0;;;3540:183::o;12504:308::-;-1:-1:-1;;;;;12580:21:0;;12572:65;;;;;-1:-1:-1;;;12572:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12665:12;;:24;;12682:6;12665:24;:16;:24;:::i;:::-;12650:12;:39;-1:-1:-1;;;;;12721:18:0;;;;;;:9;:18;;;;;;:30;;12744:6;12721:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;12700:18:0;;;;;;:9;:18;;;;;;;;:51;;;;12767:37;;;;;;;12700:18;;;;-1:-1:-1;;;;;;;;;;;12767:37:0;;;;;;;;;12504:308;;:::o;3287:178::-;3365:18;3369:4;3375:7;3365:3;:18::i;:::-;3364:19;3356:63;;;;;-1:-1:-1;;;3356:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3430:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;3430:27:0;3453:4;3430:27;;;3287:178::o;8786:156::-;8855:4;8872:40;8882:10;8894:9;8905:6;11957:429;-1:-1:-1;;;;;12055:20:0;;12047:70;;;;-1:-1:-1;;;12047:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12136:23:0;;12128:71;;;;-1:-1:-1;;;12128:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12232:17:0;;;;;;:9;:17;;;;;;:29;;12254:6;12232:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;12212:17:0;;;;;;;:9;:17;;;;;;:49;;;;12295:20;;;;;;;:32;;12320:6;12295:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;12272:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;12343:35;;;;;;;12272:20;;12343:35;;;;-1:-1:-1;;;;;;;;;;;12343:35:0;;;;;;;;11957:429;;;:::o;20512:5205::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://32d2c6730282ffbf163bfb3ef29ab9c581c33acc5034332da3aefef5ca4c8a28

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

TigerCash token contract has migrated to 0x5ecc4b299e23f526980c33fe35eff531a54aedb1.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.