Contract 0x326236f487ac37fc2cb69569b20173e9ccf639c9 4

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x5d19eba58dae1489625c626909acb5875ca13a260a58b63de57fbd32e77042f8Claim518240922022-12-03 12:23:339 mins ago0xeac9360f031c9702a6b6590adbe9e2015b663ec0 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.190343298028
0xa981088fd18bf2a04a889d34af95a0ef4d4979bad9d3af302a45e9858d727d3fClaim518240572022-12-03 12:21:5011 mins ago0x7ea2d94c0bb347014db4c08e70fac5f67793ffe0 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.212827304571
0x3e8639b55b09f1fb8af3e35c06f1d7a4950c20071511e3047982dfde2328e608Claim518238412022-12-03 12:14:0219 mins ago0xc8cc04fed995f081547f013a2f5c205c9fa53545 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.1012739209
0x561668c13800662bde265e52e171732c67ee4a0a2048c0668d041cd5d5a86500Claim518237152022-12-03 12:09:4523 mins ago0x41b1fb97e40f1d486e886a6b9a8d720cea1e533c IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.030700297675
0x007737ef52cf3c6867ea51acec902972447d305528ff23db06e5e612e8da6c7aClaim518235212022-12-03 12:03:3129 mins ago0x4f9b3eb1cdb7a46b2cd42da6789c91ab633cddf8 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.014064302
0x911323c02761e37b9303a1029f3eaa35e76303ae04051ba221525aa889cc3157Claim518232222022-12-03 11:55:3037 mins ago0x953075f0b37ad0963abe6a2de6ef1fdb0c71441d IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.07927009208
0x40e19edddf463e4c233b3129ef2329eb6f509b16f4746f37c085e55480f391ecClaim518231892022-12-03 11:53:4739 mins ago0xb6ec4f8fedd5299aab1c425d330033c3f6d7a006 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.022613479827
0xedaecc80d49b9c953412a49e16dacd9cd754609f06014b92dae9fc9d160c761dClaim518227292022-12-03 11:39:2453 mins ago0x79c2b83c2d0d3d36f225a49d862200013fc67760 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.03877742076
0xecee950125e9a4dc703edb7d89ff0bc20288605efe20ec92f75e15a7e388a1e2Claim518221072022-12-03 11:14:321 hr 18 mins ago0x7524d7cdb3475b346b7f34b03d8a3f3fbf43a842 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.109480895107
0x85dda73245e7fce9968bc232c025c0784df05d5b98f16a68aec97ef55700442aClaim518217652022-12-03 10:59:461 hr 33 mins ago0xf5bf3b7b7d03efd34ba1e1bcf1694080975d8a1c IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.033619040103
0x66e7a9bd1a05fa472b7074bffd834937d9d09b17c9a4f53c834008e757cf9e28Claim518216852022-12-03 10:56:281 hr 36 mins ago0xeeaf76370ec1160951469caddf4055656da2f824 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.221955806325
0x107f19bb5c01e034add29cd96464f0f7efd35c183a97acd474a349b203e9dc31Claim518216842022-12-03 10:56:221 hr 36 mins ago0xd131f1bcdd547e067af447dd3c36c99d6be9fdeb IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.033507526182
0x2763b1d7e398d95b765b38a12ce888258d04cac45c14778689fedfb424fa9796Claim518216792022-12-03 10:56:141 hr 36 mins ago0xed51d70c30acbab4ca261057c4dd94f8942127de IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.07395388
0xffce19678d45914ecb391a7d455b082ee3cd851c52b195804dc8520d936d2067Claim518214602022-12-03 10:46:011 hr 47 mins ago0xbc1159fcaa1ac43e9a12d3f9e3fbe32b9a676701 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.017968353916
0x94e328a0bc227a060c62cbe6705ecf7b9a3992e556360c21f19df93d4a7ff0eeClaim518210132022-12-03 10:34:221 hr 58 mins ago0x7c11972a0fad3ac0cc062b39d66d5bb9a2c3c07c IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.007513318465
0x604a368077a8fb9eed8de8fe84b19ca16e3d7a12d897533fd3a96d04d18fba88Claim518206622022-12-03 10:25:082 hrs 8 mins ago0xc03876ddf9fbdc47ae66bc4c7a639f0d78d90904 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.029141307
0xb4db5fc90151eeeee6f1ff777b3715a0ccba086960f0586a9c361844570bce06Claim518204262022-12-03 10:18:592 hrs 14 mins ago0x5223c1c21c1894ee58ded4d09ccfa239a272af16 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.023252076408
0xbaee42c81eba93ce5fd68f9a65165051a99c975a51645399ba3f77cd855b5067Claim518200092022-12-03 10:08:042 hrs 25 mins ago0xa784b62b78362541d3e75108c5b4daf0fcce1af7 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.120315721282
0xb8d75da5fdb9ee32e57a5d830e8f7dbaeb77265ef0d1131433af2e7571a336c1Claim518194072022-12-03 9:50:122 hrs 42 mins ago0x0467fff226395f1e188e9a43a913deb363dc795b IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.028526184869
0x496bae899e3f1c28e6cd7051c8f3a4eacd113d80af0f2f0b718d90b087fd0003Claim518192912022-12-03 9:46:582 hrs 46 mins ago0x5c9de63470d0d6d8103f7c83f1be4f55998706fc IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.007276715592
0xc272cfab241b3d8236d76d3296bd9a7abd57040b7d7626b75619a9fa9d060b50Claim518192902022-12-03 9:46:582 hrs 46 mins ago0x5c9de63470d0d6d8103f7c83f1be4f55998706fc IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.46833712212
0x25bba50f5ecc640fc0047a2917818a857426a9cf91d9be6bae610808719134e4Claim518192382022-12-03 9:45:332 hrs 47 mins ago0x8e6f44c687cbd445c1ed4dea39bdbc0deddbf175 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.041278366123
0xf739e44f83f8bb48a34dc42be561dcc0237430b1b988982dc0d881fc1b2decb5Claim518183482022-12-03 9:20:333 hrs 12 mins ago0x41ad88db3627204eae966371fea9ea6a08041633 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.211866666423
0x5e347fbb060f9526cf3da4e568d7144d8578ac1d61f1ff615ae7d29c3e50c0e2Claim518179162022-12-03 9:06:443 hrs 26 mins ago0xf95c6236a41b83c0c601d66ffefc087e11a8a0ff IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.03809935
0x7f5b9b79addc51765bbe8a43d591cfaa7f357d188b3bb8e1335ee9e154bc23abClaim518177072022-12-03 8:58:263 hrs 34 mins ago0x82eeb3d7f38289667ba77f7812d4690a5da257f7 IN  0x326236f487ac37fc2cb69569b20173e9ccf639c90 FTM0.011165531488
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x20ee9daa6228f85d8b8df8e9f1e93a5b366befab269bf5844f555720241ca3de346274022022-03-28 14:55:51249 days 21 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.