Contract 0xe1316066af35fbff54f870ea6d1468255602a696 2

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9db3843893661280d7d4739e797ce56daddbc1a3f898f84ed4471c0a7bcfb02dApprove146202222022-01-23 15:52:015 days 8 hrs ago0x66f1d2f1f94d665cc506821dc05cbc29ee5b6805 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x562526e1ee10c84ffac6e96f678fdb74ce69a08807ae22b9669f6ac8dcb8504fApprove145907152022-01-22 15:15:006 days 9 hrs ago0xca78b199576811b5078f8d38b4966a7114c1c98f IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x163020c087636d7a20941a5fe5959c2d155703ebea11607911960890c188a972Approve145476462022-01-21 3:13:197 days 21 hrs ago0x405e3a29c7b8739cdabc951be7d47bbf94997050 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x6a54844675e53efc1fbe7f14d679fc871ccd08c4965301fc7b319ecc75d6bddbApprove145347352022-01-20 16:26:528 days 8 hrs ago0x7e485597ba8f7cb80403f254a2044cc47548c15a IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.000072555
0xd99279f039ca1e25a1599feed7d8e9b9ef331b787d7bfde39ceb2d826b585996Approve145347322022-01-20 16:26:438 days 8 hrs ago0x7e485597ba8f7cb80403f254a2044cc47548c15a IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.000072555
0xd13d3d0d675d8588b6a11efe2b4afe28ab94b87ce5854d2ad07d218ce77b3905Approve145343592022-01-20 16:08:048 days 8 hrs ago0x56306f1320d9106449feff18aa2b35001ecaeabe IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.000072555
0xe91416fcbf14ce2592c05a600f13b40fa814336cfd7de16c07bb9040af658e30Approve144978332022-01-19 9:35:509 days 15 hrs ago0xadf91e5720c3eacd770ed10c1f3f798d66ad8f68 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0xfba7a288d639c26af536fc58295c07ffe100765243d624bede663c70b7e55603Approve144810692022-01-18 19:35:4610 days 5 hrs ago0x405e3a29c7b8739cdabc951be7d47bbf94997050 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x7a2be66b70c340be4ea9e55ff37316c6768022087f901664e1e319d9987c7912Approve144689402022-01-18 9:13:1710 days 15 hrs ago0xb74125df13cb9194d93d8b62e0db30352f2b8001 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x2da3d9806d94a4989eeb3ea4a9298cbf1f736f1a091077140596a06fc6321d23Approve143699442022-01-14 22:14:1214 days 2 hrs ago0x1cb157e4d8c7798facd81bd48d1c11f33144c61d IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x26871d4040a98e6a735567eab5b912718c7818cdae2f7e6de127938d0d90c928Approve143680722022-01-14 20:40:3414 days 3 hrs ago0x6ab8f6021ef6a237f4ecd368da0328d7d88db511 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x9658bfa9d453cb195fc99ce1ecabfb1c50f947b382a1004a250faab9a7879170Approve143110932022-01-12 21:06:1716 days 3 hrs ago0x211215c35359c4f45997297f71179f3a793eeb45 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x06018ccc7c9ff9732d2f9f7157cb3caa3a3e8fc6ce494da7e3db83cbc14eadf6Approve142509852022-01-10 18:51:2018 days 5 hrs ago0x2de4652a1358f193f9c0d68ff78cabbbc558dc99 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0xf2a0612efd32ad7423cda58f11fa8bcfaf74f9b768d3cebb8e6741f9ea81579bApprove141843632022-01-08 11:17:3520 days 13 hrs ago0x4cfd544a97bed2ccd00653c91ec97651959f4544 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x00d9db0924e45dc30aa9800a6ee2183bf842ebf6bf3a7005c0a719b36d06feb8Approve141798872022-01-08 7:33:2520 days 17 hrs ago0x9ef371d9399d0f8a16219261d68fe5b8ab726ac8 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0xd969213ec57a010b2274ddffc0548e7b9c12cbd23c76722d7bf86f4434028fbeApprove141297612022-01-06 13:41:1822 days 10 hrs ago0x100d4b4bb6c72e6e6278dd02f4e8be67236af376 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0xf67d9ff5c7b067a45729b2319347184eb61169d790bce1638a017a76d1116971Approve141289192022-01-06 12:59:1222 days 11 hrs ago0x5c58457d145b4d569ac01bb5059dd90364ed6080 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x2ad98d1fae8456dadeb3e06ec9dc7e73cc84e6669238991805bd080ad1f412d9Approve140844482022-01-04 23:50:3224 days 48 mins ago0x5daaf80eb78e3ecf2cd44a79dffdfae27081dc4a IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x0823c0811b2460d45fd3a0d99fbcf868404dce5854cb2426e7d927897823efe8Approve140744422022-01-04 15:28:1624 days 9 hrs ago0x92c8c955d225b7c750d3ae2fab77ebd5c448c041 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x47d81bb3919e8ab655928bcace4c4200e5d8b756457ee116500b6b93909193eaApprove140743982022-01-04 15:26:0424 days 9 hrs ago0x92c8c955d225b7c750d3ae2fab77ebd5c448c041 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0xfb31da13b7443e713ddf5b99d0cbddee1e1693f58bcfe5d46bc40fc7d3c28eb2Approve140459372022-01-03 15:41:2425 days 8 hrs ago0x1f192335ce1d46287e1571776f3dc71a2451ea68 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.0002317455
0xf29a9ade2ab2c81ed38b770d62d0dae501bca1a3847026b24ce2a43c57dfbefcApprove140268612022-01-02 23:46:2126 days 52 mins ago0x8efadf009f7a3481d89f911a6b8eb46755d5b536 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x976e7c9eece95b321bd82914729aa1523e049bba3bdd17486ee43bb9b1cc2fb7Approve140267742022-01-02 23:42:0026 days 57 mins ago0x6e4439c5ac99cd363e8744a4ae5cbc4de68e9098 IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x00b678c35f815a3d36e748f66b7489996acf80f719771fb7731522c498862227Approve140267162022-01-02 23:39:0626 days 1 hr ago0x63dbf00c99ead0635ff5adf2fd2f1f7f2141fc7c IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.00022203
0x0492e0054a12e9616567929dc422c2cb3310c74a714e4aa1cb225707ee6a2814Approve140228372022-01-02 20:25:0926 days 4 hrs ago0x0e3277fd54cd49198d1d033ab92558e86a1daeeb IN  0xe1316066af35fbff54f870ea6d1468255602a6960 BNB0.000072555
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StabilizeBSCToken

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-04-02
*/

// SPDX-License-Identifier: MIT
// File: @openzeppelin/contracts/GSN/Context.sol

pragma solidity ^0.6.0;

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

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

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

pragma solidity ^0.6.0;

/**
 * Interface of the ERC20 standard as defined in the EIP.
 */
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.
     *
     * 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);

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

// File: @openzeppelin/contracts/math/SafeMath.sol

pragma solidity ^0.6.0;

/**
 * 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 {
    /**
     * 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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

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

    /**
     * Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

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

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

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol

pragma solidity ^0.6.0;

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

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;
    address public minterAddress = address(0);

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    
    event MinterChanged(address indexed minter);

    /**
     * Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

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

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

    /**
     * Returns 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`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

    /**
     * See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view override 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 virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    /**
     * See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        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 `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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 decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        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 virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

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

    /** Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        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);
    }
    
    function _setMinter(address newMinter) internal virtual {
        require(newMinter != address(0), "Minter address must be set to something");
        minterAddress = newMinter;
        emit MinterChanged(minterAddress);
    }

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

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

    /**
     * Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    /**
     * Hook that is called before any transfer of tokens.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual returns (uint256) { }
}

// File: @openzeppelin/contracts/access/Ownable.sol

pragma solidity ^0.6.0;

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

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

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

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

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

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

// File: contracts/STBBToken.sol

pragma solidity =0.6.6;

// Stabilize BSC Token with Governance.
contract StabilizeBSCToken is ERC20("Stabilize BSC Token", "STBB"), Ownable {
    using SafeMath for uint256;

    // Variable
    uint256 constant MAX_SUPPLY = 10000000e18; // The hard cap max supply of tokens, 10 mil

    constructor() public {
        // Governance will become the first initial minter, to be switched to the EmissionsOperator after airdrop
        minterAddress = _msgSender();
    }

    modifier onlyMinter() {
        require(minterAddress == _msgSender(), "Ownable: caller is not the minter");
        _;
    }

    function getMaxSupply() external pure returns (uint256) {
        return MAX_SUPPLY;
    }
    
    /// @notice Creates `_amount` token to `_to`. Must only be called by the minter.
    function mint(address _to, uint256 _amount) external onlyMinter returns (bool) {
        _mint(_to, _amount);
        require(totalSupply() <= MAX_SUPPLY, "Cannot mint any more tokens"); // After max supply is reached, minter cannot mint anymore
        return true;
    }
    
    // Now add some governance functions behind 24 hour timelock
    
    // Timelock variables
    // Timelock doesn't activate until minter is set to a non-zero account
    
    uint256 private _timelockStart; // The start of the timelock to change governance variables
    uint256 private _timelockType; // The function that needs to be changed
    uint256 constant TIMELOCK_DURATION = 86400; // Timelock is 24 hours
    
    // Reusable timelock variables
    uint256 private _timelock_data;
    address private _timelock_address;
    
    modifier timelockConditionsMet(uint256 _type) {
        require(_timelockType == _type, "Timelock not acquired for this function");
        _timelockType = 0; // Reset the type once the timelock is used
        if(minterAddress != governance()){
            require(now >= _timelockStart + TIMELOCK_DURATION, "Timelock time not met");
        }
        _;
    }
    
    // Change the governance
    // --------------------
    function startChangeGovernance(address _address) external onlyGovernance {
        _timelockStart = now;
        _timelockType = 1;
        _timelock_address = _address;       
    }
    
    function finishChangeGovernance() external onlyGovernance timelockConditionsMet(1) {
        _transferGovernance(_timelock_address);
    }
    // --------------------
    
    // Change the minter address
    // --------------------
    function startChangeMinter(address _address) external onlyGovernance {
        _timelockStart = now;
        _timelockType = 2;
        _timelock_address = _address;       
    }
    
    function finishChangeMinter() external onlyGovernance timelockConditionsMet(2) {
        _setMinter(_timelock_address);
    }
    // --------------------
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"GovernanceTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"MinterChanged","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":"finishChangeGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishChangeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"startChangeGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"startChangeMinter","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"}]

6080604052600380546001600160a01b03191690553480156200002157600080fd5b506040518060400160405280601381526020017f53746162696c697a652042534320546f6b656e000000000000000000000000008152506040518060400160405280600481526020016329aa212160e11b81525081600490805190602001906200008d9291906200015c565b508051620000a39060059060208401906200015c565b50506006805460ff19166012179055506000620000c86001600160e01b036200015716565b60068054610100600160a81b0319166101006001600160a01b03841690810291909117909155604051919250906000907f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80908290a350620001316001600160e01b036200015716565b600380546001600160a01b0319166001600160a01b0392909216919091179055620001fe565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019f57805160ff1916838001178555620001cf565b82800160010185558215620001cf579182015b82811115620001cf578251825591602001919060010190620001b2565b50620001dd929150620001e1565b5090565b6200015991905b80821115620001dd5760008155600101620001e8565b6112d9806200020e6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80635a7f3cb6116100ad578063a457c2d711610071578063a457c2d714610359578063a9059cbb14610385578063dd62ed3e146103b1578063ec096c54146103df578063f671a287146103e757610121565b80635a7f3cb6146102d55780635aa6e675146102fd5780636223765f1461030557806370a082311461032b57806395d89b411461035157610121565b8063313ce567116100f4578063313ce5671461023357806334d722c914610251578063395093511461027557806340c10f19146102a15780634c0f38c2146102cd57610121565b806306fdde0314610126578063095ea7b3146101a357806318160ddd146101e357806323b872dd146101fd575b600080fd5b61012e6103ef565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101cf600480360360408110156101b957600080fd5b506001600160a01b038135169060200135610485565b604080519115158252519081900360200190f35b6101eb6104a2565b60408051918252519081900360200190f35b6101cf6004803603606081101561021357600080fd5b506001600160a01b038135811691602081013590911690604001356104a8565b61023b610535565b6040805160ff9092168252519081900360200190f35b61025961053e565b604080516001600160a01b039092168252519081900360200190f35b6101cf6004803603604081101561028b57600080fd5b506001600160a01b03813516906020013561054d565b6101cf600480360360408110156102b757600080fd5b506001600160a01b0381351690602001356105a1565b6101eb610668565b6102fb600480360360208110156102eb57600080fd5b50356001600160a01b0316610677565b005b6102596106ff565b6102fb6004803603602081101561031b57600080fd5b50356001600160a01b0316610713565b6101eb6004803603602081101561034157600080fd5b50356001600160a01b031661079b565b61012e6107b6565b6101cf6004803603604081101561036f57600080fd5b506001600160a01b038135169060200135610817565b6101cf6004803603604081101561039b57600080fd5b506001600160a01b038135169060200135610885565b6101eb600480360360408110156103c757600080fd5b506001600160a01b0381358116916020013516610899565b6102fb6108c4565b6102fb6109f1565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561047b5780601f106104505761010080835404028352916020019161047b565b820191906000526020600020905b81548152906001019060200180831161045e57829003601f168201915b5050505050905090565b6000610499610492610b1b565b8484610b1f565b50600192915050565b60025490565b60006104b5848484610c0b565b61052b846104c1610b1b565b610526856040518060600160405280602881526020016111a6602891396001600160a01b038a166000908152600160205260408120906104ff610b1b565b6001600160a01b03168152602081019190915260400160002054919063ffffffff610d6716565b610b1f565b5060019392505050565b60065460ff1690565b6003546001600160a01b031681565b600061049961055a610b1b565b84610526856001600061056b610b1b565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff610dfe16565b60006105ab610b1b565b6003546001600160a01b039081169116146105f75760405162461bcd60e51b815260040180806020018281038252602181526020018061123a6021913960400191505060405180910390fd5b6106018383610e5f565b6a084595161401484a0000006106156104a2565b1115610499576040805162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74206d696e7420616e79206d6f726520746f6b656e730000000000604482015290519081900360640190fd5b6a084595161401484a00000090565b61067f610b1b565b60065461010090046001600160a01b039081169116146106d4576040805162461bcd60e51b815260206004820181905260248201526000805160206111ce833981519152604482015290519081900360640190fd5b426007556001600855600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60065461010090046001600160a01b031690565b61071b610b1b565b60065461010090046001600160a01b03908116911614610770576040805162461bcd60e51b815260206004820181905260248201526000805160206111ce833981519152604482015290519081900360640190fd5b426007556002600855600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526020819052604090205490565b60058054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561047b5780601f106104505761010080835404028352916020019161047b565b6000610499610824610b1b565b846105268560405180606001604052806025815260200161127f602591396001600061084e610b1b565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff610d6716565b6000610499610892610b1b565b8484610c0b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6108cc610b1b565b60065461010090046001600160a01b03908116911614610921576040805162461bcd60e51b815260206004820181905260248201526000805160206111ce833981519152604482015290519081900360640190fd5b600180600854146109635760405162461bcd60e51b815260040180806020018281038252602781526020018061117f6027913960400191505060405180910390fd5b60006008556109706106ff565b6003546001600160a01b039081169116146109d95762015180600754014210156109d9576040805162461bcd60e51b8152602060048201526015602482015274151a5b595b1bd8dac81d1a5b59481b9bdd081b595d605a1b604482015290519081900360640190fd5b600a546109ee906001600160a01b0316610f4f565b50565b6109f9610b1b565b60065461010090046001600160a01b03908116911614610a4e576040805162461bcd60e51b815260206004820181905260248201526000805160206111ce833981519152604482015290519081900360640190fd5b60028060085414610a905760405162461bcd60e51b815260040180806020018281038252602781526020018061117f6027913960400191505060405180910390fd5b6000600855610a9d6106ff565b6003546001600160a01b03908116911614610b06576201518060075401421015610b06576040805162461bcd60e51b8152602060048201526015602482015274151a5b595b1bd8dac81d1a5b59481b9bdd081b595d605a1b604482015290519081900360640190fd5b600a546109ee906001600160a01b0316611058565b3390565b6001600160a01b038316610b645760405162461bcd60e51b815260040180806020018281038252602481526020018061125b6024913960400191505060405180910390fd5b6001600160a01b038216610ba95760405162461bcd60e51b81526004018080602001828103825260228152602001806111376022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610c505760405162461bcd60e51b81526004018080602001828103825260258152602001806112156025913960400191505060405180910390fd5b6001600160a01b038216610c955760405162461bcd60e51b81526004018080602001828103825260238152602001806110ee6023913960400191505060405180910390fd5b610cd881604051806060016040528060268152602001611159602691396001600160a01b038616600090815260208190526040902054919063ffffffff610d6716565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610d0d908263ffffffff610dfe16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610df65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610dbb578181015183820152602001610da3565b50505050905090810190601f168015610de85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610e58576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610eba576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610ecd908263ffffffff610dfe16565b6002556001600160a01b038216600090815260208190526040902054610ef9908263ffffffff610dfe16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b610f57610b1b565b60065461010090046001600160a01b03908116911614610fac576040805162461bcd60e51b815260206004820181905260248201526000805160206111ce833981519152604482015290519081900360640190fd5b6001600160a01b038116610ff15760405162461bcd60e51b81526004018080602001828103825260268152602001806111116026913960400191505060405180910390fd5b6006546040516001600160a01b0380841692610100900416907f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8090600090a3600680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03811661109d5760405162461bcd60e51b81526004018080602001828103825260278152602001806111ee6027913960400191505060405180910390fd5b600380546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fb6b8f1859c5c352e5ffad07d0f77e384ac725512c015bd3a3ffc885831c8a42590600090a25056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636554696d656c6f636b206e6f7420616371756972656420666f7220746869732066756e6374696f6e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724d696e7465722061646472657373206d7573742062652073657420746f20736f6d657468696e6745524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206d696e74657245524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220967a4278d37a4fa52af3eb3f734884dd506d261f964e34e55e827ad9b1169ba964736f6c63430006060033

Deployed ByteCode Sourcemap

21304:2822:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21304:2822:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;11329:83:0;;;:::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;11329:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13400:169;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13400:169:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;12389:100;;;:::i;:::-;;;;;;;;;;;;;;;;14038:321;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;14038:321:0;;;;;;;;;;;;;;;;;:::i;12246:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10605:41;;;:::i;:::-;;;;-1:-1:-1;;;;;10605:41:0;;;;;;;;;;;;;;14763:218;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;14763:218:0;;;;;;;;:::i;22051:276::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;22051:276:0;;;;;;;;:::i;21861:92::-;;;:::i;23331:186::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;23331:186:0;-1:-1:-1;;;;;23331:186:0;;:::i;:::-;;20493:84;;;:::i;23773:182::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;23773:182:0;-1:-1:-1;;;;;23773:182:0;;:::i;12547:119::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12547:119:0;-1:-1:-1;;;;;12547:119:0;;:::i;11526:87::-;;;:::i;15479:269::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;15479:269:0;;;;;;;;:::i;12874:175::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;12874:175:0;;;;;;;;:::i;13107:151::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;13107:151:0;;;;;;;;;;:::i;23529:140::-;;;:::i;23967:127::-;;;:::i;11329:83::-;11399:5;11392:12;;;;;;;;-1:-1:-1;;11392:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11366:13;;11392:12;;11399:5;;11392:12;;11399:5;11392:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11329:83;:::o;13400:169::-;13483:4;13500:39;13509:12;:10;:12::i;:::-;13523:7;13532:6;13500:8;:39::i;:::-;-1:-1:-1;13557:4:0;13400:169;;;;:::o;12389:100::-;12469:12;;12389:100;:::o;14038:321::-;14144:4;14161:36;14171:6;14179:9;14190:6;14161:9;:36::i;:::-;14208:121;14217:6;14225:12;:10;:12::i;:::-;14239:89;14277:6;14239:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14239:19:0;;;;;;:11;:19;;;;;;14259:12;:10;:12::i;:::-;-1:-1:-1;;;;;14239:33:0;;;;;;;;;;;;-1:-1:-1;14239:33:0;;;:89;;:37;:89;:::i;:::-;14208:8;:121::i;:::-;-1:-1:-1;14347:4:0;14038:321;;;;;:::o;12246:83::-;12312:9;;;;12246:83;:::o;10605:41::-;;;-1:-1:-1;;;;;10605:41:0;;:::o;14763:218::-;14851:4;14868:83;14877:12;:10;:12::i;:::-;14891:7;14900:50;14939:10;14900:11;:25;14912:12;:10;:12::i;:::-;-1:-1:-1;;;;;14900:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;14900:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;22051:276::-;22124:4;21783:12;:10;:12::i;:::-;21766:13;;-1:-1:-1;;;;;21766:13:0;;;:29;;;21758:75;;;;-1:-1:-1;;;21758:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22141:19:::1;22147:3;22152:7;22141:5;:19::i;:::-;21469:11;22179:13;:11;:13::i;:::-;:27;;22171:67;;;::::0;;-1:-1:-1;;;22171:67:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;21861:92:::0;21469:11;21861:92;:::o;23331:186::-;20720:12;:10;:12::i;:::-;20710:6;;;;;-1:-1:-1;;;;;20710:6:0;;;:22;;;20702:67;;;;;-1:-1:-1;;;20702:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20702:67:0;;;;;;;;;;;;;;;23432:3:::1;23415:14;:20:::0;23462:1:::1;23446:13;:17:::0;23474::::1;:28:::0;;-1:-1:-1;;;;;;23474:28:0::1;-1:-1:-1::0;;;;;23474:28:0;;;::::1;::::0;;;::::1;::::0;;23331:186::o;20493:84::-;20563:6;;;;;-1:-1:-1;;;;;20563:6:0;;20493:84::o;23773:182::-;20720:12;:10;:12::i;:::-;20710:6;;;;;-1:-1:-1;;;;;20710:6:0;;;:22;;;20702:67;;;;;-1:-1:-1;;;20702:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20702:67:0;;;;;;;;;;;;;;;23870:3:::1;23853:14;:20:::0;23900:1:::1;23884:13;:17:::0;23912::::1;:28:::0;;-1:-1:-1;;;;;;23912:28:0::1;-1:-1:-1::0;;;;;23912:28:0;;;::::1;::::0;;;::::1;::::0;;23773:182::o;12547:119::-;-1:-1:-1;;;;;12640:18:0;12613:7;12640:18;;;;;;;;;;;;12547:119::o;11526:87::-;11598:7;11591:14;;;;;;;;-1:-1:-1;;11591:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11565:13;;11591:14;;11598:7;;11591:14;;11598:7;11591:14;;;;;;;;;;;;;;;;;;;;;;;;15479:269;15572:4;15589:129;15598:12;:10;:12::i;:::-;15612:7;15621:96;15660:15;15621:96;;;;;;;;;;;;;;;;;:11;:25;15633:12;:10;:12::i;:::-;-1:-1:-1;;;;;15621:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;15621:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;12874:175::-;12960:4;12977:42;12987:12;:10;:12::i;:::-;13001:9;13012:6;12977:9;:42::i;13107:151::-;-1:-1:-1;;;;;13223:18:0;;;13196:7;13223:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13107:151::o;23529:140::-;20720:12;:10;:12::i;:::-;20710:6;;;;;-1:-1:-1;;;;;20710:6:0;;;:22;;;20702:67;;;;;-1:-1:-1;;;20702:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20702:67:0;;;;;;;;;;;;;;;23609:1:::1;22974:5;22957:13;;:22;22949:74;;;;-1:-1:-1::0;;;22949:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23050:1;23034:13;:17:::0;23126:12:::1;:10;:12::i;:::-;23109:13;::::0;-1:-1:-1;;;;;23109:13:0;;::::1;:29:::0;::::1;;23106:135;;22731:5;23169:14;;:34;23162:3;:41;;23154:75;;;::::0;;-1:-1:-1;;;23154:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;23154:75:0;;;;;;;;;;;;;::::1;;23643:17:::2;::::0;23623:38:::2;::::0;-1:-1:-1;;;;;23643:17:0::2;23623:19;:38::i;:::-;20780:1:::1;23529:140::o:0;23967:127::-;20720:12;:10;:12::i;:::-;20710:6;;;;;-1:-1:-1;;;;;20710:6:0;;;:22;;;20702:67;;;;;-1:-1:-1;;;20702:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20702:67:0;;;;;;;;;;;;;;;24043:1:::1;22974:5;22957:13;;:22;22949:74;;;;-1:-1:-1::0;;;22949:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23050:1;23034:13;:17:::0;23126:12:::1;:10;:12::i;:::-;23109:13;::::0;-1:-1:-1;;;;;23109:13:0;;::::1;:29:::0;::::1;;23106:135;;22731:5;23169:14;;:34;23162:3;:41;;23154:75;;;::::0;;-1:-1:-1;;;23154:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;23154:75:0;;;;;;;;;;;;;::::1;;24068:17:::2;::::0;24057:29:::2;::::0;-1:-1:-1;;;;;24068:17:0::2;24057:10;:29::i;650:106::-:0;738:10;650:106;:::o;17981:346::-;-1:-1:-1;;;;;18083:19:0;;18075:68;;;;-1:-1:-1;;;18075:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18162:21:0;;18154:68;;;;-1:-1:-1;;;18154:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18235:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18287:32;;;;;;;;;;;;;;;;;17981:346;;;:::o;16233:479::-;-1:-1:-1;;;;;16339:20:0;;16331:70;;;;-1:-1:-1;;;16331:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16420:23:0;;16412:71;;;;-1:-1:-1;;;16412:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16516;16538:6;16516:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16516:17:0;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;16496:17:0;;;:9;:17;;;;;;;;;;;:91;;;;16621:20;;;;;;;:32;;16646:6;16621:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;16598:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;16669:35;;;;;;;16598:20;;16669:35;;;;;;;;;;;;;16233:479;;;:::o;5562:192::-;5648:7;5684:12;5676:6;;;;5668:29;;;;-1:-1:-1;;;5668:29: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;5668:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5720:5:0;;;5562:192::o;4669:181::-;4727:7;4759:5;;;4783:6;;;;4775:46;;;;;-1:-1:-1;;;4775:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:1;4669:181;-1:-1:-1;;;4669:181:0:o;16988:316::-;-1:-1:-1;;;;;17072:21:0;;17064:65;;;;;-1:-1:-1;;;17064:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17157:12;;:24;;17174:6;17157:24;:16;:24;:::i;:::-;17142:12;:39;-1:-1:-1;;;;;17213:18:0;;:9;:18;;;;;;;;;;;:30;;17236:6;17213:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;17192:18:0;;:9;:18;;;;;;;;;;;:51;;;;17259:37;;;;;;;17192:18;;:9;;17259:37;;;;;;;;;;16988:316;;:::o;20939:254::-;20720:12;:10;:12::i;:::-;20710:6;;;;;-1:-1:-1;;;;;20710:6:0;;;:22;;;20702:67;;;;;-1:-1:-1;;;20702:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;20702:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21037:22:0;::::1;21029:73;;;;-1:-1:-1::0;;;21029:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21140:6;::::0;21118:39:::1;::::0;-1:-1:-1;;;;;21118:39:0;;::::1;::::0;21140:6:::1;::::0;::::1;;::::0;21118:39:::1;::::0;;;::::1;21168:6;:17:::0;;-1:-1:-1;;;;;21168:17:0;;::::1;;;-1:-1:-1::0;;;;;;21168:17:0;;::::1;::::0;;;::::1;::::0;;20939:254::o;17316:230::-;-1:-1:-1;;;;;17391:23:0;;17383:75;;;;-1:-1:-1;;;17383:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17469:13;:25;;-1:-1:-1;;;;;;17469:25:0;-1:-1:-1;;;;;17469:25:0;;;;;;;;;;;17510:28;;17524:13;;;17510:28;;-1:-1:-1;;17510:28:0;17316:230;:::o

Swarm Source

ipfs://967a4278d37a4fa52af3eb3f734884dd506d261f964e34e55e827ad9b1169ba9
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.