ETH Price: $1,798.77 (+13.57%)

Contract

0x5d5Bea9f0Fc13d967511668a60a3369fD53F784F

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim1323817922025-02-24 1:59:2158 days ago1740362361IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000006424190.0011179
Claim1298063842024-12-26 11:12:25117 days ago1735211545IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000015607450.00110047
Claim1298063712024-12-26 11:11:59117 days ago1735211519IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000012751290.00010047
Claim1298063702024-12-26 11:11:57117 days ago1735211517IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000011405720.00010047
Claim1298063412024-12-26 11:10:59117 days ago1735211459IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000009846780.00030047
Claim1298062972024-12-26 11:09:31117 days ago1735211371IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000010165440.00010047
Claim1298062732024-12-26 11:08:43117 days ago1735211323IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000009447070.00010047
Claim1297678322024-12-25 13:47:21118 days ago1735134441IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000006377630.00010048
Claim1297675452024-12-25 13:37:47118 days ago1735133867IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000005698570.00010051
Claim1297667842024-12-25 13:12:25118 days ago1735132345IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000005610320.0001005
Claim1297661982024-12-25 12:52:53118 days ago1735131173IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000010500080.00010063
Claim1297646102024-12-25 11:59:57118 days ago1735127997IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000006923980.00047289
Claim1296188762024-12-22 3:02:09122 days ago1734836529IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000003518220.00040685
Claim1296186862024-12-22 2:55:49122 days ago1734836149IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000003263330.00038754
Claim1295129912024-12-19 16:12:39124 days ago1734624759IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000022354660.00209502
Claim1295104322024-12-19 14:47:21124 days ago1734619641IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000005782110.00210277
Claim1294769722024-12-18 20:12:01125 days ago1734552721IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000014531070.00626205
Claim1293643872024-12-16 5:39:11127 days ago1734327551IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000015596240.00010053
Claim1290828182024-12-09 17:13:33134 days ago1733764413IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000009539860.00100072
Claim_many1283913622024-11-23 17:05:01150 days ago1732381501IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000017398620.0010031
Claim1279709792024-11-13 23:32:15160 days ago1731540735IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000002642950.00010041
Claim1279703052024-11-13 23:09:47160 days ago1731539387IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000002875090.00010048
Claim1279702752024-11-13 23:08:47160 days ago1731539327IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000002857850.00010048
Claim1243905422024-08-23 2:24:21243 days ago1724379861IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000000900950.00017895
Claim1243471632024-08-22 2:18:23244 days ago1724293103IN
Velodrome Finance: Rewards Distributor
0 ETH0.0000000903280.0001515
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1075583122023-07-30 11:10:01632 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075583122023-07-30 11:10:01632 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075583122023-07-30 11:10:01632 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075583122023-07-30 11:10:01632 days ago1690715401
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25632 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25632 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25632 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075578142023-07-30 10:53:25632 days ago1690714405
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47632 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47632 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47632 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075562052023-07-30 9:59:47632 days ago1690711187
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27632 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27632 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27632 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075561952023-07-30 9:59:27632 days ago1690711167
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39632 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39632 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39632 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39632 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075555712023-07-30 9:38:39632 days ago1690709919
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51632 days ago1690709571
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51632 days ago1690709571
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51632 days ago1690709571
Velodrome Finance: Rewards Distributor
0 ETH
1075553972023-07-30 9:32:51632 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

API
[{"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.