Contract 0xaba81bdbdbf45edca8498d90ab1deb9d85186930

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2f6fe89d2bc3424a8bd2967a071763286ed670935ecc001a7a1bcfa169f9268fAdd Manager77109182021-05-25 7:56:27193 days 20 hrs agoOpenBiSea: Deployer IN  0xaba81bdbdbf45edca8498d90ab1deb9d851869300 BNB0.000469715
0x5b6eb5d4d406886bbd59a8325b519fb761aa1ee6fdc3736063eb7d0ad95a2ccaAdd Manager68938452021-04-26 6:12:35222 days 22 hrs agoOpenBiSea: Deployer IN  0xaba81bdbdbf45edca8498d90ab1deb9d851869300 BNB0.000469715
0xde742ebc7f3a181271ac30eb40cdc06174c08dab87c0e8d9c224cec1f081b2350x6080604068938012021-04-26 6:10:23222 days 22 hrs agoOpenBiSea: Deployer IN  Contract Creation0 BNB0.03163862
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ReturnInvestmentLpartner

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
byzantium EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 7 : ReturnInvestmentLpartner.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./access/ManagerRole.sol";
import "./interface/IPool.sol";
import "./interface/IRoleModel.sol";
import "./utils/EnumerableSet.sol";
import "./math/SafeMath.sol";
contract ReturnInvestmentLpartner is ManagerRole, IRoleModel {
    using EnumerableSet for EnumerableSet.AddressSet;
    using SafeMath for uint256;
    event Request(address indexed pool, address from, uint256 index, address token);
    event Approve(address indexed pool, address to);
    event ApproveError(address indexed pool, address to, string error);
    event Disapprove(address indexed pool, address to);
    mapping(address => mapping(address => uint256[])) private _requests;// Collection request for return investment Limited Partner
    mapping(address => mapping(address => uint256[])) private _requestsAmounts;// Collection _requestsAmounts for return investment Limited Partner
    mapping(address => mapping(address => address[])) private _requestsTokenAddress;// Collection _requestsTokenAddress for return investment Limited Partner
    mapping(address => EnumerableSet.AddressSet) private _requestsLpartner;// Collection of addresses that made the request
    function _request(address pool, address lPartner, uint256 index, uint256 amount, address token) external onlyManager returns(bool) {
        require(IPool(pool).hasRole(LIMITED_PARTNER_ROLE, lPartner), "ReturnInvestmentLpartner: sender has no role Limited Partner");
        require(IPool(pool).getDepositLength(lPartner) > 0, "ReturnInvestmentLpartner: сurrent address has not been invested");
        require(index < IPool(pool).getDepositLength(lPartner), "ReturnInvestmentLpartner: deposit index does not exist");
        uint256 len = _requests[pool][lPartner].length;
        for (uint256 i = 0; i < len; i++) {
          require(_requests[pool][lPartner][i] != index, "ReturnInvestmentLpartner: a query with this index already exists");
        }
        _requests[pool][lPartner].push(index);
        _requestsAmounts[pool][lPartner].push(amount);
        _requestsTokenAddress[pool][lPartner].push(token);
        _requestsLpartner[pool].add(lPartner);
        emit Request(pool, lPartner, index, token);
        return true;
    }
    function _approve(address pool, address lPartner, address sender) external onlyManager returns(bool) {
        if (!_requestsLpartner[pool].contains(lPartner)) {
            emit ApproveError(pool, lPartner,"ReturnInvestmentLpartner: there is no request for this account");
            return false;
        }
        if (!IPool(pool).hasRole(GENERAL_PARTNER_ROLE, sender)) {
            emit ApproveError(pool, lPartner,"ReturnInvestmentLpartner: sender has no role General Partner");
            return false;
        }
        uint256 len = _requests[pool][lPartner].length;
        for (uint256 i = 0; i < len; i++) {
            IPool(pool)._approveWithdrawLpartner(lPartner, _requests[pool][lPartner][i], _requestsAmounts[pool][lPartner][i],_requestsTokenAddress[pool][lPartner][i]);
        }
        delete _requests[pool][lPartner];
        delete _requestsAmounts[pool][lPartner];
        delete _requestsTokenAddress[pool][lPartner];
        _requestsLpartner[pool].remove(lPartner);
        emit Approve(pool, lPartner);
        return true;
    }
    function _disapprove(address pool, address lPartner, address sender) external onlyManager returns(bool) {
        require(IPool(pool).hasRole(GENERAL_PARTNER_ROLE, sender), "ReturnInvestmentLpartner: sender has no role General Partner");
        require(_requestsLpartner[pool].contains(lPartner), "ReturnInvestmentLpartner: there is no request for this account");
        delete _requests[pool][lPartner];
        _requestsLpartner[pool].remove(lPartner);
        emit Disapprove(pool, lPartner);
        return true;
    }
    function getRequests(address pool) public view returns(address[] memory) {
        return _requestsLpartner[pool].collection();
    }
    function getRequestsLpartner(address pool, address lPartner) public view returns(uint256[] memory) {
        return _requests[pool][lPartner];
    }
}

File 2 of 7 : ManagerRole.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./lib/Roles.sol";
contract ManagerRole {
    using Roles for Roles.Role;
    event ManagerAdded(address indexed account);
    event ManagerRemoved(address indexed account);
    Roles.Role private _managers;
    constructor () internal {
        _addManager(msg.sender);
    }
    modifier onlyManager() {
        require(isManager(msg.sender), "ManagerRole: caller does not have the Manager role");
        _;
    }
    function isManager(address account) public view returns (bool) {
        return _managers.has(account);
    }
    function getManagerAddresses() public view returns (address[] memory) {
        return _managers.accounts;
    }
    function addManager(address account) public onlyManager {
        _addManager(account);
    }
    function renounceManager() public {
        _removeManager(msg.sender);
    }
    function _addManager(address account) internal {
        _managers.add(account);
        emit ManagerAdded(account);
    }
    function _removeManager(address account) internal {
        _managers.remove(account);
        emit ManagerRemoved(account);
    }
}

File 3 of 7 : Roles.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library Roles {
    struct Role {
        address[] accounts;
        mapping (address => bool) bearer;
        mapping (bytes32 => uint256) _indexes;
    }
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
        role.accounts.push(account);
        role._indexes[bytes32(uint256(account))] = role.accounts.length;
    }
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        uint256 valueIndex = role._indexes[bytes32(uint256(account))];
        if (valueIndex != 0) { // Equivalent to contains()
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = role.accounts.length - 1;
            address lastValue = role.accounts[lastIndex];
            role.accounts[toDeleteIndex] = lastValue;
            role.accounts.pop();
            delete role._indexes[bytes32(uint256(account))];
        }
//        for (uint256 i; i < role.accounts.length; i++) {
//            if (role.accounts[i] == account) {
//                _removeIndexArray(i, role.accounts);
//                break;
//            }
//        }
        role.bearer[account] = false;
    }
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
//    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
//        for(uint256 i = index; i < array.length-1; i++) {
//            array[i] = array[i+1];
//        }
//        array.pop();
//    }
}

File 4 of 7 : IPool.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IPool {
    function hasRole(bytes32 role, address account) external view returns (bool);
    function getRoleMemberCount(bytes32 role) external view returns (uint256);
    function getDeposit(address owner, uint256 index) external view returns(uint256 amount, uint256 time, uint256 lock_period, bool refund_authorize, uint256 amountWithdrawal, address investedToken);
    function getDepositLength(address owner) external view returns(uint256);
    function getMembersRole(bytes32 role) external view returns (address[] memory Accounts);
    function getInfoPool() external view returns(string memory name,bool isPublicPool, address token, uint256 locked);
    function getInfoPoolFees() external view returns(uint256 rate, uint256 depositFixedFee, uint256 referralDepositFee, uint256 annualPercent, uint256 penaltyEarlyWithdraw, uint256 totalInvestLpartner, uint256 premiumFee);
    function getReferral(address lPartner) external view returns (address);
    function getPoolValues() external view returns(uint256 poolValueUSD, uint256 poolValue, string memory proofOfValue);
    function getPoolPairReserves() external view     returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast, address token0, address token1, address weth,uint price0CumulativeLast,uint price1CumulativeLast);
    function _updatePool(string calldata name,bool isPublicPool, address token, uint256 locked, uint256 depositFixedFee, uint256 referralDepositFee, uint256 annualPercent, uint256 penaltyEarlyWithdraw) external returns (bool);
    function _setRate(uint256 rate) external returns (bool);
    function _setTeamReward(uint256 teamReward) external returns (bool);
    function _setPoolValues(uint256 poolValueUSD,uint256 poolValue, string calldata proofOfValue) external returns (bool);
    function _depositPoolRegistry(address sender, uint256 amount, uint256 feesMultipier) external returns (bool);
    function _depositTokenPoolRegistry(address payable sender, uint256 amount) external returns (bool);
    function _depositInvestmentInTokensToPool(address payable sender, uint256 amount, address token) external returns (bool);
    function _withdrawTeam(address payable sender, uint256 amount) external returns (bool);
    function _withdrawTokensToStartup(address payable sender,address token, uint256 amount) external returns (bool);
    function _returnsInTokensFromTeam(address payable sender,address token, uint256 amount) external returns (bool);
    function _activateDepositToPool() external returns (bool);
    function _disactivateDepositToPool() external returns (bool);
    function _setReferral(address sender, address lPartner, address referral) external returns (bool);
    function _approveWithdrawLpartner(address lPartner, uint256 index, uint256 amount, address investedToken) external returns (bool);
    function _withdrawLPartner(address payable sender) external returns (bool, uint256, address);
    function _withdrawSuperAdmin(address payable sender,address token, uint256 amount) external returns (bool);
    function grantRole(bytes32 role, address account) external;
    function revokeRole(bytes32 role, address account) external;
}

File 5 of 7 : IRoleModel.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
contract IRoleModel {
    bytes32 public constant SUPER_ADMIN_ROLE = keccak256("SUPER_ADMIN_ROLE");
    bytes32 public constant GENERAL_PARTNER_ROLE = keccak256("GENERAL_PARTNER_ROLE");
    bytes32 public constant LIMITED_PARTNER_ROLE = keccak256("LIMITED_PARTNER_ROLE");
    bytes32 public constant STARTUP_TEAM_ROLE = keccak256("STARTUP_TEAM_ROLE");
    bytes32 public constant POOL_REGISTRY = keccak256("POOL_REGISTRY");
    bytes32 public constant RETURN_INVESTMENT_LPARTNER = keccak256("RETURN_INVESTMENT_LPARTNER");
    bytes32 public constant ORACLE = keccak256("ORACLE");
    bytes32 public constant REFERER_ROLE = keccak256("REFERER_ROLE");
}

File 6 of 7 : SafeMath.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
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) {
         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;
        return c;
    }
}

File 7 of 7 : EnumerableSet.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library EnumerableSet {
    struct Set {
        bytes32[] _values;
        address[] _collection;
        mapping (bytes32 => uint256) _indexes;
    }
    function _add(Set storage set, bytes32 value, address addressValue) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._collection.push(addressValue);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }
    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];
        if (valueIndex != 0) { // Equivalent to contains(set, value)
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;
            bytes32 lastValue = set._values[lastIndex];
            set._values[toDeleteIndex] = lastValue;
            set._values.pop();

            address lastvalueAddress = set._collection[lastIndex];
            set._collection[toDeleteIndex] = lastvalueAddress;
            set._collection.pop();

            set._indexes[lastValue] = toDeleteIndex + 1; // All indexes are 1-based
            delete set._indexes[value];
//            for(uint256 i = 0; i < set._collection.length; i++) {
//                if (set._collection[i] == addressValue) {
//                    _removeIndexArray(i, set._collection);
//                    break;
//                }
//            }
            return true;
        } else {
            return false;
        }
    }
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }
    function _collection(Set storage set) private view returns (address[] memory) {
        return set._collection;    
    }
//    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
//        for(uint256 i = index; i < array.length-1; i++) {
//            array[i] = array[i+1];
//        }
//        array.pop();
//    }
    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }
    struct AddressSet {
        Set _inner;
    }
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(value)), value);
    }
    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(value)));
    }
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(value)));
    }
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }
    function collection(AddressSet storage set) internal view returns (address[] memory) {
        return _collection(set._inner);
    }
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint256(_at(set._inner, index)));
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "byzantium",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"Approve","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"string","name":"error","type":"string"}],"name":"ApproveError","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"Disapprove","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ManagerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ManagerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"token","type":"address"}],"name":"Request","type":"event"},{"inputs":[],"name":"GENERAL_PARTNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIMITED_PARTNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POOL_REGISTRY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RETURN_INVESTMENT_LPARTNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STARTUP_TEAM_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPER_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"address","name":"sender","type":"address"}],"name":"_approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"address","name":"sender","type":"address"}],"name":"_disapprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"_request","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getManagerAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"getRequests","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"lPartner","type":"address"}],"name":"getRequestsLpartner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceManager","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5062000026336401000000006200002c810204565b620001e1565b62000047600082640100000000620011ed6200007e82021704565b604051600160a060020a038216907f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a90600090a250565b6200009382826401000000006200015b810204565b156200010057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a03166000818152600183810160209081526040808420805460ff191684179055855492830186558584528184209092018054600160a060020a03191685179055845493835260029094019093529190912055565b6000600160a060020a038216620001be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001bf56022913960400191505060405180910390fd5b50600160a060020a03166000908152600191909101602052604090205460ff1690565b611a0480620001f16000396000f3fe608060405234801561001057600080fd5b506004361061010f5760003560e060020a90048063804e44f3116100a6578063ca2a33d911610075578063ca2a33d9146102ba578063cbc5906e146102f2578063f3ae2415146102fa578063f8b91abe14610320578063fe070e9d146103285761010f565b8063804e44f31461024c578063afe56b1b14610272578063c1abd7571461027a578063c5c0291f146102825761010f565b806339926c43116100e257806339926c43146101665780634460bdd6146101e45780635ac8b005146101ec5780636188e37b146101f45761010f565b80631cda4a8d14610114578063261fef021461012e5780632d06177a1461013657806338013f021461015e575b600080fd5b61011c610330565b60408051918252519081900360200190f35b61011c610365565b61015c6004803603602081101561014c57600080fd5b5035600160a060020a031661039a565b005b61011c6103ed565b6101946004803603604081101561017c57600080fd5b50600160a060020a0381358116916020013516610422565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101d05781810151838201526020016101b8565b505050509050019250505060405180910390f35b61011c61049c565b61011c6104d1565b610238600480360360a081101561020a57600080fd5b50600160a060020a038135811691602081013582169160408201359160608101359160809091013516610506565b604080519115158252519081900360200190f35b6101946004803603602081101561026257600080fd5b5035600160a060020a03166109a5565b6101946109c9565b61011c610a2e565b6102386004803603606081101561029857600080fd5b50600160a060020a038135811691602081013582169160409091013516610a63565b610238600480360360608110156102d057600080fd5b50600160a060020a038135811691602081013582169160409091013516610cb7565b61011c611166565b6102386004803603602081101561031057600080fd5b5035600160a060020a031661119b565b61015c6111ad565b61011c6111b8565b604080517f504f4f4c5f5245474953545259000000000000000000000000000000000000008152905190819003600d01902081565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152905190819003601a01902081565b6103a33361119b565b6103e15760405160e560020a62461bcd02815260040180806020018281038252603281526020018061193b6032913960400191505060405180910390fd5b6103ea816112b4565b50565b604080517f4f5241434c4500000000000000000000000000000000000000000000000000008152905190819003600601902081565b600160a060020a03808316600090815260036020908152604080832093851683529281529082902080548351818402810184019094528084526060939283018282801561048e57602002820191906000526020600020905b81548152602001906001019080831161047a575b505050505090505b92915050565b604080517f53555045525f41444d494e5f524f4c45000000000000000000000000000000008152905190819003601001902081565b604080517f524546455245525f524f4c4500000000000000000000000000000000000000008152905190819003600c01902081565b60006105113361119b565b61054f5760405160e560020a62461bcd02815260040180806020018281038252603281526020018061193b6032913960400191505060405180910390fd5b604080517f4c494d495445445f504152544e45525f524f4c45000000000000000000000000815281519081900360140181207f91d148540000000000000000000000000000000000000000000000000000000082526004820152600160a060020a0387811660248301529151918816916391d1485491604480820192602092909190829003018186803b1580156105e557600080fd5b505afa1580156105f9573d6000803e3d6000fd5b505050506040513d602081101561060f57600080fd5b505161064f5760405160e560020a62461bcd02815260040180806020018281038252603c81526020018061182c603c913960400191505060405180910390fd5b600086600160a060020a03166387ac828a876040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d60208110156106d457600080fd5b5051116107155760405160e560020a62461bcd02815260040180806020018281038252604081526020018061198f6040913960400191505060405180910390fd5b85600160a060020a03166387ac828a866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561076e57600080fd5b505afa158015610782573d6000803e3d6000fd5b505050506040513d602081101561079857600080fd5b505184106107da5760405160e560020a62461bcd0281526004018080602001828103825260368152602001806118a86036913960400191505060405180910390fd5b600160a060020a038087166000908152600360209081526040808320938916835292905290812054905b8181101561089357600160a060020a038089166000908152600360209081526040808320938b1683529290522080548791908390811061084057fe5b9060005260206000200154141561088b5760405160e560020a62461bcd0281526004018080602001828103825260408152602001806118686040913960400191505060405180910390fd5b600101610804565b50600160a060020a0387811660008181526003602090815260408083208b8616808552908352818420805460018082018355918652848620018c905585855260048452828520828652845282852080548083018255908652848620018b90558585526005845282852091855290835281842080549182018155845282842001805473ffffffffffffffffffffffffffffffffffffffff19169589169590951790945591815260069091522061094890876112fc565b5060408051600160a060020a03888116825260208201889052858116828401529151918916917fbf9d03ed485768af35b9d6d6b1eab170091cba14cec2bbc2f30008563e16c5249181900360600190a25060019695505050505050565b600160a060020a038116600090815260066020526040902060609061049690611312565b606060008001805480602002602001604051908101604052809291908181526020018280548015610a2357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610a05575b505050505090505b90565b604080517f47454e4552414c5f504152544e45525f524f4c450000000000000000000000008152905190819003601401902081565b6000610a6e3361119b565b610aac5760405160e560020a62461bcd02815260040180806020018281038252603281526020018061193b6032913960400191505060405180910390fd5b604080517f47454e4552414c5f504152544e45525f524f4c45000000000000000000000000815281519081900360140181207f91d148540000000000000000000000000000000000000000000000000000000082526004820152600160a060020a0384811660248301529151918616916391d1485491604480820192602092909190829003018186803b158015610b4257600080fd5b505afa158015610b56573d6000803e3d6000fd5b505050506040513d6020811015610b6c57600080fd5b5051610bac5760405160e560020a62461bcd02815260040180806020018281038252603c8152602001806118de603c913960400191505060405180910390fd5b600160a060020a0384166000908152600660205260409020610bd4908463ffffffff61131d16565b610c125760405160e560020a62461bcd02815260040180806020018281038252603e8152602001806117ee603e913960400191505060405180910390fd5b600160a060020a0380851660009081526003602090815260408083209387168352929052908120610c42916117b6565b600160a060020a0384166000908152600660205260409020610c6a908463ffffffff61133216565b5060408051600160a060020a0385811682529151918616917fe48d69e5bbd9b67db75a91bdc646ff64bcd92ec6152c3ccdb05c692d921a21119181900360200190a25060015b9392505050565b6000610cc23361119b565b610d005760405160e560020a62461bcd02815260040180806020018281038252603281526020018061193b6032913960400191505060405180910390fd5b600160a060020a0384166000908152600660205260409020610d28908463ffffffff61131d16565b610da35783600160a060020a03167fcfbf1e612be4a13d8ce04ef1d107acec1159f74f6fa4d78075a66848505d93f6846040518082600160a060020a0316600160a060020a03168152602001806020018281038252603e8152602001806117ee603e91396040019250505060405180910390a2506000610cb0565b604080517f47454e4552414c5f504152544e45525f524f4c45000000000000000000000000815281519081900360140181207f91d148540000000000000000000000000000000000000000000000000000000082526004820152600160a060020a0384811660248301529151918616916391d1485491604480820192602092909190829003018186803b158015610e3957600080fd5b505afa158015610e4d573d6000803e3d6000fd5b505050506040513d6020811015610e6357600080fd5b5051610ee05783600160a060020a03167fcfbf1e612be4a13d8ce04ef1d107acec1159f74f6fa4d78075a66848505d93f6846040518082600160a060020a0316600160a060020a03168152602001806020018281038252603c8152602001806118de603c91396040019250505060405180910390a2506000610cb0565b600160a060020a038085166000908152600360209081526040808320938716835292905290812054905b8181101561106057600160a060020a038087166000818152600360209081526040808320948a16835293905291909120805463d93f48b091889185908110610f4e57fe5b6000918252602080832090910154600160a060020a03808d168452600483526040808520918d16855292529120805486908110610f8757fe5b6000918252602080832090910154600160a060020a03808e168452600583526040808520918e16855292529120805487908110610fc057fe5b60009182526020808320909101546040805160e060020a63ffffffff8a16028152600160a060020a039788166004820152602481019690965260448601949094529490941660648401529051608480840194939192918390030190829087803b15801561102c57600080fd5b505af1158015611040573d6000803e3d6000fd5b505050506040513d602081101561105657600080fd5b5050600101610f0a565b50600160a060020a0380861660009081526003602090815260408083209388168352929052908120611091916117b6565b600160a060020a03808616600090815260046020908152604080832093881683529290529081206110c1916117b6565b600160a060020a03808616600090815260056020908152604080832093881683529290529081206110f1916117b6565b600160a060020a0385166000908152600660205260409020611119908563ffffffff61133216565b5060408051600160a060020a0386811682529151918716917f3ce2da1daf10aa0a28578b70fe768ed2f390a3da82445358f9346fbc2981f6fd9181900360200190a2506001949350505050565b604080517f535441525455505f5445414d5f524f4c450000000000000000000000000000008152905190819003601101902081565b6000610496818363ffffffff61134716565b6111b6336113b4565b565b604080517f4c494d495445445f504152544e45525f524f4c450000000000000000000000008152905190819003601401902081565b6111f78282611347565b1561124c576040805160e560020a62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a03166000818152600183810160209081526040808420805460ff19168417905585549283018655858452818420909201805473ffffffffffffffffffffffffffffffffffffffff191685179055845493835260029094019093529190912055565b6112c560008263ffffffff6111ed16565b604051600160a060020a038216907f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a90600090a250565b6000610cb083600160a060020a038416846113fc565b60606104968261147e565b6000610cb083600160a060020a0384166114e4565b6000610cb083600160a060020a0384166114fc565b6000600160a060020a0382166113915760405160e560020a62461bcd02815260040180806020018281038252602281526020018061196d6022913960400191505060405180910390fd5b50600160a060020a03166000908152600191909101602052604090205460ff1690565b6113c560008263ffffffff61165416565b604051600160a060020a038216907fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd3190600090a250565b600061140884846114e4565b6114765750825460018082018555600085815260208082209093018590558186018054808401825590825283822001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790558554858252600287019093526040902091909155610cb0565b506000610cb0565b6060816001018054806020026020016040519081016040528092919081815260200182805480156114d857602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116114ba575b50505050509050919050565b60009081526002919091016020526040902054151590565b6000818152600283016020526040812054801561164a578354600019808301919081019060009087908390811061152f57fe5b906000526020600020015490508087600001848154811061154c57fe5b600091825260209091200155865487908061156357fe5b60019003818190600052602060002001600090559055600087600101838154811061158a57fe5b600091825260209091200154600189018054600160a060020a0390921692508291869081106115b557fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550876001018054806115f057fe5b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905590920190925592815260028901909252506040808220600194850190558682528120555091506104969050565b6000915050610496565b61165e8282611347565b61169c5760405160e560020a62461bcd02815260040180806020018281038252602181526020018061191a6021913960400191505060405180910390fd5b600160a060020a0381166000908152600283016020526040902054801561179157825460001980830191908101906000908690839081106116d957fe5b6000918252602090912001548654600160a060020a039091169150819087908590811061170257fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055855486908061174357fe5b600082815260208082208301600019908101805473ffffffffffffffffffffffffffffffffffffffff19169055909201909255600160a060020a038716825260028801905260408120555050505b50600160a060020a03166000908152600190910160205260409020805460ff19169055565b50805460008255906000526020600020908101906103ea9190610a2b91905b808211156117e957600081556001016117d5565b509056fe52657475726e496e766573746d656e744c706172746e65723a207468657265206973206e6f207265717565737420666f722074686973206163636f756e7452657475726e496e766573746d656e744c706172746e65723a2073656e64657220686173206e6f20726f6c65204c696d6974656420506172746e657252657475726e496e766573746d656e744c706172746e65723a20612071756572792077697468207468697320696e64657820616c72656164792065786973747352657475726e496e766573746d656e744c706172746e65723a206465706f73697420696e64657820646f6573206e6f7420657869737452657475726e496e766573746d656e744c706172746e65723a2073656e64657220686173206e6f20726f6c652047656e6572616c20506172746e6572526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654d616e61676572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d616e6167657220726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737352657475726e496e766573746d656e744c706172746e65723a20d181757272656e74206164647265737320686173206e6f74206265656e20696e766573746564a2646970667358221220f65c2a41fb1fcacd8557805e503111182e9d14611a5019d20ee6b2406b057b1764736f6c63430006080033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373

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.