POL Price: $0.576039 (-2.67%)
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Gas Payment YCB613476422024-09-02 18:55:3790 days ago1725303337IN
0xff10F37C...46e0E6264
0 POL0.0022814730.00000003
Gas Pending Paym...610190932024-08-25 11:15:1899 days ago1724584518IN
0xff10F37C...46e0E6264
0 POL0.0023309130.00000003
Gas Payment YCB610190242024-08-25 11:12:5299 days ago1724584372IN
0xff10F37C...46e0E6264
0 POL0.0022876830.00000003
Gas Pending Paym...610184962024-08-25 10:53:3899 days ago1724583218IN
0xff10F37C...46e0E6264
0 POL0.0023309130.00000879
Gas Pending Paym...601893272024-08-04 15:47:43119 days ago1722786463IN
0xff10F37C...46e0E6264
0 POL0.0035610145.83205179
Gas Payment YCB593533422024-07-14 14:44:33140 days ago1720968273IN
0xff10F37C...46e0E6264
0 POL0.0022811130.00000008
Gas Pending Paym...593533272024-07-14 14:44:01140 days ago1720968241IN
0xff10F37C...46e0E6264
0 POL0.0023305530.00000008
Gas Payment YCB593532302024-07-14 14:40:35140 days ago1720968035IN
0xff10F37C...46e0E6264
0 POL0.0022873230.0000001
Gas Pending Paym...593532142024-07-14 14:40:01140 days ago1720968001IN
0xff10F37C...46e0E6264
0 POL0.0023305530.0000001
Gas Payment YCB593525022024-07-14 14:14:49140 days ago1720966489IN
0xff10F37C...46e0E6264
0 POL0.0022873230.00000006
Gas Pending Paym...593524522024-07-14 14:13:03140 days ago1720966383IN
0xff10F37C...46e0E6264
0 POL0.0023305530.00000005
Gas Payment YCB593499412024-07-14 12:43:51140 days ago1720961031IN
0xff10F37C...46e0E6264
0 POL0.0022873230.0000002
Gas Pending Paym...593495922024-07-14 12:31:17140 days ago1720960277IN
0xff10F37C...46e0E6264
0 POL0.0023305530.00000013
Gas Payment YCB593489392024-07-14 12:07:40140 days ago1720958860IN
0xff10F37C...46e0E6264
0 POL0.0022811130.00000006
Gas Pending Paym...593456332024-07-14 10:07:49141 days ago1720951669IN
0xff10F37C...46e0E6264
0 POL0.0023305530.00000003
Gas Payment YCB593453812024-07-14 9:58:53141 days ago1720951133IN
0xff10F37C...46e0E6264
0 POL0.0022811130.00000004
Gas Pending Paym...593450342024-07-14 9:45:31141 days ago1720950331IN
0xff10F37C...46e0E6264
0 POL0.0023305530.00000003
Gas Payment YCB593115992024-07-13 13:38:50141 days ago1720877930IN
0xff10F37C...46e0E6264
0 POL0.0022811130.00000006
Gas Pending Paym...593113972024-07-13 13:31:10141 days ago1720877470IN
0xff10F37C...46e0E6264
0 POL0.0023305530.00000005
Gas Payment YCB593112422024-07-13 13:25:40141 days ago1720877140IN
0xff10F37C...46e0E6264
0 POL0.0022811130.00000004
Gas Pending Paym...593101602024-07-13 12:46:47141 days ago1720874807IN
0xff10F37C...46e0E6264
0 POL0.0023309130.00000007
Gas Payment YCB592979852024-07-13 5:25:00142 days ago1720848300IN
0xff10F37C...46e0E6264
0 POL0.0022825230.01857612
Gas Pending Paym...592979112024-07-13 5:22:20142 days ago1720848140IN
0xff10F37C...46e0E6264
0 POL0.00233230.01870171
Gas Payment YCB592977372024-07-13 5:16:00142 days ago1720847760IN
0xff10F37C...46e0E6264
0 POL0.0022830230.02517483
Gas Pending Paym...592977132024-07-13 5:15:10142 days ago1720847710IN
0xff10F37C...46e0E6264
0 POL0.0023318330.01650501
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
YCBGasManager

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 1000 runs

Other Settings:
paris EvmVersion
File 1 of 4 : YCBGasManager.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol";

contract YCBGasManager is ReentrancyGuard {
    AggregatorV3Interface internal priceFeed;

    mapping(address => uint256) public userStakes;
    mapping(address => uint256) public pendingPayments;
    uint256 public ycbPrice = 3 ether;
    address public owner;
    uint256 public minimumStake;

    IERC20 public customToken;

    event Staked(address indexed user, uint256 amount);
    event Unstaked(address indexed user, uint256 amount);
    event GasPayment(address indexed user, uint256 gasValue);

    uint256 constant TOKEN_DECIMALS = 10**18;

    constructor(
        address _customToken,
        address _priceFeed,
        uint256 _minimumStake
    ) {
        owner = msg.sender;
        customToken = IERC20(_customToken);
        priceFeed = AggregatorV3Interface(_priceFeed);
        minimumStake = _minimumStake;
    }

    function updateMinimumStake(uint256 _minimumStake) public onlyOwner {
        minimumStake = _minimumStake;
    }

    function updateYCBPrice(uint256 _ycbPrice) public onlyOwner {
        ycbPrice = _ycbPrice;
    }

    function stake(uint256 amount) public nonReentrant {
        require(amount > 0, "Invalid stake amount");
        require(amount >= minimumStake, "Minimum stake is 0.1 ether");
        userStakes[msg.sender] += amount;
        customToken.transferFrom(msg.sender, address(this), amount);
        emit Staked(msg.sender, amount);
    }

    function unstake(uint256 amount) public nonReentrant {
        require(amount > 0, "Invalid unstake amount");
        require(userStakes[msg.sender] >= amount, "Insufficient staked amount");
        userStakes[msg.sender] -= amount;
        customToken.transfer(msg.sender, amount);
        emit Unstaked(msg.sender, amount);
    }

    function gasPendingPaymentYCB(address user, uint256 gasValue)
        external
        onlyOwner
        nonReentrant
    {
        require(user != address(0), "Invalid user address");
        require(gasValue > 0, "Invalid gas value");
        require(
            pendingPayments[user] == 0,
            "User still have outstanding payment"
        );

        uint256 ycbGasValue = getPriceFeedFromETHToYCB(gasValue);

        require(
            userStakes[user] >= ycbGasValue,
            "Insufficient balance for gas payment"
        );

        userStakes[user] -= ycbGasValue;
        pendingPayments[user] = ycbGasValue;
    }

    function gasPaymentYCB(address user, uint256 gasValue)
        external
        onlyOwner
        nonReentrant
        returns (uint256)
    {
        require(user != address(0), "Invalid user address");
        require(gasValue > 0, "Invalid gas value");

        uint256 ycbGasValueBeforeFee = getPriceFeedFromETHToYCB(gasValue);
        uint256 ycbGasValue = ycbGasValueBeforeFee +
            (ycbGasValueBeforeFee / 20);

        if (pendingPayments[user] > ycbGasValue) {
            // refund exceeding gas
            userStakes[user] += pendingPayments[user] - ycbGasValue;
        } else {
            // pay unpaid gas
            uint256 _unpaidGas = ycbGasValue - pendingPayments[user];

            require(
                userStakes[user] >= _unpaidGas,
                "balance not enough to pay gas"
            );

            userStakes[user] -= _unpaidGas;
        }

        customToken.transfer(owner, ycbGasValue);
        pendingPayments[user] = 0;
        emit GasPayment(user, ycbGasValue);
        return ycbGasValue;
    }

    function refundPendingPayment(address user) public onlyOwner {
        pendingPayments[user] = 0;
    }

    function getPriceFeedFromETHToYCB(uint256 ethValue)
        public
        view
        returns (uint256)
    {
        (, int256 price, , , ) = priceFeed.latestRoundData();
        uint256 NATIVE_TO_ETH = uint256(price);
        uint256 ETH_TO_NATIVE = TOKEN_DECIMALS / NATIVE_TO_ETH;
        uint256 nativeValuePrice = (ethValue * ETH_TO_NATIVE);
        uint256 ycbValuePrice = (nativeValuePrice * TOKEN_DECIMALS) / ycbPrice;
        return ycbValuePrice;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only the owner can perform this action");
        _;
    }
}

File 2 of 4 : AggregatorV3Interface.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  function getRoundData(
    uint80 _roundId
  ) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);

  function latestRoundData()
    external
    view
    returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}

File 3 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

File 4 of 4 : 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;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_customToken","type":"address"},{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"uint256","name":"_minimumStake","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"gasValue","type":"uint256"}],"name":"GasPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"inputs":[],"name":"customToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"gasValue","type":"uint256"}],"name":"gasPaymentYCB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"gasValue","type":"uint256"}],"name":"gasPendingPaymentYCB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethValue","type":"uint256"}],"name":"getPriceFeedFromETHToYCB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingPayments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"refundPendingPayment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumStake","type":"uint256"}],"name":"updateMinimumStake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ycbPrice","type":"uint256"}],"name":"updateYCBPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userStakes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ycbPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526729a2241af62c000060045534801561001c57600080fd5b5060405161105c38038061105c83398101604081905261003b9161009d565b6001600081905560058054336001600160a01b0319918216179091556007805482166001600160a01b0396871617905581541692909316919091179091556006556100d9565b80516001600160a01b038116811461009857600080fd5b919050565b6000806000606084860312156100b257600080fd5b6100bb84610081565b92506100c960208501610081565b9150604084015190509250925092565b610f74806100e86000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da7ad231161008c578063a694fc3a11610066578063a694fc3a146101f4578063c7d434e314610207578063ec5ffac214610210578063f15bf3aa1461021957600080fd5b80638da7ad23146101ae5780638e571078146101ce578063a11784dc146101e157600080fd5b80637f38e526116100c85780637f38e5261461013d578063899e31061461015d5780638c298fb5146101885780638da5cb5b1461019b57600080fd5b806324ea81a8146100ef5780632e17de78146101155780634c41e8801461012a575b600080fd5b6101026100fd366004610dd8565b61022c565b6040519081526020015b60405180910390f35b610128610123366004610e02565b610588565b005b610128610138366004610e02565b61071c565b61010261014b366004610e1b565b60036020526000908152604090205481565b600754610170906001600160a01b031681565b6040516001600160a01b03909116815260200161010c565b610128610196366004610dd8565b61078a565b600554610170906001600160a01b031681565b6101026101bc366004610e1b565b60026020526000908152604090205481565b6101286101dc366004610e1b565b610a1c565b6101026101ef366004610e02565b610a9f565b610128610202366004610e02565b610b76565b61010260045481565b61010260065481565b610128610227366004610e02565b610d0b565b6005546000906001600160a01b0316331461029d5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b60648201526084015b60405180910390fd5b6102a5610d79565b6001600160a01b0383166102fb5760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207573657220616464726573730000000000000000000000006044820152606401610294565b6000821161034b5760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964206761732076616c75650000000000000000000000000000006044820152606401610294565b600061035683610a9f565b90506000610365601483610e53565b61036f9083610e75565b6001600160a01b0386166000908152600360205260409020549091508110156103e9576001600160a01b0385166000908152600360205260409020546103b6908290610e88565b6001600160a01b038616600090815260026020526040812080549091906103de908490610e75565b909155506104a69050565b6001600160a01b03851660009081526003602052604081205461040c9083610e88565b6001600160a01b0387166000908152600260205260409020549091508111156104775760405162461bcd60e51b815260206004820152601d60248201527f62616c616e6365206e6f7420656e6f75676820746f20706179206761730000006044820152606401610294565b6001600160a01b0386166000908152600260205260408120805483929061049f908490610e88565b9091555050505b60075460055460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af11580156104fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051f9190610e9b565b506001600160a01b03851660008181526003602052604080822091909155517f65eb9e4e31cbc02dd2f7edd35f1e684132f20496511b7228c15163afc04dc1e49061056d9084815260200190565b60405180910390a29150506105826001600055565b92915050565b610590610d79565b600081116105e05760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420756e7374616b6520616d6f756e74000000000000000000006044820152606401610294565b3360009081526002602052604090205481111561063f5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74207374616b656420616d6f756e740000000000006044820152606401610294565b336000908152600260205260408120805483929061065e908490610e88565b909155505060075460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156106b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d89190610e9b565b5060405181815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75906020015b60405180910390a26107196001600055565b50565b6005546001600160a01b031633146107855760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b600655565b6005546001600160a01b031633146107f35760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b6107fb610d79565b6001600160a01b0382166108515760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207573657220616464726573730000000000000000000000006044820152606401610294565b600081116108a15760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964206761732076616c75650000000000000000000000000000006044820152606401610294565b6001600160a01b0382166000908152600360205260409020541561092d5760405162461bcd60e51b815260206004820152602360248201527f55736572207374696c6c2068617665206f75747374616e64696e67207061796d60448201527f656e7400000000000000000000000000000000000000000000000000000000006064820152608401610294565b600061093882610a9f565b6001600160a01b0384166000908152600260205260409020549091508111156109c85760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520666f72206761732070617960448201527f6d656e74000000000000000000000000000000000000000000000000000000006064820152608401610294565b6001600160a01b038316600090815260026020526040812080548392906109f0908490610e88565b90915550506001600160a01b038316600090815260036020526040902055610a186001600055565b5050565b6005546001600160a01b03163314610a855760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b6001600160a01b0316600090815260036020526040812055565b600080600160009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190610ed7565b5091935083925060009150610b38905082670de0b6b3a7640000610e53565b90506000610b468287610f27565b90506000600454670de0b6b3a764000083610b619190610f27565b610b6b9190610e53565b979650505050505050565b610b7e610d79565b60008111610bce5760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610294565b600654811015610c205760405162461bcd60e51b815260206004820152601a60248201527f4d696e696d756d207374616b6520697320302e312065746865720000000000006044820152606401610294565b3360009081526002602052604081208054839290610c3f908490610e75565b90915550506007546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd89190610e9b565b5060405181815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610707565b6005546001600160a01b03163314610d745760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b600455565b600260005403610db5576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b80356001600160a01b0381168114610dd357600080fd5b919050565b60008060408385031215610deb57600080fd5b610df483610dbc565b946020939093013593505050565b600060208284031215610e1457600080fd5b5035919050565b600060208284031215610e2d57600080fd5b610e3682610dbc565b9392505050565b634e487b7160e01b600052601160045260246000fd5b600082610e7057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561058257610582610e3d565b8181038181111561058257610582610e3d565b600060208284031215610ead57600080fd5b81518015158114610e3657600080fd5b805169ffffffffffffffffffff81168114610dd357600080fd5b600080600080600060a08688031215610eef57600080fd5b610ef886610ebd565b9450602086015193506040860151925060608601519150610f1b60808701610ebd565b90509295509295909350565b808202811582820484141761058257610582610e3d56fea2646970667358221220ba79f4057c352987c56d91e7bbaa73dfd4347fa90c59b02873f2b40c6c920b1564736f6c6343000818003300000000000000000000000088f4532991b92875022ce498236229cf94f97582000000000000000000000000327e23a4855b6f663a28c5161541d69af8973302000000000000000000000000000000000000000000000000016345785d8a0000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80638da7ad231161008c578063a694fc3a11610066578063a694fc3a146101f4578063c7d434e314610207578063ec5ffac214610210578063f15bf3aa1461021957600080fd5b80638da7ad23146101ae5780638e571078146101ce578063a11784dc146101e157600080fd5b80637f38e526116100c85780637f38e5261461013d578063899e31061461015d5780638c298fb5146101885780638da5cb5b1461019b57600080fd5b806324ea81a8146100ef5780632e17de78146101155780634c41e8801461012a575b600080fd5b6101026100fd366004610dd8565b61022c565b6040519081526020015b60405180910390f35b610128610123366004610e02565b610588565b005b610128610138366004610e02565b61071c565b61010261014b366004610e1b565b60036020526000908152604090205481565b600754610170906001600160a01b031681565b6040516001600160a01b03909116815260200161010c565b610128610196366004610dd8565b61078a565b600554610170906001600160a01b031681565b6101026101bc366004610e1b565b60026020526000908152604090205481565b6101286101dc366004610e1b565b610a1c565b6101026101ef366004610e02565b610a9f565b610128610202366004610e02565b610b76565b61010260045481565b61010260065481565b610128610227366004610e02565b610d0b565b6005546000906001600160a01b0316331461029d5760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b60648201526084015b60405180910390fd5b6102a5610d79565b6001600160a01b0383166102fb5760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207573657220616464726573730000000000000000000000006044820152606401610294565b6000821161034b5760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964206761732076616c75650000000000000000000000000000006044820152606401610294565b600061035683610a9f565b90506000610365601483610e53565b61036f9083610e75565b6001600160a01b0386166000908152600360205260409020549091508110156103e9576001600160a01b0385166000908152600360205260409020546103b6908290610e88565b6001600160a01b038616600090815260026020526040812080549091906103de908490610e75565b909155506104a69050565b6001600160a01b03851660009081526003602052604081205461040c9083610e88565b6001600160a01b0387166000908152600260205260409020549091508111156104775760405162461bcd60e51b815260206004820152601d60248201527f62616c616e6365206e6f7420656e6f75676820746f20706179206761730000006044820152606401610294565b6001600160a01b0386166000908152600260205260408120805483929061049f908490610e88565b9091555050505b60075460055460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af11580156104fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051f9190610e9b565b506001600160a01b03851660008181526003602052604080822091909155517f65eb9e4e31cbc02dd2f7edd35f1e684132f20496511b7228c15163afc04dc1e49061056d9084815260200190565b60405180910390a29150506105826001600055565b92915050565b610590610d79565b600081116105e05760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420756e7374616b6520616d6f756e74000000000000000000006044820152606401610294565b3360009081526002602052604090205481111561063f5760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74207374616b656420616d6f756e740000000000006044820152606401610294565b336000908152600260205260408120805483929061065e908490610e88565b909155505060075460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156106b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d89190610e9b565b5060405181815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75906020015b60405180910390a26107196001600055565b50565b6005546001600160a01b031633146107855760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b600655565b6005546001600160a01b031633146107f35760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b6107fb610d79565b6001600160a01b0382166108515760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207573657220616464726573730000000000000000000000006044820152606401610294565b600081116108a15760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964206761732076616c75650000000000000000000000000000006044820152606401610294565b6001600160a01b0382166000908152600360205260409020541561092d5760405162461bcd60e51b815260206004820152602360248201527f55736572207374696c6c2068617665206f75747374616e64696e67207061796d60448201527f656e7400000000000000000000000000000000000000000000000000000000006064820152608401610294565b600061093882610a9f565b6001600160a01b0384166000908152600260205260409020549091508111156109c85760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520666f72206761732070617960448201527f6d656e74000000000000000000000000000000000000000000000000000000006064820152608401610294565b6001600160a01b038316600090815260026020526040812080548392906109f0908490610e88565b90915550506001600160a01b038316600090815260036020526040902055610a186001600055565b5050565b6005546001600160a01b03163314610a855760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b6001600160a01b0316600090815260036020526040812055565b600080600160009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190610ed7565b5091935083925060009150610b38905082670de0b6b3a7640000610e53565b90506000610b468287610f27565b90506000600454670de0b6b3a764000083610b619190610f27565b610b6b9190610e53565b979650505050505050565b610b7e610d79565b60008111610bce5760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207374616b6520616d6f756e740000000000000000000000006044820152606401610294565b600654811015610c205760405162461bcd60e51b815260206004820152601a60248201527f4d696e696d756d207374616b6520697320302e312065746865720000000000006044820152606401610294565b3360009081526002602052604081208054839290610c3f908490610e75565b90915550506007546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd89190610e9b565b5060405181815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d90602001610707565b6005546001600160a01b03163314610d745760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865206f776e65722063616e20706572666f726d20746869732060448201526530b1ba34b7b760d11b6064820152608401610294565b600455565b600260005403610db5576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600055565b80356001600160a01b0381168114610dd357600080fd5b919050565b60008060408385031215610deb57600080fd5b610df483610dbc565b946020939093013593505050565b600060208284031215610e1457600080fd5b5035919050565b600060208284031215610e2d57600080fd5b610e3682610dbc565b9392505050565b634e487b7160e01b600052601160045260246000fd5b600082610e7057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561058257610582610e3d565b8181038181111561058257610582610e3d565b600060208284031215610ead57600080fd5b81518015158114610e3657600080fd5b805169ffffffffffffffffffff81168114610dd357600080fd5b600080600080600060a08688031215610eef57600080fd5b610ef886610ebd565b9450602086015193506040860151925060608601519150610f1b60808701610ebd565b90509295509295909350565b808202811582820484141761058257610582610e3d56fea2646970667358221220ba79f4057c352987c56d91e7bbaa73dfd4347fa90c59b02873f2b40c6c920b1564736f6c63430008180033

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

00000000000000000000000088f4532991b92875022ce498236229cf94f97582000000000000000000000000327e23a4855b6f663a28c5161541d69af8973302000000000000000000000000000000000000000000000000016345785d8a0000

-----Decoded View---------------
Arg [0] : _customToken (address): 0x88F4532991b92875022ce498236229CF94f97582
Arg [1] : _priceFeed (address): 0x327e23A4855b6F663a28c5161541d69Af8973302
Arg [2] : _minimumStake (uint256): 100000000000000000

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000088f4532991b92875022ce498236229cf94f97582
Arg [1] : 000000000000000000000000327e23a4855b6f663a28c5161541d69af8973302
Arg [2] : 000000000000000000000000000000000000000000000000016345785d8a0000


Block Transaction 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
[ 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.