Contract 0xEd3D4e446A96dC3b181B64B75c3c70dA41dC3CBe 3

 

Contract Overview

Vodra: VDR Token
Balance:
0 Ether

EtherValue:
$0.00

Token:
 
Txn Hash
Method
Block
From
To
Value
0xbf40bd5b361702052b9e647bf3f3602e867d33b23de37abaa285197052d1873aTransfer156063442022-09-24 22:56:471 day 11 mins ago0x1da6046235eddd0ed4d8c0026c4f2594ee33af79 IN  Vodra: VDR Token0 Ether0.00010792 3.61201818
0xfc82abae9356ad2a8dcc744fbef62e73733d910865acdc7dcbb5376a8357fb2dTransfer155877092022-09-22 8:32:353 days 14 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00032949 6.36638961
0xc98356bf0f96f256c90cc946f7094ce9a47c197a7b10312a9695b6970f14003eTransfer155658972022-09-19 6:51:596 days 16 hrs ago0x0c6b06693f40778d7166cd2c3def60c3da655738 IN  Vodra: VDR Token0 Ether0.00029938 6.37415588
0xf06eb87edc4097a917c44d1f48d89b790806c0bf3757df8835437595589fb181Approve155526282022-09-17 10:12:118 days 12 hrs ago0xe576cdefd3bdd407e529820f47d4893b9c5f791e IN  Vodra: VDR Token0 Ether0.000309526.63507038
0xdb667386735d00d90e5c03588c872b59d02c3ef1de676ae60e2db7e3e0517b43Transfer155507642022-09-17 3:55:238 days 19 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00016252 4.68802746
0x71b758b4feaa8b0eb1d5a790abd802c5670b3e449b346b0833a275620eb85796Transfer155480692022-09-16 18:51:239 days 4 hrs ago0xd3179e53e8cb374b1b423329ed053c9e8562da0e IN  Vodra: VDR Token0 Ether0.00051228 10.90991183
0xb5a7bdcb1c710c8bb08ad5a80ec5ad5c12bed0e61dfb1793f695f5413e97e87aTransfer155348652022-09-14 20:18:0311 days 2 hrs agoMEXC: Mexc.com IN  Vodra: VDR Token0 Ether0.0006177517.82523673
0xcd2d6728dd5fb0f4c45a8507b7908c1c0069978de1464a198983dbf1427a0813Transfer155348652022-09-14 20:18:0311 days 2 hrs agoMEXC: Mexc.com IN  Vodra: VDR Token0 Ether0.0006177517.82523673
0x10fa896623b453c2b39f1aad4f3bc7f23f00090cc82b0bdcedf8304412fc192aTransfer155346902022-09-14 19:33:0511 days 3 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00080663 23.28349006
0x0480ea6951a9d02ff963dcd57b96f1f5ca4deadf80990cfcdd1d72fb94795c13Transfer155328162022-09-14 11:56:1011 days 11 hrs agoMEXC: Mexc.com IN  Vodra: VDR Token0 Ether0.0004379412.63681131
0x6b3bd11f385c17c70093258516ad16570af532fd2b219d33b348cd9e0fdfbc6cTransfer155243092022-09-13 2:01:5212 days 21 hrs ago0xe724f2e4372d86ba28dc9d5b402a3d8eeefb20ee IN  Vodra: VDR Token0 Ether0.000328697
0xca74dd1cb76b18c4e94dfe06ad5740ba47f723335e02b69b3722ed4ba712ce98Transfer155160732022-09-11 17:27:0814 days 5 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00061504 17.74727813
0x9a6ed4ce82942ffcc29c54466a7c147ffa23b555599249e18e18242286f7ce0bTransfer155021222022-09-09 10:00:2316 days 13 hrs ago0x8578ebedb49c18231ccaa41610ac5eda0a5d00ee IN  Vodra: VDR Token0 Ether0.0011204123.8547597
0xc5c22c90a01e372332626483fae31e68f19e8567302f5a657b220cd2151ff308Transfer155019772022-09-09 9:18:3016 days 13 hrs ago0x319abce341301c5b934b54b8a81293c6ab8b7579 IN  Vodra: VDR Token0 Ether0.0004221814.1463761
0x8d13bb3314f5b7c0c986ecb252886114105028797e8ad9c9bda5f9ff5b97eda4Transfer154971432022-09-08 14:34:3617 days 8 hrs ago0x7794dad0fbb53d1743d218440c82ae966ad272c6 IN  Vodra: VDR Token0 Ether0.00102635 19.83060406
0xc40b0b164120162eae430f857cce5d544029210f8031c905bd41b40881daeb72Transfer154722842022-09-04 15:01:1121 days 8 hrs ago0xa98ebc3ccda9c0996daf89848231193da774c7b8 IN  Vodra: VDR Token0 Ether0.00050049 10.65888432
0xdb15bb5ac90d3ae7cb22e6240bb2c90a7a2e1106cb44fcd7347358c3b75f836fTransfer154695862022-09-04 4:30:1621 days 18 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00017862 5.15437125
0x886b608a1fc0c0aa23a990dcff460393d1d6c63dff5a7ba44c608ba0711744cfTransfer154658062022-09-03 14:05:0222 days 9 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.0003538 6.83447865
0xd89a1ca04ca9d09e268542b74f06648a175319917c5e898fb025168f86db6258Transfer154656082022-09-03 13:20:5722 days 9 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00046056 8.89673516
0xb9e283ef6819509ac27e8002b2a8c565a0843c94a6a157d5836d7633907fc492Transfer154655062022-09-03 12:56:4822 days 10 hrs ago0x62d63efdfdc7804666725f4cc8cb45c1a41a0809 IN  Vodra: VDR Token0 Ether0.000268929
0x183a0faa6f74197fe9ffc842c25cb931b4acc4188177ba9b7f38f93361725211Transfer154654912022-09-03 12:54:0922 days 10 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00018303 5.2797056
0x55bd25886701f4ffdedb0f994e399228de047941f193a78a680e9b8d0056344cTransfer154654912022-09-03 12:54:0922 days 10 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00018291 5.2797056
0xd8254e97e45a76abd4dd8ea47f4b92e2a66e0110b0344b2ef150bf264b4b602aTransfer154641872022-09-03 8:03:0222 days 15 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00027131 7.82604454
0xfb469cb133a34ba04685cecf3518ccc6d664fd2edf9e20c884056a72dfc1172dTransfer154641352022-09-03 7:50:1922 days 15 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00027444 7.91922871
0xd30a50f1dc3d557b05b8a55c405147f6d10c9e9ffc3a2294ac5e6b4c77c74934Transfer154624972022-09-03 1:20:5122 days 21 hrs agoGate.io IN  Vodra: VDR Token0 Ether0.00058176 11.24055134
[ Download CSV Export 

OVERVIEW

Vodra is a decentralized donation platform and utility token. The Vodra Platform aims to facilitate and increase creator compensation with zero platform fees, voting/crowdfunding utility, and the ability for users to schedule monthly donations/pledges to their favorite content creators.

View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VodraToken

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

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

pragma solidity ^0.8.0;

// Using OpenZeppelin Implementation for security
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.0/contracts/token/ERC20/ERC20.sol
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.0/contracts/token/ERC20/extensions/ERC20Burnable.sol
import "./ERC20.sol";
import "./ERC20Burnable.sol";

contract VodraToken is ERC20, ERC20Burnable {

    constructor () public ERC20("Vodra", "VDR") {
        _mint(msg.sender, 2 * (10**9) * (10 ** uint256(decimals())));
    }
}

File 1 of 5: Context.sol
// 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 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) {
        return msg.sender;
    }

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

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

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./Context.sol";

/**
 * @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 {
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 this function is
     * overloaded;
     *
     * 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 virtual returns (uint8) {
        return 18;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual 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);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        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] + 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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += 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 += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), 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 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 { }
}

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

pragma solidity ^0.8.0;

import "./ERC20.sol";
import "./Context.sol";

/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        _approve(account, _msgSender(), currentAllowance - amount);
        _burn(account, amount);
    }
}

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

pragma solidity ^0.8.0;

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

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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","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"}]

60806040523480156200001157600080fd5b5060405180604001604052806005815260200164566f64726160d81b815250604051806040016040528060038152602001622b222960e91b8152508160039080519060200190620000649291906200019c565b5080516200007a9060049060208401906200019c565b505050620000b83362000092620000be60201b60201c565b620000a29060ff16600a620002ea565b620000b2906377359400620003df565b620000c3565b62000454565b601290565b6001600160a01b038216620000f55760405162461bcd60e51b8152600401620000ec9062000242565b60405180910390fd5b620001036000838362000197565b806002600082825462000117919062000282565b90915550506001600160a01b038216600090815260208190526040812080548392906200014690849062000282565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200018b90859062000279565b60405180910390a35050565b505050565b828054620001aa9062000401565b90600052602060002090601f016020900481019282620001ce576000855562000219565b82601f10620001e957805160ff191683800117855562000219565b8280016001018555821562000219579182015b8281111562000219578251825591602001919060010190620001fc565b50620002279291506200022b565b5090565b5b808211156200022757600081556001016200022c565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200029857620002986200043e565b500190565b80825b6001808611620002b15750620002e1565b818704821115620002c657620002c66200043e565b80861615620002d457918102915b9490941c938002620002a0565b94509492505050565b6000620002fb600019848462000302565b9392505050565b6000826200031357506001620002fb565b816200032257506000620002fb565b81600181146200033b576002811462000346576200037a565b6001915050620002fb565b60ff8411156200035a576200035a6200043e565b6001841b9150848211156200037357620003736200043e565b50620002fb565b5060208310610133831016604e8410600b8410161715620003b2575081810a83811115620003ac57620003ac6200043e565b620002fb565b620003c184848460016200029d565b808604821115620003d657620003d66200043e565b02949350505050565b6000816000190483118215151615620003fc57620003fc6200043e565b500290565b6002810460018216806200041657607f821691505b602082108114156200043857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b610c5780620004646000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b411461019d578063a457c2d7146101a5578063a9059cbb146101b8578063dd62ed3e146101cb576100cf565b806342966c681461016257806370a082311461017757806379cc67901461018a576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011257806323b872dd14610127578063313ce5671461013a578063395093511461014f575b600080fd5b6100dc6101de565b6040516100e9919061088f565b60405180910390f35b610105610100366004610843565b610270565b6040516100e99190610884565b61011a61028d565b6040516100e99190610b8a565b610105610135366004610808565b610293565b610142610333565b6040516100e99190610b93565b61010561015d366004610843565b610338565b61017561017036600461086c565b610387565b005b61011a6101853660046107b5565b61039b565b610175610198366004610843565b6103ba565b6100dc61040f565b6101056101b3366004610843565b61041e565b6101056101c6366004610843565b610499565b61011a6101d93660046107d6565b6104ad565b6060600380546101ed90610bd0565b80601f016020809104026020016040519081016040528092919081815260200182805461021990610bd0565b80156102665780601f1061023b57610100808354040283529160200191610266565b820191906000526020600020905b81548152906001019060200180831161024957829003601f168201915b5050505050905090565b600061028461027d6104d8565b84846104dc565b50600192915050565b60025490565b60006102a0848484610590565b6001600160a01b0384166000908152600160205260408120816102c16104d8565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561030d5760405162461bcd60e51b8152600401610304906109ef565b60405180910390fd5b610328856103196104d8565b6103238685610bb9565b6104dc565b506001949350505050565b601290565b60006102846103456104d8565b8484600160006103536104d8565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546103239190610ba1565b6103986103926104d8565b826106b8565b50565b6001600160a01b0381166000908152602081905260409020545b919050565b60006103c8836101d96104d8565b9050818110156103ea5760405162461bcd60e51b815260040161030490610a37565b610400836103f66104d8565b6103238585610bb9565b61040a83836106b8565b505050565b6060600480546101ed90610bd0565b6000806001600061042d6104d8565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156104795760405162461bcd60e51b815260040161030490610b45565b61048f6104846104d8565b856103238685610bb9565b5060019392505050565b60006102846104a66104d8565b8484610590565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166105025760405162461bcd60e51b815260040161030490610b01565b6001600160a01b0382166105285760405162461bcd60e51b815260040161030490610967565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610583908590610b8a565b60405180910390a3505050565b6001600160a01b0383166105b65760405162461bcd60e51b815260040161030490610abc565b6001600160a01b0382166105dc5760405162461bcd60e51b8152600401610304906108e2565b6105e783838361040a565b6001600160a01b038316600090815260208190526040902054818110156106205760405162461bcd60e51b8152600401610304906109a9565b61062a8282610bb9565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290610660908490610ba1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106aa9190610b8a565b60405180910390a350505050565b6001600160a01b0382166106de5760405162461bcd60e51b815260040161030490610a7b565b6106ea8260008361040a565b6001600160a01b038216600090815260208190526040902054818110156107235760405162461bcd60e51b815260040161030490610925565b61072d8282610bb9565b6001600160a01b0384166000908152602081905260408120919091556002805484929061075b908490610bb9565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610583908690610b8a565b80356001600160a01b03811681146103b557600080fd5b6000602082840312156107c6578081fd5b6107cf8261079e565b9392505050565b600080604083850312156107e8578081fd5b6107f18361079e565b91506107ff6020840161079e565b90509250929050565b60008060006060848603121561081c578081fd5b6108258461079e565b92506108336020850161079e565b9150604084013590509250925092565b60008060408385031215610855578182fd5b61085e8361079e565b946020939093013593505050565b60006020828403121561087d578081fd5b5035919050565b901515815260200190565b6000602080835283518082850152825b818110156108bb5785810183015185820160400152820161089f565b818111156108cc5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526024908201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604082015263616e636560e01b606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610bb457610bb4610c0b565b500190565b600082821015610bcb57610bcb610c0b565b500390565b600281046001821680610be457607f821691505b60208210811415610c0557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220de010a0dfb4b98272c9dc63afbedaeb7abb87a51be9f6f9c23143839617d8f3c64736f6c63430008010033

Deployed ByteCode Sourcemap

406:179:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2069:91:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4209:169;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3162:108::-;;;:::i;:::-;;;;;;;:::i;4860:422::-;;;;;;:::i;:::-;;:::i;3013:84::-;;;:::i;:::-;;;;;;;:::i;5691:215::-;;;;;;:::i;:::-;;:::i;491:91:2:-;;;;;;:::i;:::-;;:::i;:::-;;3333:127:1;;;;;;:::i;:::-;;:::i;901:332:2:-;;;;;;:::i;:::-;;:::i;2279:95:1:-;;;:::i;6409:377::-;;;;;;:::i;:::-;;:::i;3673:175::-;;;;;;:::i;:::-;;:::i;3911:151::-;;;;;;:::i;:::-;;:::i;2069:91::-;2114:13;2147:5;2140:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2069:91;:::o;4209:169::-;4292:4;4309:39;4318:12;:10;:12::i;:::-;4332:7;4341:6;4309:8;:39::i;:::-;-1:-1:-1;4366:4:1;4209:169;;;;:::o;3162:108::-;3250:12;;3162:108;:::o;4860:422::-;4966:4;4983:36;4993:6;5001:9;5012:6;4983:9;:36::i;:::-;-1:-1:-1;;;;;5059:19:1;;5032:24;5059:19;;;:11;:19;;;;;5032:24;5079:12;:10;:12::i;:::-;-1:-1:-1;;;;;5059:33:1;-1:-1:-1;;;;;5059:33:1;;;;;;;;;;;;;5032:60;;5131:6;5111:16;:26;;5103:79;;;;-1:-1:-1;;;5103:79:1;;;;;;;:::i;:::-;;;;;;;;;5193:57;5202:6;5210:12;:10;:12::i;:::-;5224:25;5243:6;5224:16;:25;:::i;:::-;5193:8;:57::i;:::-;-1:-1:-1;5270:4:1;;4860:422;-1:-1:-1;;;;4860:422:1:o;3013:84::-;3087:2;3013:84;:::o;5691:215::-;5779:4;5796:80;5805:12;:10;:12::i;:::-;5819:7;5865:10;5828:11;:25;5840:12;:10;:12::i;:::-;-1:-1:-1;;;;;5828:25:1;;;;;;;;;;;;;;;;;-1:-1:-1;5828:25:1;;;:34;;;;;;;;;;:47;;;;:::i;491:91:2:-;547:27;553:12;:10;:12::i;:::-;567:6;547:5;:27::i;:::-;491:91;:::o;3333:127:1:-;-1:-1:-1;;;;;3434:18:1;;3407:7;3434:18;;;;;;;;;;;3333:127;;;;:::o;901:332:2:-;978:24;1005:32;1015:7;1024:12;:10;:12::i;1005:32::-;978:59;;1076:6;1056:16;:26;;1048:75;;;;-1:-1:-1;;;1048:75:2;;;;;;;:::i;:::-;1134:58;1143:7;1152:12;:10;:12::i;:::-;1166:25;1185:6;1166:16;:25;:::i;1134:58::-;1203:22;1209:7;1218:6;1203:5;:22::i;:::-;901:332;;;:::o;2279:95:1:-;2326:13;2359:7;2352:14;;;;;:::i;6409:377::-;6502:4;6519:24;6546:11;:25;6558:12;:10;:12::i;:::-;-1:-1:-1;;;;;6546:25:1;;;;;;;;;;;;;;;;;-1:-1:-1;6546:25:1;;;:34;;;;;;;;;;;-1:-1:-1;6599:35:1;;;;6591:85;;;;-1:-1:-1;;;6591:85:1;;;;;;;:::i;:::-;6687:67;6696:12;:10;:12::i;:::-;6710:7;6719:34;6738:15;6719:16;:34;:::i;6687:67::-;-1:-1:-1;6774:4:1;;6409:377;-1:-1:-1;;;6409:377:1:o;3673:175::-;3759:4;3776:42;3786:12;:10;:12::i;:::-;3800:9;3811:6;3776:9;:42::i;3911:151::-;-1:-1:-1;;;;;4027:18:1;;;4000:7;4027:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3911:151::o;601:98:0:-;681:10;601:98;:::o;9765:346:1:-;-1:-1:-1;;;;;9867:19:1;;9859:68;;;;-1:-1:-1;;;9859:68:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;9946:21:1;;9938:68;;;;-1:-1:-1;;;9938:68:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;10019:18:1;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10071:32;;;;;10049:6;;10071:32;:::i;:::-;;;;;;;;9765:346;;;:::o;7276:604::-;-1:-1:-1;;;;;7382:20:1;;7374:70;;;;-1:-1:-1;;;7374:70:1;;;;;;;:::i;:::-;-1:-1:-1;;;;;7463:23:1;;7455:71;;;;-1:-1:-1;;;7455:71:1;;;;;;;:::i;:::-;7539:47;7560:6;7568:9;7579:6;7539:20;:47::i;:::-;-1:-1:-1;;;;;7623:17:1;;7599:21;7623:17;;;;;;;;;;;7659:23;;;;7651:74;;;;-1:-1:-1;;;7651:74:1;;;;;;;:::i;:::-;7756:22;7772:6;7756:13;:22;:::i;:::-;-1:-1:-1;;;;;7736:17:1;;;:9;:17;;;;;;;;;;;:42;;;;7789:20;;;;;;;;:30;;7813:6;;7736:9;7789:30;;7813:6;;7789:30;:::i;:::-;;;;;;;;7854:9;-1:-1:-1;;;;;7837:35:1;7846:6;-1:-1:-1;;;;;7837:35:1;;7865:6;7837:35;;;;;;:::i;:::-;;;;;;;;7276:604;;;;:::o;8833:494::-;-1:-1:-1;;;;;8917:21:1;;8909:67;;;;-1:-1:-1;;;8909:67:1;;;;;;;:::i;:::-;8989:49;9010:7;9027:1;9031:6;8989:20;:49::i;:::-;-1:-1:-1;;;;;9076:18:1;;9051:22;9076:18;;;;;;;;;;;9113:24;;;;9105:71;;;;-1:-1:-1;;;9105:71:1;;;;;;;:::i;:::-;9208:23;9225:6;9208:14;:23;:::i;:::-;-1:-1:-1;;;;;9187:18:1;;:9;:18;;;;;;;;;;:44;;;;9242:12;:22;;9258:6;;9187:9;9242:22;;9258:6;;9242:22;:::i;:::-;;;;-1:-1:-1;;9282:37:1;;9308:1;;-1:-1:-1;;;;;9282:37:1;;;;;;;9312:6;;9282:37;:::i;14:175:5:-;84:20;;-1:-1:-1;;;;;133:31:5;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:5:o;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:5:o;1294:190::-;;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1427:6;1419;1412:22;1374:2;-1:-1:-1;1455:23:5;;1364:120;-1:-1:-1;1364:120:5:o;1489:187::-;1654:14;;1647:22;1629:41;;1617:2;1602:18;;1584:92::o;1681:603::-;;1822:2;1851;1840:9;1833:21;1883:6;1877:13;1926:6;1921:2;1910:9;1906:18;1899:34;1951:4;1964:140;1978:6;1975:1;1972:13;1964:140;;;2073:14;;;2069:23;;2063:30;2039:17;;;2058:2;2035:26;2028:66;1993:10;;1964:140;;;2122:6;2119:1;2116:13;2113:2;;;2192:4;2187:2;2178:6;2167:9;2163:22;2159:31;2152:45;2113:2;-1:-1:-1;2268:2:5;2247:15;-1:-1:-1;;2243:29:5;2228:45;;;;2275:2;2224:54;;1802:482;-1:-1:-1;;;1802:482:5:o;2289:399::-;2491:2;2473:21;;;2530:2;2510:18;;;2503:30;2569:34;2564:2;2549:18;;2542:62;-1:-1:-1;;;2635:2:5;2620:18;;2613:33;2678:3;2663:19;;2463:225::o;2693:398::-;2895:2;2877:21;;;2934:2;2914:18;;;2907:30;2973:34;2968:2;2953:18;;2946:62;-1:-1:-1;;;3039:2:5;3024:18;;3017:32;3081:3;3066:19;;2867:224::o;3096:398::-;3298:2;3280:21;;;3337:2;3317:18;;;3310:30;3376:34;3371:2;3356:18;;3349:62;-1:-1:-1;;;3442:2:5;3427:18;;3420:32;3484:3;3469:19;;3270:224::o;3499:402::-;3701:2;3683:21;;;3740:2;3720:18;;;3713:30;3779:34;3774:2;3759:18;;3752:62;-1:-1:-1;;;3845:2:5;3830:18;;3823:36;3891:3;3876:19;;3673:228::o;3906:404::-;4108:2;4090:21;;;4147:2;4127:18;;;4120:30;4186:34;4181:2;4166:18;;4159:62;-1:-1:-1;;;4252:2:5;4237:18;;4230:38;4300:3;4285:19;;4080:230::o;4315:400::-;4517:2;4499:21;;;4556:2;4536:18;;;4529:30;4595:34;4590:2;4575:18;;4568:62;-1:-1:-1;;;4661:2:5;4646:18;;4639:34;4705:3;4690:19;;4489:226::o;4720:397::-;4922:2;4904:21;;;4961:2;4941:18;;;4934:30;5000:34;4995:2;4980:18;;4973:62;-1:-1:-1;;;5066:2:5;5051:18;;5044:31;5107:3;5092:19;;4894:223::o;5122:401::-;5324:2;5306:21;;;5363:2;5343:18;;;5336:30;5402:34;5397:2;5382:18;;5375:62;-1:-1:-1;;;5468:2:5;5453:18;;5446:35;5513:3;5498:19;;5296:227::o;5528:400::-;5730:2;5712:21;;;5769:2;5749:18;;;5742:30;5808:34;5803:2;5788:18;;5781:62;-1:-1:-1;;;5874:2:5;5859:18;;5852:34;5918:3;5903:19;;5702:226::o;5933:401::-;6135:2;6117:21;;;6174:2;6154:18;;;6147:30;6213:34;6208:2;6193:18;;6186:62;-1:-1:-1;;;6279:2:5;6264:18;;6257:35;6324:3;6309:19;;6107:227::o;6339:177::-;6485:25;;;6473:2;6458:18;;6440:76::o;6521:184::-;6693:4;6681:17;;;;6663:36;;6651:2;6636:18;;6618:87::o;6710:128::-;;6781:1;6777:6;6774:1;6771:13;6768:2;;;6787:18;;:::i;:::-;-1:-1:-1;6823:9:5;;6758:80::o;6843:125::-;;6911:1;6908;6905:8;6902:2;;;6916:18;;:::i;:::-;-1:-1:-1;6953:9:5;;6892:76::o;6973:380::-;7058:1;7048:12;;7105:1;7095:12;;;7116:2;;7170:4;7162:6;7158:17;7148:27;;7116:2;7223;7215:6;7212:14;7192:18;7189:38;7186:2;;;7269:10;7264:3;7260:20;7257:1;7250:31;7304:4;7301:1;7294:15;7332:4;7329:1;7322:15;7186:2;;7028:325;;;:::o;7358:127::-;7419:10;7414:3;7410:20;7407:1;7400:31;7450:4;7447:1;7440:15;7474:4;7471:1;7464:15

Swarm Source

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

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