Contract 0x235591A52718de789c2f04ad54Ea1151c717D07E

 
Txn Hash
Block
From
To
Value [Txn Fee]
0xefe153c3ebaa8dbb16e35cfe602fec47ea11a18b4baf3036b807da97edb8c48e85469812021-06-23 12:23:481 hr 35 mins ago0x9aa260f91091fda3bf7217c74f1b4bd933bb67d2 IN  Ubu Finance: UBank0 BNB0.00019893
0xba421dcf3b042bc61668c5d53c1489daae184061fd0acfc2ccfbb3ae32d3b6e585443202021-06-23 10:10:033 hrs 48 mins ago0xc5f6c6e5d2244d3201c97de8d0e057dab8b1b9fb IN  Ubu Finance: UBank0 BNB0.00076673
0xdde37f9d65198bda33e83dc5bb49c43980f273e12a925b8eb5fdfdc94202669985443062021-06-23 10:09:213 hrs 49 mins ago0xc5f6c6e5d2244d3201c97de8d0e057dab8b1b9fb IN  Ubu Finance: UBank0 BNB0.00019893
0x4fbf51941d69a5df673c54d4724a1f43ac262325d93e853d2d36faadef515be985428562021-06-23 8:56:445 hrs 2 mins ago0xa0f99787ea23a92748b8b00ced75c62e0a5b4f2a IN  Ubu Finance: UBank0 BNB0.00076673
0xff0043f1119f8f01e02fbc4065987c24f08b66e39f909b245e38dacb2bbe77c785428122021-06-23 8:54:325 hrs 4 mins ago0xa0f99787ea23a92748b8b00ced75c62e0a5b4f2a IN  Ubu Finance: UBank0 BNB0.00019893
0x3e33dec507549a07447533b363018e58b00cfb2334f3e2bee1c0d8fa84ef475c85385572021-06-23 5:20:208 hrs 38 mins ago0xd73084e13f0ae289a1658f45de2d9c7e937e4520 IN  Ubu Finance: UBank0 BNB0.00076673
0xd950613f965326beda5dc6e9107acc61dfddda1643356e6ff5df5a424e51f17f85385262021-06-23 5:18:478 hrs 40 mins ago0xd73084e13f0ae289a1658f45de2d9c7e937e4520 IN  Ubu Finance: UBank0 BNB0.00019893
0x40cdbb26542b46526a000d2349c184e79b05076c1a6f3c2019d19842a96f83f585342522021-06-23 1:44:2812 hrs 14 mins ago0xb8f0942a09cf7127e89e737e5871f6d8ddf20c7b IN  Ubu Finance: UBank0 BNB0.00076679
0xaabbf0dbe9bb9c661ef46ef47588f59a66b5ec1c5ea174ad3f6c1d37c158378c85335522021-06-23 1:09:2812 hrs 49 mins ago0xb8f0942a09cf7127e89e737e5871f6d8ddf20c7b IN  Ubu Finance: UBank0 BNB0.00019893
0xcd8e1a38c5dae224b097836ce96a33dfd57adf15a881fa9306f4c5041d8fc46185303322021-06-22 22:25:5415 hrs 33 mins ago0x8c1d563f1fe89b931761394261b1fc4731a27006 IN  Ubu Finance: UBank0 BNB0.00076673
0xbc5e03799e3f71bd9ca539fd5f34d55cbe0afe689041f1d8d60456cebe790d1185284522021-06-22 20:51:3517 hrs 7 mins ago0xbcf60090c7c51cccf80980e357601aca62b557e2 IN  Ubu Finance: UBank0 BNB0.00019893
0x8e01d3711640867ad604f76e336478020190b21c7247480546a16fcf91a4b24285282692021-06-22 20:42:2617 hrs 16 mins ago0xa236d4ff6518c5c75529d14ec0d8035cf3b28198 IN  Ubu Finance: UBank0 BNB0.00076679
0x989037e69a761301d802083120272b2f569f86b51dbc0c42389ab8076abb2d9085208192021-06-22 14:26:3423 hrs 32 mins ago0xb0db0a18ba8309b66aa54ea5bb55f4f457ca3ea8 IN  Ubu Finance: UBank0 BNB0.00076679
0x770687a1acae586fd89369eb08b024f2de62aea84d1e16e1ca1db19762e276c185208102021-06-22 14:26:0723 hrs 32 mins ago0xb0db0a18ba8309b66aa54ea5bb55f4f457ca3ea8 IN  Ubu Finance: UBank0 BNB0.00019893
0x51799fcb7f4ec5af1806f47ca14b921f173a5d13c8f542a1889b083989b8eb0d85192862021-06-22 13:09:531 day 49 mins ago0xa236d4ff6518c5c75529d14ec0d8035cf3b28198 IN  Ubu Finance: UBank0 BNB0.00019893
0x988bcc1fa9703a78df5df46abca4db6bc901426d3675e4e9023faaf93ece21b685184152021-06-22 12:25:071 day 1 hr ago0x3198a38947690cee05a685cb2211523b317ec3e4 IN  Ubu Finance: UBank0 BNB0.00076679
0xd3c96eb253e218b52e16a22ee996f3684bc2a373be151f2d4449d4da280800f185183292021-06-22 12:20:241 day 1 hr ago0x3198a38947690cee05a685cb2211523b317ec3e4 IN  Ubu Finance: UBank0 BNB0.00019893
0x7a934f6e001c82256f089a9322d2a351ef1ecb5c0b94964b927b4e612a4d39eb85171042021-06-22 11:18:391 day 2 hrs ago0x8b7345ba0777eaffb72e2fe74b81b68e881e10a7 IN  Ubu Finance: UBank0 BNB0.00076679
0xd26b2784389b4c24b97142ebf8e988df3591b98ef20edbc136ad1ebe87aaa13685164452021-06-22 10:45:421 day 3 hrs ago0x8b7345ba0777eaffb72e2fe74b81b68e881e10a7 IN  Ubu Finance: UBank0 BNB0.00019893
0x9214c0222b8ec32179a8007f5de57436f61a0e0b944dbf80540fb28622851d4f85109882021-06-22 6:11:281 day 7 hrs ago0x5621daf25a2cb951e87378250ab4a9761c4bbcb0 IN  Ubu Finance: UBank0 BNB0.00076673
0x888a531b8755d82c1a1a6a39e690d67ed6e9f3e0243d282306396f0615a607de85068482021-06-22 2:43:461 day 11 hrs ago0x753b0dd94dda8098b256e3089028dbce9c220470 IN  Ubu Finance: UBank0 BNB0.00076679
0x0b6b08e8060b179b800a27d54d437ba694bd933dc96a8ff5a0ac3d90a9447cd985068062021-06-22 2:41:401 day 11 hrs ago0x753b0dd94dda8098b256e3089028dbce9c220470 IN  Ubu Finance: UBank0 BNB0.00019893
0x6dc0817d3c9bea963bb2f08e6375cd85d96a3501f2cc1440c2b7f09a2705ca4485059242021-06-22 1:57:201 day 12 hrs ago0xc84e4ba6d4ef9f01aa2527e2f5bc1cdc93b666df IN  Ubu Finance: UBank0 BNB0.00076679
0xa422dac848b042c5f2e24d9ab6ca10c1b55b0b3bee41858859defb9e97d1934d85058982021-06-22 1:56:021 day 12 hrs ago0xc84e4ba6d4ef9f01aa2527e2f5bc1cdc93b666df IN  Ubu Finance: UBank0 BNB0.00019893
0xb467b3f36508dc3bca2242300e96119bf6478380340e6b2802b1eb6a4cc7634885019692021-06-21 22:37:401 day 15 hrs ago0x9e314b143e8d1e31ffaf447e5afb8409442012ec IN  Ubu Finance: UBank0 BNB0.00076673
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xee212f80a98200d7354d42f49d250eb1cfbd2b7539eff917d43d3dc2612a064354674862021-03-07 8:47:15108 days 5 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xee212f80a98200d7354d42f49d250eb1cfbd2b7539eff917d43d3dc2612a064354674862021-03-07 8:47:15108 days 5 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x33fe092b77db1d61911dcd385f5617037c136047d955b9ec12ca086905b81f3d54659272021-03-07 7:29:18108 days 6 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x33fe092b77db1d61911dcd385f5617037c136047d955b9ec12ca086905b81f3d54659272021-03-07 7:29:18108 days 6 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x31eb6c401285785d2ab98cc869637c4b03a8e80ce416c1408abb1b1e39e4882d54642452021-03-07 6:05:12108 days 7 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x31eb6c401285785d2ab98cc869637c4b03a8e80ce416c1408abb1b1e39e4882d54642452021-03-07 6:05:12108 days 7 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xedde55b3a1cb0f37607db5f45f5ebaf90e5f89e31a5d054354a5a2389941903854631432021-03-07 5:09:56108 days 8 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xedde55b3a1cb0f37607db5f45f5ebaf90e5f89e31a5d054354a5a2389941903854631432021-03-07 5:09:56108 days 8 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xae47c05a3010e686db5f1402c77fae6f580abe233bcedd97ce76a7809a53167e54617042021-03-07 3:57:59108 days 10 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xae47c05a3010e686db5f1402c77fae6f580abe233bcedd97ce76a7809a53167e54617042021-03-07 3:57:59108 days 10 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x09c39c610357c38b187de2bc0779f3f4b828754f9fa7d0401d6d4896544743cd54593592021-03-07 2:00:44108 days 11 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x09c39c610357c38b187de2bc0779f3f4b828754f9fa7d0401d6d4896544743cd54593592021-03-07 2:00:44108 days 11 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x34c6ce49c24d947e2417af79c348c71591dc9fc9bf4102c41b07fa97718338fd54569112021-03-06 23:58:18108 days 14 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x34c6ce49c24d947e2417af79c348c71591dc9fc9bf4102c41b07fa97718338fd54569112021-03-06 23:58:18108 days 14 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xd0c5dd0f3b0717d9c2020b5e9e02061a8bbbfb2683d12ab7054c6592da498b1e54495692021-03-06 17:50:39108 days 20 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xd0c5dd0f3b0717d9c2020b5e9e02061a8bbbfb2683d12ab7054c6592da498b1e54495692021-03-06 17:50:39108 days 20 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x484df5069ad3318951a80fb8016fbc9e5554295a1a0a84529edfbd747b5d6ab354488302021-03-06 17:13:42108 days 20 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x484df5069ad3318951a80fb8016fbc9e5554295a1a0a84529edfbd747b5d6ab354488302021-03-06 17:13:42108 days 20 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x70ea8be7096dc441510ed16d46e821677b219c7815542cef979f8cfeb26fab3954487992021-03-06 17:12:09108 days 20 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x70ea8be7096dc441510ed16d46e821677b219c7815542cef979f8cfeb26fab3954487992021-03-06 17:12:09108 days 20 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x013e79166bd902d5f1c89b49d1028800d543c5f4f01db94b0edf91a13c7393e754469952021-03-06 15:41:12108 days 22 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0x013e79166bd902d5f1c89b49d1028800d543c5f4f01db94b0edf91a13c7393e754469952021-03-06 15:41:12108 days 22 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xe90cdd03609d53c88463f6320bb4e46e13a6fac01b8788c38c9fc7e2b5a7260854466282021-03-06 15:22:51108 days 22 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xe90cdd03609d53c88463f6320bb4e46e13a6fac01b8788c38c9fc7e2b5a7260854466282021-03-06 15:22:51108 days 22 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
0xdc4cbdf42a2ce3dc88b35e423a05c8f09a70ea2e9592d37546cb98df0e82173454459252021-03-06 14:47:42108 days 23 hrs ago Ubu Finance: UBank Ubu Finance: UBU Token0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ubank

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-02-24
*/

pragma solidity 0.6.12;

interface IERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, "add: +");

        return c;
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        uint c = a + b;
        require(c >= a, errorMessage);

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint a, uint b) internal pure returns (uint) {
        return sub(a, b, "sub: -");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b <= a, errorMessage);
        uint c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint a, uint b) internal pure returns (uint) {
        // 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;
        }

        uint c = a * b;
        require(c / a == b, "mul: *");

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        // 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;
        }

        uint c = a * b;
        require(c / a == b, errorMessage);

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint a, uint b) internal pure returns (uint) {
        return div(a, b, "div: /");
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts with custom message on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint a, uint b) internal pure returns (uint) {
        return mod(a, b, "mod: %");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint a, uint b, string memory errorMessage) internal pure returns (uint) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

pragma solidity ^0.6.0;

/*
 * @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.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual 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);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// y = f(x)

// 5 = f(10)
// 185 = f(365)
//y = A^x - X
//y = 1.87255 + 0.2985466*x + 0.001419838*x^2


interface StakingInterface {
    function votingPowerOf(address acc, uint256 until) external view returns(uint256);
}

contract Ubank is Ownable, StakingInterface {
    using SafeMath for uint256;
    IERC20 public ubu;

    bool isClosed = false;

    // quadratic reward curve constants
    // a + b*x + c*x^2
    uint256 public A = 187255; // 1.87255
    uint256 public B = 29854;  // 0.2985466*x
    uint256 public C = 141;    // 0.001419838*x^2

    uint256 public maxDays = 365;
    uint256 public minDays = 10;

    uint256 public totalStaked = 0;
    uint256 public totalRewards = 0;

    uint256 public earlyExit = 0;

    struct StakeInfo {
        uint256 reward;
        uint256 initial;
        uint256 payday;
        uint256 startday;
    }

    mapping (address=>StakeInfo) public stakes;

    constructor(address _ubu) public {
        ubu = IERC20(_ubu);
    }

    function stake(uint256 _amount, uint256 _days) public {
        require(_days > minDays, "less than minimum staking period");
        require(_days < maxDays, "more than maximum staking period");
        require(stakes[msg.sender].payday == 0, "already staked");
        require(_amount > 100, "amount to small");
        require(!isClosed, "staking is closed");

        // calculate reward
        uint256 _reward = calculateReward(_amount, _days);

        // contract must have funds to keep this commitment
        require(ubu.balanceOf(address(this)) > totalOwedValue().add(_reward).add(_amount), "insufficient contract bal");

        require(ubu.transferFrom(msg.sender, address(this), _amount), "transfer failed");

        stakes[msg.sender].payday = block.timestamp.add(_days * (1 days));
        stakes[msg.sender].reward = _reward;
        stakes[msg.sender].startday = block.timestamp;
        stakes[msg.sender].initial = _amount;

        // update stats
        totalStaked = totalStaked.add(_amount);
        totalRewards = totalRewards.add(_reward);
    }

    function claim() public {
        require(owedBalance(msg.sender) > 0, "nothing to claim");
        require(block.timestamp > stakes[msg.sender].payday.sub(earlyExit), "too early");

        uint256 owed = stakes[msg.sender].reward.add(stakes[msg.sender].initial);

        // update stats
        totalStaked = totalStaked.sub(stakes[msg.sender].initial);
        totalRewards = totalRewards.sub(stakes[msg.sender].reward);

        stakes[msg.sender].initial = 0;
        stakes[msg.sender].reward = 0;
        stakes[msg.sender].payday = 0;
        stakes[msg.sender].startday = 0;

        require(ubu.transfer(msg.sender, owed), "transfer failed");
    }

    function calculateReward(uint256 _amount, uint256 _days) public view returns (uint256) {
        uint256 _multiplier = _quadraticRewardCurveY(_days);
        uint256 _AY = _amount.mul(_multiplier);
        return _AY.div(10000000);

    }

    // a + b*x + c*x^2
    function _quadraticRewardCurveY(uint256 _x) public view returns (uint256) {
        uint256 _bx = _x.mul(B);
        uint256 _x2 = _x.mul(_x);
        uint256 _cx2 = C.mul(_x2);
        return A.add(_bx).add(_cx2);
    }

    // helpers:
    function totalOwedValue() public view returns (uint256) {
        return totalStaked.add(totalRewards);
    }

    function owedBalance(address acc) public view returns(uint256) {
        return stakes[acc].initial.add(stakes[acc].reward);
    }

    function votingPowerOf(address acc, uint256 until) external override view returns(uint256) {
        if (stakes[acc].payday > until) {
            return 0;
        }

        return owedBalance(acc);
    }

    // owner functions:
    function setLimits(uint256 _minDays, uint256 _maxDays) public onlyOwner {
        minDays = _minDays;
        maxDays = _maxDays;
    }

    function setCurve(uint256 _A, uint256 _B, uint256 _C) public onlyOwner {
        A = _A;
        B = _B;
        C = _C;
    }

    function setEarlyExit(uint256 _earlyExit) public onlyOwner {
        require(_earlyExit < 2880000, "too big");
        close(true);
        earlyExit = _earlyExit;
    }

    function close(bool closed) public onlyOwner {
        isClosed = closed;
    }

    function ownerReclaim(uint256 _amount) public onlyOwner {
        require(_amount < ubu.balanceOf(address(this)).sub(totalOwedValue()), "cannot withdraw owed funds");
        ubu.transfer(msg.sender, _amount);
    }

    function flushBNB() public onlyOwner {
        uint256 bal = address(this).balance.sub(1);
        msg.sender.transfer(bal);
    }

}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_ubu","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"A","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"B","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"C","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_x","type":"uint256"}],"name":"_quadraticRewardCurveY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_days","type":"uint256"}],"name":"calculateReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"closed","type":"bool"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyExit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flushBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"}],"name":"owedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ownerReclaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_A","type":"uint256"},{"internalType":"uint256","name":"_B","type":"uint256"},{"internalType":"uint256","name":"_C","type":"uint256"}],"name":"setCurve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_earlyExit","type":"uint256"}],"name":"setEarlyExit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minDays","type":"uint256"},{"internalType":"uint256","name":"_maxDays","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_days","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"initial","type":"uint256"},{"internalType":"uint256","name":"payday","type":"uint256"},{"internalType":"uint256","name":"startday","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalOwedValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ubu","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acc","type":"address"},{"internalType":"uint256","name":"until","type":"uint256"}],"name":"votingPowerOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040526001805460ff60a01b191690556202db7760025561749e600355608d60045561016d600555600a60065560006007819055600881905560095534801561004957600080fd5b5060405161146e38038061146e8339818101604052602081101561006c57600080fd5b505160006100786100e7565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790556100eb565b3390565b611374806100fa6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80637b0472f0116100de578063b3d9799c11610097578063e8f5fb1c11610071578063e8f5fb1c1461039d578063f2fde38b146103a5578063f446c1d0146103cb578063fcc77c18146103d35761018e565b8063b3d9799c14610340578063c4590d3f1461035d578063da8abf24146103805761018e565b80637b0472f0146102e0578063817b1cd21461030357806383dfe5fd1461030b5780638da5cb5b146103135780639251a7081461031b578063a4dee155146103385761018e565b80632aebb7bc1161014b5780635aa9892e116101255780635aa9892e146102815780635eff82db14610289578063677a68e1146102b2578063715018a6146102d85761018e565b80632aebb7bc1461026957806332e7c5bf146102715780634e71d92d146102795761018e565b80630e15561a1461019357806313c38d1c146101ad57806313ed0846146101d157806316934fc4146101f4578063212c5fea1461024057806329ad27d714610261575b600080fd5b61019b6103ff565b60408051918252519081900360200190f35b6101b5610405565b604080516001600160a01b039092168252519081900360200190f35b61019b600480360360408110156101e757600080fd5b5080359060200135610414565b61021a6004803603602081101561020a57600080fd5b50356001600160a01b0316610448565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61025f6004803603602081101561025657600080fd5b5035151561046f565b005b61019b6104e5565b61025f6104eb565b61019b610584565b61025f61058a565b61019b610788565b61025f6004803603606081101561029f57600080fd5b50803590602081013590604001356107a6565b61019b600480360360208110156102c857600080fd5b50356001600160a01b031661080c565b61025f610835565b61025f600480360360408110156102f657600080fd5b50803590602001356108d7565b61019b610c83565b61019b610c89565b6101b5610c8f565b61025f6004803603602081101561033157600080fd5b5035610c9e565b61019b610e54565b61025f6004803603602081101561035657600080fd5b5035610e5a565b61025f6004803603604081101561037357600080fd5b5080359060200135610f02565b61019b6004803603602081101561039657600080fd5b5035610f65565b61019b610fc8565b61025f600480360360208110156103bb57600080fd5b50356001600160a01b0316610fce565b61019b6110c6565b61019b600480360360408110156103e957600080fd5b506001600160a01b0381351690602001356110cc565b60085481565b6001546001600160a01b031681565b60008061042083610f65565b9050600061042e8583611107565b905061043d816298968061115f565b925050505b92915050565b600a6020526000908152604090208054600182015460028301546003909301549192909184565b61047761118a565b6000546001600160a01b039081169116146104c7576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b60018054911515600160a01b0260ff60a01b19909216919091179055565b60055481565b6104f361118a565b6000546001600160a01b03908116911614610543576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b600061055047600161118e565b604051909150339082156108fc029083906000818181858888f19350505050158015610580573d6000803e3d6000fd5b5050565b60035481565b60006105953361080c565b116105da576040805162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b604482015290519081900360640190fd5b600954336000908152600a60205260409020600201546105f99161118e565b4211610638576040805162461bcd60e51b8152602060048201526009602482015268746f6f206561726c7960b81b604482015290519081900360640190fd5b336000908152600a6020526040812060018101549054610657916111b9565b336000908152600a602052604090206001015460075491925061067a919061118e565b600755336000908152600a60205260409020546008546106999161118e565b600855336000818152600a60209081526040808320600180820185905584825560028201859055600390910184905554815163a9059cbb60e01b815260048101959095526024850186905290516001600160a01b039091169363a9059cbb9360448083019493928390030190829087803b15801561071657600080fd5b505af115801561072a573d6000803e3d6000fd5b505050506040513d602081101561074057600080fd5b5051610785576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b50565b60006107a16008546007546111b990919063ffffffff16565b905090565b6107ae61118a565b6000546001600160a01b039081169116146107fe576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b600292909255600355600455565b6001600160a01b0381166000908152600a602052604081208054600190910154610442916111b9565b61083d61118a565b6000546001600160a01b0390811691161461088d576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600654811161092d576040805162461bcd60e51b815260206004820181905260248201527f6c657373207468616e206d696e696d756d207374616b696e6720706572696f64604482015290519081900360640190fd5b6005548110610983576040805162461bcd60e51b815260206004820181905260248201527f6d6f7265207468616e206d6178696d756d207374616b696e6720706572696f64604482015290519081900360640190fd5b336000908152600a6020526040902060020154156109d9576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481cdd185ad95960921b604482015290519081900360640190fd5b60648211610a20576040805162461bcd60e51b815260206004820152600f60248201526e185b5bdd5b9d081d1bc81cdb585b1b608a1b604482015290519081900360640190fd5b600154600160a01b900460ff1615610a73576040805162461bcd60e51b81526020600482015260116024820152701cdd185ada5b99c81a5cc818db1bdcd959607a1b604482015290519081900360640190fd5b6000610a7f8383610414565b9050610a9783610a9183610a91610788565b906111b9565b600154604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610ae257600080fd5b505afa158015610af6573d6000803e3d6000fd5b505050506040513d6020811015610b0c57600080fd5b505111610b60576040805162461bcd60e51b815260206004820152601960248201527f696e73756666696369656e7420636f6e74726163742062616c00000000000000604482015290519081900360640190fd5b600154604080516323b872dd60e01b81523360048201523060248201526044810186905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610bba57600080fd5b505af1158015610bce573d6000803e3d6000fd5b505050506040513d6020811015610be457600080fd5b5051610c29576040805162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b604482015290519081900360640190fd5b610c38426201518084026111b9565b336000908152600a602052604090206002810191909155818155426003820155600101839055600754610c6b90846111b9565b600755600854610c7b90826111b9565b600855505050565b60075481565b60045481565b6000546001600160a01b031690565b610ca661118a565b6000546001600160a01b03908116911614610cf6576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b610d7e610d01610788565b600154604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d4c57600080fd5b505afa158015610d60573d6000803e3d6000fd5b505050506040513d6020811015610d7657600080fd5b50519061118e565b8110610dd1576040805162461bcd60e51b815260206004820152601a60248201527f63616e6e6f74207769746864726177206f7765642066756e6473000000000000604482015290519081900360640190fd5b6001546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b505050506040513d6020811015610e4f57600080fd5b505050565b60095481565b610e6261118a565b6000546001600160a01b03908116911614610eb2576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b622bf2008110610ef3576040805162461bcd60e51b8152602060048201526007602482015266746f6f2062696760c81b604482015290519081900360640190fd5b610efd600161046f565b600955565b610f0a61118a565b6000546001600160a01b03908116911614610f5a576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b600691909155600555565b600080610f7d6003548461110790919063ffffffff16565b90506000610f8b8480611107565b90506000610fa48260045461110790919063ffffffff16565b9050610fbf81610a91856002546111b990919063ffffffff16565b95945050505050565b60065481565b610fd661118a565b6000546001600160a01b03908116911614611026576040805162461bcd60e51b8152602060048201819052602482015260008051602061131f833981519152604482015290519081900360640190fd5b6001600160a01b03811661106b5760405162461bcd60e51b81526004018080602001828103825260268152602001806112f96026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60025481565b6001600160a01b0382166000908152600a60205260408120600201548210156110f757506000610442565b6111008361080c565b9392505050565b60008261111657506000610442565b8282028284828161112357fe5b0414611100576040805162461bcd60e51b815260206004820152600660248201526536bab61d101560d11b604482015290519081900360640190fd5b60006111008383604051806040016040528060068152602001656469763a202f60d01b8152506111fc565b3390565b60006111008383604051806040016040528060068152602001657375623a202d60d01b81525061129e565b600082820183811015611100576040805162461bcd60e51b81526020600482015260066024820152656164643a202b60d01b604482015290519081900360640190fd5b600081836112885760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161129457fe5b0495945050505050565b600081848411156112f05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561124d578181015183820152602001611235565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220eed910b54659832eb4c8b29339ae404b467971a379f05365bafb442542d8c97764736f6c634300060c0033000000000000000000000000d2ddfba7bb12f6e70c2aab6b6bf9edaef42ed22f

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

000000000000000000000000d2ddfba7bb12f6e70c2aab6b6bf9edaef42ed22f

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d2ddfba7bb12f6e70c2aab6b6bf9edaef42ed22f


Deployed ByteCode Sourcemap

9178:4533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9634:31;;;:::i;:::-;;;;;;;;;;;;;;;;9262:17;;;:::i;:::-;;;;-1:-1:-1;;;;;9262:17:0;;;;;;;;;;;;;;11764:243;;;;;;;;;;;;;;;;-1:-1:-1;11764:243:0;;;;;;;:::i;9847:42::-;;;;;;;;;;;;;;;;-1:-1:-1;9847:42:0;-1:-1:-1;;;;;9847:42:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13258:81;;;;;;;;;;;;;;;;-1:-1:-1;13258:81:0;;;;:::i;:::-;;9526:28;;;:::i;13573:133::-;;;:::i;9426:24::-;;;:::i;11081:675::-;;;:::i;12289:111::-;;;:::i;12939:130::-;;;;;;;;;;;;;;;;-1:-1:-1;12939:130:0;;;;;;;;;;;;:::i;12408:132::-;;;;;;;;;;;;;;;;-1:-1:-1;12408:132:0;-1:-1:-1;;;;;12408:132:0;;:::i;8389:148::-;;;:::i;9976:1097::-;;;;;;;;;;;;;;;;-1:-1:-1;9976:1097:0;;;;;;;:::i;9597:30::-;;;:::i;9473:22::-;;;:::i;7747:79::-;;;:::i;13347:218::-;;;;;;;;;;;;;;;;-1:-1:-1;13347:218:0;;:::i;9674:28::-;;;:::i;13077:173::-;;;;;;;;;;;;;;;;-1:-1:-1;13077:173:0;;:::i;12793:138::-;;;;;;;;;;;;;;;;-1:-1:-1;12793:138:0;;;;;;;:::i;12039:225::-;;;;;;;;;;;;;;;;-1:-1:-1;12039:225:0;;:::i;9561:27::-;;;:::i;8692:244::-;;;;;;;;;;;;;;;;-1:-1:-1;8692:244:0;-1:-1:-1;;;;;8692:244:0;;:::i;9383:25::-;;;:::i;12548:212::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12548:212:0;;;;;;;;:::i;9634:31::-;;;;:::o;9262:17::-;;;-1:-1:-1;;;;;9262:17:0;;:::o;11764:243::-;11842:7;11862:19;11884:29;11907:5;11884:22;:29::i;:::-;11862:51;-1:-1:-1;11924:11:0;11938:24;:7;11862:51;11938:11;:24::i;:::-;11924:38;-1:-1:-1;11980:17:0;11924:38;11988:8;11980:7;:17::i;:::-;11973:24;;;;11764:243;;;;;:::o;9847:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13258:81::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;13314:8:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;13314:17:0::1;-1:-1:-1::0;;;;13314:17:0;;::::1;::::0;;;::::1;::::0;;13258:81::o;9526:28::-;;;;:::o;13573:133::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;13621:11:::1;13635:28;:21;13661:1;13635:25;:28::i;:::-;13674:24;::::0;13621:42;;-1:-1:-1;13674:10:0::1;::::0;:24;::::1;;;::::0;13621:42;;13674:24:::1;::::0;;;13621:42;13674:10;:24;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8029:1;13573:133::o:0;9426:24::-;;;;:::o;11081:675::-;11150:1;11124:23;11136:10;11124:11;:23::i;:::-;:27;11116:56;;;;;-1:-1:-1;;;11116:56:0;;;;;;;;;;;;-1:-1:-1;;;11116:56:0;;;;;;;;;;;;;;;11239:9;;11216:10;11209:18;;;;:6;:18;;;;;:25;;;:40;;:29;:40::i;:::-;11191:15;:58;11183:80;;;;;-1:-1:-1;;;11183:80:0;;;;;;;;;;;;-1:-1:-1;;;11183:80:0;;;;;;;;;;;;;;;11328:10;11276:12;11321:18;;;:6;:18;;;;;:26;;;;11291:25;;:57;;:29;:57::i;:::-;11423:10;11416:18;;;;:6;:18;;;;;:26;;;11400:11;;11276:72;;-1:-1:-1;11400:43:0;;:11;:15;:43::i;:::-;11386:11;:57;11493:10;11486:18;;;;:6;:18;;;;;:25;11469:12;;:43;;:16;:43::i;:::-;11454:12;:58;11532:10;11554:1;11525:18;;;:6;:18;;;;;;;;:26;;;;:30;;;11566:29;;;11606:25;;;:29;;;11646:27;;;;:31;;;11698:3;:30;;-1:-1:-1;;;11698:30:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11698:3:0;;;;:12;;:30;;;;;11525:18;11698:30;;;;;;;;:3;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11698:30:0;11690:58;;;;;-1:-1:-1;;;11690:58:0;;;;;;;;;;;;-1:-1:-1;;;11690:58:0;;;;;;;;;;;;;;;11081:675;:::o;12289:111::-;12336:7;12363:29;12379:12;;12363:11;;:15;;:29;;;;:::i;:::-;12356:36;;12289:111;:::o;12939:130::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;13021:1:::1;:6:::0;;;;13038:1:::1;:6:::0;13055:1:::1;:6:::0;12939:130::o;12408:132::-;-1:-1:-1;;;;;12513:11:0;;12462:7;12513:11;;;:6;:11;;;;;:18;;12489:19;;;;;:43;;:23;:43::i;8389:148::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;8496:1:::1;8480:6:::0;;8459:40:::1;::::0;-1:-1:-1;;;;;8480:6:0;;::::1;::::0;8459:40:::1;::::0;8496:1;;8459:40:::1;8527:1;8510:19:::0;;-1:-1:-1;;;;;;8510:19:0::1;::::0;;8389:148::o;9976:1097::-;10057:7;;10049:5;:15;10041:60;;;;;-1:-1:-1;;;10041:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10128:7;;10120:5;:15;10112:60;;;;;-1:-1:-1;;;10112:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10198:10;10191:18;;;;:6;:18;;;;;:25;;;:30;10183:57;;;;;-1:-1:-1;;;10183:57:0;;;;;;;;;;;;-1:-1:-1;;;10183:57:0;;;;;;;;;;;;;;;10269:3;10259:7;:13;10251:41;;;;;-1:-1:-1;;;10251:41:0;;;;;;;;;;;;-1:-1:-1;;;10251:41:0;;;;;;;;;;;;;;;10312:8;;-1:-1:-1;;;10312:8:0;;;;10311:9;10303:39;;;;;-1:-1:-1;;;10303:39:0;;;;;;;;;;;;-1:-1:-1;;;10303:39:0;;;;;;;;;;;;;;;10384:15;10402:31;10418:7;10427:5;10402:15;:31::i;:::-;10384:49;;10546:42;10580:7;10546:29;10567:7;10546:16;:14;:16::i;:::-;:20;;:29::i;:42::-;10515:3;;:28;;;-1:-1:-1;;;10515:28:0;;10537:4;10515:28;;;;;;-1:-1:-1;;;;;10515:3:0;;;;:13;;:28;;;;;;;;;;;;;;;:3;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10515:28:0;:73;10507:111;;;;;-1:-1:-1;;;10507:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10639:3;;:52;;;-1:-1:-1;;;10639:52:0;;10656:10;10639:52;;;;10676:4;10639:52;;;;;;;;;;;;-1:-1:-1;;;;;10639:3:0;;;;:16;;:52;;;;;;;;;;;;;;;:3;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10639:52:0;10631:80;;;;;-1:-1:-1;;;10631:80:0;;;;;;;;;;;;-1:-1:-1;;;10631:80:0;;;;;;;;;;;;;;;10752:37;:15;10781:6;10772:16;;10752:19;:37::i;:::-;10731:10;10724:18;;;;:6;:18;;;;;:25;;;:65;;;;10800:35;;;10876:15;10846:27;;;:45;10902:26;;:36;;;10990:11;;:24;;10931:7;10990:15;:24::i;:::-;10976:11;:38;11040:12;;:25;;11057:7;11040:16;:25::i;:::-;11025:12;:40;-1:-1:-1;;;9976:1097:0:o;9597:30::-;;;;:::o;9473:22::-;;;;:::o;7747:79::-;7785:7;7812:6;-1:-1:-1;;;;;7812:6:0;7747:79;:::o;13347:218::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;13432:50:::1;13465:16;:14;:16::i;:::-;13432:3;::::0;:28:::1;::::0;;-1:-1:-1;;;13432:28:0;;13454:4:::1;13432:28;::::0;::::1;::::0;;;-1:-1:-1;;;;;13432:3:0;;::::1;::::0;:13:::1;::::0;:28;;;;;::::1;::::0;;;;;;;;;:3;:28;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;13432:28:0;;:32:::1;:50::i;:::-;13422:7;:60;13414:99;;;::::0;;-1:-1:-1;;;13414:99:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13524:3;::::0;:33:::1;::::0;;-1:-1:-1;;;13524:33:0;;13537:10:::1;13524:33;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;13524:3:0;;::::1;::::0;:12:::1;::::0;:33;;;;;::::1;::::0;;;;;;;;;:3:::1;::::0;:33;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;13347:218:0:o;9674:28::-;;;;:::o;13077:173::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;13168:7:::1;13155:10;:20;13147:40;;;::::0;;-1:-1:-1;;;13147:40:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;13147:40:0;;;;;;;;;;;;;::::1;;13198:11;13204:4;13198:5;:11::i;:::-;13220:9;:22:::0;13077:173::o;12793:138::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;12876:7:::1;:18:::0;;;;12905:7:::1;:18:::0;12793:138::o;12039:225::-;12104:7;12124:11;12138:9;12145:1;;12138:2;:6;;:9;;;;:::i;:::-;12124:23;-1:-1:-1;12158:11:0;12172:10;12179:2;;12172:6;:10::i;:::-;12158:24;;12193:12;12208:10;12214:3;12208:1;;:5;;:10;;;;:::i;:::-;12193:25;;12236:20;12251:4;12236:10;12242:3;12236:1;;:5;;:10;;;;:::i;:20::-;12229:27;12039:225;-1:-1:-1;;;;;12039:225:0:o;9561:27::-;;;;:::o;8692:244::-;7969:12;:10;:12::i;:::-;7959:6;;-1:-1:-1;;;;;7959:6:0;;;:22;;;7951:67;;;;;-1:-1:-1;;;7951:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7951:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8781:22:0;::::1;8773:73;;;;-1:-1:-1::0;;;8773:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8883:6;::::0;;8862:38:::1;::::0;-1:-1:-1;;;;;8862:38:0;;::::1;::::0;8883:6;::::1;::::0;8862:38:::1;::::0;::::1;8911:6;:17:::0;;-1:-1:-1;;;;;;8911:17:0::1;-1:-1:-1::0;;;;;8911:17:0;;;::::1;::::0;;;::::1;::::0;;8692:244::o;9383:25::-;;;;:::o;12548:212::-;-1:-1:-1;;;;;12654:11:0;;12630:7;12654:11;;;:6;:11;;;;;:18;;;:26;-1:-1:-1;12650:67:0;;;-1:-1:-1;12704:1:0;12697:8;;12650:67;12736:16;12748:3;12736:11;:16::i;:::-;12729:23;12548:212;-1:-1:-1;;;12548:212:0:o;2590:432::-;2642:4;2884:6;2880:47;;-1:-1:-1;2914:1:0;2907:8;;2880:47;2948:5;;;2952:1;2948;:5;:1;2972:5;;;;;:10;2964:29;;;;;-1:-1:-1;;;2964:29:0;;;;;;;;;;;;-1:-1:-1;;;2964:29:0;;;;;;;;;;;;;;4197:103;4249:4;4273:19;4277:1;4280;4273:19;;;;;;;;;;;;;-1:-1:-1;;;4273:19:0;;;:3;:19::i;6892:106::-;6980:10;6892:106;:::o;1775:103::-;1827:4;1851:19;1855:1;1858;1851:19;;;;;;;;;;;;;-1:-1:-1;;;1851:19:0;;;:3;:19::i;927:148::-;979:4;1005:5;;;1029:6;;;;1021:25;;;;;-1:-1:-1;;;1021:25:0;;;;;;;;;;;;-1:-1:-1;;;1021:25:0;;;;;;;;;;;;;;4788:333;4868:4;4967:12;4960:5;4952:28;;;;-1:-1:-1;;;4952:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4991:6;5004:1;5000;:5;;;;;;;4788:333;-1:-1:-1;;;;;4788:333:0:o;2167:180::-;2247:4;2280:12;2272:6;;;;2264:29;;;;-1:-1:-1;;;2264:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2313:5:0;;;2167:180::o

Swarm Source

ipfs://eed910b54659832eb4c8b29339ae404b467971a379f05365bafb442542d8c977
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.