Contract 0x09e7e61f28e83c7bac827a0ec9dcd800ce4b4cc1 1

 

Contract Overview

Financio: FIN Token
Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9fc0593fa44e62cacfd7f93d915ee73b0d4b8cd5dfe2c18e90b8ced4ede0a936Approve144553742022-01-17 21:49:334 hrs 35 mins ago0xa2ae837c4b2f80bc790320aaed7785e4bc6e7770 IN  Financio: FIN Token0 BNB0.000222035
0x8366c6fff05d413814262481e440f24eddcfd3172b4a44fec33feee04ed0abb1Transfer144553472022-01-17 21:48:124 hrs 37 mins ago0x5072421233f02e53dd95daa7999360bbe36eebb6 IN  Financio: FIN Token0 BNB0.000180815
0x16a9a6c25bbccf5789a9ea5bbcdbff2e0fa94ccc5624293ca998ec6800ef9416Approve144506882022-01-17 17:53:358 hrs 31 mins ago0x46e4c68b8d5709ad5fba58c15e4bb375de33bfef IN  Financio: FIN Token0 BNB0.000222035
0xf58077698a7909d691607d35f0076a6989f770cb7e64644033a358f1e6946aceApprove144432692022-01-17 11:34:5014 hrs 50 mins ago0xb93846a9ccefa2c2d03b8b33ea1433a3bb1511b9 IN  Financio: FIN Token0 BNB0.000222035
0xb8793493f3667d6e3b1efd0ffaac15edae1b28a0f86d91d3f12b0ae7ea5c80ddTransfer144408282022-01-17 9:32:3216 hrs 52 mins ago0xe5606beeb683e1a627359efac745b7391752d8ac IN  Financio: FIN Token0 BNB0.000216906
0xd8bd395a0054a7506fb0a6a06411c2f06ba125906b21097da52df677213854c5Approve144291402022-01-16 23:43:101 day 2 hrs ago0x7571a153817d2389040a01d0a8c255632280e703 IN  Financio: FIN Token0 BNB0.000222035
0xdd0932232a2c75584531966dc56993f9186ee3e0150ae21e2135de482f5a317dApprove144276582022-01-16 22:29:041 day 3 hrs ago0xdba988bd96a8f1b479b961e320be80f29b028673 IN  Financio: FIN Token0 BNB0.000222035
0x71f1c05461b30960cde05085e25c8e693a5ca780ddbd4ebc59e0e51e699d9701Transfer144276072022-01-16 22:26:311 day 3 hrs ago0x2cdf1c7712c52b792f6d890621552903aa528a34 IN  Financio: FIN Token0 BNB0.000180695
0x0a579a8ed1c1497f85a4b6c4b36985042a8a60d612d37e2f0f4a442a779adcdfApprove144202242022-01-16 16:16:121 day 10 hrs ago0x44cd8bb9d3f5767c3a7fe121198da467b711b0f7 IN  Financio: FIN Token0 BNB0.000222035
0x41bfc9962734a95567d2f7c11748003da38c080134a42af841987f2338a9ca85Approve144135062022-01-16 10:37:551 day 15 hrs ago0xac605c2f6e121a929cd9cd15d812d080b9776e5d IN  Financio: FIN Token0 BNB0.00007256
0x2b9f63459f95d46e79cd5470208f7eab846bca38c392037c5b290ff9e7ded0ccApprove143949002022-01-15 19:05:072 days 7 hrs ago0x67f5bda7f5b3af76edff33ddcb6903637830a769 IN  Financio: FIN Token0 BNB0.000222035
0x4420d1b003dc89949f195b80b39975a4ed332487d76921a0b82bb96a1b1253fdTransfer143870852022-01-15 12:32:072 days 13 hrs ago0xb83c52d1668b4f1ca55360d02b284d6ca8d3596b IN  Financio: FIN Token0 BNB0.0002709525
0x82a871ae92edea875698478ec69c1bd8bf7cb53fe82d3b2e589d13f6900c117eApprove143857992022-01-15 11:27:162 days 14 hrs ago0x8d766d93c087c73792cb9284225336d2b2db0d24 IN  Financio: FIN Token0 BNB0.00007256
0xd5bfdfe5c5ce51dfd5d411077e82f604fc717b319a1ba9ceb872aeac8c0375d5Approve143701892022-01-14 22:26:273 days 3 hrs ago0x5320cf6eba77e97aa3b55418e8ddcb50bdd20265 IN  Financio: FIN Token0 BNB0.000222035
0x9871900d215c445a1fac03f1535b9851ca2f212ebf3a6d0b398b4f0b175ec53eApprove143672232022-01-14 19:58:073 days 6 hrs ago0x56aa67e43a381abe40f196b3c05bf1ba283a3a46 IN  Financio: FIN Token0 BNB0.00007256
0x09845adbdd7608dc9c2c22ef66e3a0f77d5fae2cce0c48b56b4cdac50544e621Approve143623712022-01-14 15:55:313 days 10 hrs ago0x1efc7f5d57160d28c2b4a610aa1e14c99d831b24 IN  Financio: FIN Token0 BNB0.000222035
0x7dc0ba08a50ce38995c08d6f553517e7d4e716e15df3864c71b62bf005e60905Transfer143413842022-01-13 22:21:524 days 4 hrs ago0x0108664d61fd89979bdad20a5077ad2e0ba99811 IN  Financio: FIN Token0 BNB0.000255695
0xa7a0093937be675138aa54dacc2b657727b3cb4a4d58f766618d749c4a8bd38bApprove143412702022-01-13 22:16:104 days 4 hrs ago0xd57ff54d5e1ef21469b1c2c75fcf85a56b280ddb IN  Financio: FIN Token0 BNB0.000222035
0xf8fb043350e506270f691f85ef37a716eb5ede3baf75295155cd5f3bcf9b9fb6Transfer143412392022-01-13 22:14:374 days 4 hrs ago0x3faca66d074b815cc5473a6e178b7ea00cc83498 IN  Financio: FIN Token0 BNB0.000180695
0x48d84ac9cce8e16a958470adda8a8ed02feedeabfb165f072868f827c97d3903Approve143408032022-01-13 21:52:494 days 4 hrs ago0xcb7dc9cc751fc7c2744a17813091f7ffa8397d27 IN  Financio: FIN Token0 BNB0.000222035
0x9e6a2fc3530efd35d8ced6af7805ceb92d6d1b14c30968161936a9c0a0f1d0f1Approve143335162022-01-13 15:47:394 days 10 hrs ago0xe06c1d1a32a09641ac5e2fd6728aabe2980573e4 IN  Financio: FIN Token0 BNB0.000222035
0x821d088c734fe3cd3101f16d8491856dd7afb9dd3fd2eee5fa314d054f0f7035Approve143191312022-01-13 3:48:154 days 22 hrs ago0xc858197f5f072a967c0d301cca31c8e399c028a4 IN  Financio: FIN Token0 BNB0.000266442
0x090cfa94f3a9f4f8ff375c9172eff20194dd53d035b1702a45a69c8795fa2629Approve143055752022-01-12 16:29:595 days 9 hrs ago0xe86ed5c7fe796d9aef6d5b00de03b473474fd621 IN  Financio: FIN Token0 BNB0.000222035
0x4bb8f6ea693bcf2ce29de71db24c2de99ea504fa8466c580f1d7e288205cd7d9Approve142849032022-01-11 23:13:146 days 3 hrs ago0x80eb0edbd9a4e2cadaa7979bf7ab1cf0c0c6e400 IN  Financio: FIN Token0 BNB0.00007256
0x63bfe27a433155de46c432efd13a58855b5aa20612083f76ed0d054c8f9bc69eApprove142848862022-01-11 23:12:236 days 3 hrs ago0x80eb0edbd9a4e2cadaa7979bf7ab1cf0c0c6e400 IN  Financio: FIN Token0 BNB0.00007256
[ Download CSV Export 

OVERVIEW

FINANCIO assists the users to earn a reward in cryptocurrencies in the form of Staking, farming, or crypto exchange. In addition, it also enables people to earn through liquidity, IFO, Lotteries, and Collectables.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FinancioToken

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-08-31
*/

pragma solidity 0.6.12;
/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
contract Context {
    constructor() internal {}

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), 'Ownable: caller is not the owner');
        _;
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), 'Ownable: new owner is the zero address');
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, 'SafeMath: addition overflow');

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, 'SafeMath: subtraction overflow');
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, 'SafeMath: multiplication overflow');

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, 'SafeMath: division by zero');
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, 'SafeMath: modulo by zero');
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }

    function min(uint256 x, uint256 y) internal pure returns (uint256 z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint256 y) internal pure returns (uint256 z) {
        if (y > 3) {
            z = y;
            uint256 x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, 'Address: insufficient balance');

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}('');
        require(success, 'Address: unable to send value, recipient may have reverted');
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, 'Address: low-level call failed');
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, 'Address: low-level call with value failed');
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, 'Address: insufficient balance for call');
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), 'Address: call to non-contract');

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{value: weiValue}(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract BEP20 is Context, IBEP20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

    function getOwner() external override view returns (address) {
        return owner();
    }

    function name() public override view returns (string memory) {
        return _name;
    }

    function decimals() public override view returns (uint8) {
        return _decimals;
    }

    function symbol() public override view returns (string memory) {
        return _symbol;
    }

    function totalSupply() public override view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public override view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public override view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(amount, 'BEP20: transfer amount exceeds allowance')
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(subtractedValue, 'BEP20: decreased allowance below zero')
        );
        return true;
    }

    function mint(uint256 amount) public onlyOwner returns (bool) {
        _mint(_msgSender(), amount);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        require(sender != address(0), 'BEP20: transfer from the zero address');
        require(recipient != address(0), 'BEP20: transfer to the zero address');

        _balances[sender] = _balances[sender].sub(amount, 'BEP20: transfer amount exceeds balance');
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal {
        require(account != address(0), 'BEP20: mint to the zero address');

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal {
        require(account != address(0), 'BEP20: burn from the zero address');

        _balances[account] = _balances[account].sub(amount, 'BEP20: burn amount exceeds balance');
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal {
        require(owner != address(0), 'BEP20: approve from the zero address');
        require(spender != address(0), 'BEP20: approve to the zero address');

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(
            account,
            _msgSender(),
            _allowances[account][_msgSender()].sub(amount, 'BEP20: burn amount exceeds allowance')
        );
    }
}

contract FinancioToken is BEP20('Financio Token', 'FIN') {
    /// @notice Creates `_amount` token to `_to`. Must only be called by the owner (MasterChef).
    function mint(address _to, uint256 _amount) public onlyOwner {
        _mint(_to, _amount);
        _moveDelegates(address(0), _delegates[_to], _amount);
    }

    mapping (address => address) internal _delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint256 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @notice The EIP-712 typehash for the contract's domain
    bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");

    /// @notice The EIP-712 typehash for the delegation struct used by the contract
    bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)");

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;

      /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    function delegates(address delegator)
        external
        view
        returns (address)
    {
        return _delegates[delegator];
    }

    function delegate(address delegatee) external {
        return _delegate(msg.sender, delegatee);
    }

    function delegateBySig(
        address delegatee,
        uint nonce,
        uint expiry,
        uint8 v,
        bytes32 r,
        bytes32 s
    )
        external
    {
        bytes32 domainSeparator = keccak256(
            abi.encode(
                DOMAIN_TYPEHASH,
                keccak256(bytes(name())),
                getChainId(),
                address(this)
            )
        );

        bytes32 structHash = keccak256(
            abi.encode(
                DELEGATION_TYPEHASH,
                delegatee,
                nonce,
                expiry
            )
        );

        bytes32 digest = keccak256(
            abi.encodePacked(
                "\x19\x01",
                domainSeparator,
                structHash
            )
        );

        address signatory = ecrecover(digest, v, r, s);
        require(signatory != address(0), "FIN::delegateBySig: invalid signature");
        require(nonce == nonces[signatory]++, "FIN::delegateBySig: invalid nonce");
        require(now <= expiry, "FIN::delegateBySig: signature expired");
        return _delegate(signatory, delegatee);
    }

    function getCurrentVotes(address account)
        external
        view
        returns (uint256)
    {
        uint32 nCheckpoints = numCheckpoints[account];
        return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
    }

    function getPriorVotes(address account, uint blockNumber)
        external
        view
        returns (uint256)
    {
        require(blockNumber < block.number, "FIN::getPriorVotes: not yet determined");

        uint32 nCheckpoints = numCheckpoints[account];
        if (nCheckpoints == 0) {
            return 0;
        }

        // First check most recent balance
        if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) {
            return checkpoints[account][nCheckpoints - 1].votes;
        }

        // Next check implicit zero balance
        if (checkpoints[account][0].fromBlock > blockNumber) {
            return 0;
        }

        uint32 lower = 0;
        uint32 upper = nCheckpoints - 1;
        while (upper > lower) {
            uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow
            Checkpoint memory cp = checkpoints[account][center];
            if (cp.fromBlock == blockNumber) {
                return cp.votes;
            } else if (cp.fromBlock < blockNumber) {
                lower = center;
            } else {
                upper = center - 1;
            }
        }
        return checkpoints[account][lower].votes;
    }

    function _delegate(address delegator, address delegatee)
        internal
    {
        address currentDelegate = _delegates[delegator];
        uint256 delegatorBalance = balanceOf(delegator); // balance of underlying FINs (not scaled);
        _delegates[delegator] = delegatee;

        emit DelegateChanged(delegator, currentDelegate, delegatee);

        _moveDelegates(currentDelegate, delegatee, delegatorBalance);
    }

    function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal {
        if (srcRep != dstRep && amount > 0) {
            if (srcRep != address(0)) {
                // decrease old representative
                uint32 srcRepNum = numCheckpoints[srcRep];
                uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
                uint256 srcRepNew = srcRepOld.sub(amount);
                _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
            }

            if (dstRep != address(0)) {
                // increase new representative
                uint32 dstRepNum = numCheckpoints[dstRep];
                uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
                uint256 dstRepNew = dstRepOld.add(amount);
                _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
            }
        }
    }

    function _writeCheckpoint(
        address delegatee,
        uint32 nCheckpoints,
        uint256 oldVotes,
        uint256 newVotes
    )
        internal
    {
        uint32 blockNumber = safe32(block.number, "FIN::_writeCheckpoint: block number exceeds 32 bits");

        if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
            checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
        } else {
            checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
            numCheckpoints[delegatee] = nCheckpoints + 1;
        }

        emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
    }

    function safe32(uint n, string memory errorMessage) internal pure returns (uint32) {
        require(n < 2**32, errorMessage);
        return uint32(n);
    }

    function getChainId() internal pure returns (uint) {
        uint256 chainId;
        assembly { chainId := chainid() }
        return chainId;
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600e81526020016d2334b730b731b4b7902a37b5b2b760911b815250604051806040016040528060038152602001622324a760e91b815250600062000067620000f260201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508151620000c6906004906020850190620000f6565b508051620000dc906005906020840190620000f6565b50506006805460ff191660121790555062000192565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013957805160ff191683800117855562000169565b8280016001018555821562000169579182015b82811115620001695782518255916020019190600101906200014c565b50620001779291506200017b565b5090565b5b808211156200017757600081556001016200017c565b611b7e80620001a26000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063782d6fe1116100f9578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e1461055c578063e7a324dc1461058a578063f1127ed814610592578063f2fde38b146105e4576101a9565b8063a9059cbb146104c3578063b4b5ea57146104ef578063c3cda52014610515576101a9565b80638da5cb5b116100d35780638da5cb5b1461046a57806395d89b4114610472578063a0712d681461047a578063a457c2d714610497576101a9565b8063782d6fe1146104105780637ecebe001461043c578063893d20e814610462576101a9565b806339509351116101665780635c19a95c116101405780635c19a95c1461037d5780636fcfff45146103a357806370a08231146103e2578063715018a614610408576101a9565b806339509351146102e157806340c10f191461030d578063587cde1e1461033b576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806320606b701461028557806323b872dd1461028d578063313ce567146102c3575b600080fd5b6101b661060a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b0381351690602001356106a0565b604080519115158252519081900360200190f35b6102736106be565b60408051918252519081900360200190f35b6102736106c4565b610257600480360360608110156102a357600080fd5b506001600160a01b038135811691602081013590911690604001356106e8565b6102cb61076f565b6040805160ff9092168252519081900360200190f35b610257600480360360408110156102f757600080fd5b506001600160a01b038135169060200135610778565b6103396004803603604081101561032357600080fd5b506001600160a01b0381351690602001356107c6565b005b6103616004803603602081101561035157600080fd5b50356001600160a01b0316610851565b604080516001600160a01b039092168252519081900360200190f35b6103396004803603602081101561039357600080fd5b50356001600160a01b031661086f565b6103c9600480360360208110156103b957600080fd5b50356001600160a01b031661087c565b6040805163ffffffff9092168252519081900360200190f35b610273600480360360208110156103f857600080fd5b50356001600160a01b0316610894565b6103396108af565b6102736004803603604081101561042657600080fd5b506001600160a01b038135169060200135610951565b6102736004803603602081101561045257600080fd5b50356001600160a01b0316610b59565b610361610b6b565b610361610b7a565b6101b6610b89565b6102576004803603602081101561049057600080fd5b5035610bea565b610257600480360360408110156104ad57600080fd5b506001600160a01b038135169060200135610c5d565b610257600480360360408110156104d957600080fd5b506001600160a01b038135169060200135610cc5565b6102736004803603602081101561050557600080fd5b50356001600160a01b0316610cd9565b610339600480360360c081101561052b57600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a00135610d3d565b6102736004803603604081101561057257600080fd5b506001600160a01b0381358116916020013516610fb0565b610273610fdb565b6105c4600480360360408110156105a857600080fd5b5080356001600160a01b0316906020013563ffffffff16610fff565b6040805163ffffffff909316835260208301919091528051918290030190f35b610339600480360360208110156105fa57600080fd5b50356001600160a01b031661102c565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106965780601f1061066b57610100808354040283529160200191610696565b820191906000526020600020905b81548152906001019060200180831161067957829003601f168201915b5050505050905090565b60006106b46106ad61108d565b8484611091565b5060015b92915050565b60035490565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60006106f584848461117d565b6107658461070161108d565b610760856040518060600160405280602881526020016119f4602891396001600160a01b038a1660009081526002602052604081209061073f61108d565b6001600160a01b0316815260208101919091526040016000205491906112cf565b611091565b5060019392505050565b60065460ff1690565b60006106b461078561108d565b84610760856002600061079661108d565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611366565b6107ce61108d565b6000546001600160a01b0390811691161461081e576040805162461bcd60e51b81526020600482018190526024820152600080516020611a4f833981519152604482015290519081900360640190fd5b61082882826113c0565b6001600160a01b0380831660009081526007602052604081205461084d9216836114a6565b5050565b6001600160a01b039081166000908152600760205260409020541690565b61087933826115e8565b50565b60096020526000908152604090205463ffffffff1681565b6001600160a01b031660009081526001602052604090205490565b6108b761108d565b6000546001600160a01b03908116911614610907576040805162461bcd60e51b81526020600482018190526024820152600080516020611a4f833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60004382106109915760405162461bcd60e51b815260040180806020018281038252602681526020018061193e6026913960400191505060405180910390fd5b6001600160a01b03831660009081526009602052604090205463ffffffff16806109bf5760009150506106b8565b6001600160a01b038416600090815260086020908152604080832063ffffffff600019860181168552925290912054168310610a2e576001600160a01b03841660009081526008602090815260408083206000199490940163ffffffff168352929052206001015490506106b8565b6001600160a01b038416600090815260086020908152604080832083805290915290205463ffffffff16831015610a695760009150506106b8565b600060001982015b8163ffffffff168163ffffffff161115610b2257600282820363ffffffff16048103610a9b611926565b506001600160a01b038716600090815260086020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415610afd576020015194506106b89350505050565b805163ffffffff16871115610b1457819350610b1b565b6001820392505b5050610a71565b506001600160a01b038516600090815260086020908152604080832063ffffffff9094168352929052206001015491505092915050565b600a6020526000908152604090205481565b6000610b75610b7a565b905090565b6000546001600160a01b031690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106965780601f1061066b57610100808354040283529160200191610696565b6000610bf461108d565b6000546001600160a01b03908116911614610c44576040805162461bcd60e51b81526020600482018190526024820152600080516020611a4f833981519152604482015290519081900360640190fd5b610c55610c4f61108d565b836113c0565b506001919050565b60006106b4610c6a61108d565b8461076085604051806060016040528060258152602001611ab86025913960026000610c9461108d565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906112cf565b60006106b4610cd261108d565b848461117d565b6001600160a01b03811660009081526009602052604081205463ffffffff1680610d04576000610d36565b6001600160a01b038316600090815260086020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866610d6861060a565b80519060200120610d7761167d565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c08401526001600160a01b038b1660e084015261010083018a90526101208084018a9052825180850390910181526101408401835280519085012061190160f01b6101608501526101628401829052610182808501829052835180860390910181526101a285018085528151918701919091206000918290526101c2860180865281905260ff8b166101e287015261020286018a90526102228601899052935192965090949293909260019261024280840193601f198301929081900390910190855afa158015610eaa573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610efc5760405162461bcd60e51b8152600401808060200182810382526025815260200180611add6025913960400191505060405180910390fd5b6001600160a01b0381166000908152600a602052604090208054600181019091558914610f5a5760405162461bcd60e51b81526004018080602001828103825260218152602001806119896021913960400191505060405180910390fd5b87421115610f995760405162461bcd60e51b8152600401808060200182810382526025815260200180611b246025913960400191505060405180910390fd5b610fa3818b6115e8565b505050505b505050505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b60086020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b61103461108d565b6000546001600160a01b03908116911614611084576040805162461bcd60e51b81526020600482018190526024820152600080516020611a4f833981519152604482015290519081900360640190fd5b61087981611681565b3390565b6001600160a01b0383166110d65760405162461bcd60e51b81526004018080602001828103825260248152602001806119aa6024913960400191505060405180910390fd5b6001600160a01b03821661111b5760405162461bcd60e51b8152600401808060200182810382526022815260200180611b026022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166111c25760405162461bcd60e51b81526004018080602001828103825260258152602001806119646025913960400191505060405180910390fd5b6001600160a01b0382166112075760405162461bcd60e51b8152600401808060200182810382526023815260200180611a956023913960400191505060405180910390fd5b61124481604051806060016040528060268152602001611a6f602691396001600160a01b03861660009081526001602052604090205491906112cf565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546112739082611366565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561135e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561132357818101518382015260200161130b565b50505050905090810190601f1680156113505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610d36576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03821661141b576040805162461bcd60e51b815260206004820152601f60248201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6003546114289082611366565b6003556001600160a01b03821660009081526001602052604090205461144e9082611366565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b816001600160a01b0316836001600160a01b0316141580156114c85750600081115b156115e3576001600160a01b0383161561155a576001600160a01b03831660009081526009602052604081205463ffffffff16908161150857600061153a565b6001600160a01b038516600090815260086020908152604080832063ffffffff60001987011684529091529020600101545b905060006115488285611721565b905061155686848484611763565b5050505b6001600160a01b038216156115e3576001600160a01b03821660009081526009602052604081205463ffffffff1690816115955760006115c7565b6001600160a01b038416600090815260086020908152604080832063ffffffff60001987011684529091529020600101545b905060006115d58285611366565b9050610fa885848484611763565b505050565b6001600160a01b038083166000908152600760205260408120549091169061160f84610894565b6001600160a01b0385811660008181526007602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46116778284836114a6565b50505050565b4690565b6001600160a01b0381166116c65760405162461bcd60e51b81526004018080602001828103825260268152602001806119ce6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d3683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112cf565b600061178743604051806060016040528060338152602001611a1c603391396118c8565b905060008463ffffffff161180156117d057506001600160a01b038516600090815260086020908152604080832063ffffffff6000198901811685529252909120548282169116145b1561180d576001600160a01b038516600090815260086020908152604080832063ffffffff6000198901168452909152902060010182905561187e565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600884528681208b8616825284528681209551865490861663ffffffff19918216178755925160019687015590815260099092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b600081640100000000841061191e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561132357818101518382015260200161130b565b509192915050565b60408051808201909152600080825260208201529056fe46494e3a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656442455032303a207472616e736665722066726f6d20746865207a65726f206164647265737346494e3a3a64656c656761746542795369673a20696e76616c6964206e6f6e636542455032303a20617070726f76652066726f6d20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636546494e3a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657242455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f46494e3a3a64656c656761746542795369673a20696e76616c6964207369676e617475726542455032303a20617070726f766520746f20746865207a65726f206164647265737346494e3a3a64656c656761746542795369673a207369676e61747572652065787069726564a2646970667358221220b8ca31666f7eca155c55fabccd98db5a8f679c45b2aae8642496281ac5838cb164736f6c634300060c0033

Deployed ByteCode Sourcemap

13091:7140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9123:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9988:161;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9988:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;9427:100;;;:::i;:::-;;;;;;;;;;;;;;;;13977:122;;;:::i;10157:397::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10157:397:0;;;;;;;;;;;;;;;;;:::i;9223:92::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10562:210;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10562:210:0;;;;;;;;:::i;13253:162::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13253:162:0;;;;;;;;:::i;:::-;;14820:149;;;;;;;;;;;;;;;;-1:-1:-1;14820:149:0;-1:-1:-1;;;;;14820:149:0;;:::i;:::-;;;;-1:-1:-1;;;;;14820:149:0;;;;;;;;;;;;;;14977:104;;;;;;;;;;;;;;;;-1:-1:-1;14977:104:0;-1:-1:-1;;;;;14977:104:0;;:::i;13855:49::-;;;;;;;;;;;;;;;;-1:-1:-1;13855:49:0;-1:-1:-1;;;;;13855:49:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;9535:119;;;;;;;;;;;;;;;;-1:-1:-1;9535:119:0;-1:-1:-1;;;;;9535:119:0;;:::i;1470:140::-;;;:::i;16535:1252::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16535:1252:0;;;;;;;;:::i;14391:39::-;;;;;;;;;;;;;;;;-1:-1:-1;14391:39:0;-1:-1:-1;;;;;14391:39:0;;:::i;9021:94::-;;;:::i;1256:79::-;;;:::i;9323:96::-;;;:::i;11099:130::-;;;;;;;;;;;;;;;;-1:-1:-1;11099:130:0;;:::i;10780:311::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10780:311:0;;;;;;;;:::i;9662:167::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9662:167:0;;;;;;;;:::i;16272:255::-;;;;;;;;;;;;;;;;-1:-1:-1;16272:255:0;-1:-1:-1;;;;;16272:255:0;;:::i;15089:1175::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15089:1175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;9837:143::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9837:143:0;;;;;;;;;;:::i;14193:117::-;;;:::i;13716:70::-;;;;;;;;;;;;;;;;-1:-1:-1;13716:70:0;;-1:-1:-1;;;;;13716:70:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;1618:109;;;;;;;;;;;;;;;;-1:-1:-1;1618:109:0;-1:-1:-1;;;;;1618:109:0;;:::i;9123:92::-;9202:5;9195:12;;;;;;;;-1:-1:-1;;9195:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9169:13;;9195:12;;9202:5;;9195:12;;9202:5;9195:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9123:92;:::o;9988:161::-;10063:4;10080:39;10089:12;:10;:12::i;:::-;10103:7;10112:6;10080:8;:39::i;:::-;-1:-1:-1;10137:4:0;9988:161;;;;;:::o;9427:100::-;9507:12;;9427:100;:::o;13977:122::-;14019:80;13977:122;:::o;10157:397::-;10289:4;10306:36;10316:6;10324:9;10335:6;10306:9;:36::i;:::-;10353:171;10376:6;10397:12;:10;:12::i;:::-;10424:89;10462:6;10424:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10424:19:0;;;;;;:11;:19;;;;;;10444:12;:10;:12::i;:::-;-1:-1:-1;;;;;10424:33:0;;;;;;;;;;;;-1:-1:-1;10424:33:0;;;:89;:37;:89::i;:::-;10353:8;:171::i;:::-;-1:-1:-1;10542:4:0;10157:397;;;;;:::o;9223:92::-;9298:9;;;;9223:92;:::o;10562:210::-;10642:4;10659:83;10668:12;:10;:12::i;:::-;10682:7;10691:50;10730:10;10691:11;:25;10703:12;:10;:12::i;:::-;-1:-1:-1;;;;;10691:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10691:25:0;;;:34;;;;;;;;;;;:38;:50::i;13253:162::-;1393:12;:10;:12::i;:::-;1383:6;;-1:-1:-1;;;;;1383:6:0;;;:22;;;1375:67;;;;;-1:-1:-1;;;1375:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1375:67:0;;;;;;;;;;;;;;;13325:19:::1;13331:3;13336:7;13325:5;:19::i;:::-;-1:-1:-1::0;;;;;13382:15:0;;::::1;13378:1;13382:15:::0;;;:10:::1;:15;::::0;;;;;13355:52:::1;::::0;13382:15:::1;13399:7:::0;13355:14:::1;:52::i;:::-;13253:162:::0;;:::o;14820:149::-;-1:-1:-1;;;;;14940:21:0;;;14908:7;14940:21;;;:10;:21;;;;;;;;14820:149::o;14977:104::-;15041:32;15051:10;15063:9;15041;:32::i;:::-;14977:104;:::o;13855:49::-;;;;;;;;;;;;;;;:::o;9535:119::-;-1:-1:-1;;;;;9628:18:0;9601:7;9628:18;;;:9;:18;;;;;;;9535:119::o;1470:140::-;1393:12;:10;:12::i;:::-;1383:6;;-1:-1:-1;;;;;1383:6:0;;;:22;;;1375:67;;;;;-1:-1:-1;;;1375:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1375:67:0;;;;;;;;;;;;;;;1569:1:::1;1553:6:::0;;1532:40:::1;::::0;-1:-1:-1;;;;;1553:6:0;;::::1;::::0;1532:40:::1;::::0;1569:1;;1532:40:::1;1600:1;1583:19:::0;;-1:-1:-1;;;;;;1583:19:0::1;::::0;;1470:140::o;16535:1252::-;16643:7;16690:12;16676:11;:26;16668:77;;;;-1:-1:-1;;;16668:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16780:23:0;;16758:19;16780:23;;;:14;:23;;;;;;;;16818:17;16814:58;;16859:1;16852:8;;;;;16814:58;-1:-1:-1;;;;;16932:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;16953:16:0;;16932:38;;;;;;;;;:48;;:63;-1:-1:-1;16928:147:0;;-1:-1:-1;;;;;17019:20:0;;;;;;:11;:20;;;;;;;;-1:-1:-1;;17040:16:0;;;;17019:38;;;;;;;;17055:1;17019:44;;;-1:-1:-1;17012:51:0;;16928:147;-1:-1:-1;;;;;17136:20:0;;;;;;:11;:20;;;;;;;;:23;;;;;;;;:33;:23;:33;:47;-1:-1:-1;17132:88:0;;;17207:1;17200:8;;;;;17132:88;17232:12;-1:-1:-1;;17274:16:0;;17301:428;17316:5;17308:13;;:5;:13;;;17301:428;;;17380:1;17363:13;;;17362:19;;;17354:27;;17423:20;;:::i;:::-;-1:-1:-1;;;;;;17446:20:0;;;;;;:11;:20;;;;;;;;:28;;;;;;;;;;;;;17423:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17493:27;;17489:229;;;17548:8;;;;-1:-1:-1;17541:15:0;;-1:-1:-1;;;;17541:15:0;17489:229;17582:12;;:26;;;-1:-1:-1;17578:140:0;;;17637:6;17629:14;;17578:140;;;17701:1;17692:6;:10;17684:18;;17578:140;17301:428;;;;;-1:-1:-1;;;;;;17746:20:0;;;;;;:11;:20;;;;;;;;:27;;;;;;;;;;:33;;;;-1:-1:-1;;16535:1252:0;;;;:::o;14391:39::-;;;;;;;;;;;;;:::o;9021:94::-;9073:7;9100;:5;:7::i;:::-;9093:14;;9021:94;:::o;1256:79::-;1294:7;1321:6;-1:-1:-1;;;;;1321:6:0;1256:79;:::o;9323:96::-;9404:7;9397:14;;;;;;;;-1:-1:-1;;9397:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9371:13;;9397:14;;9404:7;;9397:14;;9404:7;9397:14;;;;;;;;;;;;;;;;;;;;;;;;11099:130;11155:4;1393:12;:10;:12::i;:::-;1383:6;;-1:-1:-1;;;;;1383:6:0;;;:22;;;1375:67;;;;;-1:-1:-1;;;1375:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1375:67:0;;;;;;;;;;;;;;;11172:27:::1;11178:12;:10;:12::i;:::-;11192:6;11172:5;:27::i;:::-;-1:-1:-1::0;11217:4:0::1;11099:130:::0;;;:::o;10780:311::-;10865:4;10882:179;10905:12;:10;:12::i;:::-;10932:7;10954:96;10993:15;10954:96;;;;;;;;;;;;;;;;;:11;:25;10966:12;:10;:12::i;:::-;-1:-1:-1;;;;;10954:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10954:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;9662:167::-;9740:4;9757:42;9767:12;:10;:12::i;:::-;9781:9;9792:6;9757:9;:42::i;16272:255::-;-1:-1:-1;;;;;16411:23:0;;16364:7;16411:23;;;:14;:23;;;;;;;;16452:16;:67;;16518:1;16452:67;;;-1:-1:-1;;;;;16471:20:0;;;;;;:11;:20;;;;;;;;:38;-1:-1:-1;;16492:16:0;;16471:38;;;;;;;;16507:1;16471:44;;16452:67;16445:74;16272:255;-1:-1:-1;;;16272:255:0:o;15089:1175::-;15282:23;14019:80;15411:6;:4;:6::i;:::-;15395:24;;;;;;15438:12;:10;:12::i;:::-;15332:165;;;;;;;;;;;;;;;;;;;;;;;;;15477:4;15332:165;;;;;;;;;;;;;;;;;;;;;;;15308:200;;;;;;14239:71;15566:140;;;;-1:-1:-1;;;;;15566:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15542:175;;;;;;-1:-1:-1;;;15771:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15747:158;;;;;;;;;-1:-1:-1;15938:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15308:200;;-1:-1:-1;15542:175:0;;15747:158;;-1:-1:-1;;15938:26:0;;;;;;;-1:-1:-1;;15938:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15938:26:0;;-1:-1:-1;;15938:26:0;;;-1:-1:-1;;;;;;;15983:23:0;;15975:73;;;;-1:-1:-1;;;15975:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16076:17:0;;;;;;:6;:17;;;;;:19;;;;;;;;16067:28;;16059:74;;;;-1:-1:-1;;;16059:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16159:6;16152:3;:13;;16144:63;;;;-1:-1:-1;;;16144:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16225:31;16235:9;16246;16225;:31::i;:::-;16218:38;;;;15089:1175;;;;;;;:::o;9837:143::-;-1:-1:-1;;;;;9945:18:0;;;9918:7;9945:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9837:143::o;14193:117::-;14239:71;14193:117;:::o;13716:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1618:109::-;1393:12;:10;:12::i;:::-;1383:6;;-1:-1:-1;;;;;1383:6:0;;;:22;;;1375:67;;;;;-1:-1:-1;;;1375:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1375:67:0;;;;;;;;;;;;;;;1691:28:::1;1710:8;1691:18;:28::i;592:98::-:0;672:10;592:98;:::o;12422:372::-;-1:-1:-1;;;;;12550:19:0;;12542:68;;;;-1:-1:-1;;;12542:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12629:21:0;;12621:68;;;;-1:-1:-1;;;12621:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12702:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12754:32;;;;;;;;;;;;;;;;;12422:372;;;:::o;11237:505::-;-1:-1:-1;;;;;11369:20:0;;11361:70;;;;-1:-1:-1;;;11361:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11450:23:0;;11442:71;;;;-1:-1:-1;;;11442:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11546;11568:6;11546:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11546:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;11526:17:0;;;;;;;:9;:17;;;;;;:91;;;;11651:20;;;;;;;:32;;11676:6;11651:24;:32::i;:::-;-1:-1:-1;;;;;11628:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;11699:35;;;;;;;11628:20;;11699:35;;;;;;;;;;;;;11237:505;;;:::o;3278:226::-;3398:7;3434:12;3426:6;;;;3418:29;;;;-1:-1:-1;;;3418:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3470:5:0;;;3278:226::o;2945:181::-;3003:7;3035:5;;;3059:6;;;;3051:46;;;;;-1:-1:-1;;;3051:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11750:308;-1:-1:-1;;;;;11826:21:0;;11818:65;;;;;-1:-1:-1;;;11818:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11911:12;;:24;;11928:6;11911:16;:24::i;:::-;11896:12;:39;-1:-1:-1;;;;;11967:18:0;;;;;;:9;:18;;;;;;:30;;11990:6;11967:22;:30::i;:::-;-1:-1:-1;;;;;11946:18:0;;;;;;:9;:18;;;;;;;;:51;;;;12013:37;;;;;;;11946:18;;;;12013:37;;;;;;;;;;11750:308;;:::o;18240:947::-;18346:6;-1:-1:-1;;;;;18336:16:0;:6;-1:-1:-1;;;;;18336:16:0;;;:30;;;;;18365:1;18356:6;:10;18336:30;18332:848;;;-1:-1:-1;;;;;18387:20:0;;;18383:385;;-1:-1:-1;;;;;18495:22:0;;18476:16;18495:22;;;:14;:22;;;;;;;;;18556:13;:60;;18615:1;18556:60;;;-1:-1:-1;;;;;18572:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;18592:13:0;;18572:34;;;;;;;;18604:1;18572:40;;18556:60;18536:80;-1:-1:-1;18635:17:0;18655:21;18536:80;18669:6;18655:13;:21::i;:::-;18635:41;;18695:57;18712:6;18720:9;18731;18742;18695:16;:57::i;:::-;18383:385;;;;-1:-1:-1;;;;;18788:20:0;;;18784:385;;-1:-1:-1;;;;;18896:22:0;;18877:16;18896:22;;;:14;:22;;;;;;;;;18957:13;:60;;19016:1;18957:60;;;-1:-1:-1;;;;;18973:19:0;;;;;;:11;:19;;;;;;;;:34;-1:-1:-1;;18993:13:0;;18973:34;;;;;;;;19005:1;18973:40;;18957:60;18937:80;-1:-1:-1;19036:17:0;19056:21;18937:80;19070:6;19056:13;:21::i;:::-;19036:41;;19096:57;19113:6;19121:9;19132;19143;19096:16;:57::i;18784:385::-;18240:947;;;:::o;17795:437::-;-1:-1:-1;;;;;17912:21:0;;;17886:23;17912:21;;;:10;:21;;;;;;;;;;17971:20;17923:9;17971;:20::i;:::-;-1:-1:-1;;;;;18046:21:0;;;;;;;:10;:21;;;;;;:33;;-1:-1:-1;;;;;;18046:33:0;;;;;;;;;;18097:54;;17944:47;;-1:-1:-1;18046:33:0;18097:54;;;;;;18046:21;18097:54;18164:60;18179:15;18196:9;18207:16;18164:14;:60::i;:::-;17795:437;;;;:::o;20075:153::-;20185:9;20075:153;:::o;1735:229::-;-1:-1:-1;;;;;1809:22:0;;1801:73;;;;-1:-1:-1;;;1801:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1911:6;;;1890:38;;-1:-1:-1;;;;;1890:38:0;;;;1911:6;;;1890:38;;;1939:6;:17;;-1:-1:-1;;;;;;1939:17:0;-1:-1:-1;;;;;1939:17:0;;;;;;;;;;1735:229::o;3134:136::-;3192:7;3219:43;3223:1;3226;3219:43;;;;;;;;;;;;;;;;;:3;:43::i;19195:703::-;19374:18;19395:75;19402:12;19395:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;19374:96;;19502:1;19487:12;:16;;;:85;;;;-1:-1:-1;;;;;;19507:22:0;;;;;;:11;:22;;;;;;;;:65;-1:-1:-1;;19530:16:0;;19507:40;;;;;;;;;:50;:65;;;:50;;:65;19487:85;19483:339;;;-1:-1:-1;;;;;19589:22:0;;;;;;:11;:22;;;;;;;;:40;-1:-1:-1;;19612:16:0;;19589:40;;;;;;;;19627:1;19589:46;:57;;;19483:339;;;19718:33;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19679:22:0;;-1:-1:-1;19679:22:0;;;:11;:22;;;;;:36;;;;;;;;;;:72;;;;;;;-1:-1:-1;;19679:72:0;;;;;;;;;;;;;19766:25;;;:14;:25;;;;;;:44;;19794:16;;;19766:44;;;;;;;;;;19483:339;19839:51;;;;;;;;;;;;;;-1:-1:-1;;;;;19839:51:0;;;;;;;;;;;19195:703;;;;;:::o;19906:161::-;19981:6;20019:12;20012:5;20008:9;;20000:32;;;;-1:-1:-1;;;20000:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20057:1:0;;19906:161;-1:-1:-1;;19906:161:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://b8ca31666f7eca155c55fabccd98db5a8f679c45b2aae8642496281ac5838cb1
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.