GLMR Price: $0.07733 (+11.14%)

Contract

0x933fCDf708481c57E9FD82f6BAA084f42e98B60e

Overview

GLMR Balance

Moonbeam Chain LogoMoonbeam Chain LogoMoonbeam Chain Logo0 GLMR

GLMR Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim105723232025-04-23 0:31:066 hrs ago1745368266IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0139307533
Claim105700682025-04-22 20:41:3610 hrs ago1745354496IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01303431.25
Claim105690512025-04-22 18:58:1211 hrs ago1745348292IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01320831.25
Claim105663142025-04-22 14:18:3616 hrs ago1745331516IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0139307533
Claim105659002025-04-22 13:36:3617 hrs ago1745328996IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01320831.25
Claim104805922025-04-16 13:06:546 days ago1744808814IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0134238733
Claim104227282025-04-12 10:51:2410 days ago1744455084IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01303431.25
Claim103013392025-04-03 20:13:1819 days ago1743711198IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01320831.25
Claim103008802025-04-03 19:26:3019 days ago1743708390IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01374733
Claim102751862025-04-01 23:37:4221 days ago1743550662IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01272831.25
Claim102731052025-04-01 20:07:3021 days ago1743538050IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0133304332
Claim102730902025-04-01 20:06:0021 days ago1743537960IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0133304332
Claim102730492025-04-01 20:01:4221 days ago1743537702IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01303431.25
Claim102726182025-04-01 19:18:1221 days ago1743535092IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01319231.25
Claim102715902025-04-01 17:34:2421 days ago1743528864IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01374733
Claim102554312025-03-31 14:08:4222 days ago1743430122IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0156193237
Claim102033052025-03-27 21:51:0026 days ago1743112260IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01320831.25
Claim101890372025-03-26 21:45:4827 days ago1743025548IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01374733
Claim101704112025-03-25 14:19:2428 days ago1742912364IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0161000337
Claim101560822025-03-24 14:07:3029 days ago1742825250IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0156193237
Claim101556752025-03-24 13:26:4229 days ago1742822802IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01319231.25
Claim101526532025-03-24 8:16:4229 days ago1742804202IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.01320831.25
Claim101355312025-03-23 3:25:1831 days ago1742700318IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0139307533
Delegate100748782025-03-18 20:40:3635 days ago1742330436IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0086737932
Claim100557032025-03-17 11:51:3036 days ago1742212290IN
Moonwell Artemis: Claims Contract V1
0 GLMR0.0134048633
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:
TokenSaleDistributorProxy

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 3 : TokenSaleDistributorProxy.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

import "./ReentrancyGuard.sol";
import "./TokenSaleDistributorProxyStorage.sol";

contract TokenSaleDistributorProxy is ReentrancyGuard, TokenSaleDistributorProxyStorage {
    /** The admin was changed  */
    event AdminChanged(address newAdmin);

    /** The implementation was changed */
    event ImplChanged(address newImpl);

    constructor() public {
        admin = msg.sender;
    }

    /**
     * Request a new admin to be set for the contract.
     *
     * @param newAdmin New admin address
     */
    function setPendingAdmin(address newAdmin) public adminOnly {
        require(newAdmin != address(0), "Cannot set to zero address");
        pendingAdmin = newAdmin;
    }

    /**
     * Accept admin transfer from the current admin to the new.
     */
    function acceptPendingAdmin() public {
        require(msg.sender == pendingAdmin && pendingAdmin != address(0), "Caller must be the pending admin");

        admin = pendingAdmin;
        pendingAdmin = address(0);

        emit AdminChanged(admin);
    }

    /**
     * Request a new implementation to be set for the contract.
     *
     * @param newImplementation New contract implementation contract address
     */
    function setPendingImplementation(address newImplementation) public adminOnly {
        require(newImplementation != address(0), "Cannot set to zero address");
        pendingImplementation = newImplementation;
    }

    /**
     * Accept pending implementation change
     */
    function acceptPendingImplementation() public {
        require(msg.sender == pendingImplementation && pendingImplementation != address(0), "Only the pending implementation contract can call this");

        implementation = pendingImplementation;
        pendingImplementation = address(0);

        emit ImplChanged(implementation);
    }

    fallback() payable external {
        (bool success, ) = implementation.delegatecall(msg.data);

        assembly {
            let free_mem_ptr := mload(0x40)
            let size := returndatasize()
            returndatacopy(free_mem_ptr, 0, size)

            switch success
            case 0 { revert(free_mem_ptr, size) }
            default { return(free_mem_ptr, size) }
        }
    }

    /********************************************************
     *                                                      *
     *                      MODIFIERS                       *
     *                                                      *
     ********************************************************/

    modifier adminOnly {
        require(msg.sender == admin, "admin only");
        _;
    }
}

File 2 of 3 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() public {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

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

pragma solidity 0.8.10;

contract TokenSaleDistributorProxyStorage {
    // Current contract admin address
    address public admin;

    // Requested new admin for the contract
    address public pendingAdmin;

    // Current contract implementation address
    address public implementation;

    // Requested new contract implementation address
    address public pendingImplementation;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newImpl","type":"address"}],"name":"ImplChanged","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"acceptPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptPendingImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"setPendingImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506001600081905580546001600160a01b031916331790556107cf806100376000396000f3fe60806040526004361061007b5760003560e01c80634dd18bf51161004e5780634dd18bf5146101be5780635c60da1b146101de578063709920c11461020b578063f851a440146102205761007b565b806309ed43c91461010457806316ec205c14610126578063267822471461013b578063396f7b2314610191575b60035460405160009173ffffffffffffffffffffffffffffffffffffffff16906100a8908390369061074c565b600060405180830381855af49150503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b505090506040513d806000833e828015610100578183f35b8183fd5b34801561011057600080fd5b5061012461011f36600461075c565b61024d565b005b34801561013257600080fd5b50610124610397565b34801561014757600080fd5b506002546101689073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34801561019d57600080fd5b506004546101689073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101ca57600080fd5b506101246101d936600461075c565b6104e5565b3480156101ea57600080fd5b506003546101689073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021757600080fd5b5061012461062a565b34801561022c57600080fd5b506001546101689073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f61646d696e206f6e6c790000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616e6e6f742073657420746f207a65726f206164647265737300000000000060448201526064016102ca565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045473ffffffffffffffffffffffffffffffffffffffff16331480156103d5575060045473ffffffffffffffffffffffffffffffffffffffff1615155b610461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4f6e6c79207468652070656e64696e6720696d706c656d656e746174696f6e2060448201527f636f6e74726163742063616e2063616c6c20746869730000000000000000000060648201526084016102ca565b600480546003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092559091169091556040519081527f71c6652673eb67790348b38b966a87b710bf7596bafa96d43f09f9c6872bd5a1906020015b60405180910390a1565b60015473ffffffffffffffffffffffffffffffffffffffff163314610566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f61646d696e206f6e6c790000000000000000000000000000000000000000000060448201526064016102ca565b73ffffffffffffffffffffffffffffffffffffffff81166105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616e6e6f742073657420746f207a65726f206164647265737300000000000060448201526064016102ca565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff1633148015610668575060025473ffffffffffffffffffffffffffffffffffffffff1615155b6106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f43616c6c6572206d757374206265207468652070656e64696e672061646d696e60448201526064016102ca565b600280546001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092559091169091556040519081527f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c906020016104db565b8183823760009101908152919050565b60006020828403121561076e57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461079257600080fd5b939250505056fea2646970667358221220c7718ecb1781452204cf8236d1331667546e394d581d6b9fb05d4a952f83fd5664736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061007b5760003560e01c80634dd18bf51161004e5780634dd18bf5146101be5780635c60da1b146101de578063709920c11461020b578063f851a440146102205761007b565b806309ed43c91461010457806316ec205c14610126578063267822471461013b578063396f7b2314610191575b60035460405160009173ffffffffffffffffffffffffffffffffffffffff16906100a8908390369061074c565b600060405180830381855af49150503d80600081146100e3576040519150601f19603f3d011682016040523d82523d6000602084013e6100e8565b606091505b505090506040513d806000833e828015610100578183f35b8183fd5b34801561011057600080fd5b5061012461011f36600461075c565b61024d565b005b34801561013257600080fd5b50610124610397565b34801561014757600080fd5b506002546101689073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34801561019d57600080fd5b506004546101689073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101ca57600080fd5b506101246101d936600461075c565b6104e5565b3480156101ea57600080fd5b506003546101689073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021757600080fd5b5061012461062a565b34801561022c57600080fd5b506001546101689073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f61646d696e206f6e6c790000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616e6e6f742073657420746f207a65726f206164647265737300000000000060448201526064016102ca565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60045473ffffffffffffffffffffffffffffffffffffffff16331480156103d5575060045473ffffffffffffffffffffffffffffffffffffffff1615155b610461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4f6e6c79207468652070656e64696e6720696d706c656d656e746174696f6e2060448201527f636f6e74726163742063616e2063616c6c20746869730000000000000000000060648201526084016102ca565b600480546003805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092559091169091556040519081527f71c6652673eb67790348b38b966a87b710bf7596bafa96d43f09f9c6872bd5a1906020015b60405180910390a1565b60015473ffffffffffffffffffffffffffffffffffffffff163314610566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f61646d696e206f6e6c790000000000000000000000000000000000000000000060448201526064016102ca565b73ffffffffffffffffffffffffffffffffffffffff81166105e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f43616e6e6f742073657420746f207a65726f206164647265737300000000000060448201526064016102ca565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff1633148015610668575060025473ffffffffffffffffffffffffffffffffffffffff1615155b6106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f43616c6c6572206d757374206265207468652070656e64696e672061646d696e60448201526064016102ca565b600280546001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092559091169091556040519081527f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c906020016104db565b8183823760009101908152919050565b60006020828403121561076e57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461079257600080fd5b939250505056fea2646970667358221220c7718ecb1781452204cf8236d1331667546e394d581d6b9fb05d4a952f83fd5664736f6c634300080a0033

Block Transaction Gas Used Reward
view all blocks collator

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.