ETH Price: $2,407.82 (-0.72%)

Contract

0x5d5Bea9f0Fc13d967511668a60a3369fD53F784F

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim1243905422024-08-23 2:24:2143 days ago1724379861IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000000900950.00017895
Claim1243471632024-08-22 2:18:2344 days ago1724293103IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000000903280.0001515
Claim1243471482024-08-22 2:17:5344 days ago1724293073IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000000732640.00015027
Claim1243470362024-08-22 2:14:0944 days ago1724292849IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000000871150.00014625
Claim1241980442024-08-18 15:27:4548 days ago1723994865IN
Velodrome Finance: Rewards Distributor
0 ETH0.000000260070.00046291
Claim1230414852024-07-22 20:55:4775 days ago1721681747IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000206372810.0622903
Claim1230414782024-07-22 20:55:3375 days ago1721681733IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000331586230.06179666
Claim1230414512024-07-22 20:54:3975 days ago1721681679IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000357289550.06275698
Claim1226475882024-07-13 18:05:5384 days ago1720893953IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000004599350.00083728
Claim1225463662024-07-11 9:51:4986 days ago1720691509IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000012429740.00203893
Claim1222929712024-07-05 13:05:1992 days ago1720184719IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000258810260.06794669
Claim1222929492024-07-05 13:04:3592 days ago1720184675IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000389380380.06843853
Claim1218596442024-06-25 12:21:05102 days ago1719318065IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000187996730.06090609
Claim1218596162024-06-25 12:20:09102 days ago1719318009IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000328708340.0612991
Claim1218595962024-06-25 12:19:29102 days ago1719317969IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000350483240.0616068
Claim1205620722024-05-26 11:28:41132 days ago1716722921IN
Velodrome Finance: Rewards Distributor
0 ETH0.000020530660.06102138
Claim1205620302024-05-26 11:27:17132 days ago1716722837IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000327902330.06133601
Claim1203868792024-05-22 10:08:55136 days ago1716372535IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000345027010.06063269
Claim1198011382024-05-08 20:44:13150 days ago1715201053IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000193937310.06168322
Claim1198011332024-05-08 20:44:03150 days ago1715201043IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000194015650.06170719
Claim1197655422024-05-08 0:57:41150 days ago1715129861IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000221828560.0618588
Claim1197655332024-05-08 0:57:23150 days ago1715129843IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000329505010.0616402
Claim1194934312024-05-01 17:47:19157 days ago1714585639IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000247540020.0605533
Claim1194934002024-05-01 17:46:17157 days ago1714585577IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000349590920.0614309
Claim1190833312024-04-22 5:57:19166 days ago1713765439IN
Velodrome Finance: Rewards Distributor
0 ETH0.000002270680.00659319
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1075583122023-07-30 11:10:01433 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075583122023-07-30 11:10:01433 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075583122023-07-30 11:10:01433 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075583122023-07-30 11:10:01433 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25433 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25433 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25433 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25433 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47433 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47433 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47433 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47433 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27433 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27433 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27433 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27433 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39433 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39433 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39433 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39433 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39433 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51433 days ago1690709571
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51433 days ago1690709571
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51433 days ago1690709571
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51433 days ago1690709571
Velodrome Finance: Rewards Distributor
0 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RewardsDistributor

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at optimistic.etherscan.io on 2022-06-01
*/

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.13;

library Math {
    function max(uint a, uint b) internal pure returns (uint) {
        return a >= b ? a : b;
    }
    function min(uint a, uint b) internal pure returns (uint) {
        return a < b ? a : b;
    }
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
    function cbrt(uint256 n) internal pure returns (uint256) { unchecked {
        uint256 x = 0;
        for (uint256 y = 1 << 255; y > 0; y >>= 3) {
            x <<= 1;
            uint256 z = 3 * x * (x + 1) + 1;
            if (n / y >= z) {
                n -= y * z;
                x += 1;
            }
        }
        return x;
    }}
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function transfer(address recipient, uint amount) external returns (bool);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function balanceOf(address) external view returns (uint);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

interface IRewardsDistributor {
    function checkpoint_token() external;
    function checkpoint_total_supply() external;
}

interface IVotingEscrow {

    struct Point {
        int128 bias;
        int128 slope; // # -dweight / dt
        uint256 ts;
        uint256 blk; // block
    }

    function token() external view returns (address);
    function team() external returns (address);
    function epoch() external view returns (uint);
    function point_history(uint loc) external view returns (Point memory);
    function user_point_history(uint tokenId, uint loc) external view returns (Point memory);
    function user_point_epoch(uint tokenId) external view returns (uint);

    function ownerOf(uint) external view returns (address);
    function isApprovedOrOwner(address, uint) external view returns (bool);
    function transferFrom(address, address, uint) external;

    function voting(uint tokenId) external;
    function abstain(uint tokenId) external;
    function attach(uint tokenId) external;
    function detach(uint tokenId) external;

    function checkpoint() external;
    function deposit_for(uint tokenId, uint value) external;
    function create_lock_for(uint, uint, address) external returns (uint);

    function balanceOfNFT(uint) external view returns (uint);
    function totalSupply() external view returns (uint);
}

/*

@title Curve Fee Distribution modified for ve(3,3) emissions
@author Curve Finance, andrecronje
@license MIT

*/

contract RewardsDistributor is IRewardsDistributor {

    event CheckpointToken(
        uint time,
        uint tokens
    );

    event Claimed(
        uint tokenId,
        uint amount,
        uint claim_epoch,
        uint max_epoch
    );

    uint constant WEEK = 7 * 86400;

    uint public start_time;
    uint public time_cursor;
    mapping(uint => uint) public time_cursor_of;
    mapping(uint => uint) public user_epoch_of;

    uint public last_token_time;
    uint[1000000000000000] public tokens_per_week;

    address public voting_escrow;
    address public token;
    uint public token_last_balance;

    uint[1000000000000000] public ve_supply;

    address public depositor;

    constructor(address _voting_escrow) {
        uint _t = block.timestamp / WEEK * WEEK;
        start_time = _t;
        last_token_time = _t;
        time_cursor = _t;
        address _token = IVotingEscrow(_voting_escrow).token();
        token = _token;
        voting_escrow = _voting_escrow;
        depositor = msg.sender;
        require(IERC20(_token).approve(_voting_escrow, type(uint).max));
    }

    function timestamp() external view returns (uint) {
        return block.timestamp / WEEK * WEEK;
    }

    function _checkpoint_token() internal {
        uint token_balance = IERC20(token).balanceOf(address(this));
        uint to_distribute = token_balance - token_last_balance;
        token_last_balance = token_balance;

        uint t = last_token_time;
        uint since_last = block.timestamp - t;
        last_token_time = block.timestamp;
        uint this_week = t / WEEK * WEEK;
        uint next_week = 0;

        for (uint i = 0; i < 20; i++) {
            next_week = this_week + WEEK;
            if (block.timestamp < next_week) {
                if (since_last == 0 && block.timestamp == t) {
                    tokens_per_week[this_week] += to_distribute;
                } else {
                    tokens_per_week[this_week] += to_distribute * (block.timestamp - t) / since_last;
                }
                break;
            } else {
                if (since_last == 0 && next_week == t) {
                    tokens_per_week[this_week] += to_distribute;
                } else {
                    tokens_per_week[this_week] += to_distribute * (next_week - t) / since_last;
                }
            }
            t = next_week;
            this_week = next_week;
        }
        emit CheckpointToken(block.timestamp, to_distribute);
    }

    function checkpoint_token() external {
        assert(msg.sender == depositor);
        _checkpoint_token();
    }

    function _find_timestamp_epoch(address ve, uint _timestamp) internal view returns (uint) {
        uint _min = 0;
        uint _max = IVotingEscrow(ve).epoch();
        for (uint i = 0; i < 128; i++) {
            if (_min >= _max) break;
            uint _mid = (_min + _max + 2) / 2;
            IVotingEscrow.Point memory pt = IVotingEscrow(ve).point_history(_mid);
            if (pt.ts <= _timestamp) {
                _min = _mid;
            } else {
                _max = _mid - 1;
            }
        }
        return _min;
    }

    function _find_timestamp_user_epoch(address ve, uint tokenId, uint _timestamp, uint max_user_epoch) internal view returns (uint) {
        uint _min = 0;
        uint _max = max_user_epoch;
        for (uint i = 0; i < 128; i++) {
            if (_min >= _max) break;
            uint _mid = (_min + _max + 2) / 2;
            IVotingEscrow.Point memory pt = IVotingEscrow(ve).user_point_history(tokenId, _mid);
            if (pt.ts <= _timestamp) {
                _min = _mid;
            } else {
                _max = _mid -1;
            }
        }
        return _min;
    }

    function ve_for_at(uint _tokenId, uint _timestamp) external view returns (uint) {
        address ve = voting_escrow;
        uint max_user_epoch = IVotingEscrow(ve).user_point_epoch(_tokenId);
        uint epoch = _find_timestamp_user_epoch(ve, _tokenId, _timestamp, max_user_epoch);
        IVotingEscrow.Point memory pt = IVotingEscrow(ve).user_point_history(_tokenId, epoch);
        return Math.max(uint(int256(pt.bias - pt.slope * (int128(int256(_timestamp - pt.ts))))), 0);
    }

    function _checkpoint_total_supply() internal {
        address ve = voting_escrow;
        uint t = time_cursor;
        uint rounded_timestamp = block.timestamp / WEEK * WEEK;
        IVotingEscrow(ve).checkpoint();

        for (uint i = 0; i < 20; i++) {
            if (t > rounded_timestamp) {
                break;
            } else {
                uint epoch = _find_timestamp_epoch(ve, t);
                IVotingEscrow.Point memory pt = IVotingEscrow(ve).point_history(epoch);
                int128 dt = 0;
                if (t > pt.ts) {
                    dt = int128(int256(t - pt.ts));
                }
                ve_supply[t] = Math.max(uint(int256(pt.bias - pt.slope * dt)), 0);
            }
            t += WEEK;
        }
        time_cursor = t;
    }

    function checkpoint_total_supply() external {
        _checkpoint_total_supply();
    }

    function _claim(uint _tokenId, address ve, uint _last_token_time) internal returns (uint) {
        uint user_epoch = 0;
        uint to_distribute = 0;

        uint max_user_epoch = IVotingEscrow(ve).user_point_epoch(_tokenId);
        uint _start_time = start_time;

        if (max_user_epoch == 0) return 0;

        uint week_cursor = time_cursor_of[_tokenId];
        if (week_cursor == 0) {
            user_epoch = _find_timestamp_user_epoch(ve, _tokenId, _start_time, max_user_epoch);
        } else {
            user_epoch = user_epoch_of[_tokenId];
        }

        if (user_epoch == 0) user_epoch = 1;

        IVotingEscrow.Point memory user_point = IVotingEscrow(ve).user_point_history(_tokenId, user_epoch);

        if (week_cursor == 0) week_cursor = (user_point.ts + WEEK - 1) / WEEK * WEEK;
        if (week_cursor >= last_token_time) return 0;
        if (week_cursor < _start_time) week_cursor = _start_time;

        IVotingEscrow.Point memory old_user_point;

        for (uint i = 0; i < 50; i++) {
            if (week_cursor >= _last_token_time) break;

            if (week_cursor >= user_point.ts && user_epoch <= max_user_epoch) {
                user_epoch += 1;
                old_user_point = user_point;
                if (user_epoch > max_user_epoch) {
                    user_point = IVotingEscrow.Point(0,0,0,0);
                } else {
                    user_point = IVotingEscrow(ve).user_point_history(_tokenId, user_epoch);
                }
            } else {
                int128 dt = int128(int256(week_cursor - old_user_point.ts));
                uint balance_of = Math.max(uint(int256(old_user_point.bias - dt * old_user_point.slope)), 0);
                if (balance_of == 0 && user_epoch > max_user_epoch) break;
                if (balance_of != 0) {
                    to_distribute += balance_of * tokens_per_week[week_cursor] / ve_supply[week_cursor];
                }
                week_cursor += WEEK;
            }
        }

        user_epoch = Math.min(max_user_epoch, user_epoch - 1);
        user_epoch_of[_tokenId] = user_epoch;
        time_cursor_of[_tokenId] = week_cursor;

        emit Claimed(_tokenId, to_distribute, user_epoch, max_user_epoch);

        return to_distribute;
    }

    function _claimable(uint _tokenId, address ve, uint _last_token_time) internal view returns (uint) {
        uint user_epoch = 0;
        uint to_distribute = 0;

        uint max_user_epoch = IVotingEscrow(ve).user_point_epoch(_tokenId);
        uint _start_time = start_time;

        if (max_user_epoch == 0) return 0;

        uint week_cursor = time_cursor_of[_tokenId];
        if (week_cursor == 0) {
            user_epoch = _find_timestamp_user_epoch(ve, _tokenId, _start_time, max_user_epoch);
        } else {
            user_epoch = user_epoch_of[_tokenId];
        }

        if (user_epoch == 0) user_epoch = 1;

        IVotingEscrow.Point memory user_point = IVotingEscrow(ve).user_point_history(_tokenId, user_epoch);

        if (week_cursor == 0) week_cursor = (user_point.ts + WEEK - 1) / WEEK * WEEK;
        if (week_cursor >= last_token_time) return 0;
        if (week_cursor < _start_time) week_cursor = _start_time;

        IVotingEscrow.Point memory old_user_point;

        for (uint i = 0; i < 50; i++) {
            if (week_cursor >= _last_token_time) break;

            if (week_cursor >= user_point.ts && user_epoch <= max_user_epoch) {
                user_epoch += 1;
                old_user_point = user_point;
                if (user_epoch > max_user_epoch) {
                    user_point = IVotingEscrow.Point(0,0,0,0);
                } else {
                    user_point = IVotingEscrow(ve).user_point_history(_tokenId, user_epoch);
                }
            } else {
                int128 dt = int128(int256(week_cursor - old_user_point.ts));
                uint balance_of = Math.max(uint(int256(old_user_point.bias - dt * old_user_point.slope)), 0);
                if (balance_of == 0 && user_epoch > max_user_epoch) break;
                if (balance_of != 0) {
                    to_distribute += balance_of * tokens_per_week[week_cursor] / ve_supply[week_cursor];
                }
                week_cursor += WEEK;
            }
        }

        return to_distribute;
    }

    function claimable(uint _tokenId) external view returns (uint) {
        uint _last_token_time = last_token_time / WEEK * WEEK;
        return _claimable(_tokenId, voting_escrow, _last_token_time);
    }

    function claim(uint _tokenId) external returns (uint) {
        if (block.timestamp >= time_cursor) _checkpoint_total_supply();
        uint _last_token_time = last_token_time;
        _last_token_time = _last_token_time / WEEK * WEEK;
        uint amount = _claim(_tokenId, voting_escrow, _last_token_time);
        if (amount != 0) {
            IVotingEscrow(voting_escrow).deposit_for(_tokenId, amount);
            token_last_balance -= amount;
        }
        return amount;
    }

    function claim_many(uint[] memory _tokenIds) external returns (bool) {
        if (block.timestamp >= time_cursor) _checkpoint_total_supply();
        uint _last_token_time = last_token_time;
        _last_token_time = _last_token_time / WEEK * WEEK;
        address _voting_escrow = voting_escrow;
        uint total = 0;

        for (uint i = 0; i < _tokenIds.length; i++) {
            uint _tokenId = _tokenIds[i];
            if (_tokenId == 0) break;
            uint amount = _claim(_tokenId, _voting_escrow, _last_token_time);
            if (amount != 0) {
                IVotingEscrow(_voting_escrow).deposit_for(_tokenId, amount);
                total += amount;
            }
        }
        if (total != 0) {
            token_last_balance -= total;
        }

        return true;
    }

    // Once off event on contract initialize
    function setDepositor(address _depositor) external {
        require(msg.sender == depositor);
        depositor = _depositor;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_voting_escrow","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"CheckpointToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claim_epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"max_epoch","type":"uint256"}],"name":"Claimed","type":"event"},{"inputs":[],"name":"checkpoint_token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkpoint_total_supply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"claim_many","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"last_token_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_depositor","type":"address"}],"name":"setDepositor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"time_cursor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"time_cursor_of","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token_last_balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokens_per_week","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"user_epoch_of","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"ve_for_at","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ve_supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"voting_escrow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405162001b9f38038062001b9f83398101604081905262000034916200019f565b600062093a80620000468142620001d1565b620000529190620001f4565b90508060008190555080600481905550806001819055506000826001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000d091906200019f565b66038d7ea4c6800680546001600160a01b038381166001600160a01b0319928316811790935566038d7ea4c6800580549188169183168217905566071afd498d00088054909216331790915560405163095ea7b360e01b8152600481019190915260001960248201529192509063095ea7b3906044016020604051808303816000875af115801562000166573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018c919062000222565b6200019657600080fd5b50505062000246565b600060208284031215620001b257600080fd5b81516001600160a01b0381168114620001ca57600080fd5b9392505050565b600082620001ef57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156200021d57634e487b7160e01b600052601160045260246000fd5b500290565b6000602082840312156200023557600080fd5b81518015158114620001ca57600080fd5b61194980620002566000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063834ee417116100ad578063d4dafba811610071578063d4dafba81461024a578063dfe050311461025d578063edf5999714610276578063f2c098b714610289578063fc0c546a1461029c57600080fd5b8063834ee417146101ed578063b21ed502146101f6578063b80777ea146101fe578063c7c4ff4614610206578063d1d58b251461023757600080fd5b8063379607f5116100f4578063379607f514610194578063486d25fe146101a757806368809889146101c75780637f58e8f8146101da578063811a40fe146101e357600080fd5b8063127dcbd31461012657806316aea5c0146101425780631f1db0431461016257806322b04bfc14610185575b600080fd5b61012f60015481565b6040519081526020015b60405180910390f35b61012f610150366004611567565b60036020526000908152604090205481565b6101756101703660046115c7565b6102b5565b6040519015158152602001610139565b61012f66038d7ea4c680075481565b61012f6101a2366004611567565b6103fb565b61012f6101b5366004611567565b60026020526000908152604090205481565b61012f6101d536600461166d565b6104e5565b61012f60045481565b6101eb610628565b005b61012f60005481565b6101eb610652565b61012f61065a565b66071afd498d00085461021f906001600160a01b031681565b6040516001600160a01b039091168152602001610139565b61012f610245366004611567565b610679565b61012f610258366004611567565b6106b9565b66038d7ea4c680055461021f906001600160a01b031681565b61012f610284366004611567565b6106dc565b6101eb61029736600461168f565b6106f2565b66038d7ea4c680065461021f906001600160a01b031681565b600060015442106102c8576102c8610737565b60045462093a806102d981836116ce565b6102e391906116f0565b66038d7ea4c68005549091506001600160a01b03166000805b85518110156103cb5760008682815181106103195761031961170f565b602002602001015190508060000361033157506103cb565b600061033e8286886108da565b905080156103b657604051631dd33fc560e31b815260048101839052602481018290526001600160a01b0386169063ee99fe2890604401600060405180830381600087803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505080846103b39190611725565b93505b505080806103c39061173d565b9150506102fc565b5080156103f0578066038d7ea4c6800760008282546103ea9190611756565b90915550505b506001949350505050565b6000600154421061040e5761040e610737565b60045462093a8061041f81836116ce565b61042991906116f0565b66038d7ea4c680055490915060009061044d9085906001600160a01b0316846108da565b905080156104de5766038d7ea4c6800554604051631dd33fc560e31b815260048101869052602481018390526001600160a01b039091169063ee99fe2890604401600060405180830381600087803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b505050508066038d7ea4c6800760008282546104d89190611756565b90915550505b9392505050565b66038d7ea4c680055460405163391044d760e21b8152600481018490526000916001600160a01b0316908290829063e441135c90602401602060405180830381865afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d919061176d565b9050600061056d83878785610cfe565b6040516309bb79ed60e11b815260048101889052602481018290529091506000906001600160a01b03851690631376f3da90604401608060405180830381865afa1580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e3919061179d565b905061061d8160400151876105f89190611756565b8260200151610607919061180f565b825161061391906118ad565b600f0b6000610df2565b979650505050505050565b66071afd498d0008546001600160a01b03163314610648576106486118fd565b610650610e09565b565b610650610737565b600062093a8061066a81426116ce565b61067491906116f0565b905090565b60008062093a808060045461068e91906116ce565b61069891906116f0565b66038d7ea4c68005549091506104de9084906001600160a01b031683611066565b66038d7ea4c680088166038d7ea4c6800081106106d557600080fd5b0154905081565b60058166038d7ea4c6800081106106d557600080fd5b66071afd498d0008546001600160a01b0316331461070f57600080fd5b66071afd498d000880546001600160a01b0319166001600160a01b0392909216919091179055565b66038d7ea4c68005546001546001600160a01b0390911690600062093a8061075f81426116ce565b61076991906116f0565b9050826001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b5050505060005b60148110156108d2578183116108d25760006107dd8585611403565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b0387169063d1febfb990602401608060405180830381865afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084c919061179d565b90506000816040015186111561086e57604082015161086b9087611756565b90505b61088d818360200151610881919061180f565b835161061391906118ad565b66038d7ea4c680088766038d7ea4c6800081106108ac576108ac61170f565b01555050506108be62093a8084611725565b9250806108ca8161173d565b9150506107c1565b505060015550565b60405163391044d760e21b8152600481018490526000908190819081906001600160a01b0387169063e441135c90602401602060405180830381865afa158015610928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094c919061176d565b600080549192508290036109675760009450505050506104de565b600088815260026020526040812054908190036109915761098a888a8486610cfe565b94506109a3565b60008981526003602052604090205494505b846000036109b057600194505b6040516309bb79ed60e11b8152600481018a9052602481018690526000906001600160a01b038a1690631376f3da90604401608060405180830381865afa1580156109ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a23919061179d565b905081600003610a685762093a8080600162093a808460400151610a479190611725565b610a519190611756565b610a5b91906116ce565b610a6591906116f0565b91505b6004548210610a8057600096505050505050506104de565b82821015610a8c578291505b6040805160808101825260008082526020820181905291810182905260608101829052905b6032811015610c735789841015610c735782604001518410158015610ad65750858811155b15610b9c57610ae6600189611725565b975082915085881115610b255760405180608001604052806000600f0b81526020016000600f0b81526020016000815260200160008152509250610c61565b6040516309bb79ed60e11b8152600481018d9052602481018990526001600160a01b038c1690631376f3da90604401608060405180830381865afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b95919061179d565b9250610c61565b6000826040015185610bae9190611756565b90506000610bd1846020015183610bc5919061180f565b855161061391906118ad565b905080158015610be05750878a115b15610bec575050610c73565b8015610c4f5766038d7ea4c680088666038d7ea4c680008110610c1157610c1161170f565b015460058766038d7ea4c680008110610c2c57610c2c61170f565b0154610c3890836116f0565b610c4291906116ce565b610c4c908a611725565b98505b610c5c62093a8087611725565b955050505b80610c6b8161173d565b915050610ab1565b50610c8885610c8360018a611756565b611558565b60008c8152600360209081526040808320849055600282529182902086905581518e8152908101899052908101829052606081018790529097507fcae2990aa9af8eb1c64713b7eddb3a80bf18e49a94a13fe0d0002b5d61d58f009060800160405180910390a150939998505050505050505050565b60008082815b6080811015610de65781831015610de65760006002610d238486611725565b610d2e906002611725565b610d3891906116ce565b6040516309bb79ed60e11b8152600481018a9052602481018290529091506000906001600160a01b038b1690631376f3da90604401608060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae919061179d565b905087816040015111610dc357819450610dd1565b610dce600183611756565b93505b50508080610dde9061173d565b915050610d04565b50909695505050505050565b600081831015610e0257816104de565b5090919050565b66038d7ea4c68006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c919061176d565b9050600066038d7ea4c680075482610e949190611756565b66038d7ea4c680078390556004549091506000610eb18242611756565b426004559050600062093a80610ec781856116ce565b610ed191906116f0565b90506000805b601481101561102457610eed62093a8084611725565b915081421015610f765783158015610f0457508442145b15610f3e578560058466038d7ea4c680008110610f2357610f2361170f565b016000828254610f339190611725565b909155506110249050565b83610f498642611756565b610f5390886116f0565b610f5d91906116ce565b60058466038d7ea4c680008110610f2357610f2361170f565b83158015610f8357508482145b15610fbd578560058466038d7ea4c680008110610fa257610fa261170f565b016000828254610fb29190611725565b9091555061100b9050565b83610fc88684611756565b610fd290886116f0565b610fdc91906116ce565b60058466038d7ea4c680008110610ff557610ff561170f565b0160008282546110059190611725565b90915550505b819450819250808061101c9061173d565b915050610ed7565b5060408051428152602081018790527fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d6910160405180910390a1505050505050565b60405163391044d760e21b8152600481018490526000908190819081906001600160a01b0387169063e441135c90602401602060405180830381865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d8919061176d565b600080549192508290036110f35760009450505050506104de565b6000888152600260205260408120549081900361111d57611116888a8486610cfe565b945061112f565b60008981526003602052604090205494505b8460000361113c57600194505b6040516309bb79ed60e11b8152600481018a9052602481018690526000906001600160a01b038a1690631376f3da90604401608060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af919061179d565b9050816000036111f45762093a8080600162093a8084604001516111d39190611725565b6111dd9190611756565b6111e791906116ce565b6111f191906116f0565b91505b600454821061120c57600096505050505050506104de565b82821015611218578291505b6040805160808101825260008082526020820181905291810182905260608101829052905b60328110156113f357898410156113f357826040015184101580156112625750858811155b1561132857611272600189611725565b9750829150858811156112b15760405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525092506113e1565b6040516309bb79ed60e11b8152600481018d9052602481018990526001600160a01b038c1690631376f3da90604401608060405180830381865afa1580156112fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611321919061179d565b92506113e1565b600082604001518561133a9190611756565b90506000611351846020015183610bc5919061180f565b9050801580156113605750878a115b1561136c5750506113f3565b80156113cf5766038d7ea4c680088666038d7ea4c6800081106113915761139161170f565b015460058766038d7ea4c6800081106113ac576113ac61170f565b01546113b890836116f0565b6113c291906116ce565b6113cc908a611725565b98505b6113dc62093a8087611725565b955050505b806113eb8161173d565b91505061123d565b50949a9950505050505050505050565b600080600090506000846001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561144a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146e919061176d565b905060005b608081101561154e578183101561154e57600060026114928486611725565b61149d906002611725565b6114a791906116ce565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b0389169063d1febfb990602401608060405180830381865afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061179d565b90508681604001511161152b57819450611539565b611536600183611756565b93505b505080806115469061173d565b915050611473565b5090949350505050565b6000818310610e0257816104de565b60006020828403121561157957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115bf576115bf611580565b604052919050565b600060208083850312156115da57600080fd5b823567ffffffffffffffff808211156115f257600080fd5b818501915085601f83011261160657600080fd5b81358181111561161857611618611580565b8060051b9150611629848301611596565b818152918301840191848101908884111561164357600080fd5b938501935b8385101561166157843582529385019390850190611648565b98975050505050505050565b6000806040838503121561168057600080fd5b50508035926020909101359150565b6000602082840312156116a157600080fd5b81356001600160a01b03811681146104de57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000826116eb57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561170a5761170a6116b8565b500290565b634e487b7160e01b600052603260045260246000fd5b60008219821115611738576117386116b8565b500190565b60006001820161174f5761174f6116b8565b5060010190565b600082821015611768576117686116b8565b500390565b60006020828403121561177f57600080fd5b5051919050565b8051600f81900b811461179857600080fd5b919050565b6000608082840312156117af57600080fd5b6040516080810181811067ffffffffffffffff821117156117d2576117d2611580565b6040526117de83611786565b81526117ec60208401611786565b602082015260408301516040820152606083015160608201528091505092915050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561183f5761183f6116b8565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561186b5761186b6116b8565b60008712925085820587128484161615611887576118876116b8565b8585058712818416161561189d5761189d6116b8565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156118d8576118d86116b8565b8160016001607f1b030183138116156118f3576118f36116b8565b5090039392505050565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220b84f2b69aee5b631b0507ee5c73ad70eae74003f33186732dc46cd0a5d9d178264736f6c634300080d00330000000000000000000000009c7305eb78a432ced5c4d14cac27e8ed569a2e26

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063834ee417116100ad578063d4dafba811610071578063d4dafba81461024a578063dfe050311461025d578063edf5999714610276578063f2c098b714610289578063fc0c546a1461029c57600080fd5b8063834ee417146101ed578063b21ed502146101f6578063b80777ea146101fe578063c7c4ff4614610206578063d1d58b251461023757600080fd5b8063379607f5116100f4578063379607f514610194578063486d25fe146101a757806368809889146101c75780637f58e8f8146101da578063811a40fe146101e357600080fd5b8063127dcbd31461012657806316aea5c0146101425780631f1db0431461016257806322b04bfc14610185575b600080fd5b61012f60015481565b6040519081526020015b60405180910390f35b61012f610150366004611567565b60036020526000908152604090205481565b6101756101703660046115c7565b6102b5565b6040519015158152602001610139565b61012f66038d7ea4c680075481565b61012f6101a2366004611567565b6103fb565b61012f6101b5366004611567565b60026020526000908152604090205481565b61012f6101d536600461166d565b6104e5565b61012f60045481565b6101eb610628565b005b61012f60005481565b6101eb610652565b61012f61065a565b66071afd498d00085461021f906001600160a01b031681565b6040516001600160a01b039091168152602001610139565b61012f610245366004611567565b610679565b61012f610258366004611567565b6106b9565b66038d7ea4c680055461021f906001600160a01b031681565b61012f610284366004611567565b6106dc565b6101eb61029736600461168f565b6106f2565b66038d7ea4c680065461021f906001600160a01b031681565b600060015442106102c8576102c8610737565b60045462093a806102d981836116ce565b6102e391906116f0565b66038d7ea4c68005549091506001600160a01b03166000805b85518110156103cb5760008682815181106103195761031961170f565b602002602001015190508060000361033157506103cb565b600061033e8286886108da565b905080156103b657604051631dd33fc560e31b815260048101839052602481018290526001600160a01b0386169063ee99fe2890604401600060405180830381600087803b15801561038f57600080fd5b505af11580156103a3573d6000803e3d6000fd5b5050505080846103b39190611725565b93505b505080806103c39061173d565b9150506102fc565b5080156103f0578066038d7ea4c6800760008282546103ea9190611756565b90915550505b506001949350505050565b6000600154421061040e5761040e610737565b60045462093a8061041f81836116ce565b61042991906116f0565b66038d7ea4c680055490915060009061044d9085906001600160a01b0316846108da565b905080156104de5766038d7ea4c6800554604051631dd33fc560e31b815260048101869052602481018390526001600160a01b039091169063ee99fe2890604401600060405180830381600087803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b505050508066038d7ea4c6800760008282546104d89190611756565b90915550505b9392505050565b66038d7ea4c680055460405163391044d760e21b8152600481018490526000916001600160a01b0316908290829063e441135c90602401602060405180830381865afa158015610539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055d919061176d565b9050600061056d83878785610cfe565b6040516309bb79ed60e11b815260048101889052602481018290529091506000906001600160a01b03851690631376f3da90604401608060405180830381865afa1580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e3919061179d565b905061061d8160400151876105f89190611756565b8260200151610607919061180f565b825161061391906118ad565b600f0b6000610df2565b979650505050505050565b66071afd498d0008546001600160a01b03163314610648576106486118fd565b610650610e09565b565b610650610737565b600062093a8061066a81426116ce565b61067491906116f0565b905090565b60008062093a808060045461068e91906116ce565b61069891906116f0565b66038d7ea4c68005549091506104de9084906001600160a01b031683611066565b66038d7ea4c680088166038d7ea4c6800081106106d557600080fd5b0154905081565b60058166038d7ea4c6800081106106d557600080fd5b66071afd498d0008546001600160a01b0316331461070f57600080fd5b66071afd498d000880546001600160a01b0319166001600160a01b0392909216919091179055565b66038d7ea4c68005546001546001600160a01b0390911690600062093a8061075f81426116ce565b61076991906116f0565b9050826001600160a01b031663c2c4c5c16040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b5050505060005b60148110156108d2578183116108d25760006107dd8585611403565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b0387169063d1febfb990602401608060405180830381865afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084c919061179d565b90506000816040015186111561086e57604082015161086b9087611756565b90505b61088d818360200151610881919061180f565b835161061391906118ad565b66038d7ea4c680088766038d7ea4c6800081106108ac576108ac61170f565b01555050506108be62093a8084611725565b9250806108ca8161173d565b9150506107c1565b505060015550565b60405163391044d760e21b8152600481018490526000908190819081906001600160a01b0387169063e441135c90602401602060405180830381865afa158015610928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094c919061176d565b600080549192508290036109675760009450505050506104de565b600088815260026020526040812054908190036109915761098a888a8486610cfe565b94506109a3565b60008981526003602052604090205494505b846000036109b057600194505b6040516309bb79ed60e11b8152600481018a9052602481018690526000906001600160a01b038a1690631376f3da90604401608060405180830381865afa1580156109ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a23919061179d565b905081600003610a685762093a8080600162093a808460400151610a479190611725565b610a519190611756565b610a5b91906116ce565b610a6591906116f0565b91505b6004548210610a8057600096505050505050506104de565b82821015610a8c578291505b6040805160808101825260008082526020820181905291810182905260608101829052905b6032811015610c735789841015610c735782604001518410158015610ad65750858811155b15610b9c57610ae6600189611725565b975082915085881115610b255760405180608001604052806000600f0b81526020016000600f0b81526020016000815260200160008152509250610c61565b6040516309bb79ed60e11b8152600481018d9052602481018990526001600160a01b038c1690631376f3da90604401608060405180830381865afa158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b95919061179d565b9250610c61565b6000826040015185610bae9190611756565b90506000610bd1846020015183610bc5919061180f565b855161061391906118ad565b905080158015610be05750878a115b15610bec575050610c73565b8015610c4f5766038d7ea4c680088666038d7ea4c680008110610c1157610c1161170f565b015460058766038d7ea4c680008110610c2c57610c2c61170f565b0154610c3890836116f0565b610c4291906116ce565b610c4c908a611725565b98505b610c5c62093a8087611725565b955050505b80610c6b8161173d565b915050610ab1565b50610c8885610c8360018a611756565b611558565b60008c8152600360209081526040808320849055600282529182902086905581518e8152908101899052908101829052606081018790529097507fcae2990aa9af8eb1c64713b7eddb3a80bf18e49a94a13fe0d0002b5d61d58f009060800160405180910390a150939998505050505050505050565b60008082815b6080811015610de65781831015610de65760006002610d238486611725565b610d2e906002611725565b610d3891906116ce565b6040516309bb79ed60e11b8152600481018a9052602481018290529091506000906001600160a01b038b1690631376f3da90604401608060405180830381865afa158015610d8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dae919061179d565b905087816040015111610dc357819450610dd1565b610dce600183611756565b93505b50508080610dde9061173d565b915050610d04565b50909695505050505050565b600081831015610e0257816104de565b5090919050565b66038d7ea4c68006546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c919061176d565b9050600066038d7ea4c680075482610e949190611756565b66038d7ea4c680078390556004549091506000610eb18242611756565b426004559050600062093a80610ec781856116ce565b610ed191906116f0565b90506000805b601481101561102457610eed62093a8084611725565b915081421015610f765783158015610f0457508442145b15610f3e578560058466038d7ea4c680008110610f2357610f2361170f565b016000828254610f339190611725565b909155506110249050565b83610f498642611756565b610f5390886116f0565b610f5d91906116ce565b60058466038d7ea4c680008110610f2357610f2361170f565b83158015610f8357508482145b15610fbd578560058466038d7ea4c680008110610fa257610fa261170f565b016000828254610fb29190611725565b9091555061100b9050565b83610fc88684611756565b610fd290886116f0565b610fdc91906116ce565b60058466038d7ea4c680008110610ff557610ff561170f565b0160008282546110059190611725565b90915550505b819450819250808061101c9061173d565b915050610ed7565b5060408051428152602081018790527fce749457b74e10f393f2c6b1ce4261b78791376db5a3f501477a809f03f500d6910160405180910390a1505050505050565b60405163391044d760e21b8152600481018490526000908190819081906001600160a01b0387169063e441135c90602401602060405180830381865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d8919061176d565b600080549192508290036110f35760009450505050506104de565b6000888152600260205260408120549081900361111d57611116888a8486610cfe565b945061112f565b60008981526003602052604090205494505b8460000361113c57600194505b6040516309bb79ed60e11b8152600481018a9052602481018690526000906001600160a01b038a1690631376f3da90604401608060405180830381865afa15801561118b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111af919061179d565b9050816000036111f45762093a8080600162093a8084604001516111d39190611725565b6111dd9190611756565b6111e791906116ce565b6111f191906116f0565b91505b600454821061120c57600096505050505050506104de565b82821015611218578291505b6040805160808101825260008082526020820181905291810182905260608101829052905b60328110156113f357898410156113f357826040015184101580156112625750858811155b1561132857611272600189611725565b9750829150858811156112b15760405180608001604052806000600f0b81526020016000600f0b815260200160008152602001600081525092506113e1565b6040516309bb79ed60e11b8152600481018d9052602481018990526001600160a01b038c1690631376f3da90604401608060405180830381865afa1580156112fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611321919061179d565b92506113e1565b600082604001518561133a9190611756565b90506000611351846020015183610bc5919061180f565b9050801580156113605750878a115b1561136c5750506113f3565b80156113cf5766038d7ea4c680088666038d7ea4c6800081106113915761139161170f565b015460058766038d7ea4c6800081106113ac576113ac61170f565b01546113b890836116f0565b6113c291906116ce565b6113cc908a611725565b98505b6113dc62093a8087611725565b955050505b806113eb8161173d565b91505061123d565b50949a9950505050505050505050565b600080600090506000846001600160a01b031663900cf0cf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561144a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146e919061176d565b905060005b608081101561154e578183101561154e57600060026114928486611725565b61149d906002611725565b6114a791906116ce565b60405163d1febfb960e01b8152600481018290529091506000906001600160a01b0389169063d1febfb990602401608060405180830381865afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061179d565b90508681604001511161152b57819450611539565b611536600183611756565b93505b505080806115469061173d565b915050611473565b5090949350505050565b6000818310610e0257816104de565b60006020828403121561157957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115bf576115bf611580565b604052919050565b600060208083850312156115da57600080fd5b823567ffffffffffffffff808211156115f257600080fd5b818501915085601f83011261160657600080fd5b81358181111561161857611618611580565b8060051b9150611629848301611596565b818152918301840191848101908884111561164357600080fd5b938501935b8385101561166157843582529385019390850190611648565b98975050505050505050565b6000806040838503121561168057600080fd5b50508035926020909101359150565b6000602082840312156116a157600080fd5b81356001600160a01b03811681146104de57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000826116eb57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561170a5761170a6116b8565b500290565b634e487b7160e01b600052603260045260246000fd5b60008219821115611738576117386116b8565b500190565b60006001820161174f5761174f6116b8565b5060010190565b600082821015611768576117686116b8565b500390565b60006020828403121561177f57600080fd5b5051919050565b8051600f81900b811461179857600080fd5b919050565b6000608082840312156117af57600080fd5b6040516080810181811067ffffffffffffffff821117156117d2576117d2611580565b6040526117de83611786565b81526117ec60208401611786565b602082015260408301516040820152606083015160608201528091505092915050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561183f5761183f6116b8565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561186b5761186b6116b8565b60008712925085820587128484161615611887576118876116b8565b8585058712818416161561189d5761189d6116b8565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156118d8576118d86116b8565b8160016001607f1b030183138116156118f3576118f36116b8565b5090039392505050565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220b84f2b69aee5b631b0507ee5c73ad70eae74003f33186732dc46cd0a5d9d178264736f6c634300080d0033

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

0000000000000000000000009c7305eb78a432ced5c4d14cac27e8ed569a2e26

-----Decoded View---------------
Arg [0] : _voting_escrow (address): 0x9c7305eb78a432ced5C4D14Cac27E8Ed569A2e26

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009c7305eb78a432ced5c4d14cac27e8ed569a2e26


Deployed Bytecode Sourcemap

3259:11456:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3592:23;;;;;;;;;160:25:1;;;148:2;133:18;3592:23:0;;;;;;;;3672:42;;;;;;:::i;:::-;;;;;;;;;;;;;;13697:826;;;;;;:::i;:::-;;:::i;:::-;;;1909:14:1;;1902:22;1884:41;;1872:2;1857:18;13697:826:0;1744:187:1;3873:30:0;;;;;;13191:498;;;;;;:::i;:::-;;:::i;3622:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7136:492;;;;;;:::i;:::-;;:::i;3723:27::-;;;;;;5843:117;;;:::i;:::-;;3563:22;;;;;;8449:89;;;:::i;4417:105::-;;;:::i;3960:24::-;;;;;-1:-1:-1;;;;;3960:24:0;;;;;;-1:-1:-1;;;;;2353:32:1;;;2335:51;;2323:2;2308:18;3960:24:0;2189:203:1;12977:206:0;;;;;;:::i;:::-;;:::i;3912:39::-;;;;;;:::i;:::-;;:::i;3811:28::-;;;;;-1:-1:-1;;;;;3811:28:0;;;3757:45;;;;;;:::i;:::-;;:::i;14577:135::-;;;;;;:::i;:::-;;:::i;3846:20::-;;;;;-1:-1:-1;;;;;3846:20:0;;;13697:826;13760:4;13800:11;;13781:15;:30;13777:62;;13813:26;:24;:26::i;:::-;13874:15;;3545:9;13919:23;3545:9;13874:15;13919:23;:::i;:::-;:30;;;;:::i;:::-;13985:13;;13900:49;;-1:-1:-1;;;;;;13985:13:0;13960:22;;14036:376;14057:9;:16;14053:1;:20;14036:376;;;14095:13;14111:9;14121:1;14111:12;;;;;;;;:::i;:::-;;;;;;;14095:28;;14142:8;14154:1;14142:13;14138:24;;14157:5;;;14138:24;14177:11;14191:50;14198:8;14208:14;14224:16;14191:6;:50::i;:::-;14177:64;-1:-1:-1;14260:11:0;;14256:145;;14292:59;;-1:-1:-1;;;14292:59:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;-1:-1:-1;;;;;14292:41:0;;;;;3494:18:1;;14292:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14379:6;14370:15;;;;;:::i;:::-;;;14256:145;14080:332;;14075:3;;;;;:::i;:::-;;;;14036:376;;;-1:-1:-1;14426:10:0;;14422:70;;14475:5;14453:18;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;14422:70:0;-1:-1:-1;14511:4:0;;13697:826;-1:-1:-1;;;;13697:826:0:o;13191:498::-;13239:4;13279:11;;13260:15;:30;13256:62;;13292:26;:24;:26::i;:::-;13353:15;;3545:9;13398:23;3545:9;13353:15;13398:23;:::i;:::-;:30;;;;:::i;:::-;13470:13;;13379:49;;-1:-1:-1;13439:11:0;;13453:49;;13460:8;;-1:-1:-1;;;;;13470:13:0;13379:49;13453:6;:49::i;:::-;13439:63;-1:-1:-1;13517:11:0;;13513:145;;13559:13;;13545:58;;-1:-1:-1;;;13545:58:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;-1:-1:-1;;;;;13559:13:0;;;;13545:40;;3494:18:1;;13545:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13640:6;13618:18;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;13513:145:0;13675:6;13191:498;-1:-1:-1;;;13191:498:0:o;7136:492::-;7240:13;;7286:44;;-1:-1:-1;;;7286:44:0;;;;;160:25:1;;;7210:4:0;;-1:-1:-1;;;;;7240:13:0;;7210:4;;7240:13;;7286:34;;133:18:1;;7286:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7264:66;;7341:10;7354:68;7381:2;7385:8;7395:10;7407:14;7354:26;:68::i;:::-;7465:53;;-1:-1:-1;;;7465:53:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;7341:81:0;;-1:-1:-1;7433:29:0;;-1:-1:-1;;;;;7465:36:0;;;;;3494:18:1;;7465:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7433:85;;7536:84;7606:2;:5;;;7593:10;:18;;;;:::i;:::-;7567:2;:8;;;:47;;;;:::i;:::-;7557:7;;:57;;;;:::i;:::-;7550:65;;7618:1;7536:8;:84::i;:::-;7529:91;7136:492;-1:-1:-1;;;;;;;7136:492:0:o;5843:117::-;5912:9;;-1:-1:-1;;;;;5912:9:0;5898:10;:23;5891:31;;;;:::i;:::-;5933:19;:17;:19::i;:::-;5843:117::o;8449:89::-;8504:26;:24;:26::i;4417:105::-;4461:4;3545:9;4485:22;3545:9;4485:15;:22;:::i;:::-;:29;;;;:::i;:::-;4478:36;;4417:105;:::o;12977:206::-;13034:4;13051:21;3545:9;;13075:15;;:22;;;;:::i;:::-;:29;;;;:::i;:::-;13143:13;;13051:53;;-1:-1:-1;13122:53:0;;13133:8;;-1:-1:-1;;;;;13143:13:0;13051:53;13122:10;:53::i;3912:39::-;;;;;;;;;;;;;;;-1:-1:-1;3912:39:0;:::o;3757:45::-;;;;;;;;;;;14577:135;14661:9;;-1:-1:-1;;;;;14661:9:0;14647:10;:23;14639:32;;;;;;14682:9;:22;;-1:-1:-1;;;;;;14682:22:0;-1:-1:-1;;;;;14682:22:0;;;;;;;;;;14577:135::o;7636:805::-;7705:13;;;7738:11;-1:-1:-1;;;;;7705:13:0;;;;7692:10;3545:9;7785:22;3545:9;7785:15;:22;:::i;:::-;:29;;;;:::i;:::-;7760:54;;7839:2;-1:-1:-1;;;;;7825:28:0;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7873:6;7868:540;7889:2;7885:1;:6;7868:540;;;7921:17;7917:1;:21;7959:5;7913:460;8005:10;8018:28;8040:2;8044:1;8018:21;:28::i;:::-;8097:38;;-1:-1:-1;;;8097:38:0;;;;;160:25:1;;;8005:41:0;;-1:-1:-1;8065:29:0;;-1:-1:-1;;;;;8097:31:0;;;;;133:18:1;;8097:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8065:70;;8154:9;8194:2;:5;;;8190:1;:9;8186:88;;;8247:5;;;;8243:9;;:1;:9;:::i;:::-;8224:30;;8186:88;8307:50;8349:2;8338;:8;;;:13;;;;:::i;:::-;8328:7;;:23;;;;:::i;8307:50::-;8292:9;8302:1;8292:12;;;;;;;:::i;:::-;;:65;-1:-1:-1;;;8387:9:0;3545;8387;;:::i;:::-;;-1:-1:-1;7893:3:0;;;;:::i;:::-;;;;7868:540;;;-1:-1:-1;;8418:11:0;:15;-1:-1:-1;7636:805:0:o;8546:2323::-;8734:44;;-1:-1:-1;;;8734:44:0;;;;;160:25:1;;;8630:4:0;;;;;;;;-1:-1:-1;;;;;8734:34:0;;;;;133:18:1;;8734:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8789:16;8808:10;;8712:66;;-1:-1:-1;8835:19:0;;;8831:33;;8863:1;8856:8;;;;;;;;8831:33;8877:16;8896:24;;;:14;:24;;;;;;;8935:16;;;8931:200;;8981:69;9008:2;9012:8;9022:11;9035:14;8981:26;:69::i;:::-;8968:82;;8931:200;;;9096:23;;;;:13;:23;;;;;;;-1:-1:-1;8931:200:0;9147:10;9161:1;9147:15;9143:35;;9177:1;9164:14;;9143:35;9231:58;;-1:-1:-1;;;9231:58:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;9191:37:0;;-1:-1:-1;;;;;9231:36:0;;;;;3494:18:1;;9231:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9191:98;;9306:11;9321:1;9306:16;9302:76;;3545:9;;9362:1;3545:9;9339:10;:13;;;:20;;;;:::i;:::-;:24;;;;:::i;:::-;9338:33;;;;:::i;:::-;:40;;;;:::i;:::-;9324:54;;9302:76;9408:15;;9393:11;:30;9389:44;;9432:1;9425:8;;;;;;;;;;9389:44;9462:11;9448;:25;9444:56;;;9489:11;9475:25;;9444:56;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9567:1022:0;9588:2;9584:1;:6;9567:1022;;;9631:16;9616:11;:31;9612:42;9649:5;9612:42;9690:10;:13;;;9675:11;:28;;:60;;;;;9721:14;9707:10;:28;;9675:60;9671:907;;;9756:15;9770:1;9756:15;;:::i;:::-;;;9807:10;9790:27;;9853:14;9840:10;:27;9836:237;;;9905:28;;;;;;;;9925:1;9905:28;;;;;;9927:1;9905:28;;;;;;9929:1;9905:28;;;;9931:1;9905:28;;;9892:41;;9671:907;;9836:237;9995:58;;-1:-1:-1;;;9995:58:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;-1:-1:-1;;;;;9995:36:0;;;;;3494:18:1;;9995:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9982:71;;9671:907;;;10113:9;10153:14;:17;;;10139:11;:31;;;;:::i;:::-;10113:59;;10191:15;10209:74;10257:14;:20;;;10252:2;:25;;;;:::i;:::-;10230:19;;:47;;;;:::i;10209:74::-;10191:92;-1:-1:-1;10306:15:0;;:46;;;;;10338:14;10325:10;:27;10306:46;10302:57;;;10354:5;;;;10302:57;10382:15;;10378:147;;10483:9;10493:11;10483:22;;;;;;;:::i;:::-;;;10452:15;10468:11;10452:28;;;;;;;:::i;:::-;;;10439:41;;:10;:41;:::i;:::-;:66;;;;:::i;:::-;10422:83;;;;:::i;:::-;;;10378:147;10543:19;3545:9;10543:19;;:::i;:::-;;;10094:484;;9671:907;9592:3;;;;:::i;:::-;;;;9567:1022;;;-1:-1:-1;10614:40:0;10623:14;10639;10652:1;10639:10;:14;:::i;:::-;10614:8;:40::i;:::-;10665:23;;;;:13;:23;;;;;;;;:36;;;10712:14;:24;;;;;;:38;;;10768:60;;6501:25:1;;;6542:18;;;6535:34;;;6585:18;;;6578:34;;;6643:2;6628:18;;6621:34;;;10665:36:0;;-1:-1:-1;10768:60:0;;6488:3:1;6473:19;10768:60:0;;;;;;;-1:-1:-1;10848:13:0;;8546:2323;-1:-1:-1;;;;;;;;;8546:2323:0:o;6531:597::-;6654:4;;6707:14;6654:4;6732:367;6753:3;6749:1;:7;6732:367;;;6790:4;6782;:12;6778:23;6796:5;6778:23;6816:9;6848:1;6829:11;6836:4;6829;:11;:::i;:::-;:15;;6843:1;6829:15;:::i;:::-;6828:21;;;;:::i;:::-;6896:51;;-1:-1:-1;;;6896:51:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;6816:33:0;;-1:-1:-1;6864:29:0;;-1:-1:-1;;;;;6896:36:0;;;;;3494:18:1;;6896:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6864:83;;6975:10;6966:2;:5;;;:19;6962:126;;7013:4;7006:11;;6962:126;;;7065:7;7071:1;7065:4;:7;:::i;:::-;7058:14;;6962:126;6763:336;;6758:3;;;;;:::i;:::-;;;;6732:367;;;-1:-1:-1;7116:4:0;;6531:597;-1:-1:-1;;;;;;6531:597:0:o;93:98::-;145:4;174:1;169;:6;;:14;;182:1;169:14;;;-1:-1:-1;178:1:0;;162:21;-1:-1:-1;93:98:0:o;4530:1305::-;4607:5;;4600:38;;-1:-1:-1;;;4600:38:0;;4632:4;4600:38;;;2335:51:1;4579:18:0;;-1:-1:-1;;;;;4607:5:0;;4600:23;;2308:18:1;;4600:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4579:59;;4649:18;4686;;4670:13;:34;;;;:::i;:::-;4715:18;:34;;;4771:15;;4649:55;;-1:-1:-1;4762:6:0;4815:19;4771:15;4815;:19;:::i;:::-;4863:15;4845;:33;4797:37;-1:-1:-1;4889:14:0;3545:9;4906:8;3545:9;4906:1;:8;:::i;:::-;:15;;;;:::i;:::-;4889:32;;4932:14;4968:6;4963:802;4984:2;4980:1;:6;4963:802;;;5020:16;3545:9;5020;:16;:::i;:::-;5008:28;;5073:9;5055:15;:27;5051:639;;;5107:15;;:39;;;;;5145:1;5126:15;:20;5107:39;5103:260;;;5201:13;5171:15;5187:9;5171:26;;;;;;;:::i;:::-;;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;5381:5:0;;-1:-1:-1;5381:5:0;5103:260;5333:10;5310:19;5328:1;5310:15;:19;:::i;:::-;5293:37;;:13;:37;:::i;:::-;:50;;;;:::i;:::-;5263:15;5279:9;5263:26;;;;;;;:::i;5051:639::-;5431:15;;:33;;;;;5463:1;5450:9;:14;5431:33;5427:248;;;5519:13;5489:15;5505:9;5489:26;;;;;;;:::i;:::-;;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;5427:248:0;;-1:-1:-1;5427:248:0;;5645:10;5628:13;5640:1;5628:9;:13;:::i;:::-;5611:31;;:13;:31;:::i;:::-;:44;;;;:::i;:::-;5581:15;5597:9;5581:26;;;;;;;:::i;:::-;;;:74;;;;;;;:::i;:::-;;;;-1:-1:-1;;5427:248:0;5708:9;5704:13;;5744:9;5732:21;;4988:3;;;;;:::i;:::-;;;;4963:802;;;-1:-1:-1;5780:47:0;;;5796:15;3521:25:1;;3577:2;3562:18;;3555:34;;;5780:47:0;;3494:18:1;5780:47:0;;;;;;;4568:1267;;;;;;4530:1305::o;10877:2092::-;11074:44;;-1:-1:-1;;;11074:44:0;;;;;160:25:1;;;10970:4:0;;;;;;;;-1:-1:-1;;;;;11074:34:0;;;;;133:18:1;;11074:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11129:16;11148:10;;11052:66;;-1:-1:-1;11175:19:0;;;11171:33;;11203:1;11196:8;;;;;;;;11171:33;11217:16;11236:24;;;:14;:24;;;;;;;11275:16;;;11271:200;;11321:69;11348:2;11352:8;11362:11;11375:14;11321:26;:69::i;:::-;11308:82;;11271:200;;;11436:23;;;;:13;:23;;;;;;;-1:-1:-1;11271:200:0;11487:10;11501:1;11487:15;11483:35;;11517:1;11504:14;;11483:35;11571:58;;-1:-1:-1;;;11571:58:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;11531:37:0;;-1:-1:-1;;;;;11571:36:0;;;;;3494:18:1;;11571:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11531:98;;11646:11;11661:1;11646:16;11642:76;;3545:9;;11702:1;3545:9;11679:10;:13;;;:20;;;;:::i;:::-;:24;;;;:::i;:::-;11678:33;;;;:::i;:::-;:40;;;;:::i;:::-;11664:54;;11642:76;11748:15;;11733:11;:30;11729:44;;11772:1;11765:8;;;;;;;;;;11729:44;11802:11;11788;:25;11784:56;;;11829:11;11815:25;;11784:56;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11907:1022:0;11928:2;11924:1;:6;11907:1022;;;11971:16;11956:11;:31;11952:42;11989:5;11952:42;12030:10;:13;;;12015:11;:28;;:60;;;;;12061:14;12047:10;:28;;12015:60;12011:907;;;12096:15;12110:1;12096:15;;:::i;:::-;;;12147:10;12130:27;;12193:14;12180:10;:27;12176:237;;;12245:28;;;;;;;;12265:1;12245:28;;;;;;12267:1;12245:28;;;;;;12269:1;12245:28;;;;12271:1;12245:28;;;12232:41;;12011:907;;12176:237;12335:58;;-1:-1:-1;;;12335:58:0;;;;;3521:25:1;;;3562:18;;;3555:34;;;-1:-1:-1;;;;;12335:36:0;;;;;3494:18:1;;12335:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12322:71;;12011:907;;;12453:9;12493:14;:17;;;12479:11;:31;;;;:::i;:::-;12453:59;;12531:15;12549:74;12597:14;:20;;;12592:2;:25;;;;:::i;12549:74::-;12531:92;-1:-1:-1;12646:15:0;;:46;;;;;12678:14;12665:10;:27;12646:46;12642:57;;;12694:5;;;;12642:57;12722:15;;12718:147;;12823:9;12833:11;12823:22;;;;;;;:::i;:::-;;;12792:15;12808:11;12792:28;;;;;;;:::i;:::-;;;12779:41;;:10;:41;:::i;:::-;:66;;;;:::i;:::-;12762:83;;;;:::i;:::-;;;12718:147;12883:19;3545:9;12883:19;;:::i;:::-;;;12434:484;;12011:907;11932:3;;;;:::i;:::-;;;;11907:1022;;;-1:-1:-1;12948:13:0;;10877:2092;-1:-1:-1;;;;;;;;;;10877:2092:0:o;5968:555::-;6051:4;6068:9;6080:1;6068:13;;6092:9;6118:2;-1:-1:-1;;;;;6104:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6092:37;;6145:6;6140:354;6161:3;6157:1;:7;6140:354;;;6198:4;6190;:12;6186:23;6204:5;6186:23;6224:9;6256:1;6237:11;6244:4;6237;:11;:::i;:::-;:15;;6251:1;6237:15;:::i;:::-;6236:21;;;;:::i;:::-;6304:37;;-1:-1:-1;;;6304:37:0;;;;;160:25:1;;;6224:33:0;;-1:-1:-1;6272:29:0;;-1:-1:-1;;;;;6304:31:0;;;;;133:18:1;;6304:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6272:69;;6369:10;6360:2;:5;;;:19;6356:127;;6407:4;6400:11;;6356:127;;;6459:8;6466:1;6459:4;:8;:::i;:::-;6452:15;;6356:127;6171:323;;6166:3;;;;;:::i;:::-;;;;6140:354;;;-1:-1:-1;6511:4:0;;5968:555;-1:-1:-1;;;;5968:555:0:o;197:97::-;249:4;277:1;273;:5;:13;;285:1;273:13;;196:180:1;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;381:127::-;442:10;437:3;433:20;430:1;423:31;473:4;470:1;463:15;497:4;494:1;487:15;513:275;584:2;578:9;649:2;630:13;;-1:-1:-1;;626:27:1;614:40;;684:18;669:34;;705:22;;;666:62;663:88;;;731:18;;:::i;:::-;767:2;760:22;513:275;;-1:-1:-1;513:275:1:o;793:946::-;877:6;908:2;951;939:9;930:7;926:23;922:32;919:52;;;967:1;964;957:12;919:52;1007:9;994:23;1036:18;1077:2;1069:6;1066:14;1063:34;;;1093:1;1090;1083:12;1063:34;1131:6;1120:9;1116:22;1106:32;;1176:7;1169:4;1165:2;1161:13;1157:27;1147:55;;1198:1;1195;1188:12;1147:55;1234:2;1221:16;1256:2;1252;1249:10;1246:36;;;1262:18;;:::i;:::-;1308:2;1305:1;1301:10;1291:20;;1331:28;1355:2;1351;1347:11;1331:28;:::i;:::-;1393:15;;;1463:11;;;1459:20;;;1424:12;;;;1491:19;;;1488:39;;;1523:1;1520;1513:12;1488:39;1547:11;;;;1567:142;1583:6;1578:3;1575:15;1567:142;;;1649:17;;1637:30;;1600:12;;;;1687;;;;1567:142;;;1728:5;793:946;-1:-1:-1;;;;;;;;793:946:1:o;1936:248::-;2004:6;2012;2065:2;2053:9;2044:7;2040:23;2036:32;2033:52;;;2081:1;2078;2071:12;2033:52;-1:-1:-1;;2104:23:1;;;2174:2;2159:18;;;2146:32;;-1:-1:-1;1936:248:1:o;2397:286::-;2456:6;2509:2;2497:9;2488:7;2484:23;2480:32;2477:52;;;2525:1;2522;2515:12;2477:52;2551:23;;-1:-1:-1;;;;;2603:31:1;;2593:42;;2583:70;;2649:1;2646;2639:12;2688:127;2749:10;2744:3;2740:20;2737:1;2730:31;2780:4;2777:1;2770:15;2804:4;2801:1;2794:15;2820:217;2860:1;2886;2876:132;;2930:10;2925:3;2921:20;2918:1;2911:31;2965:4;2962:1;2955:15;2993:4;2990:1;2983:15;2876:132;-1:-1:-1;3022:9:1;;2820:217::o;3042:168::-;3082:7;3148:1;3144;3140:6;3136:14;3133:1;3130:21;3125:1;3118:9;3111:17;3107:45;3104:71;;;3155:18;;:::i;:::-;-1:-1:-1;3195:9:1;;3042:168::o;3215:127::-;3276:10;3271:3;3267:20;3264:1;3257:31;3307:4;3304:1;3297:15;3331:4;3328:1;3321:15;3600:128;3640:3;3671:1;3667:6;3664:1;3661:13;3658:39;;;3677:18;;:::i;:::-;-1:-1:-1;3713:9:1;;3600:128::o;3733:135::-;3772:3;3793:17;;;3790:43;;3813:18;;:::i;:::-;-1:-1:-1;3860:1:1;3849:13;;3733:135::o;3873:125::-;3913:4;3941:1;3938;3935:8;3932:34;;;3946:18;;:::i;:::-;-1:-1:-1;3983:9:1;;3873:125::o;4003:184::-;4073:6;4126:2;4114:9;4105:7;4101:23;4097:32;4094:52;;;4142:1;4139;4132:12;4094:52;-1:-1:-1;4165:16:1;;4003:184;-1:-1:-1;4003:184:1:o;4192:166::-;4270:13;;4323:2;4312:21;;;4302:32;;4292:60;;4348:1;4345;4338:12;4292:60;4192:166;;;:::o;4363:664::-;4455:6;4508:3;4496:9;4487:7;4483:23;4479:33;4476:53;;;4525:1;4522;4515:12;4476:53;4558:2;4552:9;4600:3;4592:6;4588:16;4670:6;4658:10;4655:22;4634:18;4622:10;4619:34;4616:62;4613:88;;;4681:18;;:::i;:::-;4717:2;4710:22;4756:39;4785:9;4756:39;:::i;:::-;4748:6;4741:55;4829:48;4873:2;4862:9;4858:18;4829:48;:::i;:::-;4824:2;4816:6;4812:15;4805:73;4932:2;4921:9;4917:18;4911:25;4906:2;4898:6;4894:15;4887:50;4991:2;4980:9;4976:18;4970:25;4965:2;4957:6;4953:15;4946:50;5015:6;5005:16;;;4363:664;;;;:::o;5032:698::-;5071:7;5119:1;5115:2;5104:17;5156:1;5152:2;5141:17;-1:-1:-1;;;;;5239:1:1;5234:3;5230:11;5269:1;5264:3;5260:11;5316:3;5312:2;5308:12;5303:3;5300:21;5295:2;5291;5287:11;5283:39;5280:65;;;5325:18;;:::i;:::-;-1:-1:-1;;5431:1:1;5422:11;;5449;;;5471:13;;;5462:23;;5445:41;5442:67;;;5489:18;;:::i;:::-;5537:1;5532:3;5528:11;5518:21;;5586:3;5582:2;5577:13;5572:3;5568:23;5563:2;5559;5555:11;5551:41;5548:67;;;5595:18;;:::i;:::-;5662:3;5658:2;5653:13;5648:3;5644:23;5639:2;5635;5631:11;5627:41;5624:67;;;5671:18;;:::i;:::-;-1:-1:-1;;;5711:13:1;;;;;5032:698;-1:-1:-1;;;;;5032:698:1:o;5735:398::-;5774:4;5819:1;5815:2;5804:17;5856:1;5852:2;5841:17;5886:1;5881:3;5877:11;5970:3;-1:-1:-1;;;;;5929:39:1;5925:49;5920:3;5916:59;5911:2;5904:10;5900:76;5897:102;;;5979:18;;:::i;:::-;6068:3;-1:-1:-1;;;;;6028:44:1;6023:3;6019:54;6015:2;6011:63;6008:89;;;6077:18;;:::i;:::-;-1:-1:-1;6114:13:1;;;5735:398;-1:-1:-1;;;5735:398:1:o;6138:127::-;6199:10;6194:3;6190:20;6187:1;6180:31;6230:4;6227:1;6220:15;6254:4;6251:1;6244:15

Swarm Source

ipfs://b84f2b69aee5b631b0507ee5c73ad70eae74003f33186732dc46cd0a5d9d1782

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.