ETH Price: $3,205.41 (-3.79%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim216136062025-01-13 5:53:359 days ago1736747615IN
Yearn: YFI Reward Pool
0 ETH0.003495332.10624906
Claim214968692024-12-27 22:45:4726 days ago1735339547IN
Yearn: YFI Reward Pool
0 ETH0.003528664.07393292
Claim214795272024-12-25 12:35:5928 days ago1735130159IN
Yearn: YFI Reward Pool
0 ETH0.003806993.66522729
Claim214790482024-12-25 10:59:4728 days ago1735124387IN
Yearn: YFI Reward Pool
0 ETH0.001458365.05506467
Claim214697022024-12-24 3:38:4730 days ago1735011527IN
Yearn: YFI Reward Pool
0 ETH0.000865525.82235038
Claim214283712024-12-18 8:57:4735 days ago1734512267IN
Yearn: YFI Reward Pool
0 ETH0.001173028.46521369
Claim214233882024-12-17 16:15:3536 days ago1734452135IN
Yearn: YFI Reward Pool
0 ETH0.0506543935.5811036
Claim214222662024-12-17 12:30:1136 days ago1734438611IN
Yearn: YFI Reward Pool
0 ETH0.009325039.9568762
Claim214192252024-12-17 2:19:5937 days ago1734401999IN
Yearn: YFI Reward Pool
0 ETH0.001425589.13919532
Claim214123542024-12-16 3:20:3538 days ago1734319235IN
Yearn: YFI Reward Pool
0 ETH0.0105403711.05974451
Claim214058912024-12-15 5:40:2338 days ago1734241223IN
Yearn: YFI Reward Pool
0 ETH0.002339317.36507629
Claim214054632024-12-15 4:14:1139 days ago1734236051IN
Yearn: YFI Reward Pool
0 ETH0.002598857.4
Claim214007962024-12-14 12:36:3539 days ago1734179795IN
Yearn: YFI Reward Pool
0 ETH0.006523389.34437181
Claim213990632024-12-14 6:48:2339 days ago1734158903IN
Yearn: YFI Reward Pool
0 ETH0.001157867.82
Claim213990532024-12-14 6:46:2339 days ago1734158783IN
Yearn: YFI Reward Pool
0 ETH0.001196257.82
Claim213990332024-12-14 6:42:2339 days ago1734158543IN
Yearn: YFI Reward Pool
0 ETH0.001315618.12
Claim213548142024-12-08 2:33:5946 days ago1733625239IN
Yearn: YFI Reward Pool
0 ETH0.017517548.87169622
Claim213008232024-11-30 13:34:4753 days ago1732973687IN
Yearn: YFI Reward Pool
0 ETH0.012246418.43681823
Claim212991782024-11-30 8:03:2353 days ago1732953803IN
Yearn: YFI Reward Pool
0 ETH0.005795469.43028394
Claim212961732024-11-29 21:57:4754 days ago1732917467IN
Yearn: YFI Reward Pool
0 ETH0.0028101110.4130636
Claim212901202024-11-29 1:37:3555 days ago1732844255IN
Yearn: YFI Reward Pool
0 ETH0.001808865.55319308
Claim212839152024-11-28 4:39:5955 days ago1732768799IN
Yearn: YFI Reward Pool
0 ETH0.014300458.53186714
Claim212579932024-11-24 13:46:4759 days ago1732456007IN
Yearn: YFI Reward Pool
0 ETH0.003151559.13697426
Claim212136732024-11-18 9:21:4765 days ago1731921707IN
Yearn: YFI Reward Pool
0 ETH0.002236579.2
Claim212135432024-11-18 8:55:3565 days ago1731920135IN
Yearn: YFI Reward Pool
0 ETH0.002488839.2
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:
Vyper_contract

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
default evmVersion, MIT license

Contract Source Code (Vyper language format)

# @version 0.3.7
"""
@title YFI Reward Pool
@author Curve Finance, Yearn Finance
@license MIT
"""
from vyper.interfaces import ERC20

interface VotingYFI:
    def epoch(add: address) -> uint256: view
    def point_history(addr: address, loc: uint256) -> Point: view
    def checkpoint(): nonpayable
    def token() -> ERC20: view
    def modify_lock(amount: uint256, unlock_time: uint256, user: address) -> LockedBalance: nonpayable
    def balanceOf(addr: address, epoch: uint256) -> uint256: view
    def find_epoch_by_timestamp(user: address, ts: uint256) -> uint256: view 

event Initialized:
    veyfi: VotingYFI
    start_time: uint256

event CheckpointToken:
    time: uint256
    tokens: uint256

event Claimed:
    recipient: indexed(address)
    amount: uint256
    week_cursor: uint256
    max_epoch: uint256

event AllowedToRelock:
    user: indexed(address)
    relocker: indexed(address)
    allowed: bool

event RewardReceived:
    sender: indexed(address)
    amount: uint256

struct Point:
    bias: int128
    slope: int128  # - dweight / dt
    ts: uint256
    blk: uint256  # block

struct LockedBalance:
    amount: uint256
    end: uint256


WEEK: constant(uint256) = 7 * 86400
TOKEN_CHECKPOINT_DEADLINE: constant(uint256) = 86400

YFI: immutable(ERC20)
VEYFI: immutable(VotingYFI)

start_time: public(uint256)
time_cursor: public(uint256)
time_cursor_of: public(HashMap[address, uint256])
allowed_to_relock: public(HashMap[address, HashMap[address, bool]])  # user -> relocker -> allowed

last_token_time: public(uint256)
tokens_per_week: public(HashMap[uint256, uint256])

token_last_balance: public(uint256)
ve_supply: public(HashMap[uint256, uint256])


@external
def __init__(veyfi: VotingYFI, start_time: uint256):
    """
    @notice Contract constructor
    @param veyfi VotingYFI contract address
    @param start_time Epoch time for fee distribution to start
    """
    t: uint256 = start_time / WEEK * WEEK
    self.start_time = t
    self.last_token_time = t
    self.time_cursor = t
    VEYFI = veyfi
    YFI = VEYFI.token()

    log Initialized(veyfi, start_time)


@internal
def _checkpoint_token():
    token_balance: uint256 = YFI.balanceOf(self)
    to_distribute: uint256 = token_balance - self.token_last_balance
    # @dev gas optimization
    if to_distribute == 0:
        self.last_token_time = block.timestamp
        log CheckpointToken(block.timestamp, 0)
        return
    
    self.token_last_balance = token_balance
    t: uint256 = self.last_token_time
    since_last: uint256 = block.timestamp - t
    self.last_token_time = block.timestamp
    this_week: uint256 = t / WEEK * WEEK
    next_week: uint256 = 0

    for i in range(40):
        next_week = this_week + WEEK
        if block.timestamp < next_week:
            if since_last == 0 and block.timestamp == t:
                self.tokens_per_week[this_week] += to_distribute
            else:
                self.tokens_per_week[this_week] += to_distribute * (block.timestamp - t) / since_last
            break
        else:
            if since_last == 0 and next_week == t:
                self.tokens_per_week[this_week] += to_distribute
            else:
                self.tokens_per_week[this_week] += to_distribute * (next_week - t) / since_last
        t = next_week
        this_week = next_week

    log CheckpointToken(block.timestamp, to_distribute)


@external
def checkpoint_token():
    """
    @notice Update the token checkpoint
    @dev Calculates the total number of tokens to be distributed in a given week.
    """
    assert block.timestamp > self.last_token_time + TOKEN_CHECKPOINT_DEADLINE
    self._checkpoint_token()

@internal
def _checkpoint_total_supply():
    t: uint256 = self.time_cursor
    rounded_timestamp: uint256 = block.timestamp / WEEK * WEEK
    VEYFI.checkpoint()

    for i in range(40):
        if t > rounded_timestamp:
            break
        else:
            epoch: uint256 = VEYFI.find_epoch_by_timestamp(VEYFI.address, t)
            pt: Point = VEYFI.point_history(VEYFI.address, epoch)
            dt: int128 = 0
            if t > pt.ts:
                # If the point is at 0 epoch, it can actually be earlier than the first deposit
                # Then make dt 0
                dt = convert(t - pt.ts, int128)
            self.ve_supply[t] = convert(max(pt.bias - pt.slope * dt, 0), uint256)
        t += WEEK

    self.time_cursor = t


@external
def checkpoint_total_supply():
    """
    @notice Update the veYFI total supply checkpoint
    @dev The checkpoint is also updated by the first claimant each
         new epoch week. This function may be called independently
         of a claim, to reduce claiming gas costs.
    """
    self._checkpoint_total_supply()


@internal
def _claim(addr: address, last_token_time: uint256) -> uint256:
    to_distribute: uint256 = 0

    max_user_epoch: uint256 = VEYFI.epoch(addr)
    _start_time: uint256 = self.start_time

    if max_user_epoch == 0:
        # No lock = no fees
        return 0

    week_cursor: uint256 = self.time_cursor_of[addr]

    if week_cursor == 0:
        user_point: Point = VEYFI.point_history(addr, 1)
        week_cursor = (user_point.ts + WEEK - 1) / WEEK * WEEK

    if week_cursor >= last_token_time:
        return 0

    if week_cursor < _start_time:
        week_cursor = _start_time

    # Iterate over weeks
    for i in range(50):
        if week_cursor >= last_token_time:
            break
        balance_of: uint256 = VEYFI.balanceOf(addr, week_cursor)
        if balance_of == 0:
            break
        to_distribute += balance_of * self.tokens_per_week[week_cursor] / self.ve_supply[week_cursor]
        week_cursor += WEEK

    self.time_cursor_of[addr] = week_cursor

    log Claimed(addr, to_distribute, week_cursor, max_user_epoch)

    return to_distribute


@external
@nonreentrant('lock')
def claim(user: address = msg.sender, relock: bool = False) -> uint256:
    """
    @notice Claim fees for a user
    @dev 
        Each call to claim looks at a maximum of 50 user veYFI points.
        For accounts with many veYFI related actions, this function
        may need to be called more than once to claim all available
        fees. In the `Claimed` event that fires, if `claim_epoch` is
        less than `max_epoch`, the account may claim again.
    @param user account to claim the fees for
    @param relock whether to increase the lock from the claimed fees
    @return uint256 amount of the claimed fees
    """
    if block.timestamp >= self.time_cursor:
        self._checkpoint_total_supply()

    last_token_time: uint256 = self.last_token_time

    if block.timestamp > last_token_time + TOKEN_CHECKPOINT_DEADLINE:
        self._checkpoint_token()
        last_token_time = block.timestamp

    last_token_time = last_token_time / WEEK * WEEK

    amount: uint256 = self._claim(user, last_token_time)
    if amount != 0:
        # you can only relock for yourself
        if relock and (msg.sender == user or self.allowed_to_relock[user][msg.sender]):
            YFI.approve(VEYFI.address, amount)
            VEYFI.modify_lock(amount, 0, user)
        else:
            assert YFI.transfer(user, amount)
        self.token_last_balance -= amount

    return amount


@external
def burn(amount: uint256 = max_value(uint256)) -> bool:
    """
    @notice Receive YFI into the contract and trigger a token checkpoint
    @param amount Amount of tokens to pull [default: allowance]
    @return bool success
    """
    _amount: uint256 = amount
    if _amount == max_value(uint256):
        _amount = YFI.allowance(msg.sender, self)
    if _amount > 0:
        YFI.transferFrom(msg.sender, self, _amount)
        log RewardReceived(msg.sender, _amount)
        if block.timestamp > self.last_token_time + TOKEN_CHECKPOINT_DEADLINE:
            self._checkpoint_token()

    return True


@external
def toggle_allowed_to_relock(user: address) -> bool:
    """
    @notice Control whether a user or a contract can relock rewards on your behalf
    @param user account to delegate the right to relock
    """
    old_value: bool = self.allowed_to_relock[msg.sender][user]
    self.allowed_to_relock[msg.sender][user] = not old_value
    log AllowedToRelock(msg.sender, user, not old_value)
    return True


@view
@external
def token() -> ERC20:
    return YFI


@view
@external
def veyfi() -> VotingYFI:
    return VEYFI

Contract Security Audit

Contract ABI

[{"name":"Initialized","inputs":[{"name":"veyfi","type":"address","indexed":false},{"name":"start_time","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"CheckpointToken","inputs":[{"name":"time","type":"uint256","indexed":false},{"name":"tokens","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Claimed","inputs":[{"name":"recipient","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false},{"name":"week_cursor","type":"uint256","indexed":false},{"name":"max_epoch","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"AllowedToRelock","inputs":[{"name":"user","type":"address","indexed":true},{"name":"relocker","type":"address","indexed":true},{"name":"allowed","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"RewardReceived","inputs":[{"name":"sender","type":"address","indexed":true},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"veyfi","type":"address"},{"name":"start_time","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"checkpoint_token","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"checkpoint_total_supply","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claim","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"claim","inputs":[{"name":"user","type":"address"},{"name":"relock","type":"bool"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"burn","inputs":[{"name":"amount","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"toggle_allowed_to_relock","inputs":[{"name":"user","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"token","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"veyfi","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"start_time","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"time_cursor","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"time_cursor_of","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"allowed_to_relock","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"last_token_time","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"tokens_per_week","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"token_last_balance","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"ve_supply","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]}]

6020610fa36000396000518060a01c610f9e5760405234610f9e576020610fc360003960005162093a808104905062093a8081028162093a80820418610f9e579050606052606051600155606051600555606051600255604051610ecf52610ecf5163fc0c546a608052602060806004609c845afa610083573d600060003e3d6000fd5b60203d10610f9e576080518060a01c610f9e5760c05260c0905051610eaf527f25ff68dd81b34665b5ba7e553ee5511bf6812e12adb4a7e2c0d9e26b3099ce796040516080526020610fc360003960005160a05260406080a1610eaf6100ee61000039610eef610000f36003361161000c576106f7565b60003560e01c34610e9d5763811a40fe811861004d5760043610610e9d57600554620151808101818110610e9d579050421115610e9d5761004b6106fd565b005b63b21ed502811861006a5760043610610e9d576100686109a6565b005b634e71d92d811861008d5760043610610e9d57336102a05260006102c0526100ec565b631e83409a81186100ba5760243610610e9d576004358060a01c610e9d576102a05260006102c0526100ec565b6392fd2daf811861031a5760443610610e9d576004358060a01c610e9d576102a0526024358060011c610e9d576102c0525b600054600214610e9d576002600055600254421061010c5761010c6109a6565b6005546102e0526102e051620151808101818110610e9d57905042111561013b576101356106fd565b426102e0525b6102e05162093a808104905062093a8081028162093a80820418610e9d5790506102e0526102a0516040526102e051606052610178610320610bcb565b6103205161030052610300511561030e576102c0516101985760006101cb565b6102a05133186101a95760016101cb565b60046102a0516020526000526040600020803360205260005260406000209050545b610239576020610eaf60003960005163a9059cbb610320526102a0516103405261030051610360526020610320604461033c6000855af1610211573d600060003e3d6000fd5b60203d10610e9d57610320518060011c610e9d576103805261038090505115610e9d576102f5565b6020610eaf60003960005163095ea7b3610320526020610ecf6000396000516103405261030051610360526020610320604461033c6000855af1610282573d600060003e3d6000fd5b60203d10610e9d57610320518060011c610e9d576103805261038050506020610ecf6000396000516314557b8c6103205261030051610340526000610360526102a051610380526040610320606461033c6000855af16102e7573d600060003e3d6000fd5b60403d10610e9d5761032050505b60075461030051808203828111610e9d57905090506007555b60206103006003600055f35b6344df8e7081186103575760043610610e9d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61014052610372565b6342966c6881186104985760243610610e9d57600435610140525b610140516101605261016051196103d0576020610eaf60003960005163dd62ed3e61018052336101a052306101c0526020610180604461019c845afa6103bd573d600060003e3d6000fd5b60203d10610e9d57610180905051610160525b610160511561048b576020610eaf6000396000516323b872dd61018052336101a052306101c052610160516101e0526020610180606461019c6000855af161041d573d600060003e3d6000fd5b60203d10610e9d57610180518060011c610e9d57610200526102005050337f9ac954606f877c9c9e6deec30e9265abff5a57c7123a34777ca9321eb6c26d8e61016051610180526020610180a2600554620151808101818110610e9d57905042111561048b5761048b6106fd565b6001610180526020610180f35b634a9b82c1811861053c5760243610610e9d576004358060a01c610e9d576040526004336020526000526040600020806040516020526000526040600020905054606052606051156004336020526000526040600020806040516020526000526040600020905055604051337ff886047276afa65eaa422ebca5836d65823f9624f9a3e5a76c8488fb0ab918686060511560805260206080a3600160805260206080f35b63fc0c546a81186105635760043610610e9d576020610eaf60003960005160405260206040f35b634068aba3811861058a5760043610610e9d576020610ecf60003960005160405260206040f35b63834ee41781186105a95760043610610e9d5760015460405260206040f35b63127dcbd381186105c85760043610610e9d5760025460405260206040f35b632a2a314b81186106035760243610610e9d576004358060a01c610e9d57604052600360405160205260005260406000205460605260206060f35b63b6ecf4ff811861065d5760443610610e9d576004358060a01c610e9d576040526024358060a01c610e9d576060526004604051602052600052604060002080606051602052600052604060002090505460805260206080f35b637f58e8f8811861067c5760043610610e9d5760055460405260206040f35b63edf5999781186106a95760243610610e9d57600660043560205260005260406000205460405260206040f35b6322b04bfc81186106c85760043610610e9d5760075460405260206040f35b63d4dafba881186106f55760243610610e9d57600860043560205260005260406000205460405260206040f35b505b60006000fd5b6020610eaf6000396000516370a0823160605230608052602060606024607c845afa61072e573d600060003e3d6000fd5b60203d10610e9d576060905051604052604051600754808203828111610e9d579050905060605260605161079457426005557fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d642608052600060a05260406080a16109a4565b60405160075560055460805242608051808203828111610e9d579050905060a0524260055560805162093a808104905062093a8081028162093a80820418610e9d57905060c052600060e05260006028905b806101005260c05162093a808101818110610e9d57905060e05260e05142106108b25760a05161081d5760805160e0511815610820565b60005b61088757600660c0516020526000526040600020805460605160e051608051808203828111610e9d5790509050808202811583838304141715610e9d579050905060a0518015610e9d5780820490509050808201828110610e9d5790509050815550610957565b600660c05160205260005260406000208054606051808201828110610e9d5790509050815550610957565b60a0516108c4576080514218156108c7565b60005b61092c57600660c0516020526000526040600020805460605142608051808203828111610e9d5790509050808202811583838304141715610e9d579050905060a0518015610e9d5780820490509050808201828110610e9d579050905081555061096e565b600660c05160205260005260406000208054606051808201828110610e9d579050905081555061096e565b60e05160805260e05160c0526001018181186107e6575b50507fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d64261010052606051610120526040610100a15b565b6002546040524262093a808104905062093a8081028162093a80820418610e9d5790506060526020610ecf60003960005163c2c4c5c1608052803b15610e9d57600060806004609c6000855af1610a02573d600060003e3d6000fd5b5060006028905b8060805260605160405111610bc1576020610ecf60003960005163b5418e3f60c0526020610ecf60003960005160e05260405161010052602060c0604460dc845afa610a5a573d600060003e3d6000fd5b60203d10610e9d5760c090505160a0526020610ecf60003960005163613a6bea610140526020610ecf6000396000516101605260a051610180526080610140604461015c845afa610ab0573d600060003e3d6000fd5b60803d10610e9d576101405180600f0b8118610e9d576101e0526101605180600f0b8118610e9d576102005261018051610220526101a051610240526101e09050805160c052602081015160e05260408101516101005260608101516101205250600061014052610100516040511115610b465760405161010051808203828111610e9d579050905080607f1c610e9d57610140525b60c05160e0516101405180820280600f0b8118610e9d579050905080820380600f0b8118610e9d57905090506000818118600083130218905060008112610e9d576008604051602052600052604060002055610ba156610bc1565b60405162093a808101818110610e9d579050604052600101818118610a09575b5050604051600255565b60006080526020610ecf600039600051638b810c3660c05260405160e052602060c0602460dc845afa610c03573d600060003e3d6000fd5b60203d10610e9d5760c090505160a05260015460c05260a051610c2a576000815250610e9b565b600360405160205260005260406000205460e05260e051610d25576020610ecf60003960005163613a6bea610180526040516101a05260016101c0526080610180604461019c845afa610c82573d600060003e3d6000fd5b60803d10610e9d576101805180600f0b8118610e9d57610220526101a05180600f0b8118610e9d57610240526101c051610260526101e051610280526102209050805161010052602081015161012052604081015161014052606081015161016052506101405162093a808101818110610e9d57905060018103818111610e9d57905062093a808104905062093a8081028162093a80820418610e9d57905060e0525b60605160e05110610d3a576000815250610e9b565b60c05160e0511015610d4d5760c05160e0525b60006032905b806101005260605160e05110610d6857610e3f565b6020610ecf60003960005162fdd58e610140526040516101605260e051610180526020610140604461015c845afa610da5573d600060003e3d6000fd5b60203d10610e9d576101409050516101205261012051610dc457610e3f565b60805161012051600660e051602052600052604060002054808202811583838304141715610e9d5790509050600860e0516020526000526040600020548015610e9d5780820490509050808201828110610e9d579050905060805260e05162093a808101818110610e9d57905060e052600101818118610d53575b505060e05160036040516020526000526040600020556040517f9cdcf2f7714cca3508c7f0110b04a90a80a3a8dd0e35de99689db74d28c5383e6080516101005260e0516101205260a051610140526060610100a26080518152505b565b600080fda165767970657283000307000b005b600080fd00000000000000000000000090c1f9220d90d3966fbee24045edd73e1d588ad500000000000000000000000000000000000000000000000000000000637c9935

Deployed Bytecode

0x6003361161000c576106f7565b60003560e01c34610e9d5763811a40fe811861004d5760043610610e9d57600554620151808101818110610e9d579050421115610e9d5761004b6106fd565b005b63b21ed502811861006a5760043610610e9d576100686109a6565b005b634e71d92d811861008d5760043610610e9d57336102a05260006102c0526100ec565b631e83409a81186100ba5760243610610e9d576004358060a01c610e9d576102a05260006102c0526100ec565b6392fd2daf811861031a5760443610610e9d576004358060a01c610e9d576102a0526024358060011c610e9d576102c0525b600054600214610e9d576002600055600254421061010c5761010c6109a6565b6005546102e0526102e051620151808101818110610e9d57905042111561013b576101356106fd565b426102e0525b6102e05162093a808104905062093a8081028162093a80820418610e9d5790506102e0526102a0516040526102e051606052610178610320610bcb565b6103205161030052610300511561030e576102c0516101985760006101cb565b6102a05133186101a95760016101cb565b60046102a0516020526000526040600020803360205260005260406000209050545b610239576020610eaf60003960005163a9059cbb610320526102a0516103405261030051610360526020610320604461033c6000855af1610211573d600060003e3d6000fd5b60203d10610e9d57610320518060011c610e9d576103805261038090505115610e9d576102f5565b6020610eaf60003960005163095ea7b3610320526020610ecf6000396000516103405261030051610360526020610320604461033c6000855af1610282573d600060003e3d6000fd5b60203d10610e9d57610320518060011c610e9d576103805261038050506020610ecf6000396000516314557b8c6103205261030051610340526000610360526102a051610380526040610320606461033c6000855af16102e7573d600060003e3d6000fd5b60403d10610e9d5761032050505b60075461030051808203828111610e9d57905090506007555b60206103006003600055f35b6344df8e7081186103575760043610610e9d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61014052610372565b6342966c6881186104985760243610610e9d57600435610140525b610140516101605261016051196103d0576020610eaf60003960005163dd62ed3e61018052336101a052306101c0526020610180604461019c845afa6103bd573d600060003e3d6000fd5b60203d10610e9d57610180905051610160525b610160511561048b576020610eaf6000396000516323b872dd61018052336101a052306101c052610160516101e0526020610180606461019c6000855af161041d573d600060003e3d6000fd5b60203d10610e9d57610180518060011c610e9d57610200526102005050337f9ac954606f877c9c9e6deec30e9265abff5a57c7123a34777ca9321eb6c26d8e61016051610180526020610180a2600554620151808101818110610e9d57905042111561048b5761048b6106fd565b6001610180526020610180f35b634a9b82c1811861053c5760243610610e9d576004358060a01c610e9d576040526004336020526000526040600020806040516020526000526040600020905054606052606051156004336020526000526040600020806040516020526000526040600020905055604051337ff886047276afa65eaa422ebca5836d65823f9624f9a3e5a76c8488fb0ab918686060511560805260206080a3600160805260206080f35b63fc0c546a81186105635760043610610e9d576020610eaf60003960005160405260206040f35b634068aba3811861058a5760043610610e9d576020610ecf60003960005160405260206040f35b63834ee41781186105a95760043610610e9d5760015460405260206040f35b63127dcbd381186105c85760043610610e9d5760025460405260206040f35b632a2a314b81186106035760243610610e9d576004358060a01c610e9d57604052600360405160205260005260406000205460605260206060f35b63b6ecf4ff811861065d5760443610610e9d576004358060a01c610e9d576040526024358060a01c610e9d576060526004604051602052600052604060002080606051602052600052604060002090505460805260206080f35b637f58e8f8811861067c5760043610610e9d5760055460405260206040f35b63edf5999781186106a95760243610610e9d57600660043560205260005260406000205460405260206040f35b6322b04bfc81186106c85760043610610e9d5760075460405260206040f35b63d4dafba881186106f55760243610610e9d57600860043560205260005260406000205460405260206040f35b505b60006000fd5b6020610eaf6000396000516370a0823160605230608052602060606024607c845afa61072e573d600060003e3d6000fd5b60203d10610e9d576060905051604052604051600754808203828111610e9d579050905060605260605161079457426005557fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d642608052600060a05260406080a16109a4565b60405160075560055460805242608051808203828111610e9d579050905060a0524260055560805162093a808104905062093a8081028162093a80820418610e9d57905060c052600060e05260006028905b806101005260c05162093a808101818110610e9d57905060e05260e05142106108b25760a05161081d5760805160e0511815610820565b60005b61088757600660c0516020526000526040600020805460605160e051608051808203828111610e9d5790509050808202811583838304141715610e9d579050905060a0518015610e9d5780820490509050808201828110610e9d5790509050815550610957565b600660c05160205260005260406000208054606051808201828110610e9d5790509050815550610957565b60a0516108c4576080514218156108c7565b60005b61092c57600660c0516020526000526040600020805460605142608051808203828111610e9d5790509050808202811583838304141715610e9d579050905060a0518015610e9d5780820490509050808201828110610e9d579050905081555061096e565b600660c05160205260005260406000208054606051808201828110610e9d579050905081555061096e565b60e05160805260e05160c0526001018181186107e6575b50507fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d64261010052606051610120526040610100a15b565b6002546040524262093a808104905062093a8081028162093a80820418610e9d5790506060526020610ecf60003960005163c2c4c5c1608052803b15610e9d57600060806004609c6000855af1610a02573d600060003e3d6000fd5b5060006028905b8060805260605160405111610bc1576020610ecf60003960005163b5418e3f60c0526020610ecf60003960005160e05260405161010052602060c0604460dc845afa610a5a573d600060003e3d6000fd5b60203d10610e9d5760c090505160a0526020610ecf60003960005163613a6bea610140526020610ecf6000396000516101605260a051610180526080610140604461015c845afa610ab0573d600060003e3d6000fd5b60803d10610e9d576101405180600f0b8118610e9d576101e0526101605180600f0b8118610e9d576102005261018051610220526101a051610240526101e09050805160c052602081015160e05260408101516101005260608101516101205250600061014052610100516040511115610b465760405161010051808203828111610e9d579050905080607f1c610e9d57610140525b60c05160e0516101405180820280600f0b8118610e9d579050905080820380600f0b8118610e9d57905090506000818118600083130218905060008112610e9d576008604051602052600052604060002055610ba156610bc1565b60405162093a808101818110610e9d579050604052600101818118610a09575b5050604051600255565b60006080526020610ecf600039600051638b810c3660c05260405160e052602060c0602460dc845afa610c03573d600060003e3d6000fd5b60203d10610e9d5760c090505160a05260015460c05260a051610c2a576000815250610e9b565b600360405160205260005260406000205460e05260e051610d25576020610ecf60003960005163613a6bea610180526040516101a05260016101c0526080610180604461019c845afa610c82573d600060003e3d6000fd5b60803d10610e9d576101805180600f0b8118610e9d57610220526101a05180600f0b8118610e9d57610240526101c051610260526101e051610280526102209050805161010052602081015161012052604081015161014052606081015161016052506101405162093a808101818110610e9d57905060018103818111610e9d57905062093a808104905062093a8081028162093a80820418610e9d57905060e0525b60605160e05110610d3a576000815250610e9b565b60c05160e0511015610d4d5760c05160e0525b60006032905b806101005260605160e05110610d6857610e3f565b6020610ecf60003960005162fdd58e610140526040516101605260e051610180526020610140604461015c845afa610da5573d600060003e3d6000fd5b60203d10610e9d576101409050516101205261012051610dc457610e3f565b60805161012051600660e051602052600052604060002054808202811583838304141715610e9d5790509050600860e0516020526000526040600020548015610e9d5780820490509050808201828110610e9d579050905060805260e05162093a808101818110610e9d57905060e052600101818118610d53575b505060e05160036040516020526000526040600020556040517f9cdcf2f7714cca3508c7f0110b04a90a80a3a8dd0e35de99689db74d28c5383e6080516101005260e0516101205260a051610140526060610100a26080518152505b565b600080fda165767970657283000307000b0000000000000000000000000bc529c00c6401aef6d220be8c6ea1667f6ad93e00000000000000000000000090c1f9220d90d3966fbee24045edd73e1d588ad5

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

00000000000000000000000090c1f9220d90d3966fbee24045edd73e1d588ad500000000000000000000000000000000000000000000000000000000637c9935

-----Decoded View---------------
Arg [0] : veyfi (address): 0x90c1f9220d90d3966FbeE24045EDd73E1d588aD5
Arg [1] : start_time (uint256): 1669110069

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000090c1f9220d90d3966fbee24045edd73e1d588ad5
Arg [1] : 00000000000000000000000000000000000000000000000000000000637c9935


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.