Contract 0x326236f487ac37fc2cb69569b20173e9ccf639c9 5

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa8b4176018936d69101cdb35b35b49e262ba64948ac94001a8ce8a02d653b039Claim551758742023-02-06 2:15:0612 mins ago0x91d01f23e7092c1041bc02c9ce7a4d657c16eaf1 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.129066372227
0x13ffff7ca9105d1c833716ff3c7a7645abae9a98089fd39f4030d71356a0f7ddClaim551757962023-02-06 2:10:4516 mins ago0xa49ae0b8b4afb023bc9e697ded8c7d5816577f7b IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.104735084922
0x46ffb707b5d8803e9f0e0e016cffcc74964e82ea96a6f9bbf05ace97eb332d99Claim551755492023-02-06 1:59:3727 mins ago0xdc1955443ca3df3c3dff6819078b198a22f4ddc4 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.02470276853
0xaed0fdd7e25faf719b97f3764eb29bbcc2c1953790e7a08031d08be3594f9055Claim551749202023-02-06 1:33:1854 mins ago0xbdf81b19af7848f7384c38e68208885ff0c9f390 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.055380446
0x0a865cf7e476f92339d165a4dead03ee07cb162256883b1c64bcd487f86560beClaim551748002023-02-06 1:27:5959 mins ago0xd29136b67879a39765755f791a27ad61e0508f32 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.091973445455
0x28c9b19facd8f2d5cff7ce51e638a45a4b760fe612be883c0202dae101a00b6fClaim551745032023-02-06 1:15:071 hr 12 mins ago0xa63bca4aa47e42498889ab5185336fea54835c7e IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.028828437792
0xeecd6fc0fef90fa1e1b66432429df7b0ad89a5bd5ab4b1e7dcaa3691ebb0f229Claim551744742023-02-06 1:13:521 hr 13 mins ago0x1b73dc0bfa7e095a9bcb71bc6f3e95242c76c0e1 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.046380414498
0xdee6d949690e97b2a26bc8ebd9028401da7851fa8528335698f25c6b3b1a8f4fClaim551744232023-02-06 1:11:121 hr 16 mins ago0xea84e1b96bbc06af9da27572f65f3a5740f32998 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.029163533819
0x88739a1b66d851091d3e6f9d647884e6d5894738b0a59a6044f39f7cdd98c422Claim551743802023-02-06 1:09:391 hr 17 mins ago0x0cf598c6c6f7dd5f9646d9489e5bf857d2a5784d IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.037029927
0x9e3b1eead7b937cf10423ee731cecf720ef2b056a386a0287d56bf52844b5440Claim551743732023-02-06 1:09:291 hr 17 mins ago0x4ea6415289cf688f8a19381e1a9af213d2510454 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.068074864
0xc7575974da0a7ab226b43b9286638081d16488653b967a9cd8af39d04a4e62e4Claim551741682023-02-06 1:01:531 hr 25 mins ago0x763f2265c36fa1925d0fe57bf1e3a18f28972837 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.030643426821
0x4e7e6ca686e145db9390e97b7cb90ba98e7ddba4ae1328164ecad10ffe78951aClaim551739942023-02-06 0:57:101 hr 30 mins ago0x3c7ac2ff76a1b4dcb2b69b1121fef5fb8dcdec43 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.026811151196
0x3f35c70e3f6463d03fb14329ac43a8dbe395f7776cb4949ab05fdb3863cea8adClaim551739472023-02-06 0:55:551 hr 31 mins ago0x4532280a66a0c1c709f7e0c40b14b4dea83253c1 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.029129627917
0x9110d8e8426005f6309d681c0a258d32f331a81808a9038bdacbea6e9c32cef9Claim551738142023-02-06 0:51:491 hr 35 mins ago0xb96007fd8e0ee360d404f01566f412e535469f15 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.031075414976
0xdbfdac2fe2e8815da35c9f40b757343c95913527f02b5174b5e5bc5170d93590Claim551737872023-02-06 0:51:031 hr 36 mins ago0xe4d861d5d3477b2a830892b62c5140e0a4e191af IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.056564838
0xe994f6f2df34fa6a08afb70c7bda9a70973e328bddd1f0da970f3d3f74b9a778Claim551735622023-02-06 0:43:451 hr 43 mins ago0xa3b76f49c5d4f55764be870962af2bdd0c0ca025 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.029479184409
0x73605dd972294eade780d16e42b3039a9adc40cbc14c0483058b32edf9135240Claim551735122023-02-06 0:42:431 hr 44 mins ago0xbd485523bb960b27c38d3f9ad47f0d3a384e69ce IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.037447280279
0x9cb71184b8e88c33cf86a195c75de081ce04ac79988b848a98d75dc0453e75cfClaim551734822023-02-06 0:42:101 hr 45 mins ago0xa909be1ac709bc08bd8cd69604cee197360b3e33 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.032862434007
0x7b5e3bdde95cb263d058870fa17107f0950124b05c9423ba3824217179f83d07Claim551728242023-02-06 0:21:212 hrs 6 mins ago0x41a6ac7f4e4dbffeb934f95f1db58b68c76dc4df IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.031989921621
0xef83e254952988e26fabc604fb3840c38b82b51ceecbcb95e857aca5c795eef8Claim551727892023-02-06 0:20:092 hrs 7 mins ago0x24751e4b74a1f466c78cdfccfdb5e02769183f1c IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.185696645574
0xf588e486204daff202d8d43c23b3df553f0a91bb81ee08f1d4cb45ee58d58b08Claim551726482023-02-06 0:15:562 hrs 11 mins ago0xaa218c9790c0e7e35900d7776f5b11848a5f23a1 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.04554243569
0x72b86315eb4341e7589a89d07c7769c3e01927579086e82fee2be2b92a57e459Claim551725922023-02-06 0:14:122 hrs 13 mins ago0xaf1be417ce8f04ccb372eaa2a298d3fdd45fcf9d IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.060074461887
0xb9a8a43e8e605399c6a7747caea2371de5b817c6c3429eccc3567f9f950b1adaClaim551725762023-02-06 0:13:512 hrs 13 mins ago0xdc8bdb80e0cf0cb9acbc61922b2004a136dcc6a0 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.317753669375
0xf68267b49fa1dce28219f0b056d250d74f733311d7fae99bb85f9ede6aa90864Claim551725722023-02-06 0:13:432 hrs 13 mins ago0x2cf69d08b0acd159a5f8ca0c8970a0ebfd12691a IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.157754063264
0xaf98a012205425df446e2082a22e7289a17a04adcf690e8f16d31e0c0a567e2bClaim551725342023-02-06 0:12:412 hrs 14 mins ago0x4dc834b52a7308b39d287c8b210a3f1a2a2c5411 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.034487361884
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x20ee9daa6228f85d8b8df8e9f1e93a5b366befab269bf5844f555720241ca3de346274022022-03-28 14:55:51314 days 11 hrs ago 0xf4c5b06ff9cd8f685ddcc58202597e56f1c0faee  Contract Creation0 FTM
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x09e9eb4847460cbb3dbee4b8e97d32e7fe5bf852

Contract Name:
Vyper_contract

Compiler Version
vyper:0.2.7

Optimization Enabled:
N/A

Other Settings:
MIT license

Contract Source Code (Vyper language format)

# @version 0.2.7
"""
@title Fee Distribution
@author Author
@license MIT
"""

from vyper.interfaces import ERC20


interface VotingEscrow:
    def user_point_epoch(addr: address) -> uint256: view
    def epoch() -> uint256: view
    def user_point_history(addr: address, loc: uint256) -> Point: view
    def point_history(loc: uint256) -> Point: view
    def checkpoint(): nonpayable

interface FeeDistributor:
    def checkpoint_token(): nonpayable
    def claim(_addr: address) -> uint256: nonpayable
    def claim_many(_receivers: address[20]) -> bool: nonpayable
    def toggle_allow_checkpoint_token(): nonpayable


event CommitAdmin:
    admin: address

event ApplyAdmin:
    admin: address

event ToggleAllowCheckpointToken:
    toggle_flag: bool

event CheckpointToken:
    time: uint256
    tokens: uint256

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


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


DAY: constant(uint256) = 86400
N_COINS: constant(uint256) = 10

start_time: public(uint256)
time_cursor: public(uint256)
time_cursor_of: public(HashMap[address, uint256])
user_epoch_of: public(HashMap[address, uint256])

blocked_addr: public(HashMap[address, bool])
fee_receive_addr: public(HashMap[address, address])

last_token_times: public(uint256[N_COINS])
tokens_per_day: public(HashMap[uint256, uint256[N_COINS]])

voting_escrow: public(address)
tokens: public(address[N_COINS])
total_received: public(uint256)
token_last_balances: public(uint256[N_COINS])

ve_supply: public(uint256[1000000000000000])  # VE total supply at day bounds

admin: public(address)
future_admin: public(address)
can_checkpoint_token: public(bool)
emergency_return: public(address)
is_killed: public(bool)


@external
def __init__(
    _voting_escrow: address,
    _start_time: uint256,
    _token: address[N_COINS],
    _admin: address,
    _emergency_return: address
):
    """
    @notice Contract constructor
    @param _voting_escrow VotingEscrow contract address
    @param _start_time Epoch time for fee distribution to start
    @param _token Fee token address
    @param _admin Admin address
    @param _emergency_return Address to transfer `_token` balance to
                             if this contract is killed
    """
    t: uint256 = _start_time / DAY * DAY
    self.start_time = t

    self.time_cursor = t
    
    for i in range(N_COINS):
        self.tokens[i] = _token[i]
        self.last_token_times[i] = t
    self.voting_escrow = _voting_escrow
    self.admin = _admin
    self.emergency_return = _emergency_return
    self.can_checkpoint_token = True


@internal
def _checkpoint_token(index: uint256):
    token_balance: uint256 = ERC20(self.tokens[index]).balanceOf(self)
    to_distribute: uint256 = token_balance - self.token_last_balances[index]
    self.token_last_balances[index] = token_balance

    t: uint256 = self.last_token_times[index]
    since_last: uint256 = block.timestamp - t
    self.last_token_times[index] = block.timestamp
    this_day: uint256 = t / DAY * DAY
    next_day: uint256 = 0

    for i in range(140):
        next_day = this_day + DAY
        if block.timestamp < next_day:
            if since_last == 0 and block.timestamp == t:
                self.tokens_per_day[this_day][index] += to_distribute
            else:
                self.tokens_per_day[this_day][index] += to_distribute * (block.timestamp - t) / since_last
            break
        else:
            if since_last == 0 and next_day == t:
                self.tokens_per_day[this_day][index] += to_distribute
            else:
                self.tokens_per_day[this_day][index] += to_distribute * (next_day - t) / since_last
        t = next_day
        this_day = next_day

    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 day.
         During setup for the initial distribution this function is only callable
         by the contract owner. Beyond initial distro, it can be enabled for anyone
         to call.
    """
    assert (msg.sender == self.admin) or\
           (self.can_checkpoint_token and (block.timestamp > self.last_token_times[0]))

    for i in range(N_COINS):
        self._checkpoint_token(i)


@internal
def _find_timestamp_epoch(ve: address, _timestamp: uint256) -> uint256:
    _min: uint256 = 0
    _max: uint256 = VotingEscrow(ve).epoch()
    for i in range(128):
        if _min >= _max:
            break
        _mid: uint256 = (_min + _max + 2) / 2
        pt: Point = VotingEscrow(ve).point_history(_mid)
        if pt.ts <= _timestamp:
            _min = _mid
        else:
            _max = _mid - 1
    return _min


@view
@internal
def _find_timestamp_user_epoch(ve: address, user: address, _timestamp: uint256, max_user_epoch: uint256) -> uint256:
    _min: uint256 = 0
    _max: uint256 = max_user_epoch
    for i in range(128):
        if _min >= _max:
            break
        _mid: uint256 = (_min + _max + 2) / 2
        pt: Point = VotingEscrow(ve).user_point_history(user, _mid)
        if pt.ts <= _timestamp:
            _min = _mid
        else:
            _max = _mid - 1
    return _min


@view
@external
def ve_for_at(_user: address, _timestamp: uint256) -> uint256:
    """
    @notice Get the xLQDR balance for `_user` at `_timestamp`
    @param _user Address to query balance for
    @param _timestamp Epoch time
    @return uint256 xLQDR balance
    """
    ve: address = self.voting_escrow
    max_user_epoch: uint256 = VotingEscrow(ve).user_point_epoch(_user)
    epoch: uint256 = self._find_timestamp_user_epoch(ve, _user, _timestamp, max_user_epoch)
    pt: Point = VotingEscrow(ve).user_point_history(_user, epoch)
    return convert(max(pt.bias - pt.slope * convert(_timestamp - pt.ts, int128), 0), uint256)


@internal
def _checkpoint_total_supply():
    ve: address = self.voting_escrow
    t: uint256 = self.time_cursor
    rounded_timestamp: uint256 = block.timestamp / DAY * DAY
    VotingEscrow(ve).checkpoint()

    for i in range(140):
        if t > rounded_timestamp:
            break
        else:
            epoch: uint256 = self._find_timestamp_epoch(ve, t)
            pt: Point = VotingEscrow(ve).point_history(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 += DAY

    self.time_cursor = t


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


@external
def block_address(_blocked_addr: address, _fee_receive_addr: address):
    assert msg.sender == self.admin  # dev: access denied
    self.blocked_addr[_blocked_addr] = True
    self.fee_receive_addr[_blocked_addr] = _fee_receive_addr


@internal
def _claim(addr: address, ve: address, _last_token_time: uint256) -> uint256[N_COINS]:
    # Minimal user_epoch is 0 (if user had no point)
    user_epoch: uint256 = 0
    to_distribute: uint256[N_COINS] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    max_user_epoch: uint256 = VotingEscrow(ve).user_point_epoch(addr)
    _start_time: uint256 = self.start_time

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

    day_cursor: uint256 = self.time_cursor_of[addr]
    if day_cursor == 0:
        # Need to do the initial binary search
        user_epoch = self._find_timestamp_user_epoch(ve, addr, _start_time, max_user_epoch)
    else:
        user_epoch = self.user_epoch_of[addr]

    if user_epoch == 0:
        user_epoch = 1

    user_point: Point = VotingEscrow(ve).user_point_history(addr, user_epoch)

    if day_cursor == 0:
        day_cursor = (user_point.ts + DAY - 1) / DAY * DAY

    if day_cursor >= _last_token_time:
        return to_distribute

    if day_cursor < _start_time:
        day_cursor = _start_time
    old_user_point: Point = empty(Point)

    # Iterate over days
    for i in range(150):
        if day_cursor >= _last_token_time:
            break

        if day_cursor >= user_point.ts and user_epoch <= max_user_epoch:
            user_epoch += 1
            old_user_point = user_point
            if user_epoch > max_user_epoch:
                user_point = empty(Point)
            else:
                user_point = VotingEscrow(ve).user_point_history(addr, user_epoch)

        else:
            # Calc
            # + i * 2 is for rounding errors
            dt: int128 = convert(day_cursor - old_user_point.ts, int128)
            balance_of: uint256 = convert(max(old_user_point.bias - dt * old_user_point.slope, 0), uint256)
            if balance_of == 0 and user_epoch > max_user_epoch:
                break
            if balance_of > 0:
                for j in range(N_COINS):
                    to_distribute[j] += balance_of * self.tokens_per_day[day_cursor][j] / self.ve_supply[day_cursor]

            day_cursor += DAY

    user_epoch = min(max_user_epoch, user_epoch - 1)
    self.user_epoch_of[addr] = user_epoch
    self.time_cursor_of[addr] = day_cursor

    _fee_receiver: address = addr

    if self.blocked_addr[addr] == True:
        _fee_receiver = self.fee_receive_addr[addr]

    for i in range(N_COINS):
        if to_distribute[i] != 0:
            token: address = self.tokens[i]
            assert ERC20(token).transfer(_fee_receiver, to_distribute[i])
            self.token_last_balances[i] -= to_distribute[i]
        log Claimed(addr, to_distribute[i], user_epoch, max_user_epoch)

    return to_distribute


@external
@nonreentrant('lock')
def claim(_addr: address = msg.sender) -> (uint256[N_COINS]):
    """
    @notice Claim fees for `_addr`
    @dev Each call to claim look at a maximum of 50 user xLQDR points.
         For accounts with many xLQDR 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 _addr Address to claim fees for
    @return uint256 Amount of fees claimed in the call
    """
    assert not self.is_killed

    if block.timestamp >= self.time_cursor:
        self._checkpoint_total_supply()

    last_token_time: uint256 = self.last_token_times[0]

    if self.can_checkpoint_token and (block.timestamp > last_token_time):
        for i in range(N_COINS):
            self._checkpoint_token(i)
        last_token_time = block.timestamp

    last_token_time = last_token_time / DAY * DAY

    return self._claim(_addr, self.voting_escrow, last_token_time)



@external
@nonreentrant('lock')
def claim_many(_receivers: address[20]) -> bool:
    """
    @notice Make multiple fee claims in a single call
    @dev Used to claim for many accounts at once, or to make
         multiple claims for the same address when that address
         has significant xLQDR history
    @param _receivers List of addresses to claim for. Claiming
                      terminates at the first `ZERO_ADDRESS`.
    @return bool success
    """
    assert not self.is_killed

    if block.timestamp >= self.time_cursor:
        self._checkpoint_total_supply()

    last_token_time: uint256 = self.last_token_times[0]

    if self.can_checkpoint_token and (block.timestamp > last_token_time):
        for i in range(N_COINS):
            self._checkpoint_token(i)
        last_token_time = block.timestamp

    last_token_time = last_token_time / DAY * DAY
    voting_escrow: address = self.voting_escrow

    for addr in _receivers:
        if addr == ZERO_ADDRESS:
            break

        self._claim(addr, voting_escrow, last_token_time)

    return True


@external
def burn(_coin: address) -> bool:
    """
    @notice Receive LQDR into the contract and trigger a token checkpoint
    @param _coin Address of the coin being received (must be LQDR)
    @return bool success
    """
    assert not self.is_killed

    amount: uint256 = ERC20(_coin).balanceOf(msg.sender)
    if amount != 0:
        ERC20(_coin).transferFrom(msg.sender, self, amount)
        if self.can_checkpoint_token and (block.timestamp > self.last_token_times[0]):
            for i in range(N_COINS):
                self._checkpoint_token(i)

    return True


@external
def commit_admin(_addr: address):
    """
    @notice Commit transfer of ownership
    @param _addr New admin address
    """
    assert msg.sender == self.admin  # dev: access denied
    self.future_admin = _addr
    log CommitAdmin(_addr)


@external
def apply_admin():
    """
    @notice Apply transfer of ownership
    """
    assert msg.sender == self.admin
    assert self.future_admin != ZERO_ADDRESS
    future_admin: address = self.future_admin
    self.admin = future_admin
    log ApplyAdmin(future_admin)


@external
def toggle_allow_checkpoint_token():
    """
    @notice Toggle permission for checkpointing by any account
    """
    assert msg.sender == self.admin
    flag: bool = not self.can_checkpoint_token
    self.can_checkpoint_token = flag
    log ToggleAllowCheckpointToken(flag)


@external
def kill_me():
    """
    @notice Kill the contract
    @dev Killing transfers the entire LQDR balance to the emergency return address
         and blocks the ability to claim or burn. The contract cannot be unkilled.
    """
    assert msg.sender == self.admin

    self.is_killed = True

    for i in range(N_COINS):
        token: address = self.tokens[i]
        assert ERC20(token).transfer(self.emergency_return, ERC20(token).balanceOf(self))


@external
def recover_balance(_coin: address) -> bool:
    """
    @notice Recover ERC20 tokens from this contract
    @dev Tokens are sent to the emergency return address.
    @param _coin Token address
    @return bool success
    """
    assert msg.sender == self.admin

    amount: uint256 = ERC20(_coin).balanceOf(self)
    response: Bytes[32] = raw_call(
        _coin,
        concat(
            method_id("transfer(address,uint256)"),
            convert(self.emergency_return, bytes32),
            convert(amount, bytes32),
        ),
        max_outsize=32,
    )
    if len(response) != 0:
        assert convert(response, bool)

    return True


@external
def set_emergency_return(_addr: address) -> bool:
    """
    @notice Set emergency return address
    @dev Set emergency return address.
    @param _addr New emergency address
    @return bool success
    """
    assert msg.sender == self.admin

    self.emergency_return = _addr

    return True

# for test purpose

@view
@external
def get_timestamp() -> uint256:
    """
    @notice Get current timestamp
    @return uint256 timestamp
    """
    return block.timestamp

Contract Security Audit

Contract ABI

[{"name":"CommitAdmin","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyAdmin","inputs":[{"type":"address","name":"admin","indexed":false}],"anonymous":false,"type":"event"},{"name":"ToggleAllowCheckpointToken","inputs":[{"type":"bool","name":"toggle_flag","indexed":false}],"anonymous":false,"type":"event"},{"name":"CheckpointToken","inputs":[{"type":"uint256","name":"time","indexed":false},{"type":"uint256","name":"tokens","indexed":false}],"anonymous":false,"type":"event"},{"name":"Claimed","inputs":[{"type":"address","name":"recipient","indexed":true},{"type":"uint256","name":"amount","indexed":false},{"type":"uint256","name":"claim_epoch","indexed":false},{"type":"uint256","name":"max_epoch","indexed":false}],"anonymous":false,"type":"event"},{"outputs":[],"inputs":[{"type":"address","name":"_voting_escrow"},{"type":"uint256","name":"_start_time"},{"type":"address[10]","name":"_token"},{"type":"address","name":"_admin"},{"type":"address","name":"_emergency_return"}],"stateMutability":"nonpayable","type":"constructor"},{"name":"checkpoint_token","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":52865108},{"name":"ve_for_at","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"_user"},{"type":"uint256","name":"_timestamp"}],"stateMutability":"view","type":"function","gas":249417},{"name":"checkpoint_total_supply","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":73909685},{"name":"block_address","outputs":[],"inputs":[{"type":"address","name":"_blocked_addr"},{"type":"address","name":"_fee_receive_addr"}],"stateMutability":"nonpayable","type":"function","gas":71764},{"name":"claim","outputs":[{"type":"uint256[10]","name":""}],"inputs":[],"stateMutability":"nonpayable","type":"function"},{"name":"claim","outputs":[{"type":"uint256[10]","name":""}],"inputs":[{"type":"address","name":"_addr"}],"stateMutability":"nonpayable","type":"function"},{"name":"claim_many","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address[20]","name":"_receivers"}],"stateMutability":"nonpayable","type":"function","gas":227475864},{"name":"burn","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_coin"}],"stateMutability":"nonpayable","type":"function","gas":52867064},{"name":"commit_admin","outputs":[],"inputs":[{"type":"address","name":"_addr"}],"stateMutability":"nonpayable","type":"function","gas":37928},{"name":"apply_admin","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":39564},{"name":"toggle_allow_checkpoint_token","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":38703},{"name":"kill_me","outputs":[],"inputs":[],"stateMutability":"nonpayable","type":"function","gas":68685},{"name":"recover_balance","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_coin"}],"stateMutability":"nonpayable","type":"function","gas":6911},{"name":"set_emergency_return","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"_addr"}],"stateMutability":"nonpayable","type":"function","gas":36773},{"name":"get_timestamp","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":800},{"name":"start_time","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1631},{"name":"time_cursor","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1661},{"name":"time_cursor_of","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1906},{"name":"user_epoch_of","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1936},{"name":"blocked_addr","outputs":[{"type":"bool","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1966},{"name":"fee_receive_addr","outputs":[{"type":"address","name":""}],"inputs":[{"type":"address","name":"arg0"}],"stateMutability":"view","type":"function","gas":1996},{"name":"last_token_times","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":1920},{"name":"tokens_per_day","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"arg0"},{"type":"uint256","name":"arg1"}],"stateMutability":"view","type":"function","gas":2065},{"name":"voting_escrow","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1871},{"name":"tokens","outputs":[{"type":"address","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":2010},{"name":"total_received","outputs":[{"type":"uint256","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":1931},{"name":"token_last_balances","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":2070},{"name":"ve_supply","outputs":[{"type":"uint256","name":""}],"inputs":[{"type":"uint256","name":"arg0"}],"stateMutability":"view","type":"function","gas":2100},{"name":"admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2021},{"name":"future_admin","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2051},{"name":"can_checkpoint_token","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2081},{"name":"emergency_return","outputs":[{"type":"address","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2111},{"name":"is_killed","outputs":[{"type":"bool","name":""}],"inputs":[],"stateMutability":"view","type":"function","gas":2141}]

6f7fffffffffffffffffffffffffffffff6040526101c061242c61014039602061242c60c03960c05160a01c1561003557600080fd5b6000610120525b60206101205160400161242c0160c03960c05160a01c1561005c57600080fd5b60206101205101610120526101406101205110156100795761003c565b602061018061242c0160c03960c05160a01c1561009557600080fd5b60206101a061242c0160c03960c05160a01c156100b157600080fd5b6101605162015180808204905090506201518080820282158284830414176100d857600080fd5b809050905090506103005261030051600055610300516001556103206000600a818352015b61018061032051600a811061011157600080fd5b602002015161032051600a811061012757600080fd5b600960c052602060c02001556103005161032051600a811061014857600080fd5b600660c052602060c02001555b81516001018083528114156100fd575b5050610140516008556102c051600d556102e0516010556001600f5561241456341561000a57600080fd5b600436101561001857612288565b600035601c526f7fffffffffffffffffffffffffffffff60405260001561042e575b6101605261014052602061022060246370a082316101a052306101c0526101bc61014051600a811061006b57600080fd5b600960c052602060c02001545afa61008257600080fd5b601f3d1161008f57600080fd5b60005061022051610180526101805161014051600a81106100af57600080fd5b600b60c052602060c0200154808210156100c857600080fd5b808203905090506101a0526101805161014051600a81106100e857600080fd5b600b60c052602060c020015561014051600a811061010557600080fd5b600660c052602060c02001546101c052426101c0518082101561012757600080fd5b808203905090506101e0524261014051600a811061014457600080fd5b600660c052602060c02001556101c051620151808082049050905062015180808202821582848304141761017757600080fd5b80905090509050610200526000610220526102406000608c818352015b61020051620151808181830110156101ab57600080fd5b8082019050905061022052610220514210156102ca576101e05115156101d6576101c05142146101d9565b60005b1561022d5761014051600a81106101ef57600080fd5b60076102005160e05260c052604060c02060c052602060c0200180546101a05181818301101561021e57600080fd5b808201905090508155506102c1565b61014051600a811061023e57600080fd5b60076102005160e05260c052604060c02060c052602060c0200180546101a051426101c0518082101561027057600080fd5b80820390509050808202821582848304141761028b57600080fd5b809050905090506101e05180806102a157600080fd5b8204905090508181830110156102b657600080fd5b808201905090508155505b6103f2566103d1565b6101e05115156102e2576101c05161022051146102e5565b60005b156103395761014051600a81106102fb57600080fd5b60076102005160e05260c052604060c02060c052602060c0200180546101a05181818301101561032a57600080fd5b808201905090508155506103d0565b61014051600a811061034a57600080fd5b60076102005160e05260c052604060c02060c052602060c0200180546101a051610220516101c0518082101561037f57600080fd5b80820390509050808202821582848304141761039a57600080fd5b809050905090506101e05180806103b057600080fd5b8204905090508181830110156103c557600080fd5b808201905090508155505b5b610220516101c05261022051610200525b8151600101808352811415610194575b505042610240526101a051610260527fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d66040610240a161016051565b63811a40fe60005114156104b657600d5433141561044d57600161046b565b600f541561046757600660c052602060c02054421161046a565b60005b5b5b61047557600080fd5b6101406000600a818352015b610140516101405161016052610160516006580161003a565b610140526000505b8151600101808352811415610481575b5050005b600015610671575b61018052610140526101605260006101a0526020610240600463900cf0cf6101e0526101fc610140515afa6104f257600080fd5b601f3d116104ff57600080fd5b600050610240516101c0526101e060006080818352015b6101c0516101a05110151561052a5761065d565b6101a0516101c05181818301101561054157600080fd5b80820190509050600281818301101561055957600080fd5b80820190509050600280820490509050610200526102206080610320602463d1febfb96102a052610200516102c0526102bc610140515afa61059a57600080fd5b607f3d116105a757600080fd5b61032080808080516103a0525050602081019050808080516103c0525050602081019050808080516103e05250506020810190508080805161040052505050506000506103a0805182528060200151826020015280604001518260400152806060015182606001525050610160516102605111151561062d57610200516101a05261064c565b6102005160018082101561064057600080fd5b808203905090506101c0525b5b8151600101808352811415610516575b50506101a051600052600051610180515650005b60001561080a575b6101c0526101405261016052610180526101a05260006101e0526101a0516102005261022060006080818352015b610200516101e0511015156106bb576107f6565b6101e051610200518181830110156106d257600080fd5b8082019050905060028181830110156106ea57600080fd5b8082019050905060028082049050905061024052610260608061038060446328d09d476102e052610160516103005261024051610320526102fc610140515afa61073357600080fd5b607f3d1161074057600080fd5b61038080808080516104005250506020810190508080805161042052505060208101905080808051610440525050602081019050808080516104605250505050600050610400805182528060200151826020015280604001518260400152806060015182606001525050610180516102a0511115156107c657610240516101e0526107e5565b610240516001808210156107d957600080fd5b80820390509050610200525b5b81516001018083528114156106a7575b50506101e0516000526000516101c0515650005b63ace296fb6000511415610a1d5760043560a01c1561082857600080fd5b600854610140526020610200602463010ae757610180526004356101a05261019c610140515afa61085857600080fd5b601f3d1161086557600080fd5b6000506102005161016052610140516101605161018051610140516101a0526004356101c0526024356101e0526101605161020052610200516101e0516101c0516101a05160065801610679565b6102605261018052610160526101405261026051610180526101a060806102c060446328d09d476102205260043561024052610180516102605261023c610140515afa6108ff57600080fd5b607f3d1161090c57600080fd5b6102c080808080516103405250506020810190508080805161036052505060208101905080808051610380525050602081019050808080516103a052505050506000506103408051825280602001518260200152806040015182604001528060600151826060015250506101a0516101c0516024356101e0518082101561099257600080fd5b808203905090506040518111156109a857600080fd5b808202808060008112156109b857195b607f1c156109c557600080fd5b905090509050808203808060008112156109db57195b607f1c156109e857600080fd5b9050905090506000808212156109fe5780610a00565b815b905090506000811215610a1257600080fd5b60005260206000f350005b600015610cdb575b610140526008546101605260015461018052426201518080820490509050620151808082028215828483041417610a5b57600080fd5b809050905090506101a052610160513b610a7457600080fd5b60006000600463c2c4c5c16101c0526101dc6000610160515af1610a9757600080fd5b6101c06000608c818352015b6101a051610180511115610aba57610ccc56610c99565b6101405161016051610180516101a0516101c0516101e051610160516102005261018051610220526102205161020051600658016104be565b610280526101e0526101c0526101a052610180526101605261014052610280516101e0526102006080610300602463d1febfb9610280526101e0516102a05261029c610160515afa610b4457600080fd5b607f3d11610b5157600080fd5b6103008080808051610380525050602081019050808080516103a0525050602081019050808080516103c0525050602081019050808080516103e0525050505060005061038080518252806020015182602001528060400151826040015280606001518260600152505060006102805261024051610180511115610bff57610180516102405180821015610be457600080fd5b80820390509050604051811115610bfa57600080fd5b610280525b61020051610220516102805180820280806000811215610c1b57195b607f1c15610c2857600080fd5b90509050905080820380806000811215610c3e57195b607f1c15610c4b57600080fd5b905090509050600080821215610c615780610c63565b815b905090506000811215610c7557600080fd5b6101805166038d7ea4c680008110610c8c57600080fd5b600c60c052602060c02001555b610180805162015180818183011015610cb157600080fd5b808201905090508152505b8151600101808352811415610aa3575b50506101805160015561014051565b63b21ed5026000511415610cf75760065801610a25565b600050005b6387e05d3e6000511415610d5c5760043560a01c15610d1557600080fd5b60243560a01c15610d2557600080fd5b600d543314610d3357600080fd5b6001600460043560e05260c052604060c02055602435600560043560e05260c052604060c02055005b60001561166d575b6101a05261014052610160526101805260006101c05260006101e05260006102005260006102205260006102405260006102605260006102805260006102a05260006102c05260006102e05260006103005260206103c0602463010ae75761034052610140516103605261035c610160515afa610de057600080fd5b601f3d11610ded57600080fd5b6000506103c0516103205260005461034052610320511515610e4557610140610360525b600061036051111515610e2357610e3f565b602061036051036101e001516020610360510361036052610e11565b6101a051565b60026101405160e05260c052604060c0205461036052610360511515610f3f576101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516102c0516102e051610300516103205161034051610360516101605161038052610140516103a052610340516103c052610320516103e0526103e0516103c0516103a0516103805160065801610679565b61044052610360526103405261032052610300526102e0526102c0526102a05261028052610260526102405261022052610200526101e0526101c0526101a052610180526101605261014052610440516101c052610f56565b60036101405160e05260c052604060c020546101c0525b6101c0511515610f675760016101c0525b61038060806104a060446328d09d476104005261014051610420526101c0516104405261041c610160515afa610f9c57600080fd5b607f3d11610fa957600080fd5b6104a080808080516105205250506020810190508080805161054052505060208101905080808051610560525050602081019050808080516105805250505050600050610520805182528060200151826020015280604001518260400152806060015182606001525050610360511515611080576103c0516201518081818301101561103457600080fd5b8082019050905060018082101561104a57600080fd5b80820390509050620151808082049050905062015180808202821582848304141761107457600080fd5b80905090509050610360525b61018051610360511015156110cb57610140610400525b6000610400511115156110a9576110c5565b602061040051036101e001516020610400510361040052611097565b6101a051565b610340516103605110156110e25761034051610360525b6080366104003761048060006096818352015b610180516103605110151561110957611425565b6103c0516103605110151561112757610320516101c051111561112a565b60005b15611245576101c08051600181818301101561114557600080fd5b80820190509050815250610400610380805182528060200151826020015280604001518260400152806060015182606001525050610320516101c05111156111935760803661038037611240565b610380608061054060446328d09d476104a052610140516104c0526101c0516104e0526104bc610160515afa6111c857600080fd5b607f3d116111d557600080fd5b61054080808080516105c0525050602081019050808080516105e0525050602081019050808080516106005250506020810190508080805161062052505050506000506105c08051825280602001518260200152806040015182604001528060600151826060015250505b611414565b61036051610440518082101561125a57600080fd5b8082039050905060405181111561127057600080fd5b6104a052610400516104a051610420518082028080600081121561129057195b607f1c1561129d57600080fd5b905090509050808203808060008112156112b357195b607f1c156112c057600080fd5b9050905090506000808212156112d657806112d8565b815b9050905060008112156112ea57600080fd5b6104c0526104c051151561130657610320516101c05111611309565b60005b1561131357611425565b60006104c05111156113f1576104e06000600a818352015b6101e06104e051600a811061133f57600080fd5b6020020180516104c0516104e051600a811061135a57600080fd5b60076103605160e05260c052604060c02060c052602060c0200154808202821582848304141761138957600080fd5b809050905090506103605166038d7ea4c6800081106113a757600080fd5b600c60c052602060c020015480806113be57600080fd5b8204905090508181830110156113d357600080fd5b808201905090508152505b815160010180835281141561132b575b50505b61036080516201518081818301101561140957600080fd5b808201905090508152505b5b81516001018083528114156110f5575b5050610320516101c05160018082101561143e57600080fd5b80820390509050808211156114535780611455565b815b905090506101c0526101c05160036101405160e05260c052604060c020556103605160026101405160e05260c052604060c020556101405161048052600160046101405160e05260c052604060c0205414156114c25760056101405160e05260c052604060c02054610480525b6104a06000600a818352015b60006101e06104a051600a81106114e457600080fd5b602002015118156115c5576104a051600a811061150057600080fd5b600960c052602060c02001546104c0526020610580604463a9059cbb6104e05261048051610500526101e06104a051600a811061153c57600080fd5b6020020151610520526104fc60006104c0515af161155957600080fd5b601f3d1161156657600080fd5b6000506105805161157657600080fd5b6104a051600a811061158757600080fd5b600b60c052602060c0200180546101e06104a051600a81106115a857600080fd5b6020020151808210156115ba57600080fd5b808203905090508155505b6101e06104a051600a81106115d957600080fd5b60200201516104c0526101c0516104e0526103205161050052610140517f9cdcf2f7714cca3508c7f0110b04a90a80a3a8dd0e35de99689db74d28c5383e60606104c0a25b81516001018083528114156114ce575b50506101406104a0525b60006104a05111151561164a57611666565b60206104a051036101e0015160206104a051036104a052611638565b6101a05156005b634e71d92d60005114156116855733610140526116bb565b631e83409a60005114156116b35760043560a01c156116a357600080fd5b60206004610140376000506116bb565b60001561182a575b62ffffff54156116ca57600080fd5b600162ffffff55601154156116de57600080fd5b600154421015156116fe576101405160065801610a25565b610140526000505b600660c052602060c0205461016052600f541561172057610160514211611723565b60005b1561177d576101806000600a818352015b610140516101605161018051610180516101a0526101a0516006580161003a565b6101805261016052610140526000505b8151600101808352811415611734575b505042610160525b6101605162015180808204905090506201518080820282158284830414176117a457600080fd5b8090509050905061016052600062ffffff55610140610140516101605161014051610180526008546101a052610160516101c0526101c0516101a0516101805160065801610d64565b610220526102405261026052610280526102a0526102c0526102e0526103005261032052610340526101605261014052610220f3600062ffffff55005b637b935a236000511415611a2d5762ffffff541561184757600080fd5b600162ffffff556000610120525b610120516004013560a01c1561186a57600080fd5b602061012051016101205261028061012051101561188757611855565b6011541561189457600080fd5b600154421015156118ac5760065801610a25565b6000505b600660c052602060c0205461014052600f54156118ce576101405142116118d1565b60005b15611923576101606000600a818352015b61014051610160516101605161018052610180516006580161003a565b61016052610140526000505b81516001018083528114156118e2575b505042610140525b61014051620151808082049050905062015180808202821582848304141761194a57600080fd5b8090509050905061014052600854610160526101a060006014818352015b60206101a05102600401356101805261018051151561198657611a10565b6101405161016051610180516101a051610180516101c052610160516101e0526101405161020052610200516101e0516101c05160065801610d64565b61026052610280526102a0526102c0526102e05261030052610320526103405261036052610380526101a052610180526101605261014052610260505b8151600101808352811415611968575b50506001600052600062ffffff5560206000f350600062ffffff55005b6389afcb446000511415611b635760043560a01c15611a4b57600080fd5b60115415611a5857600080fd5b60206101e060246370a0823161016052336101805261017c6004355afa611a7e57600080fd5b601f3d11611a8b57600080fd5b6000506101e051610140526000610140511815611b5657602061022060646323b872dd610160523361018052306101a052610140516101c05261017c60006004355af1611ad757600080fd5b601f3d11611ae457600080fd5b60005061022050600f5415611b0557600660c052602060c020544211611b08565b60005b15611b55576101606000600a818352015b61014051610160516101605161018052610180516006580161003a565b61016052610140526000505b8151600101808352811415611b19575b50505b5b600160005260206000f350005b63b1d3db756000511415611bc55760043560a01c15611b8157600080fd5b600d543314611b8f57600080fd5b600435600e55600435610140527f59a407284ae6e2986675fa1400d6498af928ed01f4fd2dd6be4a2a8b4fc35b346020610140a1005b63c0e991a66000511415611c2f57600d543314611be157600080fd5b6000600e5418611bf057600080fd5b600e546101405261014051600d5561014051610160527f756f845176805c8ebf249854e909627308157f63c96e470e44a9e8549ba6fb1e6020610160a1005b632121bfc36000511415611c8b57600d543314611c4b57600080fd5b600f54156101405261014051600f5561014051610160527fdbe6ac1081ebd8e648718341126659456f4009fcadfe1c23f66f5e61522610b26020610160a1005b63e36988536000511415611d7557600d543314611ca757600080fd5b60016011556101406000600a818352015b61014051600a8110611cc957600080fd5b600960c052602060c02001546101605260206102c0604463a9059cbb6102205260105461024052602061020060246370a0823161018052306101a05261019c610160515afa611d1757600080fd5b601f3d11611d2457600080fd5b600050610200516102605261023c6000610160515af1611d4357600080fd5b601f3d11611d5057600080fd5b6000506102c051611d6057600080fd5b5b8151600101808352811415611cb8575b5050005b63db2f5f796000511415611f2d5760043560a01c15611d9357600080fd5b600d543314611da157600080fd5b60206101e060246370a0823161016052306101805261017c6004355afa611dc757600080fd5b601f3d11611dd457600080fd5b6000506101e05161014052600060046101c0527fa9059cbb000000000000000000000000000000000000000000000000000000006101e0526101c060048060208461022001018260208501600060045af150508051820191505060105460208261022001015260208101905061014051602082610220010152602081019050806102205261022090508051602001806102c08284600060045af1611e7757600080fd5b505060206103806102c0516102e060006004355af1611e9557600080fd5b60203d80821115611ea65780611ea8565b815b90509050610360526103608051602001806101608284600060045af1611ecd57600080fd5b50506000610160511815611f2057610160806020015160008251806020901315611ef657600080fd5b8091901215611f0457600080fd5b806020036101000a82049050905090501515611f1f57600080fd5b5b600160005260206000f350005b63853f21c86000511415611f6c5760043560a01c15611f4b57600080fd5b600d543314611f5957600080fd5b600435601055600160005260206000f350005b632212dbc36000511415611f86574260005260206000f350005b63834ee4176000511415611fa25760005460005260206000f350005b63127dcbd36000511415611fbe5760015460005260206000f350005b632a2a314b6000511415611ff85760043560a01c15611fdc57600080fd5b600260043560e05260c052604060c0205460005260206000f350005b63d5d46e8860005114156120325760043560a01c1561201657600080fd5b600360043560e05260c052604060c0205460005260206000f350005b632d0372c6600051141561206c5760043560a01c1561205057600080fd5b600460043560e05260c052604060c0205460005260206000f350005b63457ceeda60005114156120a65760043560a01c1561208a57600080fd5b600560043560e05260c052604060c0205460005260206000f350005b63c628844360005114156120db57600435600a81106120c457600080fd5b600660c052602060c020015460005260206000f350005b633fd83e9e600051141561211e57602435600a81106120f957600080fd5b600760043560e05260c052604060c02060c052602060c020015460005260206000f350005b63dfe05031600051141561213a5760085460005260206000f350005b634f64b2be600051141561216f57600435600a811061215857600080fd5b600960c052602060c020015460005260206000f350005b632f0c222e600051141561218b57600a5460005260206000f350005b639a03be5160005114156121c057600435600a81106121a957600080fd5b600b60c052602060c020015460005260206000f350005b63d4dafba860005114156121fb5760043566038d7ea4c6800081106121e457600080fd5b600c60c052602060c020015460005260206000f350005b63f851a440600051141561221757600d5460005260206000f350005b6317f7182a600051141561223357600e5460005260206000f350005b63aeba4737600051141561224f57600f5460005260206000f350005b632c3f531e600051141561226b5760105460005260206000f350005b639c868ac060005114156122875760115460005260206000f350005b5b60006000fd5b61018661241403610186600039610186612414036000f30000000000000000000000003ae658656d1c526144db371faef2fff7170654ee000000000000000000000000000000000000000000000000000000006239118000000000000000000000000010b620b2dbac4faa7d7ffd71da486f5d44cd86f900000000000000000000000021be370d5312f44cb42ce377bc9b8a0cef1a4c83000000000000000000000000841fad6eae12c286d1fd18d1d525dffa75c7effe000000000000000000000000c5713b6a0f26bf0fdc1c52b90cd184d950be515c000000000000000000000000468003b688943977e6130f4f68f23aad939a1040000000000000000000000000f24bcf4d1e507740041c9cfd2dddb29585adce1e000000000000000000000000a48d959ae2e88f1daa7d5f611e01908106de759800000000000000000000000010010078a54396f62c96df8532dc2b4847d47ed3000000000000000000000000a147268f35db4ae3932eabe42af16c36a8b89690000000000000000000000000de5ed76e7c05ec5e4572cfc88d1acea165109e44000000000000000000000000f4c5b06ff9cd8f685ddcc58202597e56f1c0faee000000000000000000000000f4c5b06ff9cd8f685ddcc58202597e56f1c0faee

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.