FRAX Price: $1.01 (+4.63%)

Contract

0x12992595328E52267c95e45B1a97014D6Ddf8683

Overview

FRAX Balance | FXTL Balance

0 FRAX | 528 FXTL

FRAX Value

$0.00

More Info

Private Name Tags

Transaction Hash
Block
From
To
Claim_rewards311888932026-01-23 17:14:5723 hrs ago1769188497IN
0x12992595...D6Ddf8683
0 FRAX0.000016510.001
Deposit311758122026-01-23 9:58:5531 hrs ago1769162335IN
0x12992595...D6Ddf8683
0 FRAX0.000004770.001199
Claim_rewards311757372026-01-23 9:56:2531 hrs ago1769162185IN
0x12992595...D6Ddf8683
0 FRAX0.000005260.0012
Deposit311755742026-01-23 9:50:5931 hrs ago1769161859IN
0x12992595...D6Ddf8683
0 FRAX0.000005890.0012
Claim_rewards311733722026-01-23 8:37:3532 hrs ago1769157455IN
0x12992595...D6Ddf8683
0 FRAX0.000005040.01999
Deposit311623482026-01-23 2:30:0738 hrs ago1769135407IN
0x12992595...D6Ddf8683
0 FRAX0.000003590.00097875
Claim_rewards311620892026-01-23 2:21:2938 hrs ago1769134889IN
0x12992595...D6Ddf8683
0 FRAX0.000003820.0012
Claim_rewards311148852026-01-22 0:08:012 days ago1769040481IN
0x12992595...D6Ddf8683
0 FRAX0.000003340.00119925
Deposit310623892026-01-20 18:58:093 days ago1768935489IN
0x12992595...D6Ddf8683
0 FRAX0.000009620.0012
Withdraw310532982026-01-20 13:55:074 days ago1768917307IN
0x12992595...D6Ddf8683
0 FRAX0.00001310.01031
Claim_rewards310401682026-01-20 6:37:274 days ago1768891047IN
0x12992595...D6Ddf8683
0 FRAX0.000006130.0012
Deposit310317772026-01-20 1:57:454 days ago1768874265IN
0x12992595...D6Ddf8683
0 FRAX0.000002660.00099995
Withdraw310113242026-01-19 14:35:595 days ago1768833359IN
0x12992595...D6Ddf8683
0 FRAX0.000007680.001
Withdraw310042162026-01-19 10:39:035 days ago1768819143IN
0x12992595...D6Ddf8683
0 FRAX0.000003750.001374
Claim_rewards310028452026-01-19 9:53:215 days ago1768816401IN
0x12992595...D6Ddf8683
0 FRAX0.000003250.001
Claim_rewards309846322026-01-18 23:46:155 days ago1768779975IN
0x12992595...D6Ddf8683
0 FRAX0.000006490.00119925
Claim_rewards309809712026-01-18 21:44:135 days ago1768772653IN
0x12992595...D6Ddf8683
0 FRAX0.000002460.0000012
Claim_rewards309690682026-01-18 15:07:276 days ago1768748847IN
0x12992595...D6Ddf8683
0 FRAX0.000002730.0012
Claim_rewards309293932026-01-17 17:04:576 days ago1768669497IN
0x12992595...D6Ddf8683
0 FRAX0.000004640.00099995
Claim_rewards309069382026-01-17 4:36:277 days ago1768624587IN
0x12992595...D6Ddf8683
0 FRAX0.000002770.0012
Claim_rewards308892782026-01-16 18:47:477 days ago1768589267IN
0x12992595...D6Ddf8683
0 FRAX0.000004140.0012
Claim_rewards308792422026-01-16 13:13:158 days ago1768569195IN
0x12992595...D6Ddf8683
0 FRAX0.000006060.00010025
Deposit308619332026-01-16 3:36:178 days ago1768534577IN
0x12992595...D6Ddf8683
0 FRAX0.000003510.001
Claim_rewards308618012026-01-16 3:31:538 days ago1768534313IN
0x12992595...D6Ddf8683
0 FRAX0.000004320.00105
Claim_rewards308554532026-01-16 0:00:178 days ago1768521617IN
0x12992595...D6Ddf8683
0 FRAX0.000003940.0012
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Liquidity Gauge v4 Native Fraxtal

Compiler Version
vyper:0.3.10

Optimization Enabled:
N/A

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Vyper language format)

# @version 0.3.10
"""
@title Liquidity Gauge v4 Native Fraxtal
@author StakeDAO Protocol
@license MIT
"""

# Original idea and credit:
# Curve Finance's veCRV
# https://github.com/curvefi/curve-dao-contracts/blob/master/contracts/gauges/LiquidityGaugeV4.vy
# Mostly forked from Curve, except that now there is no direct link between the gauge controller
# and the gauges. In this implementation, SDT rewards are like any other token rewards.

from vyper.interfaces import ERC20

implements: ERC20                

interface ERC20Extended:
    def symbol() -> String[26]: view
    def decimals() -> uint256: view

event CommitOwnership:
    admin: address

event ApplyOwnership:
    admin: address

event Deposit:
    provider: indexed(address)
    value: uint256

event Withdraw:
    provider: indexed(address)
    value: uint256

event Transfer:
    _from: indexed(address)
    _to: indexed(address)
    _value: uint256

event Approval:
    _owner: indexed(address)
    _spender: indexed(address)
    _value: uint256

event RewardDataUpdate:
    _token: indexed(address)
    _amount: uint256

struct Reward:
    token: address
    distributor: address
    period_finish: uint256
    rate: uint256
    last_update: uint256
    integral: uint256

MAX_REWARDS: constant(uint256) = 10
TOKENLESS_PRODUCTION: constant(uint256) = 40
WEEK: constant(uint256) = 604800

staking_token: public(address)
decimal_staking_token: public(uint256)

balanceOf: public(HashMap[address, uint256])
totalSupply: public(uint256)
allowance: public(HashMap[address, HashMap[address, uint256]])

name: public(String[64])
symbol: public(String[32])

integrate_checkpoint_of: public(HashMap[address, uint256])

# For tracking external rewards
reward_count: public(uint256)
reward_tokens: public(address[MAX_REWARDS])

reward_data: public(HashMap[address, Reward])

# claimant -> default reward receiver
rewards_receiver: public(HashMap[address, address])

# reward token -> claiming address -> integral
reward_integral_for: public(HashMap[address, HashMap[address, uint256]])

# user -> [uint128 claimable amount][uint128 claimed amount]
claim_data: HashMap[address, HashMap[address, uint256]]

admin: public(address)
future_admin: public(address)

claimer: public(address)

@external
def __init__(_staking_token: address, _admin: address, _delegation_registry: address, _initial_delegate: address):
    """
    @notice Contract initializer
    @param _staking_token Liquidity Pool contract address
    @param _admin Admin of the contract
    @param _delegation_registry Fraxtal delegation registry
    @param _initial_delegate Initial fraxtal reward delegate for this contract
    """
    assert _staking_token != empty(address)
    assert _admin != empty(address)

    self.admin = _admin
    self.staking_token = _staking_token
    self.decimal_staking_token = ERC20Extended(_staking_token).decimals()

    symbol: String[26] = ERC20Extended(_staking_token).symbol()
    self.name = concat("Stake DAO ", symbol, " Gauge")
    self.symbol = concat(symbol, "-gauge")

    delegation_response: Bytes[32] = raw_call(
        _delegation_registry,
        concat(
            method_id("setDelegationForSelf(address)"),
            convert(_initial_delegate, bytes32),
            ),
        max_outsize=32,
        )
    if len(delegation_response) != 0:
        assert convert(delegation_response, bool)
    
    disable_self_delegation_response: Bytes[32] = raw_call(
        _delegation_registry,
        method_id("disableSelfManagingDelegations()"),
        max_outsize=32,
        )
    if len(disable_self_delegation_response) != 0:
        assert convert(disable_self_delegation_response, bool)

@view
@external
def decimals() -> uint256:
    """
    @notice Get the number of decimals for this token
    @dev Implemented as a view method to reduce gas costs
    @return uint256 decimal places
    """
    return self.decimal_staking_token

@internal
def _checkpoint_reward(_user: address, token: address, _total_supply: uint256, _user_balance: uint256, _claim: bool, receiver: address):
    """
    @notice Claim pending rewards and checkpoint rewards for a user
    """
    total_supply: uint256 = _total_supply
    user_balance: uint256 = _user_balance

    integral: uint256 = self.reward_data[token].integral
    last_update: uint256 = min(block.timestamp, self.reward_data[token].period_finish)
    duration: uint256 = last_update - self.reward_data[token].last_update
    if duration != 0:
        self.reward_data[token].last_update = last_update
        if total_supply != 0:
            integral += duration * self.reward_data[token].rate * 10**18 / total_supply
            self.reward_data[token].integral = integral

    if _user != empty(address):
        integral_for: uint256 = self.reward_integral_for[token][_user]
        new_claimable: uint256 = 0

        if integral_for < integral:
            self.reward_integral_for[token][_user] = integral
            new_claimable = user_balance * (integral - integral_for) / 10**18

        claim_data: uint256 = self.claim_data[_user][token]
        total_claimable: uint256 = (claim_data >> 128) + new_claimable
        if total_claimable > 0:
            total_claimed: uint256 = claim_data % 2**128
            if _claim:
                response: Bytes[32] = raw_call(
                    token,
                    concat(
                        method_id("transfer(address,uint256)"),
                        convert(receiver, bytes32),
                        convert(total_claimable, bytes32),
                    ),
                    max_outsize=32,
                )
                if len(response) != 0:
                    assert convert(response, bool)
                self.claim_data[_user][token] = total_claimed + total_claimable
            elif new_claimable > 0:
                self.claim_data[_user][token] = total_claimed + (total_claimable << 128)
                
@internal
def _checkpoint_rewards(_user: address, _total_supply: uint256, _claim: bool, _receiver: address):
    """
    @notice Claim pending rewards and checkpoint rewards for a user
    """

    receiver: address = _receiver
    user_balance: uint256 = 0
    if _user != empty(address):
        user_balance = self.balanceOf[_user]
        if _claim and _receiver == empty(address):
            # if receiver is not explicitly declared, check if a default receiver is set
            receiver = self.rewards_receiver[_user]
            if receiver == empty(address):
                # if no default receiver is set, direct claims to the user
                receiver = _user

    reward_count: uint256 = self.reward_count
    for i in range(MAX_REWARDS):
        if i == reward_count:
            break
        token: address = self.reward_tokens[i]
        self._checkpoint_reward(_user, token, _total_supply, user_balance, _claim, receiver)

@view
@external
def claimed_reward(_addr: address, _token: address) -> uint256:
    """
    @notice Get the number of already-claimed reward tokens for a user
    @param _addr Account to get reward amount for
    @param _token Token to get reward amount for
    @return uint256 Total amount of `_token` already claimed by `_addr`
    """
    return self.claim_data[_addr][_token] % 2**128


@view
@external
def claimable_reward(_user: address, _reward_token: address) -> uint256:
    """
    @notice Get the number of claimable reward tokens for a user
    @param _user Account to get reward amount for
    @param _reward_token Token to get reward amount for
    @return uint256 Claimable reward token amount
    """
    integral: uint256 = self.reward_data[_reward_token].integral
    total_supply: uint256 = self.totalSupply
    user_balance: uint256 = self.balanceOf[_user]
        
    if total_supply != 0:
        last_update: uint256 = min(block.timestamp, self.reward_data[_reward_token].period_finish)
        duration: uint256 = last_update - self.reward_data[_reward_token].last_update
        integral += (duration * self.reward_data[_reward_token].rate * 10**18 / total_supply)

    integral_for: uint256 = self.reward_integral_for[_reward_token][_user]
    new_claimable: uint256 = user_balance * (integral - integral_for) / 10**18

    return (self.claim_data[_user][_reward_token] >> 128) + new_claimable


@external
def set_rewards_receiver(_receiver: address):
    """
    @notice Set the default reward receiver for the caller.
    @dev When set to empty(address), rewards are sent to the caller
    @param _receiver Receiver address for any rewards claimed via `claim_rewards`
    """
    self.rewards_receiver[msg.sender] = _receiver

@external
@nonreentrant('lock')
def claim_rewards(_addr: address = msg.sender, _receiver: address = empty(address)):
    """
    @notice Claim available reward tokens for `_addr`
    @param _addr Address to claim for
    @param _receiver Address to transfer rewards to - if set to
                     empty(address), uses the default reward receiver
                     for the caller
    """
    if _receiver != empty(address):
        assert _addr == msg.sender  # dev: cannot redirect when claiming for another user
    self._checkpoint_rewards(_addr, self.totalSupply, True, _receiver)

@external
@nonreentrant('lock')
def claim_rewards_for(_addr: address, _receiver: address):
    """
    @notice Claim available reward tokens for `_addr`
    @param _addr Address to claim for
    @param _receiver Address to transfer rewards to - if set to
                     empty(address), uses the default reward receiver
                     for the caller
    """
    assert self.claimer == msg.sender  # dev: only the claim contract can claim for other 
    if _receiver != _addr:
        assert _receiver == self.claimer # dev: if the receiver is not the user it needs to be the claimer
    self._checkpoint_rewards(_addr, self.totalSupply, True, _receiver)

@external
@nonreentrant('lock')
def deposit(_value: uint256, _addr: address = msg.sender, _claim_rewards: bool = False):
    """
    @notice Deposit `_value` LP tokens
    @dev Depositting also claims pending reward tokens
    @param _value Number of tokens to deposit
    @param _addr Address to deposit for
    """
    total_supply: uint256 = self.totalSupply

    if _value != 0:  
        is_rewards: bool = self.reward_count != 0
        if is_rewards:
            self._checkpoint_rewards(_addr, total_supply, _claim_rewards, empty(address))

        total_supply += _value
        new_balance: uint256 = self.balanceOf[_addr] + _value
        self.balanceOf[_addr] = new_balance
        self.totalSupply = total_supply

        ERC20(self.staking_token).transferFrom(msg.sender, self, _value)
    else:
        self._checkpoint_rewards(_addr, total_supply, False, empty(address))

    log Deposit(_addr, _value)
    log Transfer(empty(address), _addr, _value)


@external
@nonreentrant('lock')
def withdraw(_value: uint256, _claim_rewards: bool = False):
    """
    @notice Withdraw `_value` LP tokens
    @dev Withdrawing also claims pending reward tokens
    @param _value Number of tokens to withdraw
    """
    total_supply: uint256 = self.totalSupply

    if _value != 0:
        is_rewards: bool = self.reward_count != 0
        if is_rewards:
            self._checkpoint_rewards(msg.sender, total_supply, _claim_rewards, empty(address))

        total_supply -= _value
        new_balance: uint256 = self.balanceOf[msg.sender] - _value
        self.balanceOf[msg.sender] = new_balance
        self.totalSupply = total_supply

        ERC20(self.staking_token).transfer(msg.sender, _value)
    else:
        self._checkpoint_rewards(msg.sender, total_supply, False, empty(address))

    log Withdraw(msg.sender, _value)
    log Transfer(msg.sender, empty(address), _value)


@internal
def _transfer(_from: address, _to: address, _value: uint256):
    total_supply: uint256 = self.totalSupply

    if _value != 0:
        is_rewards: bool = self.reward_count != 0
        if is_rewards:
            self._checkpoint_rewards(_from, total_supply, False, empty(address))
        new_balance: uint256 = self.balanceOf[_from] - _value
        self.balanceOf[_from] = new_balance

        if is_rewards:
            self._checkpoint_rewards(_to, total_supply, False, empty(address))
        new_balance = self.balanceOf[_to] + _value
        self.balanceOf[_to] = new_balance
    else:
        self._checkpoint_rewards(_from, total_supply, False, empty(address))
        self._checkpoint_rewards(_to, total_supply, False, empty(address))

    log Transfer(_from, _to, _value)


@external
@nonreentrant('lock')
def transfer(_to : address, _value : uint256) -> bool:
    """
    @notice Transfer token for a specified address
    @dev Transferring claims pending reward tokens for the sender and receiver
    @param _to The address to transfer to.
    @param _value The amount to be transferred.
    """
    self._transfer(msg.sender, _to, _value)

    return True


@external
@nonreentrant('lock')
def transferFrom(_from : address, _to : address, _value : uint256) -> bool:
    """
     @notice Transfer tokens from one address to another.
     @dev Transferring claims pending reward tokens for the sender and receiver
     @param _from address The address which you want to send tokens from
     @param _to address The address which you want to transfer to
     @param _value uint256 the amount of tokens to be transferred
    """
    _allowance: uint256 = self.allowance[_from][msg.sender]
    if _allowance != max_value(uint256):
        self.allowance[_from][msg.sender] = _allowance - _value

    self._transfer(_from, _to, _value)

    return True


@external
def approve(_spender : address, _value : uint256) -> bool:
    """
    @notice Approve the passed address to transfer the specified amount of
            tokens on behalf of msg.sender
    @dev Beware that changing an allowance via this method brings the risk
         that someone may use both the old and new allowance by unfortunate
         transaction ordering. This may be mitigated with the use of
         {incraseAllowance} and {decreaseAllowance}.
         https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    @param _spender The address which will transfer the funds
    @param _value The amount of tokens that may be transferred
    @return bool success
    """
    self.allowance[msg.sender][_spender] = _value
    log Approval(msg.sender, _spender, _value)

    return True


@external
def increaseAllowance(_spender: address, _added_value: uint256) -> bool:
    """
    @notice Increase the allowance granted to `_spender` by the caller
    @dev This is alternative to {approve} that can be used as a mitigation for
         the potential race condition
    @param _spender The address which will transfer the funds
    @param _added_value The amount of to increase the allowance
    @return bool success
    """
    allowance: uint256 = self.allowance[msg.sender][_spender] + _added_value
    self.allowance[msg.sender][_spender] = allowance

    log Approval(msg.sender, _spender, allowance)

    return True


@external
def decreaseAllowance(_spender: address, _subtracted_value: uint256) -> bool:
    """
    @notice Decrease the allowance granted to `_spender` by the caller
    @dev This is alternative to {approve} that can be used as a mitigation for
         the potential race condition
    @param _spender The address which will transfer the funds
    @param _subtracted_value The amount of to decrease the allowance
    @return bool success
    """
    allowance: uint256 = self.allowance[msg.sender][_spender] - _subtracted_value
    self.allowance[msg.sender][_spender] = allowance

    log Approval(msg.sender, _spender, allowance)

    return True

@external
def add_reward(_reward_token: address, _distributor: address):
    """
    @notice Set the active reward contract
    """
    admin: address = self.admin
    assert msg.sender == admin  # dev: only owner
    assert _reward_token != empty(address)

    reward_count: uint256 = self.reward_count
    assert reward_count < MAX_REWARDS
    assert self.reward_data[_reward_token].distributor == empty(address)

    self.reward_data[_reward_token].distributor = _distributor
    self.reward_tokens[reward_count] = _reward_token
    self.reward_count = reward_count + 1

@external
def set_reward_distributor(_reward_token: address, _distributor: address):
    current_distributor: address = self.reward_data[_reward_token].distributor
    admin: address = self.admin
    assert msg.sender == current_distributor or msg.sender == admin
    assert current_distributor != empty(address)
    assert _distributor != empty(address)

    self.reward_data[_reward_token].distributor = _distributor

@external
def set_claimer(_claimer: address):
    admin: address = self.admin
    assert msg.sender == admin
    assert _claimer != empty(address)

    self.claimer = _claimer

@external
@nonreentrant("lock")
def deposit_reward_token(_reward_token: address, _amount: uint256):
    assert msg.sender == self.reward_data[_reward_token].distributor

    self._checkpoint_rewards(empty(address), self.totalSupply, False, empty(address))

    response: Bytes[32] = raw_call(
        _reward_token,
        concat(
            method_id("transferFrom(address,address,uint256)"),
            convert(msg.sender, bytes32),
            convert(self, bytes32),
            convert(_amount, bytes32),
        ),
        max_outsize=32,
    )
    if len(response) != 0:
        assert convert(response, bool)

    period_finish: uint256 = self.reward_data[_reward_token].period_finish
    if block.timestamp >= period_finish:
        self.reward_data[_reward_token].rate = _amount / WEEK
    else:
        remaining: uint256 = period_finish - block.timestamp
        leftover: uint256 = remaining * self.reward_data[_reward_token].rate
        self.reward_data[_reward_token].rate = (_amount + leftover) / WEEK

    self.reward_data[_reward_token].last_update = block.timestamp
    self.reward_data[_reward_token].period_finish = block.timestamp + WEEK

    log RewardDataUpdate(_reward_token,_amount)

@external
def commit_transfer_ownership(addr: address):
    """
    @notice Transfer ownership of Gauge to `addr`
    @param addr Address to have ownership transferred to
    """
    assert msg.sender == self.admin  # dev: admin only
    assert addr != empty(address)  # dev: future admin cannot be the 0 address

    self.future_admin = addr
    log CommitOwnership(addr)


@external
def accept_transfer_ownership():
    """
    @notice Accept a pending ownership transfer
    """
    _admin: address = self.future_admin
    assert msg.sender == _admin  # dev: future admin only

    self.admin = _admin
    log ApplyOwnership(_admin)

Contract Security Audit

Contract ABI

API
[{"name":"CommitOwnership","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyOwnership","inputs":[{"name":"admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"Deposit","inputs":[{"name":"provider","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Withdraw","inputs":[{"name":"provider","type":"address","indexed":true},{"name":"value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true},{"name":"_to","type":"address","indexed":true},{"name":"_value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true},{"name":"_spender","type":"address","indexed":true},{"name":"_value","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"RewardDataUpdate","inputs":[{"name":"_token","type":"address","indexed":true},{"name":"_amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_staking_token","type":"address"},{"name":"_admin","type":"address"},{"name":"_delegation_registry","type":"address"},{"name":"_initial_delegate","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"claimed_reward","inputs":[{"name":"_addr","type":"address"},{"name":"_token","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"claimable_reward","inputs":[{"name":"_user","type":"address"},{"name":"_reward_token","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"set_rewards_receiver","inputs":[{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim_rewards","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim_rewards","inputs":[{"name":"_addr","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim_rewards","inputs":[{"name":"_addr","type":"address"},{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim_rewards_for","inputs":[{"name":"_addr","type":"address"},{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deposit","inputs":[{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deposit","inputs":[{"name":"_value","type":"uint256"},{"name":"_addr","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deposit","inputs":[{"name":"_value","type":"uint256"},{"name":"_addr","type":"address"},{"name":"_claim_rewards","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"withdraw","inputs":[{"name":"_value","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"withdraw","inputs":[{"name":"_value","type":"uint256"},{"name":"_claim_rewards","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"transfer","inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"approve","inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_added_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","inputs":[{"name":"_spender","type":"address"},{"name":"_subtracted_value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"add_reward","inputs":[{"name":"_reward_token","type":"address"},{"name":"_distributor","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_reward_distributor","inputs":[{"name":"_reward_token","type":"address"},{"name":"_distributor","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_claimer","inputs":[{"name":"_claimer","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deposit_reward_token","inputs":[{"name":"_reward_token","type":"address"},{"name":"_amount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"commit_transfer_ownership","inputs":[{"name":"addr","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_transfer_ownership","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"staking_token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"decimal_staking_token","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"allowance","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"integrate_checkpoint_of","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"reward_count","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"reward_tokens","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"reward_data","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"token","type":"address"},{"name":"distributor","type":"address"},{"name":"period_finish","type":"uint256"},{"name":"rate","type":"uint256"},{"name":"last_update","type":"uint256"},{"name":"integral","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"rewards_receiver","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"reward_integral_for","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"future_admin","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"claimer","inputs":[],"outputs":[{"name":"","type":"address"}]}]

346103dc576020611e6f6000396000518060a01c6103dc576040526020611e8f6000396000518060a01c6103dc576060526020611eaf6000396000518060a01c6103dc576080526020611ecf6000396000518060a01c6103dc5760a052604051156103dc57606051156103dc57606051601b5560405160015560405163313ce56760c052602060c0600460dc845afa61009d573d600060003e3d6000fd5b60203d106103dc5760c09050516002556040516395d89b41610100526060610100600461011c845afa6100d5573d600060003e3d6000fd5b60403d106103dc576101005161010001601a8151116103dc5780516101805260208101516101a052506101809050805160c052602081015160e052506000600a610100527f5374616b652044414f200000000000000000000000000000000000000000000061012052610100805160208201836101a0018151815250508083019250505060c051816101a00160e0518152508082019150506006610140527f204761756765000000000000000000000000000000000000000000000000000061016052610140805160208201836101a00181518152505080830192505050806101805261018090506020815101600081601f0160051c600381116103dc5780156101f257905b8060051b84015181600601556001018181186101db575b50505050600060c051816101600160e0518152508082019150506006610100527f2d67617567650000000000000000000000000000000000000000000000000000610120526101008051602082018361016001815181525050808301925050508061014052610140905080516009556020810151600a55506080515a60006004610140527f02b8a21d0000000000000000000000000000000000000000000000000000000061016052610140805160208201836101a0018151815250508083019250505060a051816101a00152602081019050806101805261018050506020610200610180516101a060008686f1905090506102f3573d600060003e3d6000fd5b3d602081183d60201002186101e0526101e080516101005260208101516101205250610100511561033357610120516101005160200360031b1c156103dc575b6080515a6004610180527f25ce9a37000000000000000000000000000000000000000000000000000000006101a0526101805060206101e0610180516101a060008686f19050905061038a573d600060003e3d6000fd5b3d602081183d60201002186101c0526101c08051610140526020810151610160525061014051156103ca57610160516101405160200360031b1c156103dc575b611a796103e161000039611a79610000f35b600080fd60003560e01c60026024820660011b611a3101601e39600051565b632dc7d74c811861142d5734611a2c5760015460405260206040f361142d565b63178f318581186100565734611a2c5760025460405260206040f35b6354c49fe9811861008357602436103417611a2c5760043560098111611a2c57600d015460405260206040f35b63b6b55f25811861142d57602436103417611a2c57336104a05260006104c052610c655661142d565b6370a0823181186100e957602436103417611a2c576004358060a01c611a2c57604052600360405160205260005260406000205460605260206060f35b6318160ddd811861142d5734611a2c5760045460405260206040f361142d565b63dd62ed3e811861016557604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c576060526005604051602052600052604060002080606051602052600052604060002090505460805260206080f35b6317f7182a811861142d5734611a2c57601c5460405260206040f361142d565b6306fdde0381186102025734611a2c5760208060405280604001602060065401600081601f0160051c60038111611a2c5780156101d557905b80600601548160051b8501526001018181186101be575b5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b6393f7aa67811861142d57604436103417611a2c576004358060a01c611a2c576104a052600054600214611a2c57600260005560176104a0516020526000526040600020600181019050543318611a2c576000610380526004546103a0526040366103c03761026f6117e4565b6104a0515a60006004610500527f23b872dd000000000000000000000000000000000000000000000000000000006105205261050080516020820183610560018151815250508083019250505033816105600152602081019050308161056001526020810190506024358161056001526020810190508061054052610540505060206106006105405161056060008686f190509050610313573d600060003e3d6000fd5b3d602081183d60201002186105e0526105e080516104c05260208101516104e052506104c05115610353576104e0516104c05160200360031b1c15611a2c575b60176104a05160205260005260406000206002810190505461050052610500514210156103ff576105005142808203828111611a2c5790509050610520526105205160176104a051602052600052604060002060038101905054808202811583838304141715611a2c57905090506105405260243561054051808201828110611a2c579050905062093a808104905060176104a051602052600052604060002060038101905055610423565b60243562093a808104905060176104a0516020526000526040600020600381019050555b4260176104a0516020526000526040600020600481019050554262093a808101818110611a2c57905060176104a0516020526000526040600020600281019050556104a0517f656e648408f08a8f933b2d1375eb24c442eafd5537451a75561a264a56963922602435610520526020610520a260036000550061142d565b6395d89b4181186104f25734611a2c57602080604052806040016009548152600a5460208201528051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b63963c94b9811861142d5734611a2c57600c5460405260206040f361142d565b639bd324f2811861142d57602436103417611a2c576004358060a01c611a2c57604052600b60405160205260005260406000205460605260206060f361142d565b6348e9c65e81186105bb57602436103417611a2c576004358060a01c611a2c576040526017604051602052600052604060002080546060526001810154608052600281015460a052600381015460c052600481015460e0526005810154610100525060c06060f35b63449a533a811861142d57604436103417611a2c576004358060a01c611a2c576104a0526024358060a01c611a2c576104c052600054600214611a2c57600260005533601d5418611a2c576104a0516104c0511461062057601d546104c05118611a2c575b6104a051610380526004546103a05260016103c0526104c0516103e0526106456117e4565b60036000550061142d565b6301ddabf1811861068d57602436103417611a2c576004358060a01c611a2c57604052601860405160205260005260406000205460605260206060f35b63e8de0d4d811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c57606052601b546080526080513318611a2c5760405115611a2c57600c5460a052600960a05111611a2c576017604051602052600052604060002060018101905054611a2c57606051601760405160205260005260406000206001810190505560405160a05160098111611a2c57600d015560a05160018101818110611a2c579050600c550061142d565b63f05cc058811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c576060526019604051602052600052604060002080606051602052600052604060002090505460805260206080f361142d565b63f851a440811861142d5734611a2c57601b5460405260206040f361142d565b63d379be2381186107e15734611a2c57601d5460405260206040f35b639faceb1b811861142d57604436103417611a2c576004358060a01c611a2c576104a0526024358060a01c611a2c576104c0525b600054600214611a2c5760026000556104c0511561083857336104a05118611a2c575b6104a051610380526004546103a05260016103c0526104c0516103e05261085d6117e4565b60036000550061142d565b63313ce56781186108845734611a2c5760025460405260206040f35b63e77e7437811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c57606052601a60405160205260005260406000208060605160205260005260406000209050546fffffffffffffffffffffffffffffffff8116905060805260206080f361142d565b6333fd6f748118610acf57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c57606052601760605160205260005260406000206005810190505460805260045460a052600360405160205260005260406000205460c05260a05115610a2c574260176060516020526000526040600020600281019050548082811882841002189050905060e05260e0516017606051602052600052604060002060048101905054808203828111611a2c579050905061010052608051610100516017606051602052600052604060002060038101905054808202811583838304141715611a2c5790509050670de0b6b3a7640000810281670de0b6b3a7640000820418611a2c57905060a0518015611a2c5780820490509050808201828110611a2c57905090506080525b6019606051602052600052604060002080604051602052600052604060002090505460e05260c05160805160e051808203828111611a2c5790509050808202811583838304141715611a2c5790509050670de0b6b3a76400008104905061010052601a604051602052600052604060002080606051602052600052604060002090505460801c61010051808201828110611a2c5790509050610120526020610120f35b63058a3a24811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c576060526017604051602052600052604060002060018101905054608052601b5460a0526080513318610b30576001610b37565b60a0513318155b15611a2c5760805115611a2c5760605115611a2c5760605160176040516020526000526040600020600181019050550061142d565b63bdf98116811861142d57602436103417611a2c576004358060a01c611a2c576040526040516018336020526000526040600020550061142d565b63e6f1daf2811861142d5734611a2c57336104a05260006104c0526108155661142d565b6384e9bd7e811861142d57602436103417611a2c576004358060a01c611a2c576104a05260006104c0526108155661142d565b636e553f65811861142d57604436103417611a2c576024358060a01c611a2c576104a05260006104c052610c655661142d565b6383df67478118610e0157606436103417611a2c576024358060a01c611a2c576104a0526044358060011c611a2c576104c0525b600054600214611a2c5760026000556004546104e05260043515610d7557600c541515610500526105005115610cbb576104a051610380526104e0516103a0526104c0516103c05260006103e052610cbb6117e4565b6104e051600435808201828110611a2c57905090506104e05260036104a051602052600052604060002054600435808201828110611a2c5790509050610520526105205160036104a0516020526000526040600020556104e0516004556001546323b872dd61054052336105605230610580526004356105a0526020610540606461055c6000855af1610d53573d600060003e3d6000fd5b60203d10611a2c57610540518060011c611a2c576105c0526105c05050610d94565b6104a051610380526104e0516103a0526040366103c037610d946117e4565b6104a0517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c600435610500526020610500a26104a05160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600435610500526020610500a36003600055005b6329de95bf811861142d57602436103417611a2c576004358060a01c611a2c57604052601b546060526060513318611a2c5760405115611a2c57604051601d550061142d565b632e1a7d4d811861142d57602436103417611a2c5760006104a052610e905661142d565b6338d07436811861142d57604436103417611a2c576024358060011c611a2c576104a0525b600054600214611a2c5760026000556004546104c05260043515610f9257600c5415156104e0526104e05115610ee35733610380526104c0516103a0526104a0516103c05260006103e052610ee36117e4565b6104c051600435808203828111611a2c57905090506104c052600333602052600052604060002054600435808203828111611a2c579050905061050052610500516003336020526000526040600020556104c05160045560015463a9059cbb610520523361054052600435610560526020610520604461053c6000855af1610f70573d600060003e3d6000fd5b60203d10611a2c57610520518060011c611a2c57610580526105805050610fae565b33610380526104c0516103a0526040366103c037610fae6117e4565b337f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243646004356104e05260206104e0a26000337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004356104e05260206104e0a360036000550061142d565b63a9059cbb811861142d57604436103417611a2c576004358060a01c611a2c5761056052600054600214611a2c576002600055336104a052610560516104c0526024356104e0526110686118cb565b60016105805260206105806003600055f361142d565b6323b872dd811861142d57606436103417611a2c576004358060a01c611a2c57610560526024358060a01c611a2c5761058052600054600214611a2c5760026000556005610560516020526000526040600020803360205260005260406000209050546105a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105a05114611146576105a051604435808203828111611a2c57905090506005610560516020526000526040600020803360205260005260406000209050555b610560516104a052610580516104c0526044356104e0526111656118cb565b60016105c05260206105c06003600055f361142d565b63095ea7b3811861142d57604436103417611a2c576004358060a01c611a2c576040526024356005336020526000526040600020806040516020526000526040600020905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f361142d565b6339509351811861142d57604436103417611a2c576004358060a01c611a2c576040526005336020526000526040600020806040516020526000526040600020905054602435808201828110611a2c57905090506060526060516005336020526000526040600020806040516020526000526040600020905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f361142d565b63a457c2d7811861142d57604436103417611a2c576004358060a01c611a2c576040526005336020526000526040600020806040516020526000526040600020905054602435808203828111611a2c57905090506060526060516005336020526000526040600020806040516020526000526040600020905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f361142d565b636b441a4081186113da57602436103417611a2c576004358060a01c611a2c57604052601b543318611a2c5760405115611a2c57604051601c557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b63e5ea47b8811861142d5734611a2c57601c546040526040513318611a2c57604051601b557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1005b60006000fd5b6080516101005260a051610120526017606051602052600052604060002060058101905054610140524260176060516020526000526040600020600281019050548082811882841002189050905061016052610160516017606051602052600052604060002060048101905054808203828111611a2c579050905061018052610180511561156f57610160516017606051602052600052604060002060048101905055610100511561156f5761014051610180516017606051602052600052604060002060038101905054808202811583838304141715611a2c5790509050670de0b6b3a7640000810281670de0b6b3a7640000820418611a2c579050610100518015611a2c5780820490509050808201828110611a2c5790509050610140526101405160176060516020526000526040600020600581019050555b604051156117e257601960605160205260005260406000208060405160205260005260406000209050546101a05260006101c052610140516101a051101561161757610140516019606051602052600052604060002080604051602052600052604060002090505561012051610140516101a051808203828111611a2c5790509050808202811583838304141715611a2c5790509050670de0b6b3a7640000810490506101c0525b601a60405160205260005260406000208060605160205260005260406000209050546101e0526101e05160801c6101c051808201828110611a2c57905090506102005261020051156117e2576101e0516fffffffffffffffffffffffffffffffff811690506102205260c0516116d0576101c051156117e257610220516102005160801b808201828110611a2c5790509050601a60405160205260005260406000208060605160205260005260406000209050556117e2565b6060515a60006004610280527fa9059cbb000000000000000000000000000000000000000000000000000000006102a052610280805160208201836102e0018151815250508083019250505060e051816102e0015260208101905061020051816102e00152602081019050806102c0526102c0505060206103606102c0516102e060008686f190509050611769573d600060003e3d6000fd5b3d602081183d6020100218610340526103408051610240526020810151610260525061024051156117a957610260516102405160200360031b1c15611a2c575b6102205161020051808201828110611a2c5790509050601a60405160205260005260406000208060605160205260005260406000209050555b565b6103e05161040052600061042052610380511561185257600361038051602052600052604060002054610420526103c051611820576000611826565b6103e051155b156118525760186103805160205260005260406000205461040052610400516118525761038051610400525b600c54610440526000600a905b8061046052610440516104605118611876576118c7565b6104605160098111611a2c57600d01546104805261038051604052610480516060526103a0516080526104205160a0526103c05160c0526104005160e0526118bc611433565b60010181811861185f575b5050565b600454610500526104e051156119b557600c54151561052052610520511561190c576104a05161038052610500516103a0526040366103c03761190c6117e4565b60036104a0516020526000526040600020546104e051808203828111611a2c5790509050610540526105405160036104a0516020526000526040600020556105205115611972576104c05161038052610500516103a0526040366103c0376119726117e4565b60036104c0516020526000526040600020546104e051808201828110611a2c5790509050610540526105405160036104c0516020526000526040600020556119f3565b6104a05161038052610500516103a0526040366103c0376119d46117e4565b6104c05161038052610500516103a0526040366103c0376119f36117e4565b6104c0516104a0517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6104e051610520526020610520a3565b600080fd142d00ac0512086813720bfe05531019142d142d142d117b07450e470e6b0c31001a12000109142d142d003a0b6c142d08f906500bcb12b9142d107e142d018507a504a10ba707c584191a7981184800a16576797065728300030a00150000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca5814000000000000000000000000000755fbe4a24d7478bfcfc1e561afce82d1ff62000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a000000000000000000000000b0552b6860ce5c0202976db056b5e3cc4f9cc765

Deployed Bytecode

0x60003560e01c60026024820660011b611a3101601e39600051565b632dc7d74c811861142d5734611a2c5760015460405260206040f361142d565b63178f318581186100565734611a2c5760025460405260206040f35b6354c49fe9811861008357602436103417611a2c5760043560098111611a2c57600d015460405260206040f35b63b6b55f25811861142d57602436103417611a2c57336104a05260006104c052610c655661142d565b6370a0823181186100e957602436103417611a2c576004358060a01c611a2c57604052600360405160205260005260406000205460605260206060f35b6318160ddd811861142d5734611a2c5760045460405260206040f361142d565b63dd62ed3e811861016557604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c576060526005604051602052600052604060002080606051602052600052604060002090505460805260206080f35b6317f7182a811861142d5734611a2c57601c5460405260206040f361142d565b6306fdde0381186102025734611a2c5760208060405280604001602060065401600081601f0160051c60038111611a2c5780156101d557905b80600601548160051b8501526001018181186101be575b5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b6393f7aa67811861142d57604436103417611a2c576004358060a01c611a2c576104a052600054600214611a2c57600260005560176104a0516020526000526040600020600181019050543318611a2c576000610380526004546103a0526040366103c03761026f6117e4565b6104a0515a60006004610500527f23b872dd000000000000000000000000000000000000000000000000000000006105205261050080516020820183610560018151815250508083019250505033816105600152602081019050308161056001526020810190506024358161056001526020810190508061054052610540505060206106006105405161056060008686f190509050610313573d600060003e3d6000fd5b3d602081183d60201002186105e0526105e080516104c05260208101516104e052506104c05115610353576104e0516104c05160200360031b1c15611a2c575b60176104a05160205260005260406000206002810190505461050052610500514210156103ff576105005142808203828111611a2c5790509050610520526105205160176104a051602052600052604060002060038101905054808202811583838304141715611a2c57905090506105405260243561054051808201828110611a2c579050905062093a808104905060176104a051602052600052604060002060038101905055610423565b60243562093a808104905060176104a0516020526000526040600020600381019050555b4260176104a0516020526000526040600020600481019050554262093a808101818110611a2c57905060176104a0516020526000526040600020600281019050556104a0517f656e648408f08a8f933b2d1375eb24c442eafd5537451a75561a264a56963922602435610520526020610520a260036000550061142d565b6395d89b4181186104f25734611a2c57602080604052806040016009548152600a5460208201528051806020830101601f82600003163682375050601f19601f825160200101169050810190506040f35b63963c94b9811861142d5734611a2c57600c5460405260206040f361142d565b639bd324f2811861142d57602436103417611a2c576004358060a01c611a2c57604052600b60405160205260005260406000205460605260206060f361142d565b6348e9c65e81186105bb57602436103417611a2c576004358060a01c611a2c576040526017604051602052600052604060002080546060526001810154608052600281015460a052600381015460c052600481015460e0526005810154610100525060c06060f35b63449a533a811861142d57604436103417611a2c576004358060a01c611a2c576104a0526024358060a01c611a2c576104c052600054600214611a2c57600260005533601d5418611a2c576104a0516104c0511461062057601d546104c05118611a2c575b6104a051610380526004546103a05260016103c0526104c0516103e0526106456117e4565b60036000550061142d565b6301ddabf1811861068d57602436103417611a2c576004358060a01c611a2c57604052601860405160205260005260406000205460605260206060f35b63e8de0d4d811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c57606052601b546080526080513318611a2c5760405115611a2c57600c5460a052600960a05111611a2c576017604051602052600052604060002060018101905054611a2c57606051601760405160205260005260406000206001810190505560405160a05160098111611a2c57600d015560a05160018101818110611a2c579050600c550061142d565b63f05cc058811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c576060526019604051602052600052604060002080606051602052600052604060002090505460805260206080f361142d565b63f851a440811861142d5734611a2c57601b5460405260206040f361142d565b63d379be2381186107e15734611a2c57601d5460405260206040f35b639faceb1b811861142d57604436103417611a2c576004358060a01c611a2c576104a0526024358060a01c611a2c576104c0525b600054600214611a2c5760026000556104c0511561083857336104a05118611a2c575b6104a051610380526004546103a05260016103c0526104c0516103e05261085d6117e4565b60036000550061142d565b63313ce56781186108845734611a2c5760025460405260206040f35b63e77e7437811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c57606052601a60405160205260005260406000208060605160205260005260406000209050546fffffffffffffffffffffffffffffffff8116905060805260206080f361142d565b6333fd6f748118610acf57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c57606052601760605160205260005260406000206005810190505460805260045460a052600360405160205260005260406000205460c05260a05115610a2c574260176060516020526000526040600020600281019050548082811882841002189050905060e05260e0516017606051602052600052604060002060048101905054808203828111611a2c579050905061010052608051610100516017606051602052600052604060002060038101905054808202811583838304141715611a2c5790509050670de0b6b3a7640000810281670de0b6b3a7640000820418611a2c57905060a0518015611a2c5780820490509050808201828110611a2c57905090506080525b6019606051602052600052604060002080604051602052600052604060002090505460e05260c05160805160e051808203828111611a2c5790509050808202811583838304141715611a2c5790509050670de0b6b3a76400008104905061010052601a604051602052600052604060002080606051602052600052604060002090505460801c61010051808201828110611a2c5790509050610120526020610120f35b63058a3a24811861142d57604436103417611a2c576004358060a01c611a2c576040526024358060a01c611a2c576060526017604051602052600052604060002060018101905054608052601b5460a0526080513318610b30576001610b37565b60a0513318155b15611a2c5760805115611a2c5760605115611a2c5760605160176040516020526000526040600020600181019050550061142d565b63bdf98116811861142d57602436103417611a2c576004358060a01c611a2c576040526040516018336020526000526040600020550061142d565b63e6f1daf2811861142d5734611a2c57336104a05260006104c0526108155661142d565b6384e9bd7e811861142d57602436103417611a2c576004358060a01c611a2c576104a05260006104c0526108155661142d565b636e553f65811861142d57604436103417611a2c576024358060a01c611a2c576104a05260006104c052610c655661142d565b6383df67478118610e0157606436103417611a2c576024358060a01c611a2c576104a0526044358060011c611a2c576104c0525b600054600214611a2c5760026000556004546104e05260043515610d7557600c541515610500526105005115610cbb576104a051610380526104e0516103a0526104c0516103c05260006103e052610cbb6117e4565b6104e051600435808201828110611a2c57905090506104e05260036104a051602052600052604060002054600435808201828110611a2c5790509050610520526105205160036104a0516020526000526040600020556104e0516004556001546323b872dd61054052336105605230610580526004356105a0526020610540606461055c6000855af1610d53573d600060003e3d6000fd5b60203d10611a2c57610540518060011c611a2c576105c0526105c05050610d94565b6104a051610380526104e0516103a0526040366103c037610d946117e4565b6104a0517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c600435610500526020610500a26104a05160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600435610500526020610500a36003600055005b6329de95bf811861142d57602436103417611a2c576004358060a01c611a2c57604052601b546060526060513318611a2c5760405115611a2c57604051601d550061142d565b632e1a7d4d811861142d57602436103417611a2c5760006104a052610e905661142d565b6338d07436811861142d57604436103417611a2c576024358060011c611a2c576104a0525b600054600214611a2c5760026000556004546104c05260043515610f9257600c5415156104e0526104e05115610ee35733610380526104c0516103a0526104a0516103c05260006103e052610ee36117e4565b6104c051600435808203828111611a2c57905090506104c052600333602052600052604060002054600435808203828111611a2c579050905061050052610500516003336020526000526040600020556104c05160045560015463a9059cbb610520523361054052600435610560526020610520604461053c6000855af1610f70573d600060003e3d6000fd5b60203d10611a2c57610520518060011c611a2c57610580526105805050610fae565b33610380526104c0516103a0526040366103c037610fae6117e4565b337f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243646004356104e05260206104e0a26000337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004356104e05260206104e0a360036000550061142d565b63a9059cbb811861142d57604436103417611a2c576004358060a01c611a2c5761056052600054600214611a2c576002600055336104a052610560516104c0526024356104e0526110686118cb565b60016105805260206105806003600055f361142d565b6323b872dd811861142d57606436103417611a2c576004358060a01c611a2c57610560526024358060a01c611a2c5761058052600054600214611a2c5760026000556005610560516020526000526040600020803360205260005260406000209050546105a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105a05114611146576105a051604435808203828111611a2c57905090506005610560516020526000526040600020803360205260005260406000209050555b610560516104a052610580516104c0526044356104e0526111656118cb565b60016105c05260206105c06003600055f361142d565b63095ea7b3811861142d57604436103417611a2c576004358060a01c611a2c576040526024356005336020526000526040600020806040516020526000526040600020905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560243560605260206060a3600160605260206060f361142d565b6339509351811861142d57604436103417611a2c576004358060a01c611a2c576040526005336020526000526040600020806040516020526000526040600020905054602435808201828110611a2c57905090506060526060516005336020526000526040600020806040516020526000526040600020905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f361142d565b63a457c2d7811861142d57604436103417611a2c576004358060a01c611a2c576040526005336020526000526040600020806040516020526000526040600020905054602435808203828111611a2c57905090506060526060516005336020526000526040600020806040516020526000526040600020905055604051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560605160805260206080a3600160805260206080f361142d565b636b441a4081186113da57602436103417611a2c576004358060a01c611a2c57604052601b543318611a2c5760405115611a2c57604051601c557f2f56810a6bf40af059b96d3aea4db54081f378029a518390491093a7b67032e960405160605260206060a1005b63e5ea47b8811861142d5734611a2c57601c546040526040513318611a2c57604051601b557febee2d5739011062cb4f14113f3b36bf0ffe3da5c0568f64189d1012a118910560405160605260206060a1005b60006000fd5b6080516101005260a051610120526017606051602052600052604060002060058101905054610140524260176060516020526000526040600020600281019050548082811882841002189050905061016052610160516017606051602052600052604060002060048101905054808203828111611a2c579050905061018052610180511561156f57610160516017606051602052600052604060002060048101905055610100511561156f5761014051610180516017606051602052600052604060002060038101905054808202811583838304141715611a2c5790509050670de0b6b3a7640000810281670de0b6b3a7640000820418611a2c579050610100518015611a2c5780820490509050808201828110611a2c5790509050610140526101405160176060516020526000526040600020600581019050555b604051156117e257601960605160205260005260406000208060405160205260005260406000209050546101a05260006101c052610140516101a051101561161757610140516019606051602052600052604060002080604051602052600052604060002090505561012051610140516101a051808203828111611a2c5790509050808202811583838304141715611a2c5790509050670de0b6b3a7640000810490506101c0525b601a60405160205260005260406000208060605160205260005260406000209050546101e0526101e05160801c6101c051808201828110611a2c57905090506102005261020051156117e2576101e0516fffffffffffffffffffffffffffffffff811690506102205260c0516116d0576101c051156117e257610220516102005160801b808201828110611a2c5790509050601a60405160205260005260406000208060605160205260005260406000209050556117e2565b6060515a60006004610280527fa9059cbb000000000000000000000000000000000000000000000000000000006102a052610280805160208201836102e0018151815250508083019250505060e051816102e0015260208101905061020051816102e00152602081019050806102c0526102c0505060206103606102c0516102e060008686f190509050611769573d600060003e3d6000fd5b3d602081183d6020100218610340526103408051610240526020810151610260525061024051156117a957610260516102405160200360031b1c15611a2c575b6102205161020051808201828110611a2c5790509050601a60405160205260005260406000208060605160205260005260406000209050555b565b6103e05161040052600061042052610380511561185257600361038051602052600052604060002054610420526103c051611820576000611826565b6103e051155b156118525760186103805160205260005260406000205461040052610400516118525761038051610400525b600c54610440526000600a905b8061046052610440516104605118611876576118c7565b6104605160098111611a2c57600d01546104805261038051604052610480516060526103a0516080526104205160a0526103c05160c0526104005160e0526118bc611433565b60010181811861185f575b5050565b600454610500526104e051156119b557600c54151561052052610520511561190c576104a05161038052610500516103a0526040366103c03761190c6117e4565b60036104a0516020526000526040600020546104e051808203828111611a2c5790509050610540526105405160036104a0516020526000526040600020556105205115611972576104c05161038052610500516103a0526040366103c0376119726117e4565b60036104c0516020526000526040600020546104e051808201828110611a2c5790509050610540526105405160036104c0516020526000526040600020556119f3565b6104a05161038052610500516103a0526040366103c0376119d46117e4565b6104c05161038052610500516103a0526040366103c0376119f36117e4565b6104c0516104a0517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6104e051610520526020610520a3565b600080fd142d00ac0512086813720bfe05531019142d142d142d117b07450e470e6b0c31001a12000109142d142d003a0b6c142d08f906500bcb12b9142d107e142d018507a504a10ba707c5

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

0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca5814000000000000000000000000000755fbe4a24d7478bfcfc1e561afce82d1ff62000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a000000000000000000000000b0552b6860ce5c0202976db056b5e3cc4f9cc765

-----Decoded View---------------
Arg [0] : _staking_token (address): 0x1AEe2382e05Dc68BDfC472F1E46d570feCca5814
Arg [1] : _admin (address): 0x000755Fbe4A24d7478bfcFC1E561AfCE82d1ff62
Arg [2] : _delegation_registry (address): 0xF5cA906f05cafa944c27c6881bed3DFd3a785b6A
Arg [3] : _initial_delegate (address): 0xB0552b6860CE5C0202976Db056b5e3Cc4f9CC765

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001aee2382e05dc68bdfc472f1e46d570fecca5814
Arg [1] : 000000000000000000000000000755fbe4a24d7478bfcfc1e561afce82d1ff62
Arg [2] : 000000000000000000000000f5ca906f05cafa944c27c6881bed3dfd3a785b6a
Arg [3] : 000000000000000000000000b0552b6860ce5c0202976db056b5e3cc4f9cc765


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.