ETH Price: $2,009.58 (+1.28%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim221033682025-03-22 15:39:2322 hrs ago1742657963IN
0x7cf484D9...50136d491
0 ETH0.000075190.87866558
Claim220754042025-03-18 17:58:114 days ago1742320691IN
0x7cf484D9...50136d491
0 ETH0.000052570.57037568
Claim220378942025-03-13 12:17:4710 days ago1741868267IN
0x7cf484D9...50136d491
0 ETH0.000035160.5335713
Claim220336162025-03-12 21:57:2310 days ago1741816643IN
0x7cf484D9...50136d491
0 ETH0.000057650.59191543
Claim219484952025-03-01 0:41:1122 days ago1740789671IN
0x7cf484D9...50136d491
0 ETH0.00007310.82838962
Claim214177562024-12-16 21:25:1196 days ago1734384311IN
0x7cf484D9...50136d491
0 ETH0.001665117.09540591
Claim213611152024-12-08 23:39:35104 days ago1733701175IN
0x7cf484D9...50136d491
0 ETH0.000970179.95936768
Claim212266822024-11-20 4:52:11123 days ago1732078331IN
0x7cf484D9...50136d491
0 ETH0.000896249.2015499
Claim209458202024-10-12 0:01:47162 days ago1728691307IN
0x7cf484D9...50136d491
0 ETH0.0011174411.47123281
Claim204688452024-08-06 10:11:11229 days ago1722939071IN
0x7cf484D9...50136d491
0 ETH0.000259942.66878646
Claim200705892024-06-11 19:10:35284 days ago1718133035IN
0x7cf484D9...50136d491
0 ETH0.0011865112.18027866
Claim198973682024-05-18 14:16:47309 days ago1716041807IN
0x7cf484D9...50136d491
0 ETH0.000350843.8067428
Claim198793832024-05-16 1:53:23311 days ago1715824403IN
0x7cf484D9...50136d491
0 ETH0.000357343.66878665
Claim198411552024-05-10 17:33:47316 days ago1715362427IN
0x7cf484D9...50136d491
0 ETH0.0021032421.59369963
Claim197816072024-05-02 9:41:11325 days ago1714642871IN
0x7cf484D9...50136d491
0 ETH0.000824548.46542115
Claim197254302024-04-24 13:07:59333 days ago1713964079IN
0x7cf484D9...50136d491
0 ETH0.0027378228.11228458
Claim196634702024-04-15 21:04:35341 days ago1713215075IN
0x7cf484D9...50136d491
0 ETH0.0012499214.60860898
Claim193728832024-03-06 1:35:11382 days ago1709688911IN
0x7cf484D9...50136d491
0 ETH0.0048712550
Claim192535092024-02-18 8:29:47399 days ago1708244987IN
0x7cf484D9...50136d491
0 ETH0.0019018823.67800909
Claim192004432024-02-10 21:42:35406 days ago1707601355IN
0x7cf484D9...50136d491
0 ETH0.0039792941.04438934
Claim192004052024-02-10 21:34:59406 days ago1707600899IN
0x7cf484D9...50136d491
0 ETH0.0032517131.81690525
Claim191307962024-02-01 3:03:23416 days ago1706756603IN
0x7cf484D9...50136d491
0 ETH0.0024931625.59371729
Claim191065022024-01-28 17:24:23419 days ago1706462663IN
0x7cf484D9...50136d491
0 ETH0.0011533812.51458979
Claim190823592024-01-25 8:12:47423 days ago1706170367IN
0x7cf484D9...50136d491
0 ETH0.0010189210.46118522
Claim190684422024-01-23 9:21:47425 days ago1706001707IN
0x7cf484D9...50136d491
0 ETH0.0017677919.17868618
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
yETH bootstrap

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
paris EvmVersion, GNU AGPLv3 license

Contract Source Code (Vyper language format)

# @version 0.3.7
"""
@title yETH bootstrap
@author 0xkorin, Yearn Finance
@license Copyright (c) Yearn Finance, 2023 - all rights reserved
@notice 
    Implements the bootstrap phase as outlined in YIP-72, summarized:
    Contract defines multiple periods
        - Whitelist period: LSD protocols apply to be whitelisted by depositing 1 ETH
        - Deposit period: anyone can deposit ETH, which mints st-yETH 1:1 locked into the contract
        - Incentive period: anyone is able to incentivize voting for a whitelisted protocol by depositing tokens
        - Vote period: depositors are able to vote on their preferred whitelisted protocol
    After the vote period up to 5 protocols are declared as winner.
    Incentives for winning protocols will be distributed over all voters according to their overall vote weight, 
    regardless whether they voted for that specific protocol or not.
    Protocols that do not win will have their incentives refunded.
    10% of deposited ETH is sent to the POL.
    90% of deposited ETH is used to buy LSDs and deposit into the newly deployed yETH pool.
    The minted yETH is used to pay off 90% of the debt in the bootstrap contract.
    Depositor's st-yETH become withdrawable after a specific time.

    This contract is used to lock new st-yETH on behalf of original bootstrap depositors, following the deployment 
    of the new version of the staking contract. The yETH underlying the original bootstrap contract has been burned.
"""

from vyper.interfaces import ERC20

interface Token:
    def mint(_account: address, _amount: uint256): nonpayable
    def burn(_account: address, _amount: uint256): nonpayable

interface Staking:
    def deposit(_assets: uint256) -> uint256: nonpayable

token: public(immutable(address))
staking: public(immutable(address))
treasury: public(immutable(address))
pol: public(immutable(address))
management: public(address)
pending_management: public(address)
depositor: public(address)
repay_allowed: public(HashMap[address, bool])

applications: HashMap[address, uint256]
debt: public(uint256)
deposited: public(uint256)
deposits: public(HashMap[address, uint256]) # user => amount deposited
incentives: public(HashMap[address, HashMap[address, uint256]]) # protocol => incentive => amount
incentive_depositors: public(HashMap[address, HashMap[address, HashMap[address, uint256]]]) # protocol => incentive => depositor => amount
voted: public(uint256)
votes_used: public(HashMap[address, uint256]) # user => votes used
votes_used_protocol: public(HashMap[address, HashMap[address, uint256]]) # user => protocol => votes
votes: public(HashMap[address, uint256]) # protocol => votes
winners_list: public(DynArray[address, MAX_WINNERS])
winners: public(HashMap[address, bool]) # protocol => winner?
incentive_claimed: public(HashMap[address, HashMap[address, HashMap[address, bool]]]) # winner => incentive => user => claimed?

whitelist_begin: public(uint256)
whitelist_end: public(uint256)
incentive_begin: public(uint256)
incentive_end: public(uint256)
deposit_begin: public(uint256)
deposit_end: public(uint256)
vote_begin: public(uint256)
vote_end: public(uint256)
lock_end: public(uint256)

event Apply:
    protocol: indexed(address)

event Whitelist:
    protocol: indexed(address)

event Incentivize:
    protocol: indexed(address)
    incentive: indexed(address)
    depositor: indexed(address)
    amount: uint256

event Deposit:
    depositor: indexed(address)
    receiver: indexed(address)
    amount: uint256

event Claim:
    claimer: indexed(address)
    receiver: indexed(address)
    amount: uint256

event Vote:
    voter: indexed(address)
    protocol: indexed(address)
    amount: uint256

event Repay:
    payer: indexed(address)
    amount: uint256

event Split:
    amount: uint256

event ClaimIncentive:
    protocol: indexed(address)
    incentive: indexed(address)
    claimer: indexed(address)
    amount: uint256

event RefundIncentive:
    protocol: indexed(address)
    incentive: indexed(address)
    depositor: indexed(address)
    amount: uint256

event SetPeriod:
    period: indexed(uint256)
    begin: uint256
    end: uint256

event Winners:
    winners: DynArray[address, MAX_WINNERS]

event PendingManagement:
    management: indexed(address)

event SetManagement:
    management: indexed(address)

NOTHING: constant(uint256) = 0
APPLIED: constant(uint256) = 1
WHITELISTED: constant(uint256) = 2
MAX_WINNERS: constant(uint256) = 5

@external
def __init__(_token: address, _staking: address, _treasury: address, _pol: address):
    """
    @notice Constructor
    @param _token yETH token address
    @param _staking st-yETH token address
    @param _treasury Treasury address
    @param _pol POL address
    """
    token = _token
    staking = _staking
    treasury = _treasury
    pol = _pol
    self.management = msg.sender
    self.depositor = msg.sender
    assert ERC20(token).approve(_staking, max_value(uint256), default_return_value=True)

@external
@payable
def apply(_protocol: address):
    """
    @notice
        As a LSD protocol apply to be whitelisted for potential inclusion into the yETH pool.
        Requires an application fee of 1 ETH to be sent along with the call
    @param _protocol The LSD protocol token address
    """
    assert msg.value == 1_000_000_000_000_000_000 # dev: application fee
    assert block.timestamp >= self.whitelist_begin and block.timestamp < self.whitelist_end # dev: outside application period
    assert self.applications[_protocol] == NOTHING # dev: already applied
    self.applications[_protocol] = APPLIED
    log Apply(_protocol)

@external
def incentivize(_protocol: address, _incentive: address, _amount: uint256):
    """
    @notice
        Incentivize depositors to vote on a specific protocol.
        Deposited incentives are refunded if the protocol does not receive sufficient votes to be included in the yETH pool
    @param _protocol The LSD protocol address
    @param _incentive The incentive token address
    @param _amount The amount of tokens to deposit as incentive
    """
    assert _amount > 0
    assert block.timestamp >= self.incentive_begin and block.timestamp < self.incentive_end # dev: outside incentive period
    assert self.applications[_protocol] == WHITELISTED # dev: not whitelisted
    self.incentives[_protocol][_incentive] += _amount
    self.incentive_depositors[_protocol][_incentive][msg.sender] += _amount
    assert ERC20(_incentive).transferFrom(msg.sender, self, _amount, default_return_value=True)
    log Incentivize(_protocol, _incentive, msg.sender, _amount)

@external
def deposit(_accounts: DynArray[address, 256], _amounts: DynArray[uint256, 256]):
    assert msg.sender == self.depositor
    assert len(_accounts) == len(_amounts)

    total: uint256 = 0
    for i in range(256):
        if i == len(_accounts):
            break
        account: address = _accounts[i]
        amount: uint256 = _amounts[i]
        total += amount
        self.deposits[account] += amount
        log Deposit(msg.sender, account, amount)

    self.debt += total
    self.deposited += total
    Token(token).mint(self, total)
    Staking(staking).deposit(total)

@external
def claim(_amount: uint256, _receiver: address = msg.sender):
    """
    @notice Claim st-yETH once the lock has expired
    @param _amount Amount of tokens to claim
    @param _receiver Account to transfer the tokens to
    """
    assert _amount > 0
    assert block.timestamp >= self.lock_end
    self.deposited -= _amount
    self.deposits[msg.sender] -= _amount
    assert ERC20(staking).transfer(_receiver, _amount, default_return_value=True)
    log Claim(msg.sender, _receiver, _amount)

@external
@view
def votes_available(_account: address) -> uint256:
    """
    @notice Get the amount of available votes for a specific account
    @param _account The account to query for
    @return Amount of available votes
    """
    if block.timestamp < self.vote_begin or block.timestamp >= self.vote_end:
        return 0

    return self.deposits[_account] - self.votes_used[_account]

@external
def vote(_protocols: DynArray[address, 32], _votes: DynArray[uint256, 32]):
    """
    @notice Vote for whitelisted protocols to be included into the pool
    @param _protocols Protocols to vote for
    @param _votes Amount of votes to allocate for each protocol
    """
    assert len(_protocols) == len(_votes)
    assert block.timestamp >= self.vote_begin and block.timestamp < self.vote_end # dev: outside vote period
    used: uint256 = 0
    for i in range(32):
        if i == len(_protocols):
            break
        protocol: address = _protocols[i]
        votes: uint256 = _votes[i]
        assert self.applications[protocol] == WHITELISTED # dev: protocol not whitelisted
        used += votes
        self.votes[protocol] += votes
        self.votes_used_protocol[msg.sender][protocol] += votes
        log Vote(msg.sender, protocol, votes)
    self.voted += used
    used += self.votes_used[msg.sender]
    assert used <= self.deposits[msg.sender] # dev: too many votes
    self.votes_used[msg.sender] = used

@external
def undo_vote(_protocol: address, _account: address = msg.sender) -> uint256:
    """
    @notice Undo vote for a protocol that had their whitelist retracted
    @param _protocol Protocol to undo votes for
    @param _account Account to undo votes for
    @return Amount of freed up votes
    """
    assert block.timestamp >= self.vote_begin and block.timestamp < self.vote_end # dev: outside vote period
    assert self.applications[_protocol] != WHITELISTED
    assert _account == msg.sender or msg.sender == self.management
    votes: uint256 = self.votes_used_protocol[_account][_protocol]
    assert votes > 0
    self.voted -= votes
    self.votes[_protocol] -= votes
    self.votes_used[_account] -= votes
    self.votes_used_protocol[_account][_protocol] = 0
    return votes

@external
def repay(_amount: uint256):
    """
    @notice Repay yETH debt by burning it
    @param _amount Amount of debt to repay
    @dev Requires prior permission by management
    """
    assert self.repay_allowed[msg.sender]
    self.debt -= _amount
    assert ERC20(token).transferFrom(msg.sender, self, _amount, default_return_value=True)
    Token(token).burn(self, _amount)
    log Repay(msg.sender, _amount)

@external
def split():
    """
    @notice Split deposited ETH 9:1 between treasury and POL
    """
    assert msg.sender == self.management or msg.sender == treasury
    amount: uint256 = self.balance
    assert amount > 0
    log Split(amount)
    raw_call(pol, b"", value=amount/10)
    amount -= amount/10
    raw_call(treasury, b"", value=amount)

@external
@view
def claimable_incentive(_protocol: address, _incentive: address, _claimer: address) -> uint256:
    """
    @notice Get the amount of claimable incentives
    @param _protocol Address of the LSD protocol to claim incentives for
    @param _incentive Incentive token to claim
    @param _claimer Account to query for
    @return Amount of claimable incentive tokens
    """
    if not self.winners[_protocol] or self.incentive_claimed[_protocol][_incentive][_claimer]:
        return 0
    return self.incentives[_protocol][_incentive] * self.votes_used[_claimer] / self.voted

@external
def claim_incentive(_protocol: address, _incentive: address, _claimer: address = msg.sender) -> uint256:
    """
    @notice Claim a specific incentive
    @param _protocol Address of the LSD protocol to claim incentives for
    @param _incentive Incentive token to claim
    @param _claimer Account to claim for
    @return Amount of incentive tokens claimed
    """
    assert self.winners[_protocol] # dev: protocol is not winner
    assert not self.incentive_claimed[_protocol][_incentive][_claimer] # dev: incentive already claimed
    
    incentive: uint256 = self.incentives[_protocol][_incentive] * self.votes_used[_claimer] / self.voted
    assert incentive > 0 # dev: nothing to claim

    self.incentive_claimed[_protocol][_incentive][_claimer] = True
    assert ERC20(_incentive).transfer(_claimer, incentive, default_return_value=True)
    log ClaimIncentive(_protocol, _incentive, _claimer, incentive)
    return incentive

@external
def refund_incentive(_protocol: address, _incentive: address, _depositor: address = msg.sender) -> uint256:
    """
    @notice Refund incentive for protocols that did not win
    @param _protocol Address of the LSD protocol to refund incentives for
    @param _incentive Incentive token to refund
    @param _depositor Account that deposited the incentive
    @return Amount of incentive tokens refunded
    """
    assert len(self.winners_list) > 0 # dev: no winners declared
    assert not self.winners[_protocol] # dev: protocol is winner

    amount: uint256 = self.incentive_depositors[_protocol][_incentive][_depositor]
    assert amount > 0 # dev: nothing to refund

    self.incentive_depositors[_protocol][_incentive][_depositor] = 0
    assert ERC20(_incentive).transfer(_depositor, amount, default_return_value=True)
    log RefundIncentive(_protocol, _incentive, _depositor, amount)
    return amount

@external
@view
def has_applied(_protocol: address) -> bool:
    """
    @notice Check whether the LSD protocol has applied to be whitelisted
    @param _protocol Address of the LSD protocol to query for
    @return True if the protocol has applied, False if it has not yet applied
    """
    return self.applications[_protocol] > NOTHING

@external
@view
def is_whitelisted(_protocol: address) -> bool:
    """
    @notice Check whether the LSD protocol is whitelisted
    @param _protocol Address of the LSD protocol to query for
    @return True if the protocol is whitelisted, False if it has not been whitelisted
    """
    return self.applications[_protocol] == WHITELISTED

@external
@view
def num_winners() -> uint256:
    """
    @notice Get the number of declared winners
    @return Number of declared winners
    """
    return len(self.winners_list)

# MANAGEMENT FUNCTIONS

@external
def set_whitelist_period(_begin: uint256, _end: uint256):
    """
    @notice Set the period during which protocols can apply to be whitelisted
    @param _begin Timestamp of the beginning of the period
    @param _end Timestamp of the end of the period
    """
    assert msg.sender == self.management
    assert _end > _begin
    self.whitelist_begin = _begin
    self.whitelist_end = _end
    log SetPeriod(0, _begin,  _end)

@external
def set_incentive_period(_begin: uint256, _end: uint256):
    """
    @notice Set the period during which incentives can be deposited
    @dev Not allowed to start before the whitelist period
    @param _begin Timestamp of the beginning of the period
    @param _end Timestamp of the end of the period
    """
    assert msg.sender == self.management
    assert _begin >= self.whitelist_begin
    assert _end > _begin
    self.incentive_begin = _begin
    self.incentive_end = _end
    log SetPeriod(1, _begin,  _end)

@external
def set_deposit_period(_begin: uint256, _end: uint256):
    """
    @notice Set the period during which users can deposit ETH for st-yETH
    @dev Not allowed to start before the whitelist period
    @param _begin Timestamp of the beginning of the period
    @param _end Timestamp of the end of the period
    """
    assert msg.sender == self.management
    assert _begin >= self.whitelist_begin
    assert _end > _begin
    self.deposit_begin = _begin
    self.deposit_end = _end
    log SetPeriod(2, _begin,  _end)

@external
def set_vote_period(_begin: uint256, _end: uint256):
    """
    @notice Set the period during which depositors can vote for protocols
    @dev Not allowed to start before the deposit period
    @param _begin Timestamp of the beginning of the period
    @param _end Timestamp of the end of the period
    """
    assert msg.sender == self.management
    assert _begin >= self.deposit_begin
    assert _end > _begin
    assert _end <= self.lock_end
    self.vote_begin = _begin
    self.vote_end = _end
    log SetPeriod(3, _begin, _end)

@external
def set_lock_end(_end: uint256):
    """
    @notice Set the time the st-yETH lock ends
    @dev Not allowed to be before the end of the vote period
    @param _end Timestamp of the end of the lock
    """
    assert msg.sender == self.management
    assert _end >= self.vote_end
    self.lock_end = _end
    log SetPeriod(4, 0, _end)

@external
def whitelist(_protocol: address):
    """
    @notice Whitelist a protocol 
    @param _protocol Address of the LSD protocol
    """
    assert msg.sender == self.management
    assert self.applications[_protocol] == APPLIED # dev: has not applied
    self.applications[_protocol] = WHITELISTED
    log Whitelist(_protocol)

@external
def undo_whitelist(_protocol: address):
    """
    @notice Undo a protocol whitelist. Should only be used in emergencies
    @param _protocol Address of the LSD protocol
    """
    assert msg.sender == self.management
    assert self.applications[_protocol] == WHITELISTED # dev: not whitelisted
    self.applications[_protocol] = APPLIED

@external
def declare_winners(_winners: DynArray[address, MAX_WINNERS]):
    """
    @notice Declare the winners of the vote
    @param _winners Addresses of the LSD protocols
    """
    assert msg.sender == self.management
    assert block.timestamp >= self.incentive_end
    assert block.timestamp >= self.deposit_end
    assert block.timestamp >= self.vote_end
    assert len(self.winners_list) == 0
    for winner in _winners:
        assert self.applications[winner] == WHITELISTED
        assert not self.winners[winner]
        self.winners_list.append(winner)
        self.winners[winner] = True
    log Winners(_winners)

@external
def allow_repay(_account: address, _allow: bool):
    """
    @notice Allow specific account to repay debt
    @param _account Account to set permission for
    @param _allow Flag whether to allow repayment or not
    """
    assert msg.sender == self.management
    self.repay_allowed[_account] = _allow

@external
def set_depositor(_depositor: address):
    assert msg.sender == self.depositor
    self.depositor = _depositor

@external
def set_management(_management: address):
    """
    @notice 
        Set the pending management address.
        Needs to be accepted by that account separately to transfer management over
    @param _management New pending management address
    """
    assert msg.sender == self.management
    self.pending_management = _management
    log PendingManagement(_management)

@external
def accept_management():
    """
    @notice 
        Accept management role.
        Can only be called by account previously marked as pending management by current management
    """
    assert msg.sender == self.pending_management
    self.pending_management = empty(address)
    self.management = msg.sender
    log SetManagement(msg.sender)

Contract Security Audit

Contract ABI

API
[{"name":"Apply","inputs":[{"name":"protocol","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"Whitelist","inputs":[{"name":"protocol","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"Incentivize","inputs":[{"name":"protocol","type":"address","indexed":true},{"name":"incentive","type":"address","indexed":true},{"name":"depositor","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Deposit","inputs":[{"name":"depositor","type":"address","indexed":true},{"name":"receiver","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Claim","inputs":[{"name":"claimer","type":"address","indexed":true},{"name":"receiver","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Vote","inputs":[{"name":"voter","type":"address","indexed":true},{"name":"protocol","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Repay","inputs":[{"name":"payer","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Split","inputs":[{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"ClaimIncentive","inputs":[{"name":"protocol","type":"address","indexed":true},{"name":"incentive","type":"address","indexed":true},{"name":"claimer","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"RefundIncentive","inputs":[{"name":"protocol","type":"address","indexed":true},{"name":"incentive","type":"address","indexed":true},{"name":"depositor","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetPeriod","inputs":[{"name":"period","type":"uint256","indexed":true},{"name":"begin","type":"uint256","indexed":false},{"name":"end","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Winners","inputs":[{"name":"winners","type":"address[]","indexed":false}],"anonymous":false,"type":"event"},{"name":"PendingManagement","inputs":[{"name":"management","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetManagement","inputs":[{"name":"management","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_token","type":"address"},{"name":"_staking","type":"address"},{"name":"_treasury","type":"address"},{"name":"_pol","type":"address"}],"outputs":[]},{"stateMutability":"payable","type":"function","name":"apply","inputs":[{"name":"_protocol","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"incentivize","inputs":[{"name":"_protocol","type":"address"},{"name":"_incentive","type":"address"},{"name":"_amount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deposit","inputs":[{"name":"_accounts","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim","inputs":[{"name":"_amount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim","inputs":[{"name":"_amount","type":"uint256"},{"name":"_receiver","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"votes_available","inputs":[{"name":"_account","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"vote","inputs":[{"name":"_protocols","type":"address[]"},{"name":"_votes","type":"uint256[]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"undo_vote","inputs":[{"name":"_protocol","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"undo_vote","inputs":[{"name":"_protocol","type":"address"},{"name":"_account","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"repay","inputs":[{"name":"_amount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"split","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"claimable_incentive","inputs":[{"name":"_protocol","type":"address"},{"name":"_incentive","type":"address"},{"name":"_claimer","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim_incentive","inputs":[{"name":"_protocol","type":"address"},{"name":"_incentive","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim_incentive","inputs":[{"name":"_protocol","type":"address"},{"name":"_incentive","type":"address"},{"name":"_claimer","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"refund_incentive","inputs":[{"name":"_protocol","type":"address"},{"name":"_incentive","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"refund_incentive","inputs":[{"name":"_protocol","type":"address"},{"name":"_incentive","type":"address"},{"name":"_depositor","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"has_applied","inputs":[{"name":"_protocol","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"is_whitelisted","inputs":[{"name":"_protocol","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"num_winners","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"set_whitelist_period","inputs":[{"name":"_begin","type":"uint256"},{"name":"_end","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_incentive_period","inputs":[{"name":"_begin","type":"uint256"},{"name":"_end","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_deposit_period","inputs":[{"name":"_begin","type":"uint256"},{"name":"_end","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_vote_period","inputs":[{"name":"_begin","type":"uint256"},{"name":"_end","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_lock_end","inputs":[{"name":"_end","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"whitelist","inputs":[{"name":"_protocol","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"undo_whitelist","inputs":[{"name":"_protocol","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"declare_winners","inputs":[{"name":"_winners","type":"address[]"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"allow_repay","inputs":[{"name":"_account","type":"address"},{"name":"_allow","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_depositor","inputs":[{"name":"_depositor","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_management","inputs":[{"name":"_management","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_management","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"staking","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"treasury","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pol","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"management","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pending_management","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"depositor","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"repay_allowed","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"debt","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"deposited","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"deposits","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"incentives","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"incentive_depositors","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"},{"name":"arg2","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"voted","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"votes_used","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"votes_used_protocol","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"votes","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"winners_list","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"winners","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"incentive_claimed","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"},{"name":"arg2","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"whitelist_begin","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"whitelist_end","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"incentive_begin","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"incentive_end","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"deposit_begin","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"deposit_end","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"vote_begin","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"vote_end","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"lock_end","inputs":[],"outputs":[{"name":"","type":"uint256"}]}]

6020611d5e6000396000518060a01c611d59576040526020611d7e6000396000518060a01c611d59576060526020611d9e6000396000518060a01c611d59576080526020611dbe6000396000518060a01c611d595760a05234611d5957604051611c3952606051611c5952608051611c795260a051611c99523360005533600255611c395163095ea7b360c05260605160e0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61010052602060c0604460dc6000855af16100d3573d600060003e3d6000fd5b3d6100ea57803b15611d5957600161012052610102565b60203d10611d595760c0518060011c611d5957610120525b61012090505115611d5957611c3961011f61000039611cb9610000f36003361161000c57611c21565b60003560e01c63c6b32f3481186100b15760243610611c27576004358060a01c611c2757604052670de0b6b3a76400003418611c2757601654421015610053576000610059565b60175442105b15611c27576004604051602052600052604060002054611c2757600160046040516020526000526040600020556040517f4df8adbd211698d1efc9a43d86d55cfd9ba7a2d6fd9e267a651707cc742602ab60006060a2005b34611c2757634069531e81186102425760643610611c27576004358060a01c611c27576040526024358060a01c611c275760605260443515611c27576018544210156100fe576000610104565b60195442105b15611c27576002600460405160205260005260406000205418611c27576008604051602052600052604060002080606051602052600052604060002090508054604435808201828110611c2757905090508155506009604051602052600052604060002080606051602052600052604060002090508033602052600052604060002090508054604435808201828110611c2757905090508155506060516323b872dd6080523360a0523060c05260443560e052602060806064609c6000855af16101d3573d600060003e3d6000fd5b3d6101ea57803b15611c2757600161010052610202565b60203d10611c27576080518060011c611c2757610100525b61010090505115611c2757336060516040517fdeea2603793c4aa3731636e2d2d95fae54fe1eef2ef010d8dae544e1e1f127b760443560805260206080a4005b63efc908a181186104805760843610611c2757600435600401610100813511611c27578035806040526000816101008111611c275780156102a457905b8060051b6020850101358060a01c611c27578160051b6060015260010181811861027f575b50505050602435600401610100813511611c275780358061206052602082018160051b808261208037505050506002543318611c27576120605160405118611c27576000614080526000610100905b806140a0526040516140a05118610309576103be565b6140a051604051811015611c275760051b606001516140c0526140a05161206051811015611c275760051b61208001516140e052614080516140e051808201828110611c2757905090506140805260076140c051602052600052604060002080546140e051808201828110611c2757905090508155506140c051337f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f626140e051614100526020614100a36001018181186102f3575b505060055461408051808201828110611c27579050905060055560065461408051808201828110611c2757905090506006556020611c396000396000516340c10f196140a052306140c052614080516140e052803b15611c275760006140a060446140bc6000855af1610436573d600060003e3d6000fd5b506020611c5960003960005163b6b55f256140a052614080516140c05260206140a060246140bc6000855af1610471573d600060003e3d6000fd5b60203d10611c27576140a05050005b63379607f5811861049c5760243610611c2757336040526104be565b63ddd5e1b281186105ae5760443610611c27576024358060a01c611c27576040525b60043515611c2757601e544210611c2757600654600435808203828111611c27579050905060065560073360205260005260406000208054600435808203828111611c2757905090508155506020611c5960003960005163a9059cbb60605260405160805260043560a052602060606044607c6000855af1610545573d600060003e3d6000fd5b3d61055b57803b15611c2757600160c052610572565b60203d10611c27576060518060011c611c275760c0525b60c090505115611c2757604051337f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd98706860043560605260206060a3005b63fab5a02c81186106335760243610611c27576004358060a01c611c2757604052601c5442106105e357601d544210156105e6565b60015b156105f957600060605260206060610631565b6007604051602052600052604060002054600b604051602052600052604060002054808203828111611c275790509050606052602060605bf35b636f816a20811861087a5760843610611c27576004356004016020813511611c275780358060405260008160208111611c2757801561069357905b8060051b6020850101358060a01c611c27578160051b6060015260010181811861066e575b505050506024356004016020813511611c275780358061046052602082018160051b808261048037505050506104605160405118611c2757601c544210156106dc5760006106e2565b601d5442105b15611c275760006108805260006020905b806108a0526040516108a051186107095761080e565b6108a051604051811015611c275760051b606001516108c0526108a05161046051811015611c275760051b61048001516108e052600260046108c05160205260005260406000205418611c2757610880516108e051808201828110611c27579050905061088052600d6108c051602052600052604060002080546108e051808201828110611c275790509050815550600c336020526000526040600020806108c0516020526000526040600020905080546108e051808201828110611c2757905090508155506108c051337f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc6108e051610900526020610900a36001018181186106f3575b5050600a5461088051808201828110611c275790509050600a5561088051600b33602052600052604060002054808201828110611c275790509050610880526007336020526000526040600020546108805111611c275761088051600b33602052600052604060002055005b63d372d04c81186108965760243610611c2757336060526108b8565b63e6ee832281186109d05760443610611c27576024358060a01c611c27576060525b6004358060a01c611c2757604052601c544210156108d75760006108dd565b601d5442105b15611c27576002600460405160205260005260406000205414611c2757336060511861090a576001610911565b6000543318155b15611c2757600c606051602052600052604060002080604051602052600052604060002090505460805260805115611c2757600a54608051808203828111611c275790509050600a55600d60405160205260005260406000208054608051808203828111611c275790509050815550600b60605160205260005260406000208054608051808203828111611c2757905090508155506000600c606051602052600052604060002080604051602052600052604060002090505560206080f35b63371fd8e68118610af25760243610611c275760033360205260005260406000205415611c2757600554600435808203828111611c2757905090506005556020611c396000396000516323b872dd604052336060523060805260043560a052602060406064605c6000855af1610a4b573d600060003e3d6000fd5b3d610a6157803b15611c2757600160c052610a78565b60203d10611c27576040518060011c611c275760c0525b60c090505115611c27576020611c39600039600051639dc29fac60405230606052600435608052803b15611c2757600060406044605c6000855af1610ac2573d600060003e3d6000fd5b50337f5c16de4f8b59bd9caf0f49a545f25819a895ed223294290b408242e72a59423160043560405260206040a2005b63f76541768118610be65760043610611c27576000543318610b15576001610b24565b6020611c796000396000513318155b15611c27574760405260405115611c27577f734b7c838092bed0c73268b7a2cb67b07305321ec5c5610480c2c4c5d43d698e60405160605260206060a16000606052606050600060006060516080604051600a810490506020611c996000396000515af1610b97573d600060003e3d6000fd5b604051604051600a81049050808203828111611c27579050905060405260006060526060506000600060605160806040516020611c796000396000515af1610be4573d600060003e3d6000fd5b005b63afa3bdbe8118610ce75760643610611c27576004358060a01c611c27576040526024358060a01c611c27576060526044358060a01c611c27576080526014604051602052600052604060002054610c3f576001610c73565b6015604051602052600052604060002080606051602052600052604060002090508060805160205260005260406000209050545b15610c8657600060a052602060a0610ce5565b60086040516020526000526040600020806060516020526000526040600020905054600b608051602052600052604060002054808202811583838304141715611c275790509050600a548015611c27578082049050905060a052602060a05bf35b63eb89cf548118610d035760443610611c275733608052610d25565b63d8a6b2308118610ece5760643610611c27576044358060a01c611c27576080525b6004358060a01c611c27576040526024358060a01c611c2757606052601460405160205260005260406000205415611c2757601560405160205260005260406000208060605160205260005260406000209050806080516020526000526040600020905054611c275760086040516020526000526040600020806060516020526000526040600020905054600b608051602052600052604060002054808202811583838304141715611c275790509050600a548015611c27578082049050905060a05260a05115611c2757600160156040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505560605163a9059cbb60c05260805160e05260a05161010052602060c0604460dc6000855af1610e59573d600060003e3d6000fd5b3d610e7057803b15611c2757600161012052610e88565b60203d10611c275760c0518060011c611c2757610120525b61012090505115611c27576080516060516040517fe6057108b7b8df1f4882cef77de8e7f837bec1003142c97738922e17db63949260a05160c052602060c0a4602060a0f35b638a48d1f58118610eea5760443610611c275733608052610f0c565b63d2c343c881186110615760643610611c27576044358060a01c611c27576080525b6004358060a01c611c27576040526024358060a01c611c2757606052600e5415611c27576014604051602052600052604060002054611c275760096040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505460a05260a05115611c2757600060096040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505560605163a9059cbb60c05260805160e05260a05161010052602060c0604460dc6000855af1610fec573d600060003e3d6000fd5b3d61100357803b15611c275760016101205261101b565b60203d10611c275760c0518060011c611c2757610120525b61012090505115611c27576080516060516040517f74b6ba953ef3640dd7e74ce2bd0009413fa4482bdfb45b319aef5b50f7e6124c60a05160c052602060c0a4602060a0f35b630b6871f6811861109e5760243610611c27576004358060a01c611c27576040526004604051602052600052604060002054151560605260206060f35b63779ee62881186110dc5760243610611c27576004358060a01c611c2757604052600260046040516020526000526040600020541460605260206060f35b636a37198281186110fb5760043610611c2757600e5460405260206040f35b63adbb121581186111605760443610611c27576000543318611c27576004356024351115611c275760043560165560243560175560007fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b637e91bff081186111d05760443610611c27576000543318611c275760165460043510611c27576004356024351115611c275760043560185560243560195560017fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b63b969d6a081186112405760443610611c27576000543318611c275760165460043510611c27576004356024351115611c2757600435601a55602435601b5560027fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b63502fe07981186112bb5760443610611c27576000543318611c2757601a5460043510611c27576004356024351115611c2757601e5460243511611c2757600435601c55602435601d5560037fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b63d4998701811861131d5760243610611c27576000543318611c2757601d5460043510611c2757600435601e5560047fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c9600060405260043560605260406040a2005b639b19251a811861139d5760243610611c27576004358060a01c611c27576040526000543318611c27576001600460405160205260005260406000205418611c2757600260046040516020526000526040600020556040517feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e60006060a2005b63c160273581186113f45760243610611c27576004358060a01c611c27576040526000543318611c27576002600460405160205260005260406000205418611c275760016004604051602052600052604060002055005b630c4e112f811861158f5760443610611c27576004356004016005813511611c275780358060405260008160058111611c2757801561145457905b8060051b6020850101358060a01c611c27578160051b6060015260010181811861142f575b505050506000543318611c27576019544210611c2757601b544210611c2757601d544210611c2757600e54611c2757600060405160058111611c2757801561150e57905b8060051b6060015161010052600260046101005160205260005260406000205418611c2757601461010051602052600052604060002054611c2757600e5460048111611c275760018101600e556101005181600f0155506001601461010051602052600052604060002055600101818118611498575b50507f269ee29ef3602a66e11783821e5f60cb92750b4c4c9294864c8c450b3bf6a43660208061010052806101000160006040518083528060051b60008260058111611c2757801561157957905b8060051b606001518160051b60208801015260010181811861155c575b50508201602001915050905081019050610100a1005b63c1c9141f81186115dd5760443610611c27576004358060a01c611c27576040526024358060011c611c27576060526000543318611c27576060516003604051602052600052604060002055005b63562915a0811861160f5760243610611c27576004358060a01c611c27576040526002543318611c2757604051600255005b63fd066ecc811861166a5760243610611c27576004358060a01c611c27576040526000543318611c27576040516001556040517fe7b5cc087e6e47e33e86bdfe4720b7e849891938b18ff6e0c3f92299de79e60c60006060a2005b63759be10c81186116b85760043610611c27576001543318611c2757600060015533600055337fafe23f9e1f603b288748a507d5a993957e9f14313a5889d5a070851299939d5960006040a2005b63fc0c546a81186116df5760043610611c27576020611c3960003960005160405260206040f35b634cf088d981186117065760043610611c27576020611c5960003960005160405260206040f35b6361d027b3811861172d5760043610611c27576020611c7960003960005160405260206040f35b63e46761c481186117545760043610611c27576020611c9960003960005160405260206040f35b6388a8d60281186117735760043610611c275760005460405260206040f35b63770817ec81186117925760043610611c275760015460405260206040f35b63c7c4ff4681186117b15760043610611c275760025460405260206040f35b6351a2cb7081186117ec5760243610611c27576004358060a01c611c2757604052600360405160205260005260406000205460605260206060f35b630dca59c1811861180b5760043610611c275760055460405260206040f35b63eef49ee3811861182a5760043610611c275760065460405260206040f35b63fc7e286d81186118655760243610611c27576004358060a01c611c2757604052600760405160205260005260406000205460605260206060f35b6351e0203881186118bf5760443610611c27576004358060a01c611c27576040526024358060a01c611c27576060526008604051602052600052604060002080606051602052600052604060002090505460805260206080f35b63cc1006bd81186119385760643610611c27576004358060a01c611c27576040526024358060a01c611c27576060526044358060a01c611c275760805260096040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505460a052602060a0f35b633500f91e81186119575760043610611c2757600a5460405260206040f35b6345d4eb9e81186119925760243610611c27576004358060a01c611c2757604052600b60405160205260005260406000205460605260206060f35b63a07433e781186119ec5760443610611c27576004358060a01c611c27576040526024358060a01c611c2757606052600c604051602052600052604060002080606051602052600052604060002090505460805260206080f35b63d8bff5a58118611a275760243610611c27576004358060a01c611c2757604052600d60405160205260005260406000205460605260206060f35b633f915cd88118611a545760243610611c2757600435600e54811015611c2757600f015460405260206040f35b636bd5450a8118611a8f5760243610611c27576004358060a01c611c2757604052601460405160205260005260406000205460605260206060f35b6315c959138118611b085760643610611c27576004358060a01c611c27576040526024358060a01c611c27576060526044358060a01c611c275760805260156040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505460a052602060a0f35b63c3cf27cd8118611b275760043610611c275760165460405260206040f35b6351aacac58118611b465760043610611c275760175460405260206040f35b6314367a688118611b655760043610611c275760185460405260206040f35b63b12631d98118611b845760043610611c275760195460405260206040f35b639f67526f8118611ba35760043610611c2757601a5460405260206040f35b636519bbe98118611bc25760043610611c2757601b5460405260206040f35b632be436f88118611be15760043610611c2757601c5460405260206040f35b635e8a29328118611c005760043610611c2757601d5460405260206040f35b633e14090b8118611c1f5760043610611c2757601e5460405260206040f35b505b60006000fd5b600080fda165767970657283000307000b005b600080fd0000000000000000000000001bed97cbc3c24a4fb5c069c6e311a967386131f7000000000000000000000000583019ff0f430721ada9cfb4fac8f06ca104d0b4000000000000000000000000feb4acf3df3cdea7399794d0869ef76a6efaff52000000000000000000000000929401e30aab6bd648def2d30ff44952bab04478

Deployed Bytecode

0x6003361161000c57611c21565b60003560e01c63c6b32f3481186100b15760243610611c27576004358060a01c611c2757604052670de0b6b3a76400003418611c2757601654421015610053576000610059565b60175442105b15611c27576004604051602052600052604060002054611c2757600160046040516020526000526040600020556040517f4df8adbd211698d1efc9a43d86d55cfd9ba7a2d6fd9e267a651707cc742602ab60006060a2005b34611c2757634069531e81186102425760643610611c27576004358060a01c611c27576040526024358060a01c611c275760605260443515611c27576018544210156100fe576000610104565b60195442105b15611c27576002600460405160205260005260406000205418611c27576008604051602052600052604060002080606051602052600052604060002090508054604435808201828110611c2757905090508155506009604051602052600052604060002080606051602052600052604060002090508033602052600052604060002090508054604435808201828110611c2757905090508155506060516323b872dd6080523360a0523060c05260443560e052602060806064609c6000855af16101d3573d600060003e3d6000fd5b3d6101ea57803b15611c2757600161010052610202565b60203d10611c27576080518060011c611c2757610100525b61010090505115611c2757336060516040517fdeea2603793c4aa3731636e2d2d95fae54fe1eef2ef010d8dae544e1e1f127b760443560805260206080a4005b63efc908a181186104805760843610611c2757600435600401610100813511611c27578035806040526000816101008111611c275780156102a457905b8060051b6020850101358060a01c611c27578160051b6060015260010181811861027f575b50505050602435600401610100813511611c275780358061206052602082018160051b808261208037505050506002543318611c27576120605160405118611c27576000614080526000610100905b806140a0526040516140a05118610309576103be565b6140a051604051811015611c275760051b606001516140c0526140a05161206051811015611c275760051b61208001516140e052614080516140e051808201828110611c2757905090506140805260076140c051602052600052604060002080546140e051808201828110611c2757905090508155506140c051337f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f626140e051614100526020614100a36001018181186102f3575b505060055461408051808201828110611c27579050905060055560065461408051808201828110611c2757905090506006556020611c396000396000516340c10f196140a052306140c052614080516140e052803b15611c275760006140a060446140bc6000855af1610436573d600060003e3d6000fd5b506020611c5960003960005163b6b55f256140a052614080516140c05260206140a060246140bc6000855af1610471573d600060003e3d6000fd5b60203d10611c27576140a05050005b63379607f5811861049c5760243610611c2757336040526104be565b63ddd5e1b281186105ae5760443610611c27576024358060a01c611c27576040525b60043515611c2757601e544210611c2757600654600435808203828111611c27579050905060065560073360205260005260406000208054600435808203828111611c2757905090508155506020611c5960003960005163a9059cbb60605260405160805260043560a052602060606044607c6000855af1610545573d600060003e3d6000fd5b3d61055b57803b15611c2757600160c052610572565b60203d10611c27576060518060011c611c275760c0525b60c090505115611c2757604051337f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd98706860043560605260206060a3005b63fab5a02c81186106335760243610611c27576004358060a01c611c2757604052601c5442106105e357601d544210156105e6565b60015b156105f957600060605260206060610631565b6007604051602052600052604060002054600b604051602052600052604060002054808203828111611c275790509050606052602060605bf35b636f816a20811861087a5760843610611c27576004356004016020813511611c275780358060405260008160208111611c2757801561069357905b8060051b6020850101358060a01c611c27578160051b6060015260010181811861066e575b505050506024356004016020813511611c275780358061046052602082018160051b808261048037505050506104605160405118611c2757601c544210156106dc5760006106e2565b601d5442105b15611c275760006108805260006020905b806108a0526040516108a051186107095761080e565b6108a051604051811015611c275760051b606001516108c0526108a05161046051811015611c275760051b61048001516108e052600260046108c05160205260005260406000205418611c2757610880516108e051808201828110611c27579050905061088052600d6108c051602052600052604060002080546108e051808201828110611c275790509050815550600c336020526000526040600020806108c0516020526000526040600020905080546108e051808201828110611c2757905090508155506108c051337f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc6108e051610900526020610900a36001018181186106f3575b5050600a5461088051808201828110611c275790509050600a5561088051600b33602052600052604060002054808201828110611c275790509050610880526007336020526000526040600020546108805111611c275761088051600b33602052600052604060002055005b63d372d04c81186108965760243610611c2757336060526108b8565b63e6ee832281186109d05760443610611c27576024358060a01c611c27576060525b6004358060a01c611c2757604052601c544210156108d75760006108dd565b601d5442105b15611c27576002600460405160205260005260406000205414611c2757336060511861090a576001610911565b6000543318155b15611c2757600c606051602052600052604060002080604051602052600052604060002090505460805260805115611c2757600a54608051808203828111611c275790509050600a55600d60405160205260005260406000208054608051808203828111611c275790509050815550600b60605160205260005260406000208054608051808203828111611c2757905090508155506000600c606051602052600052604060002080604051602052600052604060002090505560206080f35b63371fd8e68118610af25760243610611c275760033360205260005260406000205415611c2757600554600435808203828111611c2757905090506005556020611c396000396000516323b872dd604052336060523060805260043560a052602060406064605c6000855af1610a4b573d600060003e3d6000fd5b3d610a6157803b15611c2757600160c052610a78565b60203d10611c27576040518060011c611c275760c0525b60c090505115611c27576020611c39600039600051639dc29fac60405230606052600435608052803b15611c2757600060406044605c6000855af1610ac2573d600060003e3d6000fd5b50337f5c16de4f8b59bd9caf0f49a545f25819a895ed223294290b408242e72a59423160043560405260206040a2005b63f76541768118610be65760043610611c27576000543318610b15576001610b24565b6020611c796000396000513318155b15611c27574760405260405115611c27577f734b7c838092bed0c73268b7a2cb67b07305321ec5c5610480c2c4c5d43d698e60405160605260206060a16000606052606050600060006060516080604051600a810490506020611c996000396000515af1610b97573d600060003e3d6000fd5b604051604051600a81049050808203828111611c27579050905060405260006060526060506000600060605160806040516020611c796000396000515af1610be4573d600060003e3d6000fd5b005b63afa3bdbe8118610ce75760643610611c27576004358060a01c611c27576040526024358060a01c611c27576060526044358060a01c611c27576080526014604051602052600052604060002054610c3f576001610c73565b6015604051602052600052604060002080606051602052600052604060002090508060805160205260005260406000209050545b15610c8657600060a052602060a0610ce5565b60086040516020526000526040600020806060516020526000526040600020905054600b608051602052600052604060002054808202811583838304141715611c275790509050600a548015611c27578082049050905060a052602060a05bf35b63eb89cf548118610d035760443610611c275733608052610d25565b63d8a6b2308118610ece5760643610611c27576044358060a01c611c27576080525b6004358060a01c611c27576040526024358060a01c611c2757606052601460405160205260005260406000205415611c2757601560405160205260005260406000208060605160205260005260406000209050806080516020526000526040600020905054611c275760086040516020526000526040600020806060516020526000526040600020905054600b608051602052600052604060002054808202811583838304141715611c275790509050600a548015611c27578082049050905060a05260a05115611c2757600160156040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505560605163a9059cbb60c05260805160e05260a05161010052602060c0604460dc6000855af1610e59573d600060003e3d6000fd5b3d610e7057803b15611c2757600161012052610e88565b60203d10611c275760c0518060011c611c2757610120525b61012090505115611c27576080516060516040517fe6057108b7b8df1f4882cef77de8e7f837bec1003142c97738922e17db63949260a05160c052602060c0a4602060a0f35b638a48d1f58118610eea5760443610611c275733608052610f0c565b63d2c343c881186110615760643610611c27576044358060a01c611c27576080525b6004358060a01c611c27576040526024358060a01c611c2757606052600e5415611c27576014604051602052600052604060002054611c275760096040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505460a05260a05115611c2757600060096040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505560605163a9059cbb60c05260805160e05260a05161010052602060c0604460dc6000855af1610fec573d600060003e3d6000fd5b3d61100357803b15611c275760016101205261101b565b60203d10611c275760c0518060011c611c2757610120525b61012090505115611c27576080516060516040517f74b6ba953ef3640dd7e74ce2bd0009413fa4482bdfb45b319aef5b50f7e6124c60a05160c052602060c0a4602060a0f35b630b6871f6811861109e5760243610611c27576004358060a01c611c27576040526004604051602052600052604060002054151560605260206060f35b63779ee62881186110dc5760243610611c27576004358060a01c611c2757604052600260046040516020526000526040600020541460605260206060f35b636a37198281186110fb5760043610611c2757600e5460405260206040f35b63adbb121581186111605760443610611c27576000543318611c27576004356024351115611c275760043560165560243560175560007fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b637e91bff081186111d05760443610611c27576000543318611c275760165460043510611c27576004356024351115611c275760043560185560243560195560017fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b63b969d6a081186112405760443610611c27576000543318611c275760165460043510611c27576004356024351115611c2757600435601a55602435601b5560027fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b63502fe07981186112bb5760443610611c27576000543318611c2757601a5460043510611c27576004356024351115611c2757601e5460243511611c2757600435601c55602435601d5560037fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c96040600460403760406040a2005b63d4998701811861131d5760243610611c27576000543318611c2757601d5460043510611c2757600435601e5560047fea9d2776e1379a049c99ffdef1512aeed8dd3416e12980c3731198cb418ac3c9600060405260043560605260406040a2005b639b19251a811861139d5760243610611c27576004358060a01c611c27576040526000543318611c27576001600460405160205260005260406000205418611c2757600260046040516020526000526040600020556040517feb73900b98b6a3e2b8b01708fe544760cf570d21e7fbe5225f24e48b5b2b432e60006060a2005b63c160273581186113f45760243610611c27576004358060a01c611c27576040526000543318611c27576002600460405160205260005260406000205418611c275760016004604051602052600052604060002055005b630c4e112f811861158f5760443610611c27576004356004016005813511611c275780358060405260008160058111611c2757801561145457905b8060051b6020850101358060a01c611c27578160051b6060015260010181811861142f575b505050506000543318611c27576019544210611c2757601b544210611c2757601d544210611c2757600e54611c2757600060405160058111611c2757801561150e57905b8060051b6060015161010052600260046101005160205260005260406000205418611c2757601461010051602052600052604060002054611c2757600e5460048111611c275760018101600e556101005181600f0155506001601461010051602052600052604060002055600101818118611498575b50507f269ee29ef3602a66e11783821e5f60cb92750b4c4c9294864c8c450b3bf6a43660208061010052806101000160006040518083528060051b60008260058111611c2757801561157957905b8060051b606001518160051b60208801015260010181811861155c575b50508201602001915050905081019050610100a1005b63c1c9141f81186115dd5760443610611c27576004358060a01c611c27576040526024358060011c611c27576060526000543318611c27576060516003604051602052600052604060002055005b63562915a0811861160f5760243610611c27576004358060a01c611c27576040526002543318611c2757604051600255005b63fd066ecc811861166a5760243610611c27576004358060a01c611c27576040526000543318611c27576040516001556040517fe7b5cc087e6e47e33e86bdfe4720b7e849891938b18ff6e0c3f92299de79e60c60006060a2005b63759be10c81186116b85760043610611c27576001543318611c2757600060015533600055337fafe23f9e1f603b288748a507d5a993957e9f14313a5889d5a070851299939d5960006040a2005b63fc0c546a81186116df5760043610611c27576020611c3960003960005160405260206040f35b634cf088d981186117065760043610611c27576020611c5960003960005160405260206040f35b6361d027b3811861172d5760043610611c27576020611c7960003960005160405260206040f35b63e46761c481186117545760043610611c27576020611c9960003960005160405260206040f35b6388a8d60281186117735760043610611c275760005460405260206040f35b63770817ec81186117925760043610611c275760015460405260206040f35b63c7c4ff4681186117b15760043610611c275760025460405260206040f35b6351a2cb7081186117ec5760243610611c27576004358060a01c611c2757604052600360405160205260005260406000205460605260206060f35b630dca59c1811861180b5760043610611c275760055460405260206040f35b63eef49ee3811861182a5760043610611c275760065460405260206040f35b63fc7e286d81186118655760243610611c27576004358060a01c611c2757604052600760405160205260005260406000205460605260206060f35b6351e0203881186118bf5760443610611c27576004358060a01c611c27576040526024358060a01c611c27576060526008604051602052600052604060002080606051602052600052604060002090505460805260206080f35b63cc1006bd81186119385760643610611c27576004358060a01c611c27576040526024358060a01c611c27576060526044358060a01c611c275760805260096040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505460a052602060a0f35b633500f91e81186119575760043610611c2757600a5460405260206040f35b6345d4eb9e81186119925760243610611c27576004358060a01c611c2757604052600b60405160205260005260406000205460605260206060f35b63a07433e781186119ec5760443610611c27576004358060a01c611c27576040526024358060a01c611c2757606052600c604051602052600052604060002080606051602052600052604060002090505460805260206080f35b63d8bff5a58118611a275760243610611c27576004358060a01c611c2757604052600d60405160205260005260406000205460605260206060f35b633f915cd88118611a545760243610611c2757600435600e54811015611c2757600f015460405260206040f35b636bd5450a8118611a8f5760243610611c27576004358060a01c611c2757604052601460405160205260005260406000205460605260206060f35b6315c959138118611b085760643610611c27576004358060a01c611c27576040526024358060a01c611c27576060526044358060a01c611c275760805260156040516020526000526040600020806060516020526000526040600020905080608051602052600052604060002090505460a052602060a0f35b63c3cf27cd8118611b275760043610611c275760165460405260206040f35b6351aacac58118611b465760043610611c275760175460405260206040f35b6314367a688118611b655760043610611c275760185460405260206040f35b63b12631d98118611b845760043610611c275760195460405260206040f35b639f67526f8118611ba35760043610611c2757601a5460405260206040f35b636519bbe98118611bc25760043610611c2757601b5460405260206040f35b632be436f88118611be15760043610611c2757601c5460405260206040f35b635e8a29328118611c005760043610611c2757601d5460405260206040f35b633e14090b8118611c1f5760043610611c2757601e5460405260206040f35b505b60006000fd5b600080fda165767970657283000307000b0000000000000000000000001bed97cbc3c24a4fb5c069c6e311a967386131f7000000000000000000000000583019ff0f430721ada9cfb4fac8f06ca104d0b4000000000000000000000000feb4acf3df3cdea7399794d0869ef76a6efaff52000000000000000000000000929401e30aab6bd648def2d30ff44952bab04478

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

0000000000000000000000001bed97cbc3c24a4fb5c069c6e311a967386131f7000000000000000000000000583019ff0f430721ada9cfb4fac8f06ca104d0b4000000000000000000000000feb4acf3df3cdea7399794d0869ef76a6efaff52000000000000000000000000929401e30aab6bd648def2d30ff44952bab04478

-----Decoded View---------------
Arg [0] : _token (address): 0x1BED97CBC3c24A4fb5C069C6E311a967386131f7
Arg [1] : _staking (address): 0x583019fF0f430721aDa9cfb4fac8F06cA104d0B4
Arg [2] : _treasury (address): 0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52
Arg [3] : _pol (address): 0x929401e30Aab6bd648dEf2d30FF44952BaB04478

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001bed97cbc3c24a4fb5c069c6e311a967386131f7
Arg [1] : 000000000000000000000000583019ff0f430721ada9cfb4fac8f06ca104d0b4
Arg [2] : 000000000000000000000000feb4acf3df3cdea7399794d0869ef76a6efaff52
Arg [3] : 000000000000000000000000929401e30aab6bd648def2d30ff44952bab04478


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.