Contract 0x77777777777d4554c39223c354a05825b2e8faa3 14

Contract Overview

Yeti Finance: YETI Token
Balance:
0 AVAX

AVAX Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6e2b3a384d6a0d0dc9caf923b52920f7000938552cb3a9cfedd766f5a33c07a4Transfer360286522023-10-04 17:04:1910 hrs 22 mins ago0x462afa2ed799cc638b9ffd405f7a429c0a9c65b0 IN  Yeti Finance: YETI Token0 AVAX0.00093457554 26.94
0x4079d05f3381d5ea074c2d922d0350071a90a7df06ba086d0bd4a09ae83dafdcApprove360159292023-10-04 9:51:5317 hrs 35 mins ago0x79c9af4fd5de2e1106b031a9ed76aca2a13cdf2b IN  Yeti Finance: YETI Token0 AVAX0.001224565 26.5
0xdcfa3b18bc66a70085b79e4387c7fca672ec5ca68f05391801ffcc5fc751acedApprove360158342023-10-04 9:48:3817 hrs 38 mins ago0xdb4f0eeb7c89b00118cc74de8c9ed55d65c2b933 IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0xf6c179ae3497fccd704dd81830856403bca2966e526c23b3d1a48ecd6a69c4aeApprove360120972023-10-04 7:45:3919 hrs 41 mins ago0xef59ea6b60dc92e0e626a04b8d4734ac3bdb4035 IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0xb035eb7d2618f83f881e201bdaa4f837f12948e2250317218faa7b221c5a8dafApprove360119852023-10-04 7:41:5519 hrs 45 mins ago0xdacbd81a8585fb87eec21afb991030349131c94f IN  Yeti Finance: YETI Token0 AVAX0.001232197 26.5
0x341d4c4f3c559ce5cce00f23e4f491ab301e51a5dea958d90301f686d7729da9Transfer359934752023-10-03 21:19:011 day 6 hrs ago0x9d270b88730430f0dd2b03b61c9674664541ce6a IN  Yeti Finance: YETI Token0 AVAX0.00129477525
0xf5c44b14593f4c594bf6115ea2c4caeddd6c6d846364f58296e917909138122bApprove359857362023-10-03 16:58:501 day 10 hrs ago0xf46e825ab7ad0e5f5fe56fa855a90f56e9cfcd3c IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0xc88f3495839b07ae69d2d74222ae6d75827ec428c324d8e2db1161551561f4beTransfer359780702023-10-03 12:38:471 day 14 hrs ago0xea934443be354dc628bb8891d8d1aee069f8d1a4 IN  Yeti Finance: YETI Token0 AVAX0.0013727795 26.5
0x01e0a84803844ede428d31ca6a7b0e5dc13a554aa8668e5502efea629d9f25f6Approve359639592023-10-03 4:39:561 day 22 hrs ago0x18c5bb3217ef9d76f0d95ff28674140b17090630 IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0xff42923e5cf723071059f071d3288d14021d9d98b2944c59229740d040a6a0f5Approve359331342023-10-02 11:16:272 days 16 hrs ago0xcdd0550d713b06411c7f7578ed4e41a77189f4a7 IN  Yeti Finance: YETI Token0 AVAX0.000772051 26.5
0x354de61afc206baa5ef29ed4f507864713117877c4348f4715bafd7c9f8a9892Approve359324202023-10-02 10:52:322 days 16 hrs ago0x39f6b2d21a5f93291fba2eb2cc1e435d21bcbc89 IN  Yeti Finance: YETI Token0 AVAX0.00123219726.5
0x63d6c6e9a7fae95af54504b4e9fdd61cbc74b7ba01df19e7efe27d7c178c1b3cApprove359006952023-10-01 16:51:493 days 10 hrs ago0xc7bb598fac294e710c42cbf727c779227d5673d1 IN  Yeti Finance: YETI Token0 AVAX0.001225201 26.5
0x09cc813db845784d780a15d3281886ea1c4467d3653336e496cb15ba56af6365Approve359005532023-10-01 16:46:413 days 10 hrs ago0x751f31410b481fb07ce048377b0c1aa257f58dbd IN  Yeti Finance: YETI Token0 AVAX0.001225201 26.5
0x8f06b7b7988aa2bab2253ff29d4d9181c557aeda43d21875f770e73a0219b5a9Approve359005182023-10-01 16:45:253 days 10 hrs ago0x2bdbde2e32103c581104b6002291d9a8979fda74 IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0x91ecfc4ccea9a30b73b90c045c8b26373e6076201e335eec2dbdc1264e3ec178Approve358950632023-10-01 13:39:523 days 13 hrs ago0xfc9393e97ee34d7ea42eecddcff9966115cd2081 IN  Yeti Finance: YETI Token0 AVAX0.00122488326.5
0xc240ca83d21b841de8df873a03c1004292bc67658b874e3130fcd5d08106d705Approve358681972023-09-30 22:19:464 days 5 hrs ago0xb4b35d89c730f79600929de42260480bd969f855 IN  Yeti Finance: YETI Token0 AVAX0.001224247 26.5
0xae81dbc2c31d4da8eed3fb45a3038d4d2006378d5b4586f142564130e6c96d78Approve358433032023-09-30 8:04:594 days 19 hrs ago0xe2e13bfffe89ac34d146391de09452057b8af3f4 IN  Yeti Finance: YETI Token0 AVAX0.0007253525
0xe34074c8590dc0aa9204294f76a1b73081c8ced8a5f617f315d0ebc2e7588e9cApprove358274882023-09-29 22:58:225 days 4 hrs ago0x0edee1c95eec36684ac029b8da56413891251126 IN  Yeti Finance: YETI Token0 AVAX0.001232197 26.5
0xd3b6feaf1dca25982578c9e3440b77a56ccc6b3b56db723c89411bc565114828Approve358258012023-09-29 22:00:305 days 5 hrs ago0xd0031aa29053f975cc667bf8070d5cc2537de9b6 IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0x73124342dd3f8d958925dec21ea0412174b3b248fd4b5f56b14c027e120b447bApprove358257362023-09-29 21:58:195 days 5 hrs ago0xac85b9ef4ff7c0bd6b3ac6532136a47b68a7f714 IN  Yeti Finance: YETI Token0 AVAX0.001225201 26.5
0x0772f83bf7d91585219f779ce309a30e31bb8c5d5efe1b93439952d9fa6f6ee8Approve358216272023-09-29 19:36:545 days 7 hrs ago0x23684b2e8108bc6b54b5fe51719450796b2a1989 IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0x13d726cd525c875510491f4af9e2a0a0c75e5b11cb860bcb8d6f47bcd86a8125Approve358040402023-09-29 9:34:095 days 17 hrs ago0x0a39dc8f840064821c1b1dda6554a2ac460cd185 IN  Yeti Finance: YETI Token0 AVAX0.001232197 26.5
0x1bf93c25b05e1dcc40150ca1257bdc0383296aeb3a2ee9f4ab9ae27193cff600Approve357951952023-09-29 4:31:145 days 22 hrs ago0xf46e825ab7ad0e5f5fe56fa855a90f56e9cfcd3c IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0x20d08eab3c90ec924ba09b09a2987d759452a4630b3b83ede784548763f24d5dApprove357763152023-09-28 17:40:486 days 9 hrs ago0x848d7b8cb09fa69ceb277cf70f1fe01eb0c00de9 IN  Yeti Finance: YETI Token0 AVAX0.001224883 26.5
0xe153de8c02b4035ceb50dd11907d5622f9b9f1ea6a8afee0304e71d0700df139Transfer357736632023-09-28 16:10:056 days 11 hrs ago0xfe7e7347e3bc819fd86ca59520194d6e8f056101 IN  Yeti Finance: YETI Token0 AVAX0.0013727795 26.5
[ Download CSV Export 

OVERVIEW

Yeti Finance is a cross-margin lending protocol on Avalanche that allows users to borrow up to 21x against their portfolio of LP tokens, staked assets such as sJOE and sAVAX, and yield-bearing stablecoins in a single debt position

Parent Txn Hash Block From To Value
Index Block
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
YETIToken

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 5: YETIToken.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.11;

import "./SafeMath.sol";
import "./IYETIToken.sol";


/*
* Brought to you by @YetiFinance
*
* Based upon OpenZeppelin's ERC20 contract:
* https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol
*
* and their EIP2612 (ERC20Permit / ERC712) functionality:
* https://github.com/OpenZeppelin/openzeppelin-contracts/blob/53516bc555a454862470e7860a9b5254db4d00f5/contracts/token/ERC20/ERC20Permit.sol
*
*
*  --- Functionality added specific to the YETIToken ---
*
* 1) Transfer protection: Prevent accidentally sending YETI to directly to this address
*
* 2) sendToSYETI(): Only callable by the SYETI contract to transfer YETI for staking.
*
* 3) Supply hard-capped at 500 million
*
* 4) Yeti Finance Treasury and Yeti Finance Team addresses set at deployment
*
* 5) 365 million tokens are minted at deployment to the Yeti Finance Treasury
*
* 6) 135 million tokens are minted at deployment to the Yeti Finance Team
*
*/
contract YETIToken is IYETIToken {
    using SafeMath for uint256;

    // --- ERC20 Data ---

    string constant internal _NAME = "Yeti Finance";
    string constant internal _SYMBOL = "YETI";
    string constant internal _VERSION = "1";
    uint8 constant internal  _DECIMALS = 18;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint private _totalSupply;

    // --- EIP 2612 Data ---

    bytes32 private constant _PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 private constant _TYPE_HASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");

    // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to
    // invalidate the cached domain separator if the chain id changes.
    bytes32 private immutable _CACHED_DOMAIN_SEPARATOR;
    uint256 private immutable _CACHED_CHAIN_ID;

    bytes32 private immutable _HASHED_NAME;
    bytes32 private immutable _HASHED_VERSION;

    mapping (address => uint256) private _nonces;

    // --- YETIToken specific data ---

    // uint for use with SafeMath
    uint internal _1_MILLION = 1e24;    // 1e6 * 1e18 = 1e24

    uint internal immutable deploymentStartTime;

    address public immutable sYETIAddress;


    // --- Functions ---

    constructor
    (
        address _sYETIAddress,
        address _treasuryAddress,
        address _teamAddress
    )
    public
    {
        deploymentStartTime  = block.timestamp;

        sYETIAddress = _sYETIAddress;

        bytes32 hashedName = keccak256(bytes(_NAME));
        bytes32 hashedVersion = keccak256(bytes(_VERSION));

        _HASHED_NAME = hashedName;
        _HASHED_VERSION = hashedVersion;
        _CACHED_CHAIN_ID = _chainID();
        _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(_TYPE_HASH, hashedName, hashedVersion);

        // --- Initial YETI allocations ---

        // Allocate 365 million for Yeti Finance Treasury
        uint treasuryEntitlement = _1_MILLION.mul(365);
        _totalSupply = _totalSupply.add(treasuryEntitlement);
        _balances[_treasuryAddress] = _balances[_treasuryAddress].add(treasuryEntitlement);

        // Allocate 135 million for Yeti Finance Team
        uint teamEntitlement = _1_MILLION.mul(135);
        _totalSupply = _totalSupply.add(teamEntitlement);
        _balances[_teamAddress] = _balances[_teamAddress].add(teamEntitlement);
    }


    // --- External functions ---

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _requireValidRecipient(recipient);

        // Otherwise, standard transfer functionality
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _requireValidRecipient(recipient);
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "YETI: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external override returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external override returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "YETI: decreased allowance below zero"));
        return true;
    }

    function sendToSYETI(address _sender, uint256 _amount) external override {
        _requireCallerIsSYETI();
        _transfer(_sender, sYETIAddress, _amount);
    }


    // --- EIP 2612 functionality ---

    function domainSeparator() public view override returns (bytes32) {
        if (_chainID() == _CACHED_CHAIN_ID) {
            return _CACHED_DOMAIN_SEPARATOR;
        } else {
            return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION);
        }
    }

    function permit
    (
        address owner,
        address spender,
        uint amount,
        uint deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    )
    external
    override
    {
        require(deadline >= now, 'YETI: expired deadline');
        bytes32 digest = keccak256(abi.encodePacked('\x19\x01',
            domainSeparator(), keccak256(abi.encode(
                _PERMIT_TYPEHASH, owner, spender, amount,
                _nonces[owner]++, deadline))));
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(recoveredAddress == owner, 'YETI: invalid signature');
        _approve(owner, spender, amount);
    }

    function nonces(address owner) external view override returns (uint256) { // FOR EIP 2612
        return _nonces[owner];
    }


    // --- Internal functions ---

    function _chainID() private pure returns (uint256 chainID) {
        assembly {
            chainID := chainid()
        }
    }

    function _buildDomainSeparator(bytes32 typeHash, bytes32 name, bytes32 version) private view returns (bytes32) {
        return keccak256(abi.encode(typeHash, name, version, _chainID(), address(this)));
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "YETI: transfer from the zero address");

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


    function _approve(address owner, address spender, uint256 amount) internal {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }


    // --- 'require' functions ---

    function _requireValidRecipient(address _recipient) internal view {
        require(
            _recipient != address(this),
            "YETI: Cannot transfer tokens directly to the YETI token contract"
        );
    }

    function _requireCallerIsSYETI() internal view {
        require(msg.sender == sYETIAddress, "YETI: caller must be the SYETI contract");
    }


    // --- External View functions ---

    function balanceOf(address account) external view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address owner, address spender) external view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function getDeploymentStartTime() external view override returns (uint256) {
        return deploymentStartTime;
    }

    function name() external view override returns (string memory) {
        return _NAME;
    }

    function symbol() external view override returns (string memory) {
        return _SYMBOL;
    }

    function decimals() external view override returns (uint8) {
        return _DECIMALS;
    }

    function version() external view override returns (string memory) {
        return _VERSION;
    }

    function permitTypeHash() external view override returns (bytes32) {
        return _PERMIT_TYPEHASH;
    }

}

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

pragma solidity 0.6.11;

/**
 * Based on the OpenZeppelin IER20 interface:
 * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol
 *
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    
    /**
     * @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);
}

File 3 of 5: IERC2612.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.11;

/**
 * @dev Interface of the ERC2612 standard as defined in the EIP.
 *
 * Adds the {permit} method, which can be used to change one's
 * {IERC20-allowance} without having to send a transaction, by signing a
 * message. This allows users to spend tokens without having to hold Ether.
 *
 * See https://eips.ethereum.org/EIPS/eip-2612.
 * 
 * Code adapted from https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2237/
 */
interface IERC2612 {
    /**
     * @dev Sets `amount` as the allowance of `spender` over `owner`'s tokens,
     * given `owner`'s signed approval.
     *
     * IMPORTANT: The same issues {IERC20-approve} has related to transaction
     * ordering also apply here.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     * - `deadline` must be a timestamp in the future.
     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
     * over the EIP712-formatted function arguments.
     * - the signature must use ``owner``'s current nonce (see {nonces}).
     *
     * For more information on the signature format, see the
     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
     * section].
     */
    function permit(address owner, address spender, uint256 amount, 
                    uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    /**
     * @dev Returns the current ERC2612 nonce for `owner`. This value must be
     * included whenever a signature is generated for {permit}.
     *
     * Every successful call to {permit} increases `owner`'s nonce by one. This
     * prevents a signature from being used multiple times.
     *
     * `owner` can limit the time a Permit is valid for by setting `deadline` to 
     * a value in the near future. The deadline argument can be set to uint(-1) to 
     * create Permits that effectively never expire.
     */
    function nonces(address owner) external view returns (uint256);
    
    function version() external view returns (string memory);
    function permitTypeHash() external view returns (bytes32);
    function domainSeparator() external view returns (bytes32);
}

File 4 of 5: IYETIToken.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.6.11;

import "./IERC20.sol";
import "./IERC2612.sol";

interface IYETIToken is IERC20, IERC2612 {

    function sendToSYETI(address _sender, uint256 _amount) external;

    function getDeploymentStartTime() external view returns (uint256);

}

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

pragma solidity 0.6.11;

/**
 * Based on OpenZeppelin's SafeMath:
 * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/SafeMath.sol
 *
 * @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;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_sYETIAddress","type":"address"},{"internalType":"address","name":"_treasuryAddress","type":"address"},{"internalType":"address","name":"_teamAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"domainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDeploymentStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"permitTypeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sYETIAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"sendToSYETI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

61014060405269d3c21bcecceda10000006004553480156200002057600080fd5b5060405162001eda38038062001eda833981810160405260608110156200004657600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050504261010081815250508273ffffffffffffffffffffffffffffffffffffffff166101208173ffffffffffffffffffffffffffffffffffffffff1660601b8152505060006040518060400160405280600c81526020017f596574692046696e616e6365000000000000000000000000000000000000000081525080519060200120905060006040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012090508160c081815250508060e081815250506200014e6200035060201b60201c565b60a0818152505062000181604051808062001e67605291396052019050604051809103902083836200035860201b60201c565b608081815250506000620001a861016d600454620003e560201b6200107d1790919060201c565b9050620001c6816002546200047060201b620011031790919060201c565b60028190555062000224816000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200047060201b620011031790919060201c565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000620002856087600454620003e560201b6200107d1790919060201c565b9050620002a3816002546200047060201b620011031790919060201c565b60028190555062000301816000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200047060201b620011031790919060201c565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505050505050620004f9565b600046905090565b60008383836200036d6200035060201b60201c565b30604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b600080831415620003fa57600090506200046a565b60008284029050828482816200040c57fe5b041462000465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062001eb96021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015620004ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60805160a05160c05160e051610100516101205160601c6119176200055060003980610a295280610f9252806115f05250806109c6525080611053525080611032525080610fbf525080610fee52506119176000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806363788ac3116100ad578063a9059cbb11610071578063a9059cbb146105df578063d505accf14610645578063dd62ed3e146106de578063f1be695e14610756578063f698da25146107a457610121565b806363788ac3146103fc57806370a08231146104465780637ecebe001461049e57806395d89b41146104f6578063a457c2d71461057957610121565b806323b872dd116100f457806323b872dd1461024b578063313ce567146102d157806339509351146102f55780633c84b7c21461035b57806354fd4d501461037957610121565b806306fdde0314610126578063095ea7b3146101a957806310ce43bd1461020f57806318160ddd1461022d575b600080fd5b61012e6107c2565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561016e578082015181840152602081019050610153565b50505050905090810190601f16801561019b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f5600480360360408110156101bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107ff565b604051808215151515815260200191505060405180910390f35b610217610816565b6040518082815260200191505060405180910390f35b610235610836565b6040518082815260200191505060405180910390f35b6102b76004803603606081101561026157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610840565b604051808215151515815260200191505060405180910390f35b6102d9610914565b604051808260ff1660ff16815260200191505060405180910390f35b6103416004803603604081101561030b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061091d565b604051808215151515815260200191505060405180910390f35b6103636109c2565b6040518082815260200191505060405180910390f35b6103816109ea565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c15780820151818401526020810190506103a6565b50505050905090810190601f1680156103ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610404610a27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104886004803603602081101561045c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a4b565b6040518082815260200191505060405180910390f35b6104e0600480360360208110156104b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a93565b6040518082815260200191505060405180910390f35b6104fe610adc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053e578082015181840152602081019050610523565b50505050905090810190601f16801561056b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105c56004803603604081101561058f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b19565b604051808215151515815260200191505060405180910390f35b61062b600480360360408110156105f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bd8565b604051808215151515815260200191505060405180910390f35b6106dc600480360360e081101561065b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050610bf8565b005b610740600480360360408110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610efd565b6040518082815260200191505060405180910390f35b6107a26004803603604081101561076c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f84565b005b6107ac610fbb565b6040518082815260200191505060405180910390f35b60606040518060400160405280600c81526020017f596574692046696e616e63650000000000000000000000000000000000000000815250905090565b600061080c33848461118b565b6001905092915050565b600060405180806117ae6052913960520190506040518091039020905090565b6000600254905090565b600061084b83611276565b6108568484846112fe565b61090984336109048560405180606001604052806027815260200161172260279139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461152e9092919063ffffffff16565b61118b565b600190509392505050565b60006012905090565b60006109b833846109b385600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461110390919063ffffffff16565b61118b565b6001905092915050565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b60606040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606040518060400160405280600481526020017f5945544900000000000000000000000000000000000000000000000000000000815250905090565b6000610bce3384610bc9856040518060600160405280602481526020016118be60249139600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461152e9092919063ffffffff16565b61118b565b6001905092915050565b6000610be383611276565b610bee3384846112fe565b6001905092915050565b42841015610c6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f594554493a206578706972656420646561646c696e650000000000000000000081525060200191505060405180910390fd5b6000610c78610fbb565b60405180806117ae6052913960520190506040518091039020898989600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610e3a573d6000803e3d6000fd5b5050506020604051035190508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ee7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f594554493a20696e76616c6964207369676e617475726500000000000000000081525060200191505060405180910390fd5b610ef289898961118b565b505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f8c6115ee565b610fb7827f0000000000000000000000000000000000000000000000000000000000000000836112fe565b5050565b60007f0000000000000000000000000000000000000000000000000000000000000000610fe6611694565b1415611014577f0000000000000000000000000000000000000000000000000000000000000000905061107a565b611077604051808061180060529139605201905060405180910390207f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061169c565b90505b90565b60008083141561109057600090506110fd565b60008284029050828482816110a157fe5b04146110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806118526021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061176e6040913960400191505060405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061189a6024913960400191505060405180910390fd5b6113ef81604051806060016040528060258152602001611749602591396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461152e9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611482816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461110390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115a0578082015181840152602081019050611585565b50505050905090810190601f1680156115cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611692576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001806118736027913960400191505060405180910390fd5b565b600046905090565b60008383836116a9611694565b30604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001209050939250505056fe594554493a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365594554493a207472616e7366657220616d6f756e7420657863656564732062616c616e6365594554493a2043616e6e6f74207472616e7366657220746f6b656e73206469726563746c7920746f20746865205945544920746f6b656e20636f6e74726163745065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77594554493a2063616c6c6572206d7573742062652074686520535945544920636f6e7472616374594554493a207472616e736665722066726f6d20746865207a65726f2061646472657373594554493a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212207329d726ca41738fa755cd5a414360d1b522de3a8c6e5f43b08f4e1a97c60fc064736f6c634300060b0033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77000000000000000000000000888888888881251d2b816daf90b433985fc44ad7000000000000000000000000ed287c5cf0b7124c0c0d1de0db2ff48d61386e610000000000000000000000005b7a9db4d69ad8f5bb7c443ffc3d35301851157e

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

000000000000000000000000888888888881251d2b816daf90b433985fc44ad7000000000000000000000000ed287c5cf0b7124c0c0d1de0db2ff48d61386e610000000000000000000000005b7a9db4d69ad8f5bb7c443ffc3d35301851157e

-----Decoded View---------------
Arg [0] : _sYETIAddress (address): 0x888888888881251d2b816daf90b433985fc44ad7
Arg [1] : _treasuryAddress (address): 0xed287c5cf0b7124c0c0d1de0db2ff48d61386e61
Arg [2] : _teamAddress (address): 0x5b7a9db4d69ad8f5bb7c443ffc3d35301851157e

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000888888888881251d2b816daf90b433985fc44ad7
Arg [1] : 000000000000000000000000ed287c5cf0b7124c0c0d1de0db2ff48d61386e61
Arg [2] : 0000000000000000000000005b7a9db4d69ad8f5bb7c443ffc3d35301851157e


Deployed ByteCode Sourcemap

1016:7616:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8120:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3901:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8522:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7890:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4065:349;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8320:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4420:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7996:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8418:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2406:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7616:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6078:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8218:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4640:264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3633:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5402:670;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7741:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4910:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5120:276;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8120:92;8168:13;8200:5;;;;;;;;;;;;;;;;;8193:12;;8120:92;:::o;3901:158::-;3978:4;3994:37;4003:10;4015:7;4024:6;3994:8;:37::i;:::-;4048:4;4041:11;;3901:158;;;;:::o;8522:107::-;8580:7;1539:95;;;;;;;;;;;;;;;;;;;8599:23;;8522:107;:::o;7890:100::-;7945:7;7971:12;;7964:19;;7890:100;:::o;4065:349::-;4165:4;4181:33;4204:9;4181:22;:33::i;:::-;4224:36;4234:6;4242:9;4253:6;4224:9;:36::i;:::-;4270:116;4279:6;4287:10;4299:86;4335:6;4299:86;;;;;;;;;;;;;;;;;:11;:19;4311:6;4299:19;;;;;;;;;;;;;;;:31;4319:10;4299:31;;;;;;;;;;;;;;;;:35;;:86;;;;;:::i;:::-;4270:8;:116::i;:::-;4403:4;4396:11;;4065:349;;;;;:::o;8320:92::-;8372:5;1297:2;8389:16;;8320:92;:::o;4420:214::-;4511:4;4527:79;4536:10;4548:7;4557:48;4594:10;4557:11;:23;4569:10;4557:23;;;;;;;;;;;;;;;:32;4581:7;4557:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;4527:8;:79::i;:::-;4623:4;4616:11;;4420:214;;;;:::o;7996:118::-;8062:7;8088:19;8081:26;;7996:118;:::o;8418:98::-;8469:13;8501:8;;;;;;;;;;;;;;;;;8494:15;;8418:98;:::o;2406:37::-;;;:::o;7616:119::-;7684:7;7710:9;:18;7720:7;7710:18;;;;;;;;;;;;;;;;7703:25;;7616:119;;;:::o;6078:126::-;6141:7;6183;:14;6191:5;6183:14;;;;;;;;;;;;;;;;6176:21;;6078:126;;;:::o;8218:96::-;8268:13;8300:7;;;;;;;;;;;;;;;;;8293:14;;8218:96;:::o;4640:264::-;4736:4;4752:124;4761:10;4773:7;4782:93;4819:15;4782:93;;;;;;;;;;;;;;;;;:11;:23;4794:10;4782:23;;;;;;;;;;;;;;;:32;4806:7;4782:32;;;;;;;;;;;;;;;;:36;;:93;;;;;:::i;:::-;4752:8;:124::i;:::-;4893:4;4886:11;;4640:264;;;;:::o;3633:262::-;3713:4;3729:33;3752:9;3729:22;:33::i;:::-;3827:40;3837:10;3849:9;3860:6;3827:9;:40::i;:::-;3884:4;3877:11;;3633:262;;;;:::o;5402:670::-;5636:3;5624:8;:15;;5616:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5676:14;5744:17;:15;:17::i;:::-;1539:95;;;;;;;;;;;;;;;;;;;5819:5;5826:7;5835:6;5859:7;:14;5867:5;5859:14;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;5877:8;5773:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5763:124;;;;;;5703:185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5693:196;;;;;;5676:213;;5899:24;5926:26;5936:6;5944:1;5947;5950;5926:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5899:53;;5990:5;5970:25;;:16;:25;;;5962:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6033:32;6042:5;6049:7;6058:6;6033:8;:32::i;:::-;5402:670;;;;;;;;;:::o;7741:143::-;7824:7;7850:11;:18;7862:5;7850:18;;;;;;;;;;;;;;;:27;7869:7;7850:27;;;;;;;;;;;;;;;;7843:34;;7741:143;;;;:::o;4910:164::-;4993:23;:21;:23::i;:::-;5026:41;5036:7;5045:12;5059:7;5026:9;:41::i;:::-;4910:164;;:::o;5120:276::-;5177:7;5214:16;5200:10;:8;:10::i;:::-;:30;5196:194;;;5253:24;5246:31;;;;5196:194;5315:64;1678:95;;;;;;;;;;;;;;;;;;;5349:12;5363:15;5315:21;:64::i;:::-;5308:71;;5120:276;;:::o;2330:459:3:-;2388:7;2634:1;2629;:6;2625:45;;;2658:1;2651:8;;;;2625:45;2680:9;2696:1;2692;:5;2680:17;;2724:1;2719;2715;:5;;;;;;:10;2707:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2781:1;2774:8;;;2330:459;;;;;:::o;1005:176::-;1063:7;1082:9;1098:1;1094;:5;1082:17;;1122:1;1117;:6;;1109:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1173:1;1166:8;;;1005:176;;;;:::o;6982:175:4:-;7097:6;7067:11;:18;7079:5;7067:18;;;;;;;;;;;;;;;:27;7086:7;7067:27;;;;;;;;;;;;;;;:36;;;;7134:7;7118:32;;7127:5;7118:32;;;7143:6;7118:32;;;;;;;;;;;;;;;;;;6982:175;;;:::o;7200:221::-;7319:4;7297:27;;:10;:27;;;;7276:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7200:221;:::o;6594:381::-;6709:1;6691:20;;:6;:20;;;;6683:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6783:70;6805:6;6783:70;;;;;;;;;;;;;;;;;:9;:17;6793:6;6783:17;;;;;;;;;;;;;;;;:21;;:70;;;;;:::i;:::-;6763:9;:17;6773:6;6763:17;;;;;;;;;;;;;;;:90;;;;6886:32;6911:6;6886:9;:20;6896:9;6886:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6863:9;:20;6873:9;6863:20;;;;;;;;;;;;;;;:55;;;;6950:9;6933:35;;6942:6;6933:35;;;6961:6;6933:35;;;;;;;;;;;;;;;;;;6594:381;;;:::o;1903:187:3:-;1989:7;2021:1;2016;:6;;2024:12;2008:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2047:9;2063:1;2059;:5;2047:17;;2082:1;2075:8;;;1903:187;;;;;:::o;7427:142:4:-;7506:12;7492:26;;:10;:26;;;7484:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7427:142::o;6246:128::-;6288:15;6349:9;6338:20;;6324:44;:::o;6380:208::-;6482:7;6529:8;6539:4;6545:7;6554:10;:8;:10::i;:::-;6574:4;6518:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6508:73;;;;;;6501:80;;6380:208;;;;;:::o

Swarm Source

ipfs://7329d726ca41738fa755cd5a414360d1b522de3a8c6e5f43b08f4e1a97c60fc0
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.