ETH Price: $2,690.79 (-2.13%)

Contract

0x2688c2Bb0eEEa0CD10de520699090a36469D788A
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Stake123276932024-12-06 6:06:41420 days ago1733465201IN
BFX: Vault
0 ETH0.000001690.00205945
Stake123077632024-12-05 19:02:21421 days ago1733425341IN
BFX: Vault
0 ETH0.000001070.0061
Stake117730712024-11-23 9:59:17433 days ago1732355957IN
BFX: Vault
0 ETH0.000000420.002281
Stake116872432024-11-21 10:18:21435 days ago1732184301IN
BFX: Vault
0 ETH0.000000560.00403543
Stake114283232024-11-15 10:27:41441 days ago1731666461IN
BFX: Vault
0 ETH0.000000170.00085781
Stake113980322024-11-14 17:37:59442 days ago1731605879IN
BFX: Vault
0 ETH0.000000940.00878499
Stake113979732024-11-14 17:36:01442 days ago1731605761IN
BFX: Vault
0 ETH0.00000090.00893999
Stake112715662024-11-11 19:22:27445 days ago1731352947IN
BFX: Vault
0 ETH0.000004510.00220533
Stake112018472024-11-10 4:38:29447 days ago1731213509IN
BFX: Vault
0 ETH0.000000250.0024883
Stake112015332024-11-10 4:28:01447 days ago1731212881IN
BFX: Vault
0 ETH0.000000190.00189686
Stake111823332024-11-09 17:48:01447 days ago1731174481IN
BFX: Vault
0 ETH0.000000450.00175554
Stake110580922024-11-06 20:46:39450 days ago1730925999IN
BFX: Vault
0 ETH0.000000140.00063082
Stake110480762024-11-06 15:12:47450 days ago1730905967IN
BFX: Vault
0 ETH0.000000870.00094309
Stake109981952024-11-05 11:30:05451 days ago1730806205IN
BFX: Vault
0 ETH0.000000230.00229014
Stake109499072024-11-04 8:40:29452 days ago1730709629IN
BFX: Vault
0 ETH0.000000180.00058632
Stake109318042024-11-03 22:37:03453 days ago1730673423IN
BFX: Vault
0 ETH0.000000220.00180436
Stake109302692024-11-03 21:45:53453 days ago1730670353IN
BFX: Vault
0 ETH0.00000020.00142877
Stake108490652024-11-02 0:39:05455 days ago1730507945IN
BFX: Vault
0 ETH0.00000030.00194968
Stake108147832024-11-01 5:36:21455 days ago1730439381IN
BFX: Vault
0 ETH0.000000180.00118792
Stake107963582024-10-31 19:22:11456 days ago1730402531IN
BFX: Vault
0 ETH0.000000290.0027371
Stake107838782024-10-31 12:26:11456 days ago1730377571IN
BFX: Vault
0 ETH0.0000010.00067602
Stake107650452024-10-31 1:58:25457 days ago1730339905IN
BFX: Vault
0 ETH0.000001980.00095572
Stake107461732024-10-30 15:29:21457 days ago1730302161IN
BFX: Vault
0 ETH0.000000610.003109
Stake107390462024-10-30 11:31:47457 days ago1730287907IN
BFX: Vault
0 ETH0.000000330.00137966
Stake107028402024-10-29 15:24:55458 days ago1730215495IN
BFX: Vault
0 ETH0.000000490.00112633
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
123276932024-12-06 6:06:41420 days ago1733465201
0x2688c2Bb...6469D788A
0 ETH
123077632024-12-05 19:02:21421 days ago1733425341
0x2688c2Bb...6469D788A
0 ETH
117730712024-11-23 9:59:17433 days ago1732355957
0x2688c2Bb...6469D788A
0 ETH
116872432024-11-21 10:18:21435 days ago1732184301
0x2688c2Bb...6469D788A
0 ETH
114283232024-11-15 10:27:41441 days ago1731666461
0x2688c2Bb...6469D788A
0 ETH
113980322024-11-14 17:37:59442 days ago1731605879
0x2688c2Bb...6469D788A
0 ETH
113979732024-11-14 17:36:01442 days ago1731605761
0x2688c2Bb...6469D788A
0 ETH
112715662024-11-11 19:22:27445 days ago1731352947
0x2688c2Bb...6469D788A
0 ETH
112018472024-11-10 4:38:29447 days ago1731213509
0x2688c2Bb...6469D788A
0 ETH
112015332024-11-10 4:28:01447 days ago1731212881
0x2688c2Bb...6469D788A
0 ETH
111823332024-11-09 17:48:01447 days ago1731174481
0x2688c2Bb...6469D788A
0 ETH
110580922024-11-06 20:46:39450 days ago1730925999
0x2688c2Bb...6469D788A
0 ETH
110480762024-11-06 15:12:47450 days ago1730905967
0x2688c2Bb...6469D788A
0 ETH
109981952024-11-05 11:30:05451 days ago1730806205
0x2688c2Bb...6469D788A
0 ETH
109499072024-11-04 8:40:29452 days ago1730709629
0x2688c2Bb...6469D788A
0 ETH
109318042024-11-03 22:37:03453 days ago1730673423
0x2688c2Bb...6469D788A
0 ETH
109302692024-11-03 21:45:53453 days ago1730670353
0x2688c2Bb...6469D788A
0 ETH
108490652024-11-02 0:39:05455 days ago1730507945
0x2688c2Bb...6469D788A
0 ETH
108147832024-11-01 5:36:21455 days ago1730439381
0x2688c2Bb...6469D788A
0 ETH
107963582024-10-31 19:22:11456 days ago1730402531
0x2688c2Bb...6469D788A
0 ETH
107838782024-10-31 12:26:11456 days ago1730377571
0x2688c2Bb...6469D788A
0 ETH
107650452024-10-31 1:58:25457 days ago1730339905
0x2688c2Bb...6469D788A
0 ETH
107461732024-10-30 15:29:21457 days ago1730302161
0x2688c2Bb...6469D788A
0 ETH
107390462024-10-30 11:31:47457 days ago1730287907
0x2688c2Bb...6469D788A
0 ETH
107028402024-10-29 15:24:55458 days ago1730215495
0x2688c2Bb...6469D788A
0 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BfxVault

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: BfxVault.sol
pragma solidity ^0.8.0;
// SPDX-License-Identifier: MIT

import "IVault.sol";
import "IERC20.sol";

interface IBfx {
    function deposit(uint256 amount) external;
}

interface IBlast {
    function configureAutomaticYield() external;
    function configureClaimableGas() external;
    function claimMaxGas(address contractAddress, address recipientOfGas) external returns (uint256);
}

interface IBlastPoints {
	function configurePointsOperator(address operator) external;
}

contract BfxVault is IVault {
    address public immutable owner;

    IBfx public bfx;
    IERC20 public paymentToken;
    address public claimer;
    bool public ownerIsSoleAdmin;

    uint256 _nextStakeId = 1;

    uint256 constant UNLOCKED = 1;
    uint256 constant LOCKED = 2;
    uint256 public constant ADMIN_ROLE = 0;
    uint256 public constant TRADER_ROLE = 1;
    uint256 public constant TREASURER_ROLE = 2;
    IBlast public constant BLAST = IBlast(0x4300000000000000000000000000000000000002);
    uint256 MIN_STAKE = 1e17;

    mapping(address => mapping(uint256 => bool)) public signers;

    uint256 reentryLockStatus = UNLOCKED;

    event AddRole(address indexed user, uint256 indexed role, address indexed caller);
    event RemoveRole(address indexed user, uint256 indexed role, address indexed caller);
    event WithdrawTo(address indexed to, uint256 amount);
    event SetBfx(address indexed bfx);
    event SetToken(address indexed token);
    event SetClaimer(address indexed claimer);

    constructor(address _owner, address _bfx, address _paymentToken, address _claimer, address _points) {
        owner = _owner;
        signers[_owner][ADMIN_ROLE] = true;
        signers[_owner][TREASURER_ROLE] = true;
        bfx = IBfx(_bfx);
        paymentToken = IERC20(_paymentToken);
        claimer = _claimer;
        BLAST.configureAutomaticYield();
        BLAST.configureClaimableGas();
        IBlastPoints(_points).configurePointsOperator(_claimer);
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner, "ONLY_OWNER");
        _;
    }

    modifier onlyClaimer() {
        require(msg.sender == claimer, "ONLY_CLAIMER");
        _;
    }

    modifier onlyAdmin() {
        if (ownerIsSoleAdmin) {
            require(msg.sender == owner, "NOT_OWNER");
        } else {
            require(signers[msg.sender][ADMIN_ROLE], "NOT_AN_ADMIN");
        }
        _;
    }

    modifier nonReentrant() {
        require(reentryLockStatus == UNLOCKED, "NO_REENTRY");
        reentryLockStatus = LOCKED;
        _;
        reentryLockStatus = UNLOCKED;
    }

    function claimGas() external nonReentrant onlyClaimer {
        BLAST.claimMaxGas(address(this), claimer);
    }

    function stake(uint256 amount) external {
        require(amount >= MIN_STAKE, "WRONG_AMOUNT");
        uint256 stakeId = _allocateStakeId();
        emit Stake(stakeId, msg.sender, amount);
        require(
            _makeTransferFrom(msg.sender, address(bfx), amount),
            "TRANSFER_FAILED"
        );
    }

    function _allocateStakeId() private returns (uint256) {
        uint256 stakeId = _nextStakeId;
        _nextStakeId++;
        return stakeId;
    }

    /**
     * @notice does the user have the ADMIN_ROLE - which gives 
     * the ability to add and remove roles for other users
     * 
     * @param user the address to check
     * @return true if the user has the ADMIN_ROLE 
     */
    function isAdmin(address user) public view returns (bool) {
        if (ownerIsSoleAdmin) {
            return user == owner;
        } else {
            return signers[user][ADMIN_ROLE];
        }
    }

    /**
     * @notice give the user the ADMIN_ROLE - which gives 
     * the ability to add and remove roles for other users
     *
     * @dev the caller must themselves have the ADMIN_ROLE
     * 
     * @param user the address to give the ADMIN_ROLE to
     */
    function addAdmin(address user) external {
        addRole(user, ADMIN_ROLE);
    }

    /**
     * @notice take away the ADMIN_ROLE - which removes 
     * the ability to add and remove roles for other users
     *
     * @dev the caller must themselves have the ADMIN_ROLE
     * 
     * @param user the address from which to remove the ADMIN_ROLE
     */
    function removeAdmin(address user) external {
        removeRole(user, ADMIN_ROLE);
    }

    /**
     * @notice does the user have the TRADER_ROLE - which gives 
     * the ability to trade on the bfx exchange with the vault's funds
     * 
     * @param user the address to check
     * @return true if the user has the TRADER_ROLE 
     */
    function isTrader(address user) public view returns (bool) {
        return signers[user][TRADER_ROLE];
    }

    /**
     * @notice give the user the TRADER_ROLE - which gives
     * the ability to trade on the bfx exchange with the vault's funds
     *   
     * @dev the caller must have the ADMIN_ROLE
     *
     * @param user the address to give the TRADER_ROLE to
     */
    function addTrader(address user) external {
        addRole(user, TRADER_ROLE);
    }

    /**
     * @notice take away the TRADER_ROLE - which removes
     * the ability to trade on the bfx exchange with the vault's funds
     *
     * @dev the caller must have the ADMIN_ROLE
     *
     * @param user the address from which to remove the TRADER_ROLE
     */
    function removeTrader(address user) external {
        removeRole(user, TRADER_ROLE);
    }

    /**
     * @notice does the user have the TREASURER_ROLE - which gives 
     * the ability to deposit the vault's funds into the bfx exchange
     * 
     * @param user the address to check
     * @return true if the user has the TREASURER_ROLE 
     */
    function isTreasurer(address user) public view returns (bool) {
        return signers[user][TREASURER_ROLE];
    }

    /**
     * @notice give the user the TREASURER_ROLE - which gives
     * the ability to deposit the vault's funds into the bfx exchange
     *
     * @dev the caller must have the ADMIN_ROLE
     *
     * @param user the address to give the TREASURER_ROLE to
     */
    function addTreasurer(address user) external {
        addRole(user, TREASURER_ROLE);
    }

    /**
     * @notice take away the TREASURER_ROLE - which removes
     * the ability to deposit the vault's funds into the bfx exchange
     *
     * @dev the caller must have the ADMIN_ROLE
     *
     * @param user the address from which to remove the TREASURER_ROLE
     */
    function removeTreasurer(address user) external {
        removeRole(user, TREASURER_ROLE);
    }

    /**
     * @notice does the user have the specified role
     *
     * @dev the roles recognised by the vault are 
     * ADMIN_ROLE (0), TRADER_ROLE (1) and TREASURER_ROLE (2), other roles can
     * be given and removed, but they have no special meaning for the vault
     *
     * @param signer the address to check
     * @param role the role to check
     * @return true if the user has the specified role 
     */
    function isValidSigner(address signer, uint256 role) external view returns (bool) {
        return signers[signer][role];
    }

    /**
     * @notice give the user the specified role
     *
     * @dev the caller must have the ADMIN_ROLE
     * @dev the roles recognised by the vault are 
     * ADMIN_ROLE (0), TRADER_ROLE (1) and TREASURER_ROLE (2), other roles can
     * be given and removed, but they have no special meaning for the vault
     *
     * @param signer the address to which to give the role
     * @param role the role to give
     */
    function addRole(address signer, uint256 role) public onlyAdmin {
        signers[signer][role] = true;
        emit AddRole(signer, role, msg.sender);
    }

    /**
     * @notice take away the specified role from the user
     *
     * @dev the caller must have the ADMIN_ROLE
     * @dev the roles recognised by the vault are 
     * ADMIN_ROLE (0), TRADER_ROLE (1) and TREASURER_ROLE (2), other roles can
     * be given and removed, but they have no special meaning for the vault
     *
     * @param signer the address from which to remove the role
     * @param role the role to remove
     */    
    function removeRole(address signer, uint256 role) public onlyAdmin {
        signers[signer][role] = false;
        emit RemoveRole(signer, role, msg.sender);
    }

    function makeOwnerAdmin() external onlyOwner {
        signers[owner][ADMIN_ROLE] = true;
    }

    function setOwnerIsSoleAdmin(bool value) external onlyOwner {
        ownerIsSoleAdmin = value;
    }

    function setClaimer(address _claimer) external onlyOwner {
        claimer = _claimer;
        emit SetClaimer(_claimer);
    }

    /**
     * @notice sets the address of the IERC20 payment token used by the bfx exchange
     *
     * @dev WARNING must match the payment token address on the bfx exchange 
     * contract, normally set during deployment
     * @dev only the vault owner can call this function
     *
     * @param _paymentToken the address of the payment token
     */
    function setPaymentToken(address _paymentToken) external onlyOwner {
        paymentToken = IERC20(_paymentToken);
        emit SetToken(_paymentToken);
    }

    /**
     * @notice sets the address of the bfx exchange contract
     *
     * @dev WARNING incorrect setting could lead to loss of funds when
     * calling makeDeposit, normally set during deployment
     * @dev only the vault owner can call this function
     *
     * @param _bfx the address of the bfx exchange contract 
     */
    function setBfx(address _bfx) external onlyOwner {
        bfx = IBfx(_bfx);
        emit SetBfx(_bfx);
    }

    /**
     * @notice withdraws funds from the vault, not normally used 
     * as no funds are held on the vault - staking sends them directly 
     * to the bfx exchange
     *
     * @dev the vault must already have a sufficient token balance,
     * calling this function does not withdraw funds from the bfx 
     * exchange to the vault
     * @dev only the vault owner can call this function
     *
     * @param amount the amount of tokens to withdraw
     * @param to the address to which to send the tokens 
     */
    function withdrawTokensTo(uint256 amount, address to) external onlyOwner {
        require(amount > 0, "WRONG_AMOUNT");
        require(to != address(0), "ZERO_ADDRESS");
        emit WithdrawTo(to, amount);
        bool success = _makeTransfer(to, amount);
        require(success, "TRANSFER_FAILED");
    }
    
    function _makeTransferFrom(
        address from,
        address to,
        uint256 amount
    ) private returns (bool success) {
        return
            _tokenCall(
                abi.encodeWithSelector(
                    paymentToken.transferFrom.selector,
                    from,
                    to,
                    amount
                )
            );
    }

    function _makeTransfer(address to, uint256 amount) internal returns (bool success) {
        return _tokenCall(abi.encodeWithSelector(paymentToken.transfer.selector, to, amount));
    }

    function _tokenCall(bytes memory data) private returns (bool) {
        (bool success, bytes memory returndata) = address(paymentToken).call(data);
        if (success) { 
            if (returndata.length > 0) {
                success = abi.decode(returndata, (bool));
            } else {
                success = address(paymentToken).code.length > 0;
            }
        }
        return success;
    }
}

File 2 of 3: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @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 amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

File 3 of 3: IVault.sol
pragma solidity ^0.8.0;

// SPDX-License-Identifier: MIT

interface IVault {
    event Stake(
        uint256 indexed id,
        address indexed trader,
        uint256 amount
    );

    function isValidSigner(
        address signer,
        uint256 role
    ) external view returns (bool);
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_bfx","type":"address"},{"internalType":"address","name":"_paymentToken","type":"address"},{"internalType":"address","name":"_claimer","type":"address"},{"internalType":"address","name":"_points","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"role","type":"uint256"},{"indexed":true,"internalType":"address","name":"caller","type":"address"}],"name":"AddRole","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"role","type":"uint256"},{"indexed":true,"internalType":"address","name":"caller","type":"address"}],"name":"RemoveRole","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"bfx","type":"address"}],"name":"SetBfx","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"claimer","type":"address"}],"name":"SetClaimer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"SetToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"trader","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawTo","type":"event"},{"inputs":[],"name":"ADMIN_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLAST","outputs":[{"internalType":"contract IBlast","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRADER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TREASURER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"role","type":"uint256"}],"name":"addRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addTrader","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addTreasurer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bfx","outputs":[{"internalType":"contract IBfx","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isTreasurer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"role","type":"uint256"}],"name":"isValidSigner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"makeOwnerAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerIsSoleAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paymentToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"role","type":"uint256"}],"name":"removeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeTrader","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeTreasurer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bfx","type":"address"}],"name":"setBfx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_claimer","type":"address"}],"name":"setClaimer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setOwnerIsSoleAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_paymentToken","type":"address"}],"name":"setPaymentToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"signers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawTokensTo","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a0604052600160035567016345785d8a000060045560016006553480156200002757600080fd5b50604051620026be380380620026be83398181016040528101906200004d9190620003e6565b8473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006002815260200190815260200160002060006101000a81548160ff021916908315150217905550836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff16637114177a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200027357600080fd5b505af115801562000288573d6000803e3d6000fd5b5050505073430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff16634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620002e957600080fd5b505af1158015620002fe573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166336b91f2b836040518263ffffffff1660e01b81526004016200033d91906200047f565b600060405180830381600087803b1580156200035857600080fd5b505af11580156200036d573d6000803e3d6000fd5b5050505050505050506200049c565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003ae8262000381565b9050919050565b620003c081620003a1565b8114620003cc57600080fd5b50565b600081519050620003e081620003b5565b92915050565b600080600080600060a086880312156200040557620004046200037c565b5b60006200041588828901620003cf565b95505060206200042888828901620003cf565b94505060406200043b88828901620003cf565b93505060606200044e88828901620003cf565b92505060806200046188828901620003cf565b9150509295509295909350565b6200047981620003a1565b82525050565b60006020820190506200049660008301846200046e565b92915050565b6080516121c0620004fe6000396000818161057b015281816106c20152818161080c0152818161095101528181610a8e01528181610c9c01528181610e95015281816111aa0152818161138b0152818161141f015261150c01526121c06000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80638da5cb5b11610104578063b743e722116100a2578063d379be2311610071578063d379be23146104ef578063e1326b341461050d578063f0a3a97c1461053d578063f0a56fc81461055b576101da565b8063b743e7221461047d578063c19ef54e14610499578063cc0d50e6146104a3578063cdfb5832146104d3576101da565b8063999323f0116100de578063999323f01461041d578063a694fc3a1461043b578063a95d6b1c14610457578063ab56a29c14610461576101da565b80638da5cb5b146103c557806396f0248a146103e357806397d75776146103ff576101da565b806353635d761161017c578063704802751161014b578063704802751461035357806375b238fc1461036f57806379db5f671461038d5780637fde1c8a146103a9576101da565b806353635d76146102cd5780635d428e08146102fd5780635fdd14cc146103195780636a326ab114610337576101da565b806324d7806c116101b857806324d7806c146102335780633013ce29146102635780634039ad0d1461028157806346c2df8d146102b1576101da565b80630795fcd7146101df5780630a1f194f146101fb5780631785f53c14610217575b600080fd5b6101f960048036038101906101f49190611928565b610579565b005b61021560048036038101906102109190611928565b61068d565b005b610231600480360381019061022c9190611928565b61069b565b005b61024d60048036038101906102489190611928565b6106a9565b60405161025a9190611970565b60405180910390f35b61026b61077c565b60405161027891906119ea565b60405180910390f35b61029b60048036038101906102969190611928565b6107a2565b6040516102a89190611970565b60405180910390f35b6102cb60048036038101906102c69190611a31565b61080a565b005b6102e760048036038101906102e29190611a94565b6108b5565b6040516102f49190611970565b60405180910390f35b61031760048036038101906103129190611928565b61091d565b005b61032161092b565b60405161032e9190611af5565b60405180910390f35b610351600480360381019061034c9190611928565b61094f565b005b61036d60048036038101906103689190611928565b610a64565b005b610377610a72565b6040516103849190611b1f565b60405180910390f35b6103a760048036038101906103a29190611a94565b610a77565b005b6103c360048036038101906103be9190611a94565b610c85565b005b6103cd610e93565b6040516103da9190611b49565b60405180910390f35b6103fd60048036038101906103f89190611928565b610eb7565b005b610407610ec5565b6040516104149190611b85565b60405180910390f35b610425610edd565b6040516104329190611970565b60405180910390f35b61045560048036038101906104509190611ba0565b610ef0565b005b61045f610ffe565b005b61047b60048036038101906104769190611928565b61119a565b005b61049760048036038101906104929190611bcd565b6111a8565b005b6104a1611389565b005b6104bd60048036038101906104b89190611928565b6114a2565b6040516104ca9190611970565b60405180910390f35b6104ed60048036038101906104e89190611928565b61150a565b005b6104f761161f565b6040516105049190611b49565b60405180910390f35b61052760048036038101906105229190611a94565b611645565b6040516105349190611970565b60405180910390f35b610545611674565b6040516105529190611b1f565b60405180910390f35b610563611679565b6040516105709190611b1f565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fe90611c6a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f3e4b86df61338ca26a822751ee2f678930115e21d592d3d6c8abf8c3e3111d7860405160405180910390a250565b610698816001610a77565b50565b6106a6816000610a77565b50565b6000600260149054906101000a900460ff1615610716577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050610777565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060009054906101000a900460ff1690505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001815260200190815260200160002060009054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f90611c6a565b60405180910390fd5b80600260146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b610928816001610c85565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490611c6a565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fefc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b60405160405180910390a250565b610a6f816000610c85565b50565b600081565b600260149054906101000a900460ff1615610b1f577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1190611cd6565b60405180910390fd5b610bbd565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060009054906101000a900460ff16610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611d42565b60405180910390fd5b5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16818373ffffffffffffffffffffffffffffffffffffffff167fd196b73dcd1f2606bb9ecb4b9cee426a49a0d2cb8b95f3c2acf5c28db10e03ac60405160405180910390a45050565b600260149054906101000a900460ff1615610d2d577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90611cd6565b60405180910390fd5b610dcb565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060009054906101000a900460ff16610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc190611d42565b60405180910390fd5b5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16818373ffffffffffffffffffffffffffffffffffffffff167f779544d008db0ffbb5630e061673d07bb7a29b6ee170bdd8a758a26f0a565a5e60405160405180910390a45050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610ec2816002610a77565b50565b73430000000000000000000000000000000000000281565b600260149054906101000a900460ff1681565b600454811015610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c90611dae565b60405180910390fd5b6000610f3f61167e565b90503373ffffffffffffffffffffffffffffffffffffffff16817f02567b2553aeb44e4ddd5d68462774dc3de158cb0f2c2da1740e729b22086aff84604051610f889190611b1f565b60405180910390a3610fbb3360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a5565b610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190611e1a565b60405180910390fd5b5050565b600160065414611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90611e86565b60405180910390fd5b6002600681905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d290611ef2565b60405180910390fd5b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663662aa11d30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040161114c929190611f12565b6020604051808303816000875af115801561116b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118f9190611f50565b506001600681905550565b6111a5816002610c85565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90611c6a565b60405180910390fd5b60008211611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127090611dae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90611fc9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f47096d7b247e809edf18e9bccfcb92f2af426ce8e6b40c923e65cb1b8394cef78360405161132e9190611b1f565b60405180910390a260006113428284611732565b905080611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b90611e1a565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90611c6a565b60405180910390fd5b6001600560007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060006101000a81548160ff021916908315150217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006002815260200190815260200160002060009054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90611c6a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fdfe91dcad2adcb1ecd18d2e830b469081211d6743c1e2dfa893836431fb7879460405160405180910390a250565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600281565b600181565b60008060035490506003600081548092919061169990612018565b91905055508091505090565b60006117296323b872dd60e01b8585856040516024016116c793929190612060565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117bc565b90509392505050565b60006117b463a9059cbb60e01b8484604051602401611752929190612097565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117bc565b905092915050565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516118089190612131565b6000604051808303816000865af19150503d8060008114611845576040519150601f19603f3d011682016040523d82523d6000602084013e61184a565b606091505b509150915081156118bb5760008151111561187a5780806020019051810190611873919061215d565b91506118ba565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163b1191505b5b8192505050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118f5826118ca565b9050919050565b611905816118ea565b811461191057600080fd5b50565b600081359050611922816118fc565b92915050565b60006020828403121561193e5761193d6118c5565b5b600061194c84828501611913565b91505092915050565b60008115159050919050565b61196a81611955565b82525050565b60006020820190506119856000830184611961565b92915050565b6000819050919050565b60006119b06119ab6119a6846118ca565b61198b565b6118ca565b9050919050565b60006119c282611995565b9050919050565b60006119d4826119b7565b9050919050565b6119e4816119c9565b82525050565b60006020820190506119ff60008301846119db565b92915050565b611a0e81611955565b8114611a1957600080fd5b50565b600081359050611a2b81611a05565b92915050565b600060208284031215611a4757611a466118c5565b5b6000611a5584828501611a1c565b91505092915050565b6000819050919050565b611a7181611a5e565b8114611a7c57600080fd5b50565b600081359050611a8e81611a68565b92915050565b60008060408385031215611aab57611aaa6118c5565b5b6000611ab985828601611913565b9250506020611aca85828601611a7f565b9150509250929050565b6000611adf826119b7565b9050919050565b611aef81611ad4565b82525050565b6000602082019050611b0a6000830184611ae6565b92915050565b611b1981611a5e565b82525050565b6000602082019050611b346000830184611b10565b92915050565b611b43816118ea565b82525050565b6000602082019050611b5e6000830184611b3a565b92915050565b6000611b6f826119b7565b9050919050565b611b7f81611b64565b82525050565b6000602082019050611b9a6000830184611b76565b92915050565b600060208284031215611bb657611bb56118c5565b5b6000611bc484828501611a7f565b91505092915050565b60008060408385031215611be457611be36118c5565b5b6000611bf285828601611a7f565b9250506020611c0385828601611913565b9150509250929050565b600082825260208201905092915050565b7f4f4e4c595f4f574e455200000000000000000000000000000000000000000000600082015250565b6000611c54600a83611c0d565b9150611c5f82611c1e565b602082019050919050565b60006020820190508181036000830152611c8381611c47565b9050919050565b7f4e4f545f4f574e45520000000000000000000000000000000000000000000000600082015250565b6000611cc0600983611c0d565b9150611ccb82611c8a565b602082019050919050565b60006020820190508181036000830152611cef81611cb3565b9050919050565b7f4e4f545f414e5f41444d494e0000000000000000000000000000000000000000600082015250565b6000611d2c600c83611c0d565b9150611d3782611cf6565b602082019050919050565b60006020820190508181036000830152611d5b81611d1f565b9050919050565b7f57524f4e475f414d4f554e540000000000000000000000000000000000000000600082015250565b6000611d98600c83611c0d565b9150611da382611d62565b602082019050919050565b60006020820190508181036000830152611dc781611d8b565b9050919050565b7f5452414e534645525f4641494c45440000000000000000000000000000000000600082015250565b6000611e04600f83611c0d565b9150611e0f82611dce565b602082019050919050565b60006020820190508181036000830152611e3381611df7565b9050919050565b7f4e4f5f5245454e54525900000000000000000000000000000000000000000000600082015250565b6000611e70600a83611c0d565b9150611e7b82611e3a565b602082019050919050565b60006020820190508181036000830152611e9f81611e63565b9050919050565b7f4f4e4c595f434c41494d45520000000000000000000000000000000000000000600082015250565b6000611edc600c83611c0d565b9150611ee782611ea6565b602082019050919050565b60006020820190508181036000830152611f0b81611ecf565b9050919050565b6000604082019050611f276000830185611b3a565b611f346020830184611b3a565b9392505050565b600081519050611f4a81611a68565b92915050565b600060208284031215611f6657611f656118c5565b5b6000611f7484828501611f3b565b91505092915050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b6000611fb3600c83611c0d565b9150611fbe82611f7d565b602082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611a5e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205557612054611fe9565b5b600182019050919050565b60006060820190506120756000830186611b3a565b6120826020830185611b3a565b61208f6040830184611b10565b949350505050565b60006040820190506120ac6000830185611b3a565b6120b96020830184611b10565b9392505050565b600081519050919050565b600081905092915050565b60005b838110156120f45780820151818401526020810190506120d9565b60008484015250505050565b600061210b826120c0565b61211581856120cb565b93506121258185602086016120d6565b80840191505092915050565b600061213d8284612100565b915081905092915050565b60008151905061215781611a05565b92915050565b600060208284031215612173576121726118c5565b5b600061218184828501612148565b9150509291505056fea264697066735822122077b579aff0c43269c81716e6c4b28d5755ffd16de09c92d6a7f6925b9fd1b92664736f6c63430008130033000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc20000000000000000000000003ba925fdeae6b46d0bb4d424d829982cb2f7309e0000000000000000000000004300000000000000000000000000000000000003000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc20000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd800

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80638da5cb5b11610104578063b743e722116100a2578063d379be2311610071578063d379be23146104ef578063e1326b341461050d578063f0a3a97c1461053d578063f0a56fc81461055b576101da565b8063b743e7221461047d578063c19ef54e14610499578063cc0d50e6146104a3578063cdfb5832146104d3576101da565b8063999323f0116100de578063999323f01461041d578063a694fc3a1461043b578063a95d6b1c14610457578063ab56a29c14610461576101da565b80638da5cb5b146103c557806396f0248a146103e357806397d75776146103ff576101da565b806353635d761161017c578063704802751161014b578063704802751461035357806375b238fc1461036f57806379db5f671461038d5780637fde1c8a146103a9576101da565b806353635d76146102cd5780635d428e08146102fd5780635fdd14cc146103195780636a326ab114610337576101da565b806324d7806c116101b857806324d7806c146102335780633013ce29146102635780634039ad0d1461028157806346c2df8d146102b1576101da565b80630795fcd7146101df5780630a1f194f146101fb5780631785f53c14610217575b600080fd5b6101f960048036038101906101f49190611928565b610579565b005b61021560048036038101906102109190611928565b61068d565b005b610231600480360381019061022c9190611928565b61069b565b005b61024d60048036038101906102489190611928565b6106a9565b60405161025a9190611970565b60405180910390f35b61026b61077c565b60405161027891906119ea565b60405180910390f35b61029b60048036038101906102969190611928565b6107a2565b6040516102a89190611970565b60405180910390f35b6102cb60048036038101906102c69190611a31565b61080a565b005b6102e760048036038101906102e29190611a94565b6108b5565b6040516102f49190611970565b60405180910390f35b61031760048036038101906103129190611928565b61091d565b005b61032161092b565b60405161032e9190611af5565b60405180910390f35b610351600480360381019061034c9190611928565b61094f565b005b61036d60048036038101906103689190611928565b610a64565b005b610377610a72565b6040516103849190611b1f565b60405180910390f35b6103a760048036038101906103a29190611a94565b610a77565b005b6103c360048036038101906103be9190611a94565b610c85565b005b6103cd610e93565b6040516103da9190611b49565b60405180910390f35b6103fd60048036038101906103f89190611928565b610eb7565b005b610407610ec5565b6040516104149190611b85565b60405180910390f35b610425610edd565b6040516104329190611970565b60405180910390f35b61045560048036038101906104509190611ba0565b610ef0565b005b61045f610ffe565b005b61047b60048036038101906104769190611928565b61119a565b005b61049760048036038101906104929190611bcd565b6111a8565b005b6104a1611389565b005b6104bd60048036038101906104b89190611928565b6114a2565b6040516104ca9190611970565b60405180910390f35b6104ed60048036038101906104e89190611928565b61150a565b005b6104f761161f565b6040516105049190611b49565b60405180910390f35b61052760048036038101906105229190611a94565b611645565b6040516105349190611970565b60405180910390f35b610545611674565b6040516105529190611b1f565b60405180910390f35b610563611679565b6040516105709190611b1f565b60405180910390f35b7f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fe90611c6a565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f3e4b86df61338ca26a822751ee2f678930115e21d592d3d6c8abf8c3e3111d7860405160405180910390a250565b610698816001610a77565b50565b6106a6816000610a77565b50565b6000600260149054906101000a900460ff1615610716577f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050610777565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060009054906101000a900460ff1690505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001815260200190815260200160002060009054906101000a900460ff169050919050565b7f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f90611c6a565b60405180910390fd5b80600260146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b610928816001610c85565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490611c6a565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fefc1fd16ea80a922086ee4e995739d59b025c1bcea6d1f67855747480c83214b60405160405180910390a250565b610a6f816000610c85565b50565b600081565b600260149054906101000a900460ff1615610b1f577f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1190611cd6565b60405180910390fd5b610bbd565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060009054906101000a900460ff16610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611d42565b60405180910390fd5b5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16818373ffffffffffffffffffffffffffffffffffffffff167fd196b73dcd1f2606bb9ecb4b9cee426a49a0d2cb8b95f3c2acf5c28db10e03ac60405160405180910390a45050565b600260149054906101000a900460ff1615610d2d577f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90611cd6565b60405180910390fd5b610dcb565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060009054906101000a900460ff16610dca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc190611d42565b60405180910390fd5b5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16818373ffffffffffffffffffffffffffffffffffffffff167f779544d008db0ffbb5630e061673d07bb7a29b6ee170bdd8a758a26f0a565a5e60405160405180910390a45050565b7f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc281565b610ec2816002610a77565b50565b73430000000000000000000000000000000000000281565b600260149054906101000a900460ff1681565b600454811015610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c90611dae565b60405180910390fd5b6000610f3f61167e565b90503373ffffffffffffffffffffffffffffffffffffffff16817f02567b2553aeb44e4ddd5d68462774dc3de158cb0f2c2da1740e729b22086aff84604051610f889190611b1f565b60405180910390a3610fbb3360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a5565b610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190611e1a565b60405180910390fd5b5050565b600160065414611043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103a90611e86565b60405180910390fd5b6002600681905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d290611ef2565b60405180910390fd5b73430000000000000000000000000000000000000273ffffffffffffffffffffffffffffffffffffffff1663662aa11d30600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b815260040161114c929190611f12565b6020604051808303816000875af115801561116b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118f9190611f50565b506001600681905550565b6111a5816002610c85565b50565b7f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90611c6a565b60405180910390fd5b60008211611279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127090611dae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90611fc9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f47096d7b247e809edf18e9bccfcb92f2af426ce8e6b40c923e65cb1b8394cef78360405161132e9190611b1f565b60405180910390a260006113428284611732565b905080611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b90611e1a565b60405180910390fd5b505050565b7f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140e90611c6a565b60405180910390fd5b6001600560007f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060006101000a81548160ff021916908315150217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006002815260200190815260200160002060009054906101000a900460ff169050919050565b7f000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f90611c6a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fdfe91dcad2adcb1ecd18d2e830b469081211d6743c1e2dfa893836431fb7879460405160405180910390a250565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600281565b600181565b60008060035490506003600081548092919061169990612018565b91905055508091505090565b60006117296323b872dd60e01b8585856040516024016116c793929190612060565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117bc565b90509392505050565b60006117b463a9059cbb60e01b8484604051602401611752929190612097565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506117bc565b905092915050565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516118089190612131565b6000604051808303816000865af19150503d8060008114611845576040519150601f19603f3d011682016040523d82523d6000602084013e61184a565b606091505b509150915081156118bb5760008151111561187a5780806020019051810190611873919061215d565b91506118ba565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163b1191505b5b8192505050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118f5826118ca565b9050919050565b611905816118ea565b811461191057600080fd5b50565b600081359050611922816118fc565b92915050565b60006020828403121561193e5761193d6118c5565b5b600061194c84828501611913565b91505092915050565b60008115159050919050565b61196a81611955565b82525050565b60006020820190506119856000830184611961565b92915050565b6000819050919050565b60006119b06119ab6119a6846118ca565b61198b565b6118ca565b9050919050565b60006119c282611995565b9050919050565b60006119d4826119b7565b9050919050565b6119e4816119c9565b82525050565b60006020820190506119ff60008301846119db565b92915050565b611a0e81611955565b8114611a1957600080fd5b50565b600081359050611a2b81611a05565b92915050565b600060208284031215611a4757611a466118c5565b5b6000611a5584828501611a1c565b91505092915050565b6000819050919050565b611a7181611a5e565b8114611a7c57600080fd5b50565b600081359050611a8e81611a68565b92915050565b60008060408385031215611aab57611aaa6118c5565b5b6000611ab985828601611913565b9250506020611aca85828601611a7f565b9150509250929050565b6000611adf826119b7565b9050919050565b611aef81611ad4565b82525050565b6000602082019050611b0a6000830184611ae6565b92915050565b611b1981611a5e565b82525050565b6000602082019050611b346000830184611b10565b92915050565b611b43816118ea565b82525050565b6000602082019050611b5e6000830184611b3a565b92915050565b6000611b6f826119b7565b9050919050565b611b7f81611b64565b82525050565b6000602082019050611b9a6000830184611b76565b92915050565b600060208284031215611bb657611bb56118c5565b5b6000611bc484828501611a7f565b91505092915050565b60008060408385031215611be457611be36118c5565b5b6000611bf285828601611a7f565b9250506020611c0385828601611913565b9150509250929050565b600082825260208201905092915050565b7f4f4e4c595f4f574e455200000000000000000000000000000000000000000000600082015250565b6000611c54600a83611c0d565b9150611c5f82611c1e565b602082019050919050565b60006020820190508181036000830152611c8381611c47565b9050919050565b7f4e4f545f4f574e45520000000000000000000000000000000000000000000000600082015250565b6000611cc0600983611c0d565b9150611ccb82611c8a565b602082019050919050565b60006020820190508181036000830152611cef81611cb3565b9050919050565b7f4e4f545f414e5f41444d494e0000000000000000000000000000000000000000600082015250565b6000611d2c600c83611c0d565b9150611d3782611cf6565b602082019050919050565b60006020820190508181036000830152611d5b81611d1f565b9050919050565b7f57524f4e475f414d4f554e540000000000000000000000000000000000000000600082015250565b6000611d98600c83611c0d565b9150611da382611d62565b602082019050919050565b60006020820190508181036000830152611dc781611d8b565b9050919050565b7f5452414e534645525f4641494c45440000000000000000000000000000000000600082015250565b6000611e04600f83611c0d565b9150611e0f82611dce565b602082019050919050565b60006020820190508181036000830152611e3381611df7565b9050919050565b7f4e4f5f5245454e54525900000000000000000000000000000000000000000000600082015250565b6000611e70600a83611c0d565b9150611e7b82611e3a565b602082019050919050565b60006020820190508181036000830152611e9f81611e63565b9050919050565b7f4f4e4c595f434c41494d45520000000000000000000000000000000000000000600082015250565b6000611edc600c83611c0d565b9150611ee782611ea6565b602082019050919050565b60006020820190508181036000830152611f0b81611ecf565b9050919050565b6000604082019050611f276000830185611b3a565b611f346020830184611b3a565b9392505050565b600081519050611f4a81611a68565b92915050565b600060208284031215611f6657611f656118c5565b5b6000611f7484828501611f3b565b91505092915050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b6000611fb3600c83611c0d565b9150611fbe82611f7d565b602082019050919050565b60006020820190508181036000830152611fe281611fa6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061202382611a5e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361205557612054611fe9565b5b600182019050919050565b60006060820190506120756000830186611b3a565b6120826020830185611b3a565b61208f6040830184611b10565b949350505050565b60006040820190506120ac6000830185611b3a565b6120b96020830184611b10565b9392505050565b600081519050919050565b600081905092915050565b60005b838110156120f45780820151818401526020810190506120d9565b60008484015250505050565b600061210b826120c0565b61211581856120cb565b93506121258185602086016120d6565b80840191505092915050565b600061213d8284612100565b915081905092915050565b60008151905061215781611a05565b92915050565b600060208284031215612173576121726118c5565b5b600061218184828501612148565b9150509291505056fea264697066735822122077b579aff0c43269c81716e6c4b28d5755ffd16de09c92d6a7f6925b9fd1b92664736f6c63430008130033

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

000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc20000000000000000000000003ba925fdeae6b46d0bb4d424d829982cb2f7309e0000000000000000000000004300000000000000000000000000000000000003000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc20000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd800

-----Decoded View---------------
Arg [0] : _owner (address): 0xfa894dEA8da46dda595c3aF2960704226f8d6Cc2
Arg [1] : _bfx (address): 0x3Ba925fdeAe6B46d0BB4d424D829982Cb2F7309e
Arg [2] : _paymentToken (address): 0x4300000000000000000000000000000000000003
Arg [3] : _claimer (address): 0xfa894dEA8da46dda595c3aF2960704226f8d6Cc2
Arg [4] : _points (address): 0x2536FE9ab3F511540F2f9e2eC2A805005C3Dd800

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc2
Arg [1] : 0000000000000000000000003ba925fdeae6b46d0bb4d424d829982cb2f7309e
Arg [2] : 0000000000000000000000004300000000000000000000000000000000000003
Arg [3] : 000000000000000000000000fa894dea8da46dda595c3af2960704226f8d6cc2
Arg [4] : 0000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd800


Deployed Bytecode Sourcemap

477:11019:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9545:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5354:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4257:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3420:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;569:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4605:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8445:101;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7004:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4989:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;548:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9043:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3895:83;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;763:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8174:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7564:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;511:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6477:97;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;900:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;629:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2701:319;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2583:112;;;:::i;:::-;;6101:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10187:308;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8344:95;;;:::i;:::-;;5709:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8552:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;601:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1018:59;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;852:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;807:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9545:109;2023:5;2009:19;;:10;:19;;;2001:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9615:4:::1;9604:3;::::0;:16:::1;;;;;;;;;;;;;;;;;;9642:4;9635:12;;;;;;;;;;;;9545:109:::0;:::o;5354:91::-;5409:29;5420:4;845:1;5409:10;:29::i;:::-;5354:91;:::o;4257:89::-;4311:28;4322:4;800:1;4311:10;:28::i;:::-;4257:89;:::o;3420:204::-;3472:4;3492:16;;;;;;;;;;;3488:130;;;3539:5;3531:13;;:4;:13;;;3524:20;;;;3488:130;3582:7;:13;3590:4;3582:13;;;;;;;;;;;;;;;:25;800:1;3582:25;;;;;;;;;;;;;;;;;;;;;3575:32;;3420:204;;;;:::o;569:26::-;;;;;;;;;;;;;:::o;4605:109::-;4658:4;4681:7;:13;4689:4;4681:13;;;;;;;;;;;;;;;:26;845:1;4681:26;;;;;;;;;;;;;;;;;;;;;4674:33;;4605:109;;;:::o;8445:101::-;2023:5;2009:19;;:10;:19;;;2001:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8534:5:::1;8515:16;;:24;;;;;;;;;;;;;;;;;;8445:101:::0;:::o;7004:127::-;7080:4;7103:7;:15;7111:6;7103:15;;;;;;;;;;;;;;;:21;7119:4;7103:21;;;;;;;;;;;;;;;;;;;;;7096:28;;7004:127;;;;:::o;4989:85::-;5041:26;5049:4;845:1;5041:7;:26::i;:::-;4989:85;:::o;548:15::-;;;;;;;;;;;;:::o;9043:158::-;2023:5;2009:19;;:10;:19;;;2001:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9142:13:::1;9120:12;;:36;;;;;;;;;;;;;;;;;;9180:13;9171:23;;;;;;;;;;;;9043:158:::0;:::o;3895:83::-;3946:25;3954:4;800:1;3946:7;:25::i;:::-;3895:83;:::o;763:38::-;800:1;763:38;:::o;8174:164::-;2205:16;;;;;;;;;;;2201:175;;;2259:5;2245:19;;:10;:19;;;2237:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2201:175;;;2317:7;:19;2325:10;2317:19;;;;;;;;;;;;;;;:31;800:1;2317:31;;;;;;;;;;;;;;;;;;;;;2309:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2201:175;8275:5:::1;8251:7;:15;8259:6;8251:15;;;;;;;;;;;;;;;:21;8267:4;8251:21;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;8320:10;8295:36;;8314:4;8306:6;8295:36;;;;;;;;;;;;8174:164:::0;;:::o;7564:157::-;2205:16;;;;;;;;;;;2201:175;;;2259:5;2245:19;;:10;:19;;;2237:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2201:175;;;2317:7;:19;2325:10;2317:19;;;;;;;;;;;;;;;:31;800:1;2317:31;;;;;;;;;;;;;;;;;;;;;2309:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2201:175;7662:4:::1;7638:7;:15;7646:6;7638:15;;;;;;;;;;;;;;;:21;7654:4;7638:21;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;7703:10;7681:33;;7697:4;7689:6;7681:33;;;;;;;;;;;;7564:157:::0;;:::o;511:30::-;;;:::o;6477:97::-;6535:32;6546:4;893:1;6535:10;:32::i;:::-;6477:97;:::o;900:81::-;938:42;900:81;:::o;629:28::-;;;;;;;;;;;;;:::o;2701:319::-;2769:9;;2759:6;:19;;2751:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2805:15;2823:18;:16;:18::i;:::-;2805:36;;2871:10;2856:34;;2862:7;2856:34;2883:6;2856:34;;;;;;:::i;:::-;;;;;;;;2921:51;2939:10;2959:3;;;;;;;;;;2965:6;2921:17;:51::i;:::-;2900:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;2741:279;2701:319;:::o;2583:112::-;723:1;2441:17;;:29;2433:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;756:1;2495:17;:26;;;;2122:7:::1;;;;;;;;;;;2108:21;;:10;:21;;;2100:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;938:42:::2;2647:17;;;2673:4;2680:7;;;;;;;;;;;2647:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;723:1:::0;2542:17;:28;;;;2583:112::o;6101:91::-;6156:29;6164:4;893:1;6156:7;:29::i;:::-;6101:91;:::o;10187:308::-;2023:5;2009:19;;:10;:19;;;2001:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10287:1:::1;10278:6;:10;10270:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;10337:1;10323:16;;:2;:16;;::::0;10315:41:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10382:2;10371:22;;;10386:6;10371:22;;;;;;:::i;:::-;;;;;;;;10403:12;10418:25;10432:2;10436:6;10418:13;:25::i;:::-;10403:40;;10461:7;10453:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;10260:235;10187:308:::0;;:::o;8344:95::-;2023:5;2009:19;;:10;:19;;;2001:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8428:4:::1;8399:7;:14;8407:5;8399:14;;;;;;;;;;;;;;;:26;800:1:::0;8399:26:::1;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8344:95::o:0;5709:115::-;5765:4;5788:7;:13;5796:4;5788:13;;;;;;;;;;;;;;;:29;893:1;5788:29;;;;;;;;;;;;;;;;;;;;;5781:36;;5709:115;;;:::o;8552:127::-;2023:5;2009:19;;:10;:19;;;2001:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8629:8:::1;8619:7;;:18;;;;;;;;;;;;;;;;;;8663:8;8652:20;;;;;;;;;;;;8552:127:::0;:::o;601:22::-;;;;;;;;;;;;;:::o;1018:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;852:42::-;893:1;852:42;:::o;807:39::-;845:1;807:39;:::o;3026:149::-;3071:7;3090:15;3108:12;;3090:30;;3130:12;;:14;;;;;;;;;:::i;:::-;;;;;;3161:7;3154:14;;;3026:149;:::o;10505:382::-;10621:12;10664:216;10736:34;;;10792:4;10818:2;10842:6;10692:174;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10664:10;:216::i;:::-;10645:235;;10505:382;;;;;:::o;10893:185::-;10962:12;10993:78;11027:30;;;11059:2;11063:6;11004:66;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10993:10;:78::i;:::-;10986:85;;10893:185;;;;:::o;11084:410::-;11140:4;11157:12;11171:23;11206:12;;;;;;;;;;;11198:26;;11225:4;11198:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11156:74;;;;11244:7;11240:224;;;11292:1;11272:10;:17;:21;11268:186;;;11334:10;11323:30;;;;;;;;;;;;:::i;:::-;11313:40;;11268:186;;;11438:1;11410:12;;;;;;;;;;;11402:33;;;:37;11392:47;;11268:186;11240:224;11480:7;11473:14;;;;11084:410;;;:::o;88:117:3:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:60::-;1631:3;1652:5;1645:12;;1603:60;;;:::o;1669:142::-;1719:9;1752:53;1770:34;1779:24;1797:5;1779:24;:::i;:::-;1770:34;:::i;:::-;1752:53;:::i;:::-;1739:66;;1669:142;;;:::o;1817:126::-;1867:9;1900:37;1931:5;1900:37;:::i;:::-;1887:50;;1817:126;;;:::o;1949:140::-;2013:9;2046:37;2077:5;2046:37;:::i;:::-;2033:50;;1949:140;;;:::o;2095:159::-;2196:51;2241:5;2196:51;:::i;:::-;2191:3;2184:64;2095:159;;:::o;2260:250::-;2367:4;2405:2;2394:9;2390:18;2382:26;;2418:85;2500:1;2489:9;2485:17;2476:6;2418:85;:::i;:::-;2260:250;;;;:::o;2516:116::-;2586:21;2601:5;2586:21;:::i;:::-;2579:5;2576:32;2566:60;;2622:1;2619;2612:12;2566:60;2516:116;:::o;2638:133::-;2681:5;2719:6;2706:20;2697:29;;2735:30;2759:5;2735:30;:::i;:::-;2638:133;;;;:::o;2777:323::-;2833:6;2882:2;2870:9;2861:7;2857:23;2853:32;2850:119;;;2888:79;;:::i;:::-;2850:119;3008:1;3033:50;3075:7;3066:6;3055:9;3051:22;3033:50;:::i;:::-;3023:60;;2979:114;2777:323;;;;:::o;3106:77::-;3143:7;3172:5;3161:16;;3106:77;;;:::o;3189:122::-;3262:24;3280:5;3262:24;:::i;:::-;3255:5;3252:35;3242:63;;3301:1;3298;3291:12;3242:63;3189:122;:::o;3317:139::-;3363:5;3401:6;3388:20;3379:29;;3417:33;3444:5;3417:33;:::i;:::-;3317:139;;;;:::o;3462:474::-;3530:6;3538;3587:2;3575:9;3566:7;3562:23;3558:32;3555:119;;;3593:79;;:::i;:::-;3555:119;3713:1;3738:53;3783:7;3774:6;3763:9;3759:22;3738:53;:::i;:::-;3728:63;;3684:117;3840:2;3866:53;3911:7;3902:6;3891:9;3887:22;3866:53;:::i;:::-;3856:63;;3811:118;3462:474;;;;;:::o;3942:136::-;4002:9;4035:37;4066:5;4035:37;:::i;:::-;4022:50;;3942:136;;;:::o;4084:151::-;4181:47;4222:5;4181:47;:::i;:::-;4176:3;4169:60;4084:151;;:::o;4241:242::-;4344:4;4382:2;4371:9;4367:18;4359:26;;4395:81;4473:1;4462:9;4458:17;4449:6;4395:81;:::i;:::-;4241:242;;;;:::o;4489:118::-;4576:24;4594:5;4576:24;:::i;:::-;4571:3;4564:37;4489:118;;:::o;4613:222::-;4706:4;4744:2;4733:9;4729:18;4721:26;;4757:71;4825:1;4814:9;4810:17;4801:6;4757:71;:::i;:::-;4613:222;;;;:::o;4841:118::-;4928:24;4946:5;4928:24;:::i;:::-;4923:3;4916:37;4841:118;;:::o;4965:222::-;5058:4;5096:2;5085:9;5081:18;5073:26;;5109:71;5177:1;5166:9;5162:17;5153:6;5109:71;:::i;:::-;4965:222;;;;:::o;5193:139::-;5256:9;5289:37;5320:5;5289:37;:::i;:::-;5276:50;;5193:139;;;:::o;5338:157::-;5438:50;5482:5;5438:50;:::i;:::-;5433:3;5426:63;5338:157;;:::o;5501:248::-;5607:4;5645:2;5634:9;5630:18;5622:26;;5658:84;5739:1;5728:9;5724:17;5715:6;5658:84;:::i;:::-;5501:248;;;;:::o;5755:329::-;5814:6;5863:2;5851:9;5842:7;5838:23;5834:32;5831:119;;;5869:79;;:::i;:::-;5831:119;5989:1;6014:53;6059:7;6050:6;6039:9;6035:22;6014:53;:::i;:::-;6004:63;;5960:117;5755:329;;;;:::o;6090:474::-;6158:6;6166;6215:2;6203:9;6194:7;6190:23;6186:32;6183:119;;;6221:79;;:::i;:::-;6183:119;6341:1;6366:53;6411:7;6402:6;6391:9;6387:22;6366:53;:::i;:::-;6356:63;;6312:117;6468:2;6494:53;6539:7;6530:6;6519:9;6515:22;6494:53;:::i;:::-;6484:63;;6439:118;6090:474;;;;;:::o;6570:169::-;6654:11;6688:6;6683:3;6676:19;6728:4;6723:3;6719:14;6704:29;;6570:169;;;;:::o;6745:160::-;6885:12;6881:1;6873:6;6869:14;6862:36;6745:160;:::o;6911:366::-;7053:3;7074:67;7138:2;7133:3;7074:67;:::i;:::-;7067:74;;7150:93;7239:3;7150:93;:::i;:::-;7268:2;7263:3;7259:12;7252:19;;6911:366;;;:::o;7283:419::-;7449:4;7487:2;7476:9;7472:18;7464:26;;7536:9;7530:4;7526:20;7522:1;7511:9;7507:17;7500:47;7564:131;7690:4;7564:131;:::i;:::-;7556:139;;7283:419;;;:::o;7708:159::-;7848:11;7844:1;7836:6;7832:14;7825:35;7708:159;:::o;7873:365::-;8015:3;8036:66;8100:1;8095:3;8036:66;:::i;:::-;8029:73;;8111:93;8200:3;8111:93;:::i;:::-;8229:2;8224:3;8220:12;8213:19;;7873:365;;;:::o;8244:419::-;8410:4;8448:2;8437:9;8433:18;8425:26;;8497:9;8491:4;8487:20;8483:1;8472:9;8468:17;8461:47;8525:131;8651:4;8525:131;:::i;:::-;8517:139;;8244:419;;;:::o;8669:162::-;8809:14;8805:1;8797:6;8793:14;8786:38;8669:162;:::o;8837:366::-;8979:3;9000:67;9064:2;9059:3;9000:67;:::i;:::-;8993:74;;9076:93;9165:3;9076:93;:::i;:::-;9194:2;9189:3;9185:12;9178:19;;8837:366;;;:::o;9209:419::-;9375:4;9413:2;9402:9;9398:18;9390:26;;9462:9;9456:4;9452:20;9448:1;9437:9;9433:17;9426:47;9490:131;9616:4;9490:131;:::i;:::-;9482:139;;9209:419;;;:::o;9634:162::-;9774:14;9770:1;9762:6;9758:14;9751:38;9634:162;:::o;9802:366::-;9944:3;9965:67;10029:2;10024:3;9965:67;:::i;:::-;9958:74;;10041:93;10130:3;10041:93;:::i;:::-;10159:2;10154:3;10150:12;10143:19;;9802:366;;;:::o;10174:419::-;10340:4;10378:2;10367:9;10363:18;10355:26;;10427:9;10421:4;10417:20;10413:1;10402:9;10398:17;10391:47;10455:131;10581:4;10455:131;:::i;:::-;10447:139;;10174:419;;;:::o;10599:165::-;10739:17;10735:1;10727:6;10723:14;10716:41;10599:165;:::o;10770:366::-;10912:3;10933:67;10997:2;10992:3;10933:67;:::i;:::-;10926:74;;11009:93;11098:3;11009:93;:::i;:::-;11127:2;11122:3;11118:12;11111:19;;10770:366;;;:::o;11142:419::-;11308:4;11346:2;11335:9;11331:18;11323:26;;11395:9;11389:4;11385:20;11381:1;11370:9;11366:17;11359:47;11423:131;11549:4;11423:131;:::i;:::-;11415:139;;11142:419;;;:::o;11567:160::-;11707:12;11703:1;11695:6;11691:14;11684:36;11567:160;:::o;11733:366::-;11875:3;11896:67;11960:2;11955:3;11896:67;:::i;:::-;11889:74;;11972:93;12061:3;11972:93;:::i;:::-;12090:2;12085:3;12081:12;12074:19;;11733:366;;;:::o;12105:419::-;12271:4;12309:2;12298:9;12294:18;12286:26;;12358:9;12352:4;12348:20;12344:1;12333:9;12329:17;12322:47;12386:131;12512:4;12386:131;:::i;:::-;12378:139;;12105:419;;;:::o;12530:162::-;12670:14;12666:1;12658:6;12654:14;12647:38;12530:162;:::o;12698:366::-;12840:3;12861:67;12925:2;12920:3;12861:67;:::i;:::-;12854:74;;12937:93;13026:3;12937:93;:::i;:::-;13055:2;13050:3;13046:12;13039:19;;12698:366;;;:::o;13070:419::-;13236:4;13274:2;13263:9;13259:18;13251:26;;13323:9;13317:4;13313:20;13309:1;13298:9;13294:17;13287:47;13351:131;13477:4;13351:131;:::i;:::-;13343:139;;13070:419;;;:::o;13495:332::-;13616:4;13654:2;13643:9;13639:18;13631:26;;13667:71;13735:1;13724:9;13720:17;13711:6;13667:71;:::i;:::-;13748:72;13816:2;13805:9;13801:18;13792:6;13748:72;:::i;:::-;13495:332;;;;;:::o;13833:143::-;13890:5;13921:6;13915:13;13906:22;;13937:33;13964:5;13937:33;:::i;:::-;13833:143;;;;:::o;13982:351::-;14052:6;14101:2;14089:9;14080:7;14076:23;14072:32;14069:119;;;14107:79;;:::i;:::-;14069:119;14227:1;14252:64;14308:7;14299:6;14288:9;14284:22;14252:64;:::i;:::-;14242:74;;14198:128;13982:351;;;;:::o;14339:162::-;14479:14;14475:1;14467:6;14463:14;14456:38;14339:162;:::o;14507:366::-;14649:3;14670:67;14734:2;14729:3;14670:67;:::i;:::-;14663:74;;14746:93;14835:3;14746:93;:::i;:::-;14864:2;14859:3;14855:12;14848:19;;14507:366;;;:::o;14879:419::-;15045:4;15083:2;15072:9;15068:18;15060:26;;15132:9;15126:4;15122:20;15118:1;15107:9;15103:17;15096:47;15160:131;15286:4;15160:131;:::i;:::-;15152:139;;14879:419;;;:::o;15304:180::-;15352:77;15349:1;15342:88;15449:4;15446:1;15439:15;15473:4;15470:1;15463:15;15490:233;15529:3;15552:24;15570:5;15552:24;:::i;:::-;15543:33;;15598:66;15591:5;15588:77;15585:103;;15668:18;;:::i;:::-;15585:103;15715:1;15708:5;15704:13;15697:20;;15490:233;;;:::o;15729:442::-;15878:4;15916:2;15905:9;15901:18;15893:26;;15929:71;15997:1;15986:9;15982:17;15973:6;15929:71;:::i;:::-;16010:72;16078:2;16067:9;16063:18;16054:6;16010:72;:::i;:::-;16092;16160:2;16149:9;16145:18;16136:6;16092:72;:::i;:::-;15729:442;;;;;;:::o;16177:332::-;16298:4;16336:2;16325:9;16321:18;16313:26;;16349:71;16417:1;16406:9;16402:17;16393:6;16349:71;:::i;:::-;16430:72;16498:2;16487:9;16483:18;16474:6;16430:72;:::i;:::-;16177:332;;;;;:::o;16515:98::-;16566:6;16600:5;16594:12;16584:22;;16515:98;;;:::o;16619:147::-;16720:11;16757:3;16742:18;;16619:147;;;;:::o;16772:246::-;16853:1;16863:113;16877:6;16874:1;16871:13;16863:113;;;16962:1;16957:3;16953:11;16947:18;16943:1;16938:3;16934:11;16927:39;16899:2;16896:1;16892:10;16887:15;;16863:113;;;17010:1;17001:6;16996:3;16992:16;16985:27;16834:184;16772:246;;;:::o;17024:386::-;17128:3;17156:38;17188:5;17156:38;:::i;:::-;17210:88;17291:6;17286:3;17210:88;:::i;:::-;17203:95;;17307:65;17365:6;17360:3;17353:4;17346:5;17342:16;17307:65;:::i;:::-;17397:6;17392:3;17388:16;17381:23;;17132:278;17024:386;;;;:::o;17416:271::-;17546:3;17568:93;17657:3;17648:6;17568:93;:::i;:::-;17561:100;;17678:3;17671:10;;17416:271;;;;:::o;17693:137::-;17747:5;17778:6;17772:13;17763:22;;17794:30;17818:5;17794:30;:::i;:::-;17693:137;;;;:::o;17836:345::-;17903:6;17952:2;17940:9;17931:7;17927:23;17923:32;17920:119;;;17958:79;;:::i;:::-;17920:119;18078:1;18103:61;18156:7;18147:6;18136:9;18132:22;18103:61;:::i;:::-;18093:71;;18049:125;17836:345;;;;:::o

Swarm Source

ipfs://77b579aff0c43269c81716e6c4b28d5755ffd16de09c92d6a7f6925b9fd1b926

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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
Loading...
Loading
[ 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.