S Price: $0.568826 (+2.24%)
    /

    Token

    Sacra token (SACRA)

    Overview

    Max Total Supply

    11,142,334.784143895613523533 SACRA

    Holders

    630 ( -0.477%)
    Created with Highcharts 10.2.1

    Market

    Price

    $0.0211 @ 0.037025 S (+16.86%)

    Onchain Market Cap

    $234,665.26

    Circulating Supply Market Cap

    $0.00

    Other Info

    Token Contract (WITH 18 Decimals)

    Balance
    614.694564592139628693 SACRA

    Value
    $12.95 ( ~22.7662 S) [0.0055%]
    0x248D4115279ef684db2E66236aeB9aAa7FbA84E5
    Loading...
    Loading
    Loading...
    Loading
    Loading...
    Loading

    OVERVIEW

    A fully on-chain game that seamlessly combines true ownership and financial incentives.

    Contract Source Code Verified (Exact Match)

    Contract Name:
    GameToken

    Compiler Version
    v0.8.23+commit.f704f362

    Optimization Enabled:
    Yes with 50 runs

    Other Settings:
    istanbul EvmVersion
    File 1 of 17 : GameToken.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    /**
    ▒▓▒ ▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓███▓▓▒ ▒▒▒▒▓▓▓▒▓▓▓▓▓▓▓██▓
    ▒██▒▓▓▓▓█▓██████████████████▓ ▒▒▒▓███████████████▒
    ▒██▒▓█████████████████████▒ ▒▓██████████▓███████
    ▒███████████▓▒ ▒███▓▓██████▓
    █████████▒ ▒▓▒▓███████▒
    ███████▓ ▒▒▒▒▒▓▓█▓▒ ▓█▓████████
    ▒▒▒▒▒ ▒▒▒▒▓▓▓█████▒ ▓█████████▓
    ▒▓▓▓▒▓██████▓ ▒▓▓████████▒
    ▒██▓▓▓███████▒ ▒▒▓███▓████
    ▒███▓█████▒ ▒▒█████▓██▓
    ██████▓ ▒▒▒▓██▓██▓█████▒
    ▒▒▓▓▒ ▒██▓▒▓▓████████
    ▓█████▓███████▓
    ██▓▓██████████▒
    ▒█████████████
    ███████████▓
    ▒▓▓▓▓▓▓▒▓ ▒█████████▒ ▒▓▓
    ▒▓█▒ ▒▒█▒▒ ▓██████ ▒▒▓▓▒
    ▒▒█▒ ▓▒ ▒████ ▒▓█▓█▓▒
    ▓▒██▓▒ ██ ▒▓█▓▓▓██▒
    ▓█▓▓▓▓▓█▓▓▓▒ ▒▒▒ ▒▒▒▓▓▓▓▒▓▒▒▓▒▓▓▓▓▓▓▓▓▒ ▒▓█▒ ▒▓▒▓█▓
    ▒▓█▓▓▓▓▓▓▓▓▓▓▒ ▒▒▒▓▒ ▒▒▒▓▓ ▓▓ ▓▓█▓ ▒▒▓▓ ▒▒█▒ ▒▓▒▓█▓
    ▒▒▓▓▓▒▓▒ ▒▓▓▓▒█▒ ▒▒▒█▒ ▒▒█▓▒▒▒▓▓▓▒ ▓██▓▓▓▓▓▓▓███▓
    ▒ ▒▓▓█▓ ▒▓▓▓▓█▓█▓ ▒█▓▓▒ ▓▓█▓▒▓█▓▒▒ ▓█▓ ▓███▓
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 17 : IAppErrors.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    /// @notice All errors of the app
    interface IAppErrors {
    //region ERC20Errors
    /**
    * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
    * @param sender Address whose tokens are being transferred.
    * @param balance Current balance for the interacting account.
    * @param needed Minimum amount required to perform a transfer.
    */
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    /**
    * @dev Indicates a failure with the token `sender`. Used in transfers.
    * @param sender Address whose tokens are being transferred.
    */
    error ERC20InvalidSender(address sender);
    /**
    * @dev Indicates a failure with the token `receiver`. Used in transfers.
    * @param receiver Address to which tokens are being transferred.
    */
    error ERC20InvalidReceiver(address receiver);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 17 : IApplicationEvents.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "./IGOC.sol";
    import "./IStatController.sol";
    import "./IDungeonFactory.sol";
    import "./IStoryController.sol";
    import "./IFightCalculator.sol";
    /// @notice All events of the app
    interface IApplicationEvents {
    //region ------------------ StatController
    event HeroItemSlotChanged(
    address heroToken,
    uint heroTokenId,
    uint itemType,
    uint itemSlot,
    address itemToken,
    uint itemTokenId,
    bool equip,
    address caller
    );
    event CurrentStatsChanged(
    address heroToken,
    uint heroTokenId,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 17 : IController.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    interface IController {
    function governance() external view returns (address);
    function statController() external view returns (address);
    function storyController() external view returns (address);
    function gameObjectController() external view returns (address);
    function reinforcementController() external view returns (address);
    function oracle() external view returns (address);
    function treasury() external view returns (address);
    function itemController() external view returns (address);
    function heroController() external view returns (address);
    function dungeonFactory() external view returns (address);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 17 : IDungeonFactory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "../openzeppelin/EnumerableSet.sol";
    import "../openzeppelin/EnumerableMap.sol";
    interface IDungeonFactory {
    /// @custom:storage-location erc7201:dungeon.factory.main
    struct MainState {
    /// @dev biome => dungeonLaunchedId
    mapping(uint => EnumerableSet.UintSet) freeDungeons;
    /// @dev hero + heroId + biome (packMapObject) -> completed
    mapping(bytes32 => bool) bossCompleted;
    /// @dev hero + heroId + dungNum (packDungeonKey) -> completed
    mapping(bytes32 => bool) specificDungeonCompleted;
    /// @notice Max biome completed by the hero
    /// @dev hero + heroId (nftPacked) -> max biome completed
    mapping(bytes32 => uint8) maxBiomeCompleted;
    /// @notice which dungeon the hero is currently in
    /// @dev hero+id => current DungeonId
    mapping(bytes32 => uint64) heroCurrentDungeon;
    // ---
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 17 : IERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // 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);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 17 : IFightCalculator.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "./IStatController.sol";
    import "./IItemController.sol";
    interface IFightCalculator {
    enum AttackType {
    UNKNOWN, // 0
    MELEE, // 1
    MAGIC, // 2
    SLOT_3,
    SLOT_4,
    SLOT_5,
    SLOT_6,
    SLOT_7,
    SLOT_8,
    SLOT_9,
    SLOT_10
    }
    /// @notice Attacker info: suitable both for hero and monsters
    struct AttackInfo {
    /// @notice Type of the attack
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 17 : IGameToken.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "./IERC20.sol";
    interface IGameToken is IERC20 {
    function minter() external view returns (address);
    function mint(address account, uint amount) external returns (bool);
    function burn(uint amount) external returns (bool);
    function setMinter(address minter_) external;
    function pause(bool value) external;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 17 : IGOC.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "../openzeppelin/EnumerableSet.sol";
    import "./IController.sol";
    interface IGOC {
    enum ObjectType {
    UNKNOWN, // 0
    EVENT, // 1
    MONSTER, // 2
    STORY, // 3
    END_SLOT
    }
    enum ObjectSubType {
    UNKNOWN_0, // 0
    ENEMY_NPC_1, // 1
    ENEMY_NPC_SUPER_RARE_2, // 2
    BOSS_3, // 3
    SHRINE_4, // 4
    CHEST_5, // 5
    STORY_6, // 6
    STORY_UNIQUE_7, // 7
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 10 of 17 : IHeroController.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "../openzeppelin/EnumerableSet.sol";
    import "../openzeppelin/EnumerableMap.sol";
    interface IHeroController {
    /// @custom:storage-location erc7201:hero.controller.main
    struct MainState {
    /// @dev A central place for all hero tokens
    /// @dev Deprecated. Controller is used instead.
    address heroTokensVault;
    /// @dev heroAdr => packed tokenAdr160+ amount96
    mapping(address => bytes32) payToken;
    /// @dev heroAdr => heroCls8
    mapping(address => uint8) heroClass;
    // ---
    /// @dev hero+id => individual hero name
    mapping(bytes32 => string) heroName;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 11 of 17 : IItemController.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "./IStatController.sol";
    import "./IGOC.sol";
    import "../openzeppelin/EnumerableSet.sol";
    interface IItemController {
    enum GlobalParam {
    UNKNOWN_0,
    /// @notice Address of ItemControllerHelper
    ITEM_CONTROLLER_HELPER_ADDRESS_1
    }
    /// @custom:storage-location erc7201:item.controller.main
    struct MainState {
    ////////////////// GENERATE //////////////////
    EnumerableSet.AddressSet items;
    /// @dev itemAdr => itemMetaType8 + itemLvl8 + itemType8 + baseDurability16 + defaultRarity8 + minAttr8 + maxAttr8 + manaCost32 + req(packed core
            128)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 12 of 17 : IOracle.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    interface IOracle {
    function getRandomNumber(uint max, uint seed) external returns (uint);
    function getRandomNumberInRange(uint min, uint max, uint seed) external returns (uint);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 13 of 17 : IStatController.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "../openzeppelin/EnumerableSet.sol";
    import "../openzeppelin/EnumerableMap.sol";
    interface IStatController {
    /// @custom:storage-location erc7201:stat.controller.main
    struct MainState {
    mapping(bytes32 => bytes32[]) heroTotalAttributes;
    /// @dev heroAdr+heroId => int32 packed strength, dexterity, vitality, energy
    mapping(bytes32 => bytes32) _heroCore;
    mapping(bytes32 => bytes32[]) heroBonusAttributes;
    mapping(bytes32 => bytes32[]) heroTemporallyAttributes;
    /// @dev heroAdr+heroId => uint32 packed level, experience, life, mana, lifeChances
    mapping(bytes32 => bytes32) heroStats;
    /// @dev heroAdr+heroId+itemSlot => itemAdr + itemId
    mapping(bytes32 => bytes32) heroSlots;
    /// @dev heroAdr+heroId => busy slots uint8[] packed
    mapping(bytes32 => bytes32) heroBusySlots;
    mapping(bytes32 => EnumerableSet.AddressSet) usedConsumables;
    /// @dev heroCustomDataV2 is used instead
    mapping(bytes32 => mapping(bytes32 => uint)) _deprecated_heroCustomData;
    mapping(bytes32 => uint) globalCustomData;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 14 of 17 : IStoryController.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BUSL-1.1
    pragma solidity 0.8.23;
    import "../interfaces/IGOC.sol";
    import "../interfaces/IStatController.sol";
    import "../interfaces/IItemController.sol";
    import "./IController.sol";
    import "./IOracle.sol";
    import "./IHeroController.sol";
    import "../openzeppelin/EnumerableSet.sol";
    interface IStoryController {
    enum AnswerResultId {
    UNKNOWN, // 0
    SUCCESS, // 1
    ATTRIBUTE_FAIL, // 2
    RANDOM_FAIL, // 3
    DELAY_FAIL, // 4
    HERO_CUSTOM_DATA_FAIL, // 5
    GLOBAL_CUSTOM_DATA_FAIL, // 6
    END_SLOT
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 15 of 17 : EnumerableMap.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (utils/structs/EnumerableMap.sol)
    // This file was procedurally generated from scripts/generate/templates/EnumerableMap.js.
    pragma solidity ^0.8.20;
    import {EnumerableSet} from "./EnumerableSet.sol";
    /**
    * @dev Library for managing an enumerable variant of Solidity's
    * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]
    * type.
    *
    * Maps have the following properties:
    *
    * - Entries are added, removed, and checked for existence in constant time
    * (O(1)).
    * - Entries are enumerated in O(n). No guarantees are made on the ordering.
    *
    * ```solidity
    * contract Example {
    * // Add the library methods
    * using EnumerableMap for EnumerableMap.UintToAddressMap;
    *
    * // Declare a set state variable
    * EnumerableMap.UintToAddressMap private myMap;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 16 of 17 : EnumerableSet.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (utils/structs/EnumerableSet.sol)
    // This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.
    pragma solidity ^0.8.20;
    /**
    * @dev Library for managing
    * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive
    * types.
    *
    * Sets have the following properties:
    *
    * - Elements are added, removed, and checked for existence in constant time
    * (O(1)).
    * - Elements are enumerated in O(n). No guarantees are made on the ordering.
    *
    * ```solidity
    * contract Example {
    * // Add the library methods
    * using EnumerableSet for EnumerableSet.AddressSet;
    *
    * // Declare a set state variable
    * EnumerableSet.AddressSet private mySet;
    * }
    * ```
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 17 of 17 : ERC2771Context.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v4.7.0) (metatx/ERC2771Context.sol)
    pragma solidity ^0.8.1;
    import "../interfaces/IAppErrors.sol";
    /**
    * @dev Context variant with ERC2771 support.
    */
    // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/metatx/ERC2771Context.sol
    abstract contract ERC2771Context {
    // for whitelist new relayers need to add new constants and update proxies
    address private constant GELATO_RELAY_1_BALANCE_ERC_2771 = 0xd8253782c45a12053594b9deB72d8e8aB2Fca54c;
    address private constant SACRA_RELAY = 0x52CEba41Da235Af367bFC0b0cCd3314cb901bB5F;
    function isTrustedForwarder(address forwarder) public view virtual returns (bool){
    return forwarder == GELATO_RELAY_1_BALANCE_ERC_2771 || forwarder == SACRA_RELAY;
    }
    function _msgSender() internal view virtual returns (address sender) {
    if (isTrustedForwarder(msg.sender)) {
    // The assembly code is more direct than the Solidity version using `abi.decode`.
    /// @solidity memory-safe-assembly
    assembly {
    sender := shr(96, calldataload(sub(calldatasize(), 20)))
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    {
    "evmVersion": "istanbul",
    "optimizer": {
    "enabled": true,
    "runs": 50
    },
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    "devdoc",
    "userdoc",
    "metadata",
    "abi"
    ]
    }
    },
    "metadata": {
    "useLiteralContent": true
    },
    "libraries": {}
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApproveToZeroAddress","type":"error"},{"inputs":[],"name":"BurnAmountExceedsBalance","type":"error"},{"inputs":[],"name":"ErrorPaused","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"NotMinter","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferAmountExceedsBalance","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"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":false,"internalType":"bool","name":"value","type":"bool"}],"name":"ChangePauseStatus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"MinterChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender_","type":"address"},{"internalType":"uint256","name":"value_","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"forwarder","type":"address"}],"name":"isTrustedForwarder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"value_","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"value_","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

    60806040526000805534801561001457600080fd5b5061001d610055565b600480546001600160a01b0319166001600160a01b039290921691909117905561004f610048610055565b6000610077565b506101de565b60006100603361016f565b15610072575060131936013560601c90565b503390565b60006001600160a01b03831661009f57604051622e076360e81b815260040160405180910390fd5b60015460ff16156100df5760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015260640160405180910390fd5b6001600160a01b038316600090815260026020526040812080548492906101079084906101bd565b925050819055508160008082825461011f91906101bd565b90915550506040518281526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060015b92915050565b60006001600160a01b03821673d8253782c45a12053594b9deb72d8e8ab2fca54c148061016957506001600160a01b0382167352ceba41da235af367bfc0b0ccd3314cb901bb5f1492915050565b8082018082111561016957634e487b7160e01b600052601160045260246000fd5b610a5c806101ed6000396000f3fe608060405234801561001057600080fd5b50600436106100e05760003560e01c806342966c681161008757806342966c68146101d4578063572b6c05146101e75780635c975abb146101fa57806370a082311461020757806395d89b4114610227578063a9059cbb1461024b578063dd62ed3e1461025e578063fca3b5aa1461028957600080fd5b806302329a29146100e557806306fdde03146100fa578063075461721461013a578063095ea7b31461015a57806318160ddd1461017d57806323b872dd14610194578063313ce567146101a757806340c10f19146101c1575b600080fd5b6100f86100f3366004610877565b61029c565b005b6101246040518060400160405280600b81526020016a29b0b1b930903a37b5b2b760a91b81525081565b6040516101319190610899565b60405180910390f35b60045461014d906001600160a01b031681565b60405161013191906108e8565b61016d610168366004610918565b61031a565b6040519015158152602001610131565b61018660005481565b604051908152602001610131565b61016d6101a2366004610942565b6103d4565b6101af601281565b60405160ff9091168152602001610131565b61016d6101cf366004610918565b6104ad565b61016d6101e236600461097e565b6104f1565b61016d6101f5366004610997565b61058a565b60015461016d9060ff1681565b610186610215366004610997565b60026020526000908152604090205481565b61012460405180604001604052806005815260200164534143524160d81b81525081565b61016d610259366004610918565b6105d8565b61018661026c3660046109b2565b600360209081526000928352604080842090915290825290205481565b6100f8610297366004610997565b6105f3565b6004546001600160a01b031633146102d25733604051631b0e18f960e11b81526004016102c991906108e8565b60405180910390fd5b6001805460ff19168215159081179091556040519081527f58bacb7f0dd4d609de27cc5c3f458b9a9bdcf5d148bca9f186b33ad75d2c23b4906020015b60405180910390a150565b60006001600160a01b0383166103435760405163076e33c360e31b815260040160405180910390fd5b816003600061035061066b565b6001600160a01b039081168252602080830193909352604091820160009081209188168082529190935291209190915561038861066b565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103c291815260200190565b60405180910390a35060015b92915050565b6000806103df61066b565b6001600160a01b0380871660009081526003602090815260408083209385168352929052205490915060001981146104985783811015610432576040516313be252b60e01b815260040160405180910390fd5b6001600160a01b03868116600081815260036020908152604080832094871680845294825291829020888603908190559151828152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b6104a386868661068d565b9695505050505050565b6004546000906001600160a01b031633146104dd5733604051631b0e18f960e11b81526004016102c991906108e8565b6104e783836107a2565b5060019392505050565b6000806104fc61066b565b6001600160a01b0381166000908152600260205260409020549091508381101561053957604051630bba337f60e11b815260040160405180910390fd5b6001600160a01b038216600081815260026020908152604080832088860390558254889003835551878152919291600080516020610a07833981519152910160405180910390a35060019392505050565b60006001600160a01b03821673d8253782c45a12053594b9deb72d8e8ab2fca54c14806103ce57506001600160a01b0382167352ceba41da235af367bfc0b0ccd3314cb901bb5f1492915050565b60006105ec6105e561066b565b848461068d565b9392505050565b6004546001600160a01b031633146106205733604051631b0e18f960e11b81526004016102c991906108e8565b600480546001600160a01b0319166001600160a01b0383161790556040517fb6b8f1859c5c352e5ffad07d0f77e384ac725512c015bd3a3ffc885831c8a4259061030f9083906108e8565b60006106763361058a565b15610688575060131936013560601c90565b503390565b60006001600160a01b0383166106b657604051633a954ecd60e21b815260040160405180910390fd5b60015460ff16156106da57604051635e1633d360e11b815260040160405180910390fd5b6001600160a01b0384166000908152600260205260409020548281101561071e576040516350d2479d60e11b815260048101829052602481018490526044016102c9565b6001600160a01b038086166000908152600260205260408082208685039055918616815290812080548592906107559084906109e5565b92505081905550836001600160a01b0316856001600160a01b0316600080516020610a078339815191528560405161078f91815260200190565b60405180910390a3506001949350505050565b60006001600160a01b0383166107ca57604051622e076360e81b815260040160405180910390fd5b60015460ff16156108065760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064016102c9565b6001600160a01b0383166000908152600260205260408120805484929061082e9084906109e5565b925050819055508160008082825461084691906109e5565b90915550506040518281526001600160a01b03841690600090600080516020610a07833981519152906020016103c2565b60006020828403121561088957600080fd5b813580151581146105ec57600080fd5b60006020808352835180602085015260005b818110156108c7578581018301518582016040015282016108ab565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0391909116815260200190565b80356001600160a01b038116811461091357600080fd5b919050565b6000806040838503121561092b57600080fd5b610934836108fc565b946020939093013593505050565b60008060006060848603121561095757600080fd5b610960846108fc565b925061096e602085016108fc565b9150604084013590509250925092565b60006020828403121561099057600080fd5b5035919050565b6000602082840312156109a957600080fd5b6105ec826108fc565b600080604083850312156109c557600080fd5b6109ce836108fc565b91506109dc602084016108fc565b90509250929050565b808201808211156103ce57634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ee28f67ce25822bc824e4a30df7df0de645b205ce760c5af021f45432c5514b564736f6c63430008170033

    Deployed Bytecode

    0x608060405234801561001057600080fd5b50600436106100e05760003560e01c806342966c681161008757806342966c68146101d4578063572b6c05146101e75780635c975abb146101fa57806370a082311461020757806395d89b4114610227578063a9059cbb1461024b578063dd62ed3e1461025e578063fca3b5aa1461028957600080fd5b806302329a29146100e557806306fdde03146100fa578063075461721461013a578063095ea7b31461015a57806318160ddd1461017d57806323b872dd14610194578063313ce567146101a757806340c10f19146101c1575b600080fd5b6100f86100f3366004610877565b61029c565b005b6101246040518060400160405280600b81526020016a29b0b1b930903a37b5b2b760a91b81525081565b6040516101319190610899565b60405180910390f35b60045461014d906001600160a01b031681565b60405161013191906108e8565b61016d610168366004610918565b61031a565b6040519015158152602001610131565b61018660005481565b604051908152602001610131565b61016d6101a2366004610942565b6103d4565b6101af601281565b60405160ff9091168152602001610131565b61016d6101cf366004610918565b6104ad565b61016d6101e236600461097e565b6104f1565b61016d6101f5366004610997565b61058a565b60015461016d9060ff1681565b610186610215366004610997565b60026020526000908152604090205481565b61012460405180604001604052806005815260200164534143524160d81b81525081565b61016d610259366004610918565b6105d8565b61018661026c3660046109b2565b600360209081526000928352604080842090915290825290205481565b6100f8610297366004610997565b6105f3565b6004546001600160a01b031633146102d25733604051631b0e18f960e11b81526004016102c991906108e8565b60405180910390fd5b6001805460ff19168215159081179091556040519081527f58bacb7f0dd4d609de27cc5c3f458b9a9bdcf5d148bca9f186b33ad75d2c23b4906020015b60405180910390a150565b60006001600160a01b0383166103435760405163076e33c360e31b815260040160405180910390fd5b816003600061035061066b565b6001600160a01b039081168252602080830193909352604091820160009081209188168082529190935291209190915561038861066b565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103c291815260200190565b60405180910390a35060015b92915050565b6000806103df61066b565b6001600160a01b0380871660009081526003602090815260408083209385168352929052205490915060001981146104985783811015610432576040516313be252b60e01b815260040160405180910390fd5b6001600160a01b03868116600081815260036020908152604080832094871680845294825291829020888603908190559151828152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b6104a386868661068d565b9695505050505050565b6004546000906001600160a01b031633146104dd5733604051631b0e18f960e11b81526004016102c991906108e8565b6104e783836107a2565b5060019392505050565b6000806104fc61066b565b6001600160a01b0381166000908152600260205260409020549091508381101561053957604051630bba337f60e11b815260040160405180910390fd5b6001600160a01b038216600081815260026020908152604080832088860390558254889003835551878152919291600080516020610a07833981519152910160405180910390a35060019392505050565b60006001600160a01b03821673d8253782c45a12053594b9deb72d8e8ab2fca54c14806103ce57506001600160a01b0382167352ceba41da235af367bfc0b0ccd3314cb901bb5f1492915050565b60006105ec6105e561066b565b848461068d565b9392505050565b6004546001600160a01b031633146106205733604051631b0e18f960e11b81526004016102c991906108e8565b600480546001600160a01b0319166001600160a01b0383161790556040517fb6b8f1859c5c352e5ffad07d0f77e384ac725512c015bd3a3ffc885831c8a4259061030f9083906108e8565b60006106763361058a565b15610688575060131936013560601c90565b503390565b60006001600160a01b0383166106b657604051633a954ecd60e21b815260040160405180910390fd5b60015460ff16156106da57604051635e1633d360e11b815260040160405180910390fd5b6001600160a01b0384166000908152600260205260409020548281101561071e576040516350d2479d60e11b815260048101829052602481018490526044016102c9565b6001600160a01b038086166000908152600260205260408082208685039055918616815290812080548592906107559084906109e5565b92505081905550836001600160a01b0316856001600160a01b0316600080516020610a078339815191528560405161078f91815260200190565b60405180910390a3506001949350505050565b60006001600160a01b0383166107ca57604051622e076360e81b815260040160405180910390fd5b60015460ff16156108065760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b60448201526064016102c9565b6001600160a01b0383166000908152600260205260408120805484929061082e9084906109e5565b925050819055508160008082825461084691906109e5565b90915550506040518281526001600160a01b03841690600090600080516020610a07833981519152906020016103c2565b60006020828403121561088957600080fd5b813580151581146105ec57600080fd5b60006020808352835180602085015260005b818110156108c7578581018301518582016040015282016108ab565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0391909116815260200190565b80356001600160a01b038116811461091357600080fd5b919050565b6000806040838503121561092b57600080fd5b610934836108fc565b946020939093013593505050565b60008060006060848603121561095757600080fd5b610960846108fc565b925061096e602085016108fc565b9150604084013590509250925092565b60006020828403121561099057600080fd5b5035919050565b6000602082840312156109a957600080fd5b6105ec826108fc565b600080604083850312156109c557600080fd5b6109ce836108fc565b91506109dc602084016108fc565b90509250929050565b808201808211156103ce57634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ee28f67ce25822bc824e4a30df7df0de645b205ce760c5af021f45432c5514b564736f6c63430008170033

    [ Download: CSV Export  ]
    [ Download: CSV Export  ]

    A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.