ETH Price: $3,364.91 (-2.31%)
Gas: 3 Gwei

Contract

0x9488936e4a36E3585aFEB63377e2393Aeac253Ea
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve201771232024-06-26 16:41:476 days ago1719420107IN
Gamb: GMB Token
0 ETH0.0005446611.55
Transfer199715862024-05-28 23:16:3535 days ago1716938195IN
Gamb: GMB Token
0 ETH0.000210686.7981446
Transfer199617862024-05-27 14:24:5936 days ago1716819899IN
Gamb: GMB Token
0 ETH0.0013692728.47192833
Transfer195729142024-04-03 4:38:1191 days ago1712119091IN
Gamb: GMB Token
0 ETH0.0012420323.50371992
Transfer193500302024-03-02 21:00:23122 days ago1709413223IN
Gamb: GMB Token
0 ETH0.0012944341.76659512
Transfer193500202024-03-02 20:58:23122 days ago1709413103IN
Gamb: GMB Token
0 ETH0.0041850787.02237375
Transfer192553082024-02-18 14:33:47135 days ago1708266827IN
Gamb: GMB Token
0 ETH0.0006598321.29062843
Transfer192488622024-02-17 16:47:47136 days ago1708188467IN
Gamb: GMB Token
0 ETH0.0013285927.62607667
Transfer191053152024-01-28 13:24:47156 days ago1706448287IN
Gamb: GMB Token
0 ETH0.0006425613.35777996
Transfer191047402024-01-28 11:28:23156 days ago1706441303IN
Gamb: GMB Token
0 ETH0.000772614.61378211
Transfer191038802024-01-28 8:35:11156 days ago1706430911IN
Gamb: GMB Token
0 ETH0.0007656314.47876908
Transfer191005842024-01-27 21:28:11157 days ago1706390891IN
Gamb: GMB Token
0 ETH0.000420311.74679399
Transfer191005812024-01-27 21:27:35157 days ago1706390855IN
Gamb: GMB Token
0 ETH0.0005826511.02089141
Transfer191000292024-01-27 19:34:47157 days ago1706384087IN
Gamb: GMB Token
0 ETH0.0004280913.81834157
Transfer191000092024-01-27 19:30:47157 days ago1706383847IN
Gamb: GMB Token
0 ETH0.0009861518.64899876
Transfer190984802024-01-27 14:21:59157 days ago1706365319IN
Gamb: GMB Token
0 ETH0.0011647922.02720814
Transfer190942232024-01-27 0:03:11158 days ago1706313791IN
Gamb: GMB Token
0 ETH0.0005004413.98685094
Transfer190942032024-01-26 23:59:11158 days ago1706313551IN
Gamb: GMB Token
0 ETH0.0006292411.89956882
Transfer190908022024-01-26 12:33:35158 days ago1706272415IN
Gamb: GMB Token
0 ETH0.0016245230.72105233
Transfer190895342024-01-26 8:16:59158 days ago1706257019IN
Gamb: GMB Token
0 ETH0.0005579518.0102962
Transfer190894952024-01-26 8:09:11158 days ago1706256551IN
Gamb: GMB Token
0 ETH0.0011577821.89457939
Transfer190772162024-01-24 14:53:11160 days ago1706107991IN
Gamb: GMB Token
0 ETH0.0011166721.11718255
Transfer190771862024-01-24 14:47:11160 days ago1706107631IN
Gamb: GMB Token
0 ETH0.0012460923.56467298
Transfer190769962024-01-24 14:09:11160 days ago1706105351IN
Gamb: GMB Token
0 ETH0.0005503517.76493078
Transfer190768822024-01-24 13:45:47160 days ago1706103947IN
Gamb: GMB Token
0 ETH0.0010163119.2193227
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GMB

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-29
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.0;

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

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

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

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

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

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

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

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

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

//
/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

        return c;
    }

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

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

//
/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

//
/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {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;
    using Address for address;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

        _beforeTokenTransfer(sender, recipient, amount);

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

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

        _beforeTokenTransfer(address(0), account, amount);

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This 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);
    }

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * 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 { }
}

//
/**
 * @title GMB
 */
contract GMB is ERC20 {
    constructor() public ERC20("GMB", "GMB") {
        _mint(msg.sender, 5000000000 ether);
    }
}

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":"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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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"}]

60806040523480156200001157600080fd5b506040518060400160405280600381526020017f474d4200000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474d42000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000309565b508060049080519060200190620000af92919062000309565b506012600560006101000a81548160ff021916908360ff1602179055505050620000ec336b1027e72f1f12813088000000620000f260201b60201c565b620005bb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000165576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015c9062000470565b60405180910390fd5b6200017960008383620002a160201b60201c565b6200019581600254620002a660201b6200071f1790919060201c565b600281905550620001f3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620002a660201b6200071f1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000295919062000492565b60405180910390a35050565b505050565b6000808284620002b79190620004c0565b905083811015620002ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002f6906200044e565b60405180910390fd5b8091505092915050565b828054620003179062000527565b90600052602060002090601f0160209004810192826200033b576000855562000387565b82601f106200035657805160ff191683800117855562000387565b8280016001018555821562000387579182015b828111156200038657825182559160200191906001019062000369565b5b5090506200039691906200039a565b5090565b5b80821115620003b55760008160009055506001016200039b565b5090565b6000620003c8601b83620004af565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006200040a601f83620004af565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b62000448816200051d565b82525050565b600060208201905081810360008301526200046981620003b9565b9050919050565b600060208201905081810360008301526200048b81620003fb565b9050919050565b6000602082019050620004a960008301846200043d565b92915050565b600082825260208201905092915050565b6000620004cd826200051d565b9150620004da836200051d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200051257620005116200055d565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200054057607f821691505b602082108114156200055757620005566200058c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61135f80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610fc1565b60405180910390f35b6100e660048036038101906100e19190610d2c565b610308565b6040516100f39190610fa6565b60405180910390f35b610104610326565b6040516101119190611083565b60405180910390f35b610134600480360381019061012f9190610cdd565b610330565b6040516101419190610fa6565b60405180910390f35b610152610409565b60405161015f919061109e565b60405180910390f35b610182600480360381019061017d9190610d2c565b610420565b60405161018f9190610fa6565b60405180910390f35b6101b260048036038101906101ad9190610c78565b6104d3565b6040516101bf9190611083565b60405180910390f35b6101d061051b565b6040516101dd9190610fc1565b60405180910390f35b61020060048036038101906101fb9190610d2c565b6105ad565b60405161020d9190610fa6565b60405180910390f35b610230600480360381019061022b9190610d2c565b61067a565b60405161023d9190610fa6565b60405180910390f35b610260600480360381019061025b9190610ca1565b610698565b60405161026d9190611083565b60405180910390f35b606060038054610285906111e7565b80601f01602080910402602001604051908101604052809291908181526020018280546102b1906111e7565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c61031561077d565b8484610785565b6001905092915050565b6000600254905090565b600061033d848484610950565b6103fe8461034961077d565b6103f9856040518060600160405280602881526020016112dd60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103af61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006104c961042d61077d565b846104c4856001600061043e61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b610785565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461052a906111e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610556906111e7565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b60006106706105ba61077d565b8461066b8560405180606001604052806025815260200161130560259139600160006105e461077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b6001905092915050565b600061068e61068761077d565b8484610950565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828461072e91906110d5565b905083811015610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a90611023565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec90611063565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c90611003565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109439190611083565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790611043565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2790610fe3565b60405180910390fd5b610a3b838383610c49565b610aa6816040518060600160405280602681526020016112b7602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b39816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bd89190611083565b60405180910390a3505050565b6000838311158290610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c249190610fc1565b60405180910390fd5b5060008385610c3c919061112b565b9050809150509392505050565b505050565b600081359050610c5d81611288565b92915050565b600081359050610c728161129f565b92915050565b600060208284031215610c8a57600080fd5b6000610c9884828501610c4e565b91505092915050565b60008060408385031215610cb457600080fd5b6000610cc285828601610c4e565b9250506020610cd385828601610c4e565b9150509250929050565b600080600060608486031215610cf257600080fd5b6000610d0086828701610c4e565b9350506020610d1186828701610c4e565b9250506040610d2286828701610c63565b9150509250925092565b60008060408385031215610d3f57600080fd5b6000610d4d85828601610c4e565b9250506020610d5e85828601610c63565b9150509250929050565b610d7181611171565b82525050565b6000610d82826110b9565b610d8c81856110c4565b9350610d9c8185602086016111b4565b610da581611277565b840191505092915050565b6000610dbd6023836110c4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e236022836110c4565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e89601b836110c4565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000610ec96025836110c4565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610f2f6024836110c4565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610f918161119d565b82525050565b610fa0816111a7565b82525050565b6000602082019050610fbb6000830184610d68565b92915050565b60006020820190508181036000830152610fdb8184610d77565b905092915050565b60006020820190508181036000830152610ffc81610db0565b9050919050565b6000602082019050818103600083015261101c81610e16565b9050919050565b6000602082019050818103600083015261103c81610e7c565b9050919050565b6000602082019050818103600083015261105c81610ebc565b9050919050565b6000602082019050818103600083015261107c81610f22565b9050919050565b60006020820190506110986000830184610f88565b92915050565b60006020820190506110b36000830184610f97565b92915050565b600081519050919050565b600082825260208201905092915050565b60006110e08261119d565b91506110eb8361119d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111205761111f611219565b5b828201905092915050565b60006111368261119d565b91506111418361119d565b92508282101561115457611153611219565b5b828203905092915050565b600061116a8261117d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156111d25780820151818401526020810190506111b7565b838111156111e1576000848401525b50505050565b600060028204905060018216806111ff57607f821691505b6020821081141561121357611212611248565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6112918161115f565b811461129c57600080fd5b50565b6112a88161119d565b81146112b357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b94f69d2b09c76665c7ef6a2fb5c700b9011ac0660163f9d32c0c0a0b83a37bc64736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610fc1565b60405180910390f35b6100e660048036038101906100e19190610d2c565b610308565b6040516100f39190610fa6565b60405180910390f35b610104610326565b6040516101119190611083565b60405180910390f35b610134600480360381019061012f9190610cdd565b610330565b6040516101419190610fa6565b60405180910390f35b610152610409565b60405161015f919061109e565b60405180910390f35b610182600480360381019061017d9190610d2c565b610420565b60405161018f9190610fa6565b60405180910390f35b6101b260048036038101906101ad9190610c78565b6104d3565b6040516101bf9190611083565b60405180910390f35b6101d061051b565b6040516101dd9190610fc1565b60405180910390f35b61020060048036038101906101fb9190610d2c565b6105ad565b60405161020d9190610fa6565b60405180910390f35b610230600480360381019061022b9190610d2c565b61067a565b60405161023d9190610fa6565b60405180910390f35b610260600480360381019061025b9190610ca1565b610698565b60405161026d9190611083565b60405180910390f35b606060038054610285906111e7565b80601f01602080910402602001604051908101604052809291908181526020018280546102b1906111e7565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c61031561077d565b8484610785565b6001905092915050565b6000600254905090565b600061033d848484610950565b6103fe8461034961077d565b6103f9856040518060600160405280602881526020016112dd60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103af61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006104c961042d61077d565b846104c4856001600061043e61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b610785565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461052a906111e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610556906111e7565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b60006106706105ba61077d565b8461066b8560405180606001604052806025815260200161130560259139600160006105e461077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b6001905092915050565b600061068e61068761077d565b8484610950565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828461072e91906110d5565b905083811015610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a90611023565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec90611063565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c90611003565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109439190611083565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790611043565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2790610fe3565b60405180910390fd5b610a3b838383610c49565b610aa6816040518060600160405280602681526020016112b7602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b39816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bd89190611083565b60405180910390a3505050565b6000838311158290610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c249190610fc1565b60405180910390fd5b5060008385610c3c919061112b565b9050809150509392505050565b505050565b600081359050610c5d81611288565b92915050565b600081359050610c728161129f565b92915050565b600060208284031215610c8a57600080fd5b6000610c9884828501610c4e565b91505092915050565b60008060408385031215610cb457600080fd5b6000610cc285828601610c4e565b9250506020610cd385828601610c4e565b9150509250929050565b600080600060608486031215610cf257600080fd5b6000610d0086828701610c4e565b9350506020610d1186828701610c4e565b9250506040610d2286828701610c63565b9150509250925092565b60008060408385031215610d3f57600080fd5b6000610d4d85828601610c4e565b9250506020610d5e85828601610c63565b9150509250929050565b610d7181611171565b82525050565b6000610d82826110b9565b610d8c81856110c4565b9350610d9c8185602086016111b4565b610da581611277565b840191505092915050565b6000610dbd6023836110c4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e236022836110c4565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e89601b836110c4565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000610ec96025836110c4565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610f2f6024836110c4565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610f918161119d565b82525050565b610fa0816111a7565b82525050565b6000602082019050610fbb6000830184610d68565b92915050565b60006020820190508181036000830152610fdb8184610d77565b905092915050565b60006020820190508181036000830152610ffc81610db0565b9050919050565b6000602082019050818103600083015261101c81610e16565b9050919050565b6000602082019050818103600083015261103c81610e7c565b9050919050565b6000602082019050818103600083015261105c81610ebc565b9050919050565b6000602082019050818103600083015261107c81610f22565b9050919050565b60006020820190506110986000830184610f88565b92915050565b60006020820190506110b36000830184610f97565b92915050565b600081519050919050565b600082825260208201905092915050565b60006110e08261119d565b91506110eb8361119d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111205761111f611219565b5b828201905092915050565b60006111368261119d565b91506111418361119d565b92508282101561115457611153611219565b5b828203905092915050565b600061116a8261117d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156111d25780820151818401526020810190506111b7565b838111156111e1576000848401525b50505050565b600060028204905060018216806111ff57607f821691505b6020821081141561121357611212611248565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6112918161115f565b811461129c57600080fd5b50565b6112a88161119d565b81146112b357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b94f69d2b09c76665c7ef6a2fb5c700b9011ac0660163f9d32c0c0a0b83a37bc64736f6c63430008000033

Deployed Bytecode Sourcemap

25149:127:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17055:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19161:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18130:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19804:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17982:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20534:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18293:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17257:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21255:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18625:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18863:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17055:83;17092:13;17125:5;17118:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17055:83;:::o;19161:169::-;19244:4;19261:39;19270:12;:10;:12::i;:::-;19284:7;19293:6;19261:8;:39::i;:::-;19318:4;19311:11;;19161:169;;;;:::o;18130:100::-;18183:7;18210:12;;18203:19;;18130:100;:::o;19804:321::-;19910:4;19927:36;19937:6;19945:9;19956:6;19927:9;:36::i;:::-;19974:121;19983:6;19991:12;:10;:12::i;:::-;20005:89;20043:6;20005:89;;;;;;;;;;;;;;;;;:11;:19;20017:6;20005:19;;;;;;;;;;;;;;;:33;20025:12;:10;:12::i;:::-;20005:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19974:8;:121::i;:::-;20113:4;20106:11;;19804:321;;;;;:::o;17982:83::-;18023:5;18048:9;;;;;;;;;;;18041:16;;17982:83;:::o;20534:218::-;20622:4;20639:83;20648:12;:10;:12::i;:::-;20662:7;20671:50;20710:10;20671:11;:25;20683:12;:10;:12::i;:::-;20671:25;;;;;;;;;;;;;;;:34;20697:7;20671:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20639:8;:83::i;:::-;20740:4;20733:11;;20534:218;;;;:::o;18293:119::-;18359:7;18386:9;:18;18396:7;18386:18;;;;;;;;;;;;;;;;18379:25;;18293:119;;;:::o;17257:87::-;17296:13;17329:7;17322:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17257:87;:::o;21255:269::-;21348:4;21365:129;21374:12;:10;:12::i;:::-;21388:7;21397:96;21436:15;21397:96;;;;;;;;;;;;;;;;;:11;:25;21409:12;:10;:12::i;:::-;21397:25;;;;;;;;;;;;;;;:34;21423:7;21397:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;21365:8;:129::i;:::-;21512:4;21505:11;;21255:269;;;;:::o;18625:175::-;18711:4;18728:42;18738:12;:10;:12::i;:::-;18752:9;18763:6;18728:9;:42::i;:::-;18788:4;18781:11;;18625:175;;;;:::o;18863:151::-;18952:7;18979:11;:18;18991:5;18979:18;;;;;;;;;;;;;;;:27;18998:7;18979:27;;;;;;;;;;;;;;;;18972:34;;18863:151;;;;:::o;4532:181::-;4590:7;4610:9;4626:1;4622;:5;;;;:::i;:::-;4610:17;;4651:1;4646;:6;;4638:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4704:1;4697:8;;;4532:181;;;;:::o;608:115::-;661:15;704:10;689:26;;608:115;:::o;23650:346::-;23769:1;23752:19;;:5;:19;;;;23744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23850:1;23831:21;;:7;:21;;;;23823:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23934:6;23904:11;:18;23916:5;23904:18;;;;;;;;;;;;;;;:27;23923:7;23904:27;;;;;;;;;;;;;;;:36;;;;23972:7;23956:32;;23965:5;23956:32;;;23981:6;23956:32;;;;;;:::i;:::-;;;;;;;;23650:346;;;:::o;22014:539::-;22138:1;22120:20;;:6;:20;;;;22112:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22222:1;22201:23;;:9;:23;;;;22193:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22277:47;22298:6;22306:9;22317:6;22277:20;:47::i;:::-;22357:71;22379:6;22357:71;;;;;;;;;;;;;;;;;:9;:17;22367:6;22357:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22337:9;:17;22347:6;22337:17;;;;;;;;;;;;;;;:91;;;;22462:32;22487:6;22462:9;:20;22472:9;22462:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22439:9;:20;22449:9;22439:20;;;;;;;;;;;;;;;:55;;;;22527:9;22510:35;;22519:6;22510:35;;;22538:6;22510:35;;;;;;:::i;:::-;;;;;;;;22014:539;;;:::o;5435:192::-;5521:7;5554:1;5549;:6;;5557:12;5541:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5581:9;5597:1;5593;:5;;;;:::i;:::-;5581:17;;5618:1;5611:8;;;5435:192;;;;;:::o;25021:92::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:367::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2694:34;2690:1;2685:3;2681:11;2674:55;2760:5;2755:2;2750:3;2746:12;2739:27;2792:2;2787:3;2783:12;2776:19;;2580:221;;;:::o;2807:366::-;;2970:67;3034:2;3029:3;2970:67;:::i;:::-;2963:74;;3067:34;3063:1;3058:3;3054:11;3047:55;3133:4;3128:2;3123:3;3119:12;3112:26;3164:2;3159:3;3155:12;3148:19;;2953:220;;;:::o;3179:325::-;;3342:67;3406:2;3401:3;3342:67;:::i;:::-;3335:74;;3439:29;3435:1;3430:3;3426:11;3419:50;3495:2;3490:3;3486:12;3479:19;;3325:179;;;:::o;3510:369::-;;3673:67;3737:2;3732:3;3673:67;:::i;:::-;3666:74;;3770:34;3766:1;3761:3;3757:11;3750:55;3836:7;3831:2;3826:3;3822:12;3815:29;3870:2;3865:3;3861:12;3854:19;;3656:223;;;:::o;3885:368::-;;4048:67;4112:2;4107:3;4048:67;:::i;:::-;4041:74;;4145:34;4141:1;4136:3;4132:11;4125:55;4211:6;4206:2;4201:3;4197:12;4190:28;4244:2;4239:3;4235:12;4228:19;;4031:222;;;:::o;4259:118::-;4346:24;4364:5;4346:24;:::i;:::-;4341:3;4334:37;4324:53;;:::o;4383:112::-;4466:22;4482:5;4466:22;:::i;:::-;4461:3;4454:35;4444:51;;:::o;4501:210::-;;4626:2;4615:9;4611:18;4603:26;;4639:65;4701:1;4690:9;4686:17;4677:6;4639:65;:::i;:::-;4593:118;;;;:::o;4717:313::-;;4868:2;4857:9;4853:18;4845:26;;4917:9;4911:4;4907:20;4903:1;4892:9;4888:17;4881:47;4945:78;5018:4;5009:6;4945:78;:::i;:::-;4937:86;;4835:195;;;;:::o;5036:419::-;;5240:2;5229:9;5225:18;5217:26;;5289:9;5283:4;5279:20;5275:1;5264:9;5260:17;5253:47;5317:131;5443:4;5317:131;:::i;:::-;5309:139;;5207:248;;;:::o;5461:419::-;;5665:2;5654:9;5650:18;5642:26;;5714:9;5708:4;5704:20;5700:1;5689:9;5685:17;5678:47;5742:131;5868:4;5742:131;:::i;:::-;5734:139;;5632:248;;;:::o;5886:419::-;;6090:2;6079:9;6075:18;6067:26;;6139:9;6133:4;6129:20;6125:1;6114:9;6110:17;6103:47;6167:131;6293:4;6167:131;:::i;:::-;6159:139;;6057:248;;;:::o;6311:419::-;;6515:2;6504:9;6500:18;6492:26;;6564:9;6558:4;6554:20;6550:1;6539:9;6535:17;6528:47;6592:131;6718:4;6592:131;:::i;:::-;6584:139;;6482:248;;;:::o;6736:419::-;;6940:2;6929:9;6925:18;6917:26;;6989:9;6983:4;6979:20;6975:1;6964:9;6960:17;6953:47;7017:131;7143:4;7017:131;:::i;:::-;7009:139;;6907:248;;;:::o;7161:222::-;;7292:2;7281:9;7277:18;7269:26;;7305:71;7373:1;7362:9;7358:17;7349:6;7305:71;:::i;:::-;7259:124;;;;:::o;7389:214::-;;7516:2;7505:9;7501:18;7493:26;;7529:67;7593:1;7582:9;7578:17;7569:6;7529:67;:::i;:::-;7483:120;;;;:::o;7609:99::-;;7695:5;7689:12;7679:22;;7668:40;;;:::o;7714:169::-;;7832:6;7827:3;7820:19;7872:4;7867:3;7863:14;7848:29;;7810:73;;;;:::o;7889:305::-;;7948:20;7966:1;7948:20;:::i;:::-;7943:25;;7982:20;8000:1;7982:20;:::i;:::-;7977:25;;8136:1;8068:66;8064:74;8061:1;8058:81;8055:2;;;8142:18;;:::i;:::-;8055:2;8186:1;8183;8179:9;8172:16;;7933:261;;;;:::o;8200:191::-;;8260:20;8278:1;8260:20;:::i;:::-;8255:25;;8294:20;8312:1;8294:20;:::i;:::-;8289:25;;8333:1;8330;8327:8;8324:2;;;8338:18;;:::i;:::-;8324:2;8383:1;8380;8376:9;8368:17;;8245:146;;;;:::o;8397:96::-;;8463:24;8481:5;8463:24;:::i;:::-;8452:35;;8442:51;;;:::o;8499:90::-;;8576:5;8569:13;8562:21;8551:32;;8541:48;;;:::o;8595:126::-;;8672:42;8665:5;8661:54;8650:65;;8640:81;;;:::o;8727:77::-;;8793:5;8782:16;;8772:32;;;:::o;8810:86::-;;8885:4;8878:5;8874:16;8863:27;;8853:43;;;:::o;8902:307::-;8970:1;8980:113;8994:6;8991:1;8988:13;8980:113;;;9079:1;9074:3;9070:11;9064:18;9060:1;9055:3;9051:11;9044:39;9016:2;9013:1;9009:10;9004:15;;8980:113;;;9111:6;9108:1;9105:13;9102:2;;;9191:1;9182:6;9177:3;9173:16;9166:27;9102:2;8951:258;;;;:::o;9215:320::-;;9296:1;9290:4;9286:12;9276:22;;9343:1;9337:4;9333:12;9364:18;9354:2;;9420:4;9412:6;9408:17;9398:27;;9354:2;9482;9474:6;9471:14;9451:18;9448:38;9445:2;;;9501:18;;:::i;:::-;9445:2;9266:269;;;;:::o;9541:180::-;9589:77;9586:1;9579:88;9686:4;9683:1;9676:15;9710:4;9707:1;9700:15;9727:180;9775:77;9772:1;9765:88;9872:4;9869:1;9862:15;9896:4;9893:1;9886:15;9913:102;;10005:2;10001:7;9996:2;9989:5;9985:14;9981:28;9971:38;;9961:54;;;:::o;10021:122::-;10094:24;10112:5;10094:24;:::i;:::-;10087:5;10084:35;10074:2;;10133:1;10130;10123:12;10074:2;10064:79;:::o;10149:122::-;10222:24;10240:5;10222:24;:::i;:::-;10215:5;10212:35;10202:2;;10261:1;10258;10251:12;10202:2;10192:79;:::o

Swarm Source

ipfs://b94f69d2b09c76665c7ef6a2fb5c700b9011ac0660163f9d32c0c0a0b83a37bc

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

GMB describes itself as a dual-cryptocurrency that purportedly offers fast speeds and a connection to the real world. The project is a blockchain platform with various SPACE Dapps such as TravelSpace, a blockchain-based travel community service.

Validator Index Block Amount
View All Withdrawals

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

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