ETH Price: $3,441.26 (+4.40%)

Contract

0xe249C7a82573F55EB2B215CD6695800cfdfa4AcC
 

Overview

ETH Balance

100.965338673702790407 ETH

Eth Value

$347,447.65 (@ $3,441.26/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Participate212500242024-11-23 11:04:352 hrs ago1732359875IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0006334911.02148991
Participate212445052024-11-22 16:36:2321 hrs ago1732293383IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0012722817.14458004
Participate212425102024-11-22 9:55:3527 hrs ago1732269335IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0007698210.37368671
Participate212424722024-11-22 9:47:4728 hrs ago1732268867IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0006232810.8439387
Participate212009762024-11-16 14:52:236 days ago1731768743IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000772314.8869251
Participate211999772024-11-16 11:31:597 days ago1731756719IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0009690513.05848146
Participate211926132024-11-15 10:50:478 days ago1731667847IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0007546613.12967625
Participate211925742024-11-15 10:42:598 days ago1731667379IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000766513.33559681
Participate211925402024-11-15 10:36:118 days ago1731666971IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0008759715.24011763
Participate211858902024-11-14 12:19:479 days ago1731586787IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0019367226.09825659
Participate211745892024-11-12 22:28:1110 days ago1731450491IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0018746725.26215308
Participate210794902024-10-30 15:57:3523 days ago1730303855IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0019028633.1059524
Participate210794462024-10-30 15:48:4723 days ago1730303327IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0019049536.71986525
Participate210794432024-10-30 15:48:1123 days ago1730303291IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0018517935.69526579
Participate210779912024-10-30 10:54:4724 days ago1730285687IN
0xe249C7a8...cfdfa4AcC
0 ETH0.0006390611.11847267
Participate210613382024-10-28 3:06:1126 days ago1730084771IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000512046.9
Participate210568812024-10-27 12:11:3527 days ago1730031095IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000286024.97630624
Participate210536152024-10-27 1:15:5927 days ago1729991759IN
0xe249C7a8...cfdfa4AcC
0 ETH0.00015963.0766014
Participate210523162024-10-26 20:54:4727 days ago1729976087IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000264535.09924421
Participate210522722024-10-26 20:45:5927 days ago1729975559IN
0xe249C7a8...cfdfa4AcC
0 ETH0.00028725.53614515
Participate210522672024-10-26 20:44:4727 days ago1729975487IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000307285.92315872
Participate210250052024-10-23 1:30:1131 days ago1729647011IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000284854.95595434
Participate210249942024-10-23 1:27:5931 days ago1729646879IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000242864.68140988
Participate210249892024-10-23 1:26:5931 days ago1729646819IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000276295.3259407
Participate210045432024-10-20 4:57:1134 days ago1729400231IN
0xe249C7a8...cfdfa4AcC
0 ETH0.000425585.73500399
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
212498162024-11-23 10:22:593 hrs ago1732357379
0xe249C7a8...cfdfa4AcC
0.21970903 ETH
212426622024-11-22 10:25:5927 hrs ago1732271159
0xe249C7a8...cfdfa4AcC
0.1760169 ETH
212352972024-11-21 9:45:472 days ago1732182347
0xe249C7a8...cfdfa4AcC
0.20173284 ETH
212318002024-11-20 22:01:592 days ago1732140119
0xe249C7a8...cfdfa4AcC
0.20148317 ETH
212247252024-11-19 22:19:473 days ago1732054787
0xe249C7a8...cfdfa4AcC
0.16727847 ETH
212208802024-11-19 9:28:114 days ago1732008491
0xe249C7a8...cfdfa4AcC
0.17876326 ETH
212137812024-11-18 9:43:355 days ago1731923015
0xe249C7a8...cfdfa4AcC
0.25041837 ETH
212072932024-11-17 12:01:356 days ago1731844895
0xe249C7a8...cfdfa4AcC
0.02496693 ETH
212066102024-11-17 9:44:236 days ago1731836663
0xe249C7a8...cfdfa4AcC
0.21221895 ETH
212065812024-11-17 9:38:356 days ago1731836315
0xe249C7a8...cfdfa4AcC
0.154795 ETH
211995082024-11-16 9:57:477 days ago1731751067
0xe249C7a8...cfdfa4AcC
0.18725202 ETH
211994172024-11-16 9:39:357 days ago1731749975
0xe249C7a8...cfdfa4AcC
0.0749008 ETH
211987232024-11-16 7:20:117 days ago1731741611
0xe249C7a8...cfdfa4AcC
0.14555723 ETH
211924272024-11-15 10:13:238 days ago1731665603
0xe249C7a8...cfdfa4AcC
0.24167994 ETH
211876402024-11-14 18:11:478 days ago1731607907
0xe249C7a8...cfdfa4AcC
0.35303247 ETH
211781812024-11-13 10:29:3510 days ago1731493775
0xe249C7a8...cfdfa4AcC
0.23993225 ETH
211712912024-11-12 11:25:5911 days ago1731410759
0xe249C7a8...cfdfa4AcC
0.43816973 ETH
211636292024-11-11 9:44:3512 days ago1731318275
0xe249C7a8...cfdfa4AcC
0.08613593 ETH
211606132024-11-10 23:39:4712 days ago1731281987
0xe249C7a8...cfdfa4AcC
0.25141704 ETH
211564542024-11-10 9:45:1113 days ago1731231911
0xe249C7a8...cfdfa4AcC
0.08988097 ETH
211545342024-11-10 3:19:3513 days ago1731208775
0xe249C7a8...cfdfa4AcC
0.08988097 ETH
211495092024-11-09 10:30:1114 days ago1731148211
0xe249C7a8...cfdfa4AcC
0.16852682 ETH
211485492024-11-09 7:17:3514 days ago1731136655
0xe249C7a8...cfdfa4AcC
0.08988097 ETH
211423512024-11-08 10:33:3515 days ago1731062015
0xe249C7a8...cfdfa4AcC
0.16228508 ETH
211420842024-11-08 9:39:5915 days ago1731058799
0xe249C7a8...cfdfa4AcC
0.14730492 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DiamondHand

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 7 : DiamondHand.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/access/Ownable2Step.sol";
import {IDiamondNFTWrapper} from "./interfaces/IDiamondNFTWrapper.sol";
import {IBlazeStaking} from "./interfaces/IBlazeStaking.sol";


contract DiamondHand is ReentrancyGuard, Ownable2Step {
    IDiamondNFTWrapper dNFT;

    IBlazeStaking blazeStaking;

    uint32 public immutable i_initialTimestamp;

    uint256 public immutable i_periodDuration = 1 days;

    /// @notice Records the total batches purchased by an account in each cycle
    mapping(address => mapping(uint256 => uint256)) public accCycleAllTickets;

    /// @notice Total number of batches purchased in each cycle
    mapping(uint256 => uint256) public cycleTotalTickets;

    /// @notice Last active cycle for each account
    mapping(address => uint256) public lastClaimedCycle;

    /// @notice Total accrued fees per cycle
    mapping(uint256 => uint256) public cycleAccruedPayout;

    /// @notice Event emitted when a new participation is made.
    event Participated(address indexed userAddress, uint256 indexed cycle, uint256 tickets);

    event RewardsClaimed(address indexed userAddress, uint256 cycle, uint256 rewards);

    constructor(address _diamondNFTWrapperAddress, address _blazeStaking, uint32 _startTimestamp) Ownable(_msgSender()) {
        i_initialTimestamp = _startTimestamp;
        dNFT = IDiamondNFTWrapper(_diamondNFTWrapperAddress);
        blazeStaking = IBlazeStaking(_blazeStaking);
    }

    receive() external payable {
        (, uint256 currentCycle, ) = getCurrentDayAndCycleDetails();
        cycleAccruedPayout[currentCycle] += msg.value;
    }

    function participate() external nonReentrant {
        (, uint256 currentCycle, ) = getCurrentDayAndCycleDetails();
        uint256 tickets = 0;

        uint userTicket = accCycleAllTickets[_msgSender()][currentCycle];
        if (userTicket > 0) {
            cycleTotalTickets[currentCycle] -= userTicket; //bakaNingen
        }

        tickets = getMintedNFT(_msgSender()) + getBlazeStake(_msgSender());

        cycleTotalTickets[currentCycle] += tickets;
        accCycleAllTickets[_msgSender()][currentCycle] = tickets;

        emit Participated(_msgSender(), currentCycle, tickets);
    }

    /// @notice Claims accrued rewards for the caller.
    function claimRewards() external nonReentrant {
        (, uint256 currentCycle, ) = getCurrentDayAndCycleDetails();
        uint256 totalPayoutShare;
        for (uint256 x = lastClaimedCycle[_msgSender()] + 1; x < currentCycle; ++x) {
            uint256 rewardsForCurrentCycle = 0;
            if (cycleTotalTickets[x] > 0) {
                rewardsForCurrentCycle =
                    (accCycleAllTickets[_msgSender()][x] * cycleAccruedPayout[x]) /
                    cycleTotalTickets[x];
            }
            emit RewardsClaimed(_msgSender(), x, rewardsForCurrentCycle);
            totalPayoutShare += rewardsForCurrentCycle;
        }
        require(totalPayoutShare > 0, "Nothing to claim");
        lastClaimedCycle[_msgSender()] = currentCycle - 1;
        _sendETH(_msgSender(), totalPayoutShare);
    }

    function getClaimableRewards(address user) external view returns (uint256 totalClaimableRewards) {
        (, uint256 currentCycle, ) = getCurrentDayAndCycleDetails();
        for (uint256 x = lastClaimedCycle[user] + 1; x < currentCycle; ++x) {
            uint256 rewardsForCurrentCycle = 0;
            if (cycleTotalTickets[x] > 0) {
                rewardsForCurrentCycle = (accCycleAllTickets[user][x] * cycleAccruedPayout[x]) / cycleTotalTickets[x];
            }
            totalClaimableRewards += rewardsForCurrentCycle;
        }
    }

    function getMintedNFT(address user) public view returns (uint256) {
        return dNFT.getMintedNFT(user) / 28;
    }

    function getBlazeStake(address user) public view returns (uint256) {
        (, uint256 currentCycle, ) = getCurrentDayAndCycleDetails();
        return blazeStaking.getUser2888BlazeToken(user, currentCycle) / (4000 * 1e18);
    }

    /// @dev Internal function to calculate current day and cycle.
    /// @dev Internal function to calculate current day, current cycle, and current day in the cycle.
    function getCurrentDayAndCycleDetails()
        public
        view
        returns (uint256 currentDay, uint256 currentCycle, uint256 currentDayInCycle)
    {
        currentDay = ((block.timestamp - i_initialTimestamp) / 1 days) + 1;
        currentCycle = (currentDay / 888) + 1;
        currentDayInCycle = currentDay % 888;
    }

    /// @dev Internal function to send ETH to a specified address.
    function _sendETH(address to, uint256 amount) private {
        (bool sent, ) = payable(to).call{value: amount}("");
        require(sent, "Blaze: Failed to send ETH");
    }
}

File 2 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

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

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 7 : Ownable2Step.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable2Step.sol)

pragma solidity ^0.8.20;

import {Ownable} from "./Ownable.sol";

/**
 * @dev Contract module which provides access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is specified at deployment time in the constructor for `Ownable`. This
 * can later be changed with {transferOwnership} and {acceptOwnership}.
 *
 * This module is used through inheritance. It will make available all functions
 * from parent (Ownable).
 */
abstract contract Ownable2Step is Ownable {
    address private _pendingOwner;

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

    /**
     * @dev Returns the address of the pending owner.
     */
    function pendingOwner() public view virtual returns (address) {
        return _pendingOwner;
    }

    /**
     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual override onlyOwner {
        _pendingOwner = newOwner;
        emit OwnershipTransferStarted(owner(), newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual override {
        delete _pendingOwner;
        super._transferOwnership(newOwner);
    }

    /**
     * @dev The new owner accepts the ownership transfer.
     */
    function acceptOwnership() public virtual {
        address sender = _msgSender();
        if (pendingOwner() != sender) {
            revert OwnableUnauthorizedAccount(sender);
        }
        _transferOwnership(sender);
    }
}

File 4 of 7 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @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) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

File 5 of 7 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/ReentrancyGuard.sol)

pragma solidity ^0.8.20;

/**
 * @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].
 */
abstract 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;

    /**
     * @dev Unauthorized reentrant call.
     */
    error ReentrancyGuardReentrantCall();

    constructor() {
        _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 making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be NOT_ENTERED
        if (_status == ENTERED) {
            revert ReentrancyGuardReentrantCall();
        }

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

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

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == ENTERED;
    }
}

File 6 of 7 : IBlazeStaking.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.24;

interface IBlazeStaking {
    function setFeeRewardsForAllCycle() external;

    function distributeFeeRewardsForAll() external;

    function _deploymentTimeStamp() external view returns (uint32);

    function getNextCycleDistributionDay(uint16) external view returns (uint256);

    function getUser2888BlazeToken(address user, uint256 cycle) external view returns (uint256 blazeTokenStaked);
}

File 7 of 7 : IDiamondNFTWrapper.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.24;

interface IDiamondNFTWrapper {
    function getMintedNFT(address) external view returns (uint256);  // returns the number of NFTs minted & holding by the user   
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_diamondNFTWrapperAddress","type":"address"},{"internalType":"address","name":"_blazeStaking","type":"address"},{"internalType":"uint32","name":"_startTimestamp","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"cycle","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tickets","type":"uint256"}],"name":"Participated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"cycle","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rewards","type":"uint256"}],"name":"RewardsClaimed","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"accCycleAllTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cycleAccruedPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cycleTotalTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getBlazeStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getClaimableRewards","outputs":[{"internalType":"uint256","name":"totalClaimableRewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentDayAndCycleDetails","outputs":[{"internalType":"uint256","name":"currentDay","type":"uint256"},{"internalType":"uint256","name":"currentCycle","type":"uint256"},{"internalType":"uint256","name":"currentDayInCycle","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getMintedNFT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"i_initialTimestamp","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"i_periodDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaimedCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"participate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526201518060a05234801561001757600080fd5b50604051610e0a380380610e0a8339810160408190526100369161012f565b6001600055338061006157604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61006a816100a5565b5063ffffffff16608052600380546001600160a01b039384166001600160a01b0319918216179091556004805492909316911617905561017f565b600280546001600160a01b03191690556100be816100c1565b50565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b038116811461012a57600080fd5b919050565b60008060006060848603121561014457600080fd5b61014d84610113565b925061015b60208501610113565b9150604084015163ffffffff8116811461017457600080fd5b809150509250925092565b60805160a051610c5f6101ab60003960006101a60152600081816102c501526103f80152610c5f6000f3fe6080604052600436106101025760003560e01c806379ba509711610095578063a51e262d11610064578063a51e262d1461032e578063cb0f33051461035b578063d11711a214610393578063e30c3978146103a8578063f2fde38b146103c657600080fd5b806379ba509714610271578063857f14f3146102865780638bd95563146102b35780638da5cb5b146102fc57600080fd5b8063372500ab116100d1578063372500ab146101e85780633c42b341146101ff5780635257b8fc1461022f578063715018a61461025c57600080fd5b806318291ef61461014157806324a4f59d146101745780632f7cdab014610194578063308e401e146101c857600080fd5b3661013c5760006101116103e6565b506000818152600860205260408120805492945034935091610134908490610b1b565b925050819055005b600080fd5b34801561014d57600080fd5b5061016161015c366004610b4a565b610461565b6040519081526020015b60405180910390f35b34801561018057600080fd5b5061016161018f366004610b4a565b6104e4565b3480156101a057600080fd5b506101617f000000000000000000000000000000000000000000000000000000000000000081565b3480156101d457600080fd5b506101616101e3366004610b4a565b610586565b3480156101f457600080fd5b506101fd610643565b005b34801561020b57600080fd5b506102146103e6565b6040805193845260208401929092529082015260600161016b565b34801561023b57600080fd5b5061016161024a366004610b65565b60086020526000908152604090205481565b34801561026857600080fd5b506101fd6107be565b34801561027d57600080fd5b506101fd6107d0565b34801561029257600080fd5b506101616102a1366004610b65565b60066020526000908152604090205481565b3480156102bf57600080fd5b506102e77f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161016b565b34801561030857600080fd5b506001546001600160a01b03165b6040516001600160a01b03909116815260200161016b565b34801561033a57600080fd5b50610161610349366004610b4a565b60076020526000908152604090205481565b34801561036757600080fd5b50610161610376366004610b7e565b600560209081526000928352604080842090915290825290205481565b34801561039f57600080fd5b506101fd610814565b3480156103b457600080fd5b506002546001600160a01b0316610316565b3480156103d257600080fd5b506101fd6103e1366004610b4a565b61092f565b600080806201518061041e63ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642610ba8565b6104289190610bd1565b610433906001610b1b565b925061044161037884610bd1565b61044c906001610b1b565b915061045a61037884610be5565b9050909192565b600354604051630c148f7b60e11b81526001600160a01b038381166004830152600092601c929116906318291ef690602401602060405180830381865afa1580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190610bf9565b6104de9190610bd1565b92915050565b6000806104ef6103e6565b50600480546040516324bc8d3f60e01b81526001600160a01b03888116938201939093526024810184905292945068d8d726b7177a800000935016906324bc8d3f90604401602060405180830381865afa158015610551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105759190610bf9565b61057f9190610bd1565b9392505050565b6000806105916103e6565b506001600160a01b03851660009081526007602052604081205491935091506105bb906001610b1b565b90505b8181101561063c57600081815260066020526040812054156106275760008281526006602090815260408083205460088352818420546001600160a01b038a1685526005845282852087865290935292205461061a9190610c12565b6106249190610bd1565b90505b6106318185610b1b565b9350506001016105be565b5050919050565b61064b6109a0565b60006106556103e6565b50915050600080600760006106673390565b6001600160a01b0316815260208101919091526040016000205461068c906001610b1b565b90505b8281101561073f57600081815260066020526040812054156106ef576000828152600660209081526040808320546008835281842054338552600584528285208786529093529220546106e29190610c12565b6106ec9190610bd1565b90505b604080518381526020810183905233917fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325910160405180910390a26107348184610b1b565b92505060010161068f565b50600081116107885760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b60448201526064015b60405180910390fd5b610793600183610ba8565b336000818152600760205260409020919091556107b090826109ca565b50506107bc6001600055565b565b6107c6610a72565b6107bc6000610a9f565b60025433906001600160a01b031681146108085760405163118cdaa760e01b81526001600160a01b038216600482015260240161077f565b61081181610a9f565b50565b61081c6109a0565b60006108266103e6565b50915050600080600560006108383390565b6001600160a01b03168152602080820192909252604090810160009081208682529092529020549050801561088b5760008381526006602052604081208054839290610885908490610ba8565b90915550505b610894336104e4565b61089d33610461565b6108a79190610b1b565b9150816006600085815260200190815260200160002060008282546108cc9190610b1b565b909155505033600081815260056020908152604080832087845282529182902085905590518481528592917f64ceaa25376a606505a20223863437c73f24c3d44eca9912c49197b4aea536a4910160405180910390a35050506107bc6001600055565b610937610a72565b600280546001600160a01b0383166001600160a01b031990911681179091556109686001546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6002600054036109c357604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610a17576040519150601f19603f3d011682016040523d82523d6000602084013e610a1c565b606091505b5050905080610a6d5760405162461bcd60e51b815260206004820152601960248201527f426c617a653a204661696c656420746f2073656e642045544800000000000000604482015260640161077f565b505050565b6001546001600160a01b031633146107bc5760405163118cdaa760e01b815233600482015260240161077f565b600280546001600160a01b031916905561081181600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104de576104de610b05565b80356001600160a01b0381168114610b4557600080fd5b919050565b600060208284031215610b5c57600080fd5b61057f82610b2e565b600060208284031215610b7757600080fd5b5035919050565b60008060408385031215610b9157600080fd5b610b9a83610b2e565b946020939093013593505050565b818103818111156104de576104de610b05565b634e487b7160e01b600052601260045260246000fd5b600082610be057610be0610bbb565b500490565b600082610bf457610bf4610bbb565b500690565b600060208284031215610c0b57600080fd5b5051919050565b80820281158282048414176104de576104de610b0556fea2646970667358221220b926fc9180af168f4a66eaa8d435656d7cc4fd80451927d9f835156f868b08c164736f6c6343000818003300000000000000000000000045d4e2d184f7ecb94ff2011858335ecfdd7f08fb000000000000000000000000bc0043bc5b0c394d9d05d49768f9548f8cf9587b00000000000000000000000000000000000000000000000000000000667be25b

Deployed Bytecode

0x6080604052600436106101025760003560e01c806379ba509711610095578063a51e262d11610064578063a51e262d1461032e578063cb0f33051461035b578063d11711a214610393578063e30c3978146103a8578063f2fde38b146103c657600080fd5b806379ba509714610271578063857f14f3146102865780638bd95563146102b35780638da5cb5b146102fc57600080fd5b8063372500ab116100d1578063372500ab146101e85780633c42b341146101ff5780635257b8fc1461022f578063715018a61461025c57600080fd5b806318291ef61461014157806324a4f59d146101745780632f7cdab014610194578063308e401e146101c857600080fd5b3661013c5760006101116103e6565b506000818152600860205260408120805492945034935091610134908490610b1b565b925050819055005b600080fd5b34801561014d57600080fd5b5061016161015c366004610b4a565b610461565b6040519081526020015b60405180910390f35b34801561018057600080fd5b5061016161018f366004610b4a565b6104e4565b3480156101a057600080fd5b506101617f000000000000000000000000000000000000000000000000000000000001518081565b3480156101d457600080fd5b506101616101e3366004610b4a565b610586565b3480156101f457600080fd5b506101fd610643565b005b34801561020b57600080fd5b506102146103e6565b6040805193845260208401929092529082015260600161016b565b34801561023b57600080fd5b5061016161024a366004610b65565b60086020526000908152604090205481565b34801561026857600080fd5b506101fd6107be565b34801561027d57600080fd5b506101fd6107d0565b34801561029257600080fd5b506101616102a1366004610b65565b60066020526000908152604090205481565b3480156102bf57600080fd5b506102e77f00000000000000000000000000000000000000000000000000000000667be25b81565b60405163ffffffff909116815260200161016b565b34801561030857600080fd5b506001546001600160a01b03165b6040516001600160a01b03909116815260200161016b565b34801561033a57600080fd5b50610161610349366004610b4a565b60076020526000908152604090205481565b34801561036757600080fd5b50610161610376366004610b7e565b600560209081526000928352604080842090915290825290205481565b34801561039f57600080fd5b506101fd610814565b3480156103b457600080fd5b506002546001600160a01b0316610316565b3480156103d257600080fd5b506101fd6103e1366004610b4a565b61092f565b600080806201518061041e63ffffffff7f00000000000000000000000000000000000000000000000000000000667be25b1642610ba8565b6104289190610bd1565b610433906001610b1b565b925061044161037884610bd1565b61044c906001610b1b565b915061045a61037884610be5565b9050909192565b600354604051630c148f7b60e11b81526001600160a01b038381166004830152600092601c929116906318291ef690602401602060405180830381865afa1580156104b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d49190610bf9565b6104de9190610bd1565b92915050565b6000806104ef6103e6565b50600480546040516324bc8d3f60e01b81526001600160a01b03888116938201939093526024810184905292945068d8d726b7177a800000935016906324bc8d3f90604401602060405180830381865afa158015610551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105759190610bf9565b61057f9190610bd1565b9392505050565b6000806105916103e6565b506001600160a01b03851660009081526007602052604081205491935091506105bb906001610b1b565b90505b8181101561063c57600081815260066020526040812054156106275760008281526006602090815260408083205460088352818420546001600160a01b038a1685526005845282852087865290935292205461061a9190610c12565b6106249190610bd1565b90505b6106318185610b1b565b9350506001016105be565b5050919050565b61064b6109a0565b60006106556103e6565b50915050600080600760006106673390565b6001600160a01b0316815260208101919091526040016000205461068c906001610b1b565b90505b8281101561073f57600081815260066020526040812054156106ef576000828152600660209081526040808320546008835281842054338552600584528285208786529093529220546106e29190610c12565b6106ec9190610bd1565b90505b604080518381526020810183905233917fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325910160405180910390a26107348184610b1b565b92505060010161068f565b50600081116107885760405162461bcd60e51b815260206004820152601060248201526f4e6f7468696e6720746f20636c61696d60801b60448201526064015b60405180910390fd5b610793600183610ba8565b336000818152600760205260409020919091556107b090826109ca565b50506107bc6001600055565b565b6107c6610a72565b6107bc6000610a9f565b60025433906001600160a01b031681146108085760405163118cdaa760e01b81526001600160a01b038216600482015260240161077f565b61081181610a9f565b50565b61081c6109a0565b60006108266103e6565b50915050600080600560006108383390565b6001600160a01b03168152602080820192909252604090810160009081208682529092529020549050801561088b5760008381526006602052604081208054839290610885908490610ba8565b90915550505b610894336104e4565b61089d33610461565b6108a79190610b1b565b9150816006600085815260200190815260200160002060008282546108cc9190610b1b565b909155505033600081815260056020908152604080832087845282529182902085905590518481528592917f64ceaa25376a606505a20223863437c73f24c3d44eca9912c49197b4aea536a4910160405180910390a35050506107bc6001600055565b610937610a72565b600280546001600160a01b0383166001600160a01b031990911681179091556109686001546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6002600054036109c357604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610a17576040519150601f19603f3d011682016040523d82523d6000602084013e610a1c565b606091505b5050905080610a6d5760405162461bcd60e51b815260206004820152601960248201527f426c617a653a204661696c656420746f2073656e642045544800000000000000604482015260640161077f565b505050565b6001546001600160a01b031633146107bc5760405163118cdaa760e01b815233600482015260240161077f565b600280546001600160a01b031916905561081181600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104de576104de610b05565b80356001600160a01b0381168114610b4557600080fd5b919050565b600060208284031215610b5c57600080fd5b61057f82610b2e565b600060208284031215610b7757600080fd5b5035919050565b60008060408385031215610b9157600080fd5b610b9a83610b2e565b946020939093013593505050565b818103818111156104de576104de610b05565b634e487b7160e01b600052601260045260246000fd5b600082610be057610be0610bbb565b500490565b600082610bf457610bf4610bbb565b500690565b600060208284031215610c0b57600080fd5b5051919050565b80820281158282048414176104de576104de610b0556fea2646970667358221220b926fc9180af168f4a66eaa8d435656d7cc4fd80451927d9f835156f868b08c164736f6c63430008180033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000045d4e2d184f7ecb94ff2011858335ecfdd7f08fb000000000000000000000000bc0043bc5b0c394d9d05d49768f9548f8cf9587b00000000000000000000000000000000000000000000000000000000667be25b

-----Decoded View---------------
Arg [0] : _diamondNFTWrapperAddress (address): 0x45D4E2D184F7EcB94Ff2011858335eCFdd7f08fb
Arg [1] : _blazeStaking (address): 0xBc0043bc5b0c394D9d05d49768f9548F8CF9587b
Arg [2] : _startTimestamp (uint32): 1719394907

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000045d4e2d184f7ecb94ff2011858335ecfdd7f08fb
Arg [1] : 000000000000000000000000bc0043bc5b0c394d9d05d49768f9548f8cf9587b
Arg [2] : 00000000000000000000000000000000000000000000000000000000667be25b


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.