Contract 0x870990a2C245D9D059F91A6f92a17410066a9793

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x72cd6b29b8b856d63ff911ba3ad678863ad846cf21b1546ffd5e1963ac3b486b53115162021-03-01 21:23:161 day 13 hrs ago0x2383bcb9033fdaf4979225eb33dfd96b83c9538d IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0013839
0xf890d987c2b6ecf3de135f6045db21989656b793db3b58e3f05b7665be686bf953114412021-03-01 21:19:291 day 13 hrs ago0x2383bcb9033fdaf4979225eb33dfd96b83c9538d IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00063754
0x05fd24fd75e089c76cee82931f71f8d3b6ef55045e7462ab9c8b88fdd734ae6a53114272021-03-01 21:18:471 day 13 hrs ago0x2383bcb9033fdaf4979225eb33dfd96b83c9538d IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0005144
0xecb875906e1f43c7be20812a20a3a14cd6d4a5ab9d8886d4613132b5d47c67e253114182021-03-01 21:18:201 day 13 hrs ago0x2383bcb9033fdaf4979225eb33dfd96b83c9538d IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00309166
0x21080c952f9799ea51faaef6b63574c72b185e64da23951646ef1daeb8081ff951625752021-02-24 16:48:586 days 18 hrs ago0xab992a51f4991e439f8ce9c9b5142cd24366c2ff IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0010839
0x44ffda78ed13493cf9abdf8bfecb4290d638db6f90d80e05038f9650c0dce2ac51263202021-02-23 10:28:308 days 48 mins ago0xeafb453eab4be6421383c2fbec39d0f73f36da96 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0010839
0x166bc603c6d652d02ebcdbc72a07f6866a5fd2dcb02cc15833ea58b7bef1557c51263122021-02-23 10:28:068 days 49 mins ago0xeafb453eab4be6421383c2fbec39d0f73f36da96 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00093338
0x96c4db53339ca95d3165f908bcdffb0bc0ed067f744df946e0e7826207cf3cef50775282021-02-21 17:23:359 days 17 hrs ago0x60e9a22bcd304a7efea0b42ad3c6733541f56ff1 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00123378
0xe331f7327a183bb625b17eba31dcaa28a0a7178d807343bc9bbe5b20d943e27350197962021-02-19 15:57:2111 days 19 hrs ago0xdad4faf02fbca5e645284c240ff4d5293937477b IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00309166
0xb3e57d72602b9241d57af25299a5a4e3230451a80f0d5f9b16c6c3c1bcc0bea350197562021-02-19 15:54:5111 days 19 hrs ago0xdad4faf02fbca5e645284c240ff4d5293937477b IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0006373
0x05e656fba5de10b175e265ef518a80e9f9b3c6daf7f278cf3d4dd8fbe1e83f3950124732021-02-19 8:49:4812 days 2 hrs ago0xe4d14e031304dd91c46eba6e975751313ded8666 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00309142
0xfbd7ac49721465b9e9a444b1a6b66719da880a6bc9f16ad8c5695a636d64a89a50122902021-02-19 8:40:3912 days 2 hrs ago0x55afa4369d668dc0d2e2c0fe8d9b21c662a17dfe IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.02117367
0x4bc45f44a0f48e4e261cc6838f75e5cfce8b706a0ca130b2e2cc592a1052d9ed49873862021-02-18 11:42:4812 days 23 hrs ago0xeafb453eab4be6421383c2fbec39d0f73f36da96 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00309166
0x59a9ba62630880c822830dc7b3ba5ddf31f8ab52854666fcd4e415d939cfc9e849865052021-02-18 10:58:4013 days 18 mins ago0x0653fbf4edfe9f793b52f6abdd4adce33c812d24 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0013839
0xd8e8905cbfa2c3d81c6363f91db9a3d41cfaf89e7bd5c14c1ad83e4c7dd3a96049754772021-02-18 1:44:2013 days 9 hrs ago0x9bc3e220896c3e87993204e485632aa65ad25aca IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00135729
0x2734b1af9a158611edffc3795aebc6de43588f3376e261cc673a377ca5c0a09749700892021-02-17 21:14:3413 days 14 hrs ago0x8454e1ee9a5324a291516b95364a929d723b2308 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0012339
0x672dacba90f8593f5a749b5bf8070393f42098e9942554a0980a81637df24a0149685822021-02-17 19:59:0113 days 15 hrs ago0xab992a51f4991e439f8ce9c9b5142cd24366c2ff IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00214678
0x683fcdcd1e891afd5aeb59958e699d74ad56353bdc0ed11a37554c1e7dea56f649667442021-02-17 18:27:0613 days 16 hrs ago0x09fb1450e5d341acd5f15dcca4c7aebdb6057b3d IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.0012339
0xd4bd4ea6020abdc76cd3500cd9eade74ae3af66878a75074a9a10e3f0827874e49521132021-02-17 6:12:4814 days 5 hrs ago0x09fb1450e5d341acd5f15dcca4c7aebdb6057b3d IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00309166
0x93fa489dcdd57b11ebef4187be45293abbb4192a0c1c51587c76e93f92f312d949503162021-02-17 4:42:5614 days 6 hrs ago0x9bc3e220896c3e87993204e485632aa65ad25aca IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00154571
0x44386a9a2e4efa5d1856300661f0d0555e06b3f944b460f2f6add11ad609962c49434582021-02-16 22:58:2814 days 12 hrs ago0x0d8d3a5cdfaec1e593b1e36a5005c8144f0f152f IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00063754
0x8a04c9a49f3a42340b3ecccf1d866b459434cdf485acdc471bcf351e983e17ab49421122021-02-16 21:50:4914 days 13 hrs ago0x0653fbf4edfe9f793b52f6abdd4adce33c812d24 IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.00309166
0x614e96decbc0da634cbe87526550491705ecdc749de82a047294282ac009b27249410602021-02-16 20:57:5814 days 14 hrs ago0xab992a51f4991e439f8ce9c9b5142cd24366c2ff IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.019322875
0xe347cdeb3a902428ce67b82973006362b95026cfed9270e35fb0d0ecf1e0f2a249400842021-02-16 20:09:0114 days 15 hrs ago0xab992a51f4991e439f8ce9c9b5142cd24366c2ff IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.002497225
0xb45aeb6d494ece513cba8376e0766f999f19ad72f003cdd1b58f24c883cc3eb449352712021-02-16 16:07:2814 days 19 hrs ago0x55afa4369d668dc0d2e2c0fe8d9b21c662a17dfe IN  0x870990a2c245d9d059f91a6f92a17410066a97930 BNB0.016848239
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x72cd6b29b8b856d63ff911ba3ad678863ad846cf21b1546ffd5e1963ac3b486b53115162021-03-01 21:23:161 day 13 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x72cd6b29b8b856d63ff911ba3ad678863ad846cf21b1546ffd5e1963ac3b486b53115162021-03-01 21:23:161 day 13 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x72cd6b29b8b856d63ff911ba3ad678863ad846cf21b1546ffd5e1963ac3b486b53115162021-03-01 21:23:161 day 13 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 0x75de745a333a47fe786e8dbbf3e9440d3d5bc8090 BNB
0xf890d987c2b6ecf3de135f6045db21989656b793db3b58e3f05b7665be686bf953114412021-03-01 21:19:291 day 13 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x05fd24fd75e089c76cee82931f71f8d3b6ef55045e7462ab9c8b88fdd734ae6a53114272021-03-01 21:18:471 day 13 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0xecb875906e1f43c7be20812a20a3a14cd6d4a5ab9d8886d4613132b5d47c67e253114182021-03-01 21:18:201 day 13 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0xecb875906e1f43c7be20812a20a3a14cd6d4a5ab9d8886d4613132b5d47c67e253114182021-03-01 21:18:201 day 13 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x21080c952f9799ea51faaef6b63574c72b185e64da23951646ef1daeb8081ff951625752021-02-24 16:48:586 days 18 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x21080c952f9799ea51faaef6b63574c72b185e64da23951646ef1daeb8081ff951625752021-02-24 16:48:586 days 18 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x21080c952f9799ea51faaef6b63574c72b185e64da23951646ef1daeb8081ff951625752021-02-24 16:48:586 days 18 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 0x75de745a333a47fe786e8dbbf3e9440d3d5bc8090 BNB
0x44ffda78ed13493cf9abdf8bfecb4290d638db6f90d80e05038f9650c0dce2ac51263202021-02-23 10:28:308 days 48 mins ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x44ffda78ed13493cf9abdf8bfecb4290d638db6f90d80e05038f9650c0dce2ac51263202021-02-23 10:28:308 days 48 mins ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x44ffda78ed13493cf9abdf8bfecb4290d638db6f90d80e05038f9650c0dce2ac51263202021-02-23 10:28:308 days 48 mins ago 0x870990a2c245d9d059f91a6f92a17410066a9793 0x75de745a333a47fe786e8dbbf3e9440d3d5bc8090 BNB
0x166bc603c6d652d02ebcdbc72a07f6866a5fd2dcb02cc15833ea58b7bef1557c51263122021-02-23 10:28:068 days 49 mins ago 0x870990a2c245d9d059f91a6f92a17410066a9793 0x75de745a333a47fe786e8dbbf3e9440d3d5bc8090 BNB
0x96c4db53339ca95d3165f908bcdffb0bc0ed067f744df946e0e7826207cf3cef50775282021-02-21 17:23:359 days 17 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x96c4db53339ca95d3165f908bcdffb0bc0ed067f744df946e0e7826207cf3cef50775282021-02-21 17:23:359 days 17 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x96c4db53339ca95d3165f908bcdffb0bc0ed067f744df946e0e7826207cf3cef50775282021-02-21 17:23:359 days 17 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 0x75de745a333a47fe786e8dbbf3e9440d3d5bc8090 BNB
0xe331f7327a183bb625b17eba31dcaa28a0a7178d807343bc9bbe5b20d943e27350197962021-02-19 15:57:2111 days 19 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0xe331f7327a183bb625b17eba31dcaa28a0a7178d807343bc9bbe5b20d943e27350197962021-02-19 15:57:2111 days 19 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0xb3e57d72602b9241d57af25299a5a4e3230451a80f0d5f9b16c6c3c1bcc0bea350197562021-02-19 15:54:5111 days 19 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x05e656fba5de10b175e265ef518a80e9f9b3c6daf7f278cf3d4dd8fbe1e83f3950124732021-02-19 8:49:4812 days 2 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0x05e656fba5de10b175e265ef518a80e9f9b3c6daf7f278cf3d4dd8fbe1e83f3950124732021-02-19 8:49:4812 days 2 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0xfbd7ac49721465b9e9a444b1a6b66719da880a6bc9f16ad8c5695a636d64a89a50122902021-02-19 8:40:3912 days 2 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0xfbd7ac49721465b9e9a444b1a6b66719da880a6bc9f16ad8c5695a636d64a89a50122902021-02-19 8:40:3912 days 2 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 PancakeSwap: bDFSocial0 BNB
0xfbd7ac49721465b9e9a444b1a6b66719da880a6bc9f16ad8c5695a636d64a89a50122902021-02-19 8:40:3912 days 2 hrs ago 0x870990a2c245d9d059f91a6f92a17410066a9793 0x75de745a333a47fe786e8dbbf3e9440d3d5bc8090 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
bDFSocial_Farming

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, BSD-3-Clause license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-02-15
*/

pragma solidity >=0.7.0;

// SPDX-License-Identifier: BSD-3-Clause

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @dev Library for managing
 * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive
 * types.
 *
 * Sets have the following properties:
 *
 * - Elements are added, removed, and checked for existence in constant time
 * (O(1)).
 * - Elements are enumerated in O(n). No guarantees are made on the ordering.
 *
 * ```
 * contract Example {
 *     // Add the library methods
 *     using EnumerableSet for EnumerableSet.AddressSet;
 *
 *     // Declare a set state variable
 *     EnumerableSet.AddressSet private mySet;
 * }
 * ```
 *
 * As of v3.0.0, only sets of type `address` (`AddressSet`) and `uint256`
 * (`UintSet`) are supported.
 */
library EnumerableSet {
    // To implement this library for multiple types with as little code
    // repetition as possible, we write it in terms of a generic Set type with
    // bytes32 values.
    // The Set implementation uses private functions, and user-facing
    // implementations (such as AddressSet) are just wrappers around the
    // underlying Set.
    // This means that we can only create new EnumerableSets for types that fit
    // in bytes32.

    struct Set {
        // Storage of set values
        bytes32[] _values;

        // Position of the value in the `values` array, plus 1 because index 0
        // means a value is not in the set.
        mapping (bytes32 => uint256) _indexes;
    }

    /**
     * @dev Add a value to a set. O(1).
     *
     * Returns true if the value was added to the set, that is if it was not
     * already present.
     */
    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            // The value is stored at length-1, but we add 1 to all indexes
            // and use 0 as a sentinel value
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    /**
     * @dev Removes a value from a set. O(1).
     *
     * Returns true if the value was removed from the set, that is if it was
     * present.
     */
    function _remove(Set storage set, bytes32 value) private returns (bool) {
        // We read and store the value's index to prevent multiple reads from the same storage slot
        uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) { // Equivalent to contains(set, value)
            // To delete an element from the _values array in O(1), we swap the element to delete with the last one in
            // the array, and then remove the last element (sometimes called as 'swap and pop').
            // This modifies the order of the array, as noted in {at}.

            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;

            // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs
            // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.

            bytes32 lastvalue = set._values[lastIndex];

            // Move the last value to the index where the value to delete is
            set._values[toDeleteIndex] = lastvalue;
            // Update the index for the moved value
            set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based

            // Delete the slot where the moved value was stored
            set._values.pop();

            // Delete the index for the deleted slot
            delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }

    /**
     * @dev Returns true if the value is in the set. O(1).
     */
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }

    /**
     * @dev Returns the number of values on the set. O(1).
     */
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

   /**
    * @dev Returns the value stored at position `index` in the set. O(1).
    *
    * Note that there are no guarantees on the ordering of values inside the
    * array, and it may change when more values are added or removed.
    *
    * Requirements:
    *
    * - `index` must be strictly less than {length}.
    */
    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];
    }

    // AddressSet

    struct AddressSet {
        Set _inner;
    }

    /**
     * @dev Add a value to a set. O(1).
     *
     * Returns true if the value was added to the set, that is if it was not
     * already present.
     */
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(value)));
    }

    /**
     * @dev Removes a value from a set. O(1).
     *
     * Returns true if the value was removed from the set, that is if it was
     * present.
     */
    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(value)));
    }

    /**
     * @dev Returns true if the value is in the set. O(1).
     */
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(value)));
    }

    /**
     * @dev Returns the number of values in the set. O(1).
     */
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   /**
    * @dev Returns the value stored at position `index` in the set. O(1).
    *
    * Note that there are no guarantees on the ordering of values inside the
    * array, and it may change when more values are added or removed.
    *
    * Requirements:
    *
    * - `index` must be strictly less than {length}.
    */
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint256(_at(set._inner, index)));
    }


    // UintSet

    struct UintSet {
        Set _inner;
    }

    /**
     * @dev Add a value to a set. O(1).
     *
     * Returns true if the value was added to the set, that is if it was not
     * already present.
     */
    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    /**
     * @dev Removes a value from a set. O(1).
     *
     * Returns true if the value was removed from the set, that is if it was
     * present.
     */
    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    /**
     * @dev Returns true if the value is in the set. O(1).
     */
    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    /**
     * @dev Returns the number of values on the set. O(1).
     */
    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   /**
    * @dev Returns the value stored at position `index` in the set. O(1).
    *
    * Note that there are no guarantees on the ordering of values inside the
    * array, and it may change when more values are added or removed.
    *
    * Requirements:
    *
    * - `index` must be strictly less than {length}.
    */
    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner ;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor()  {
    owner = msg.sender;
  }


  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}


interface Token {
    function transferFrom(address, address, uint) external returns (bool);
    function transfer(address, uint) external returns (bool);
    function balanceOf(address _owner) external returns (uint256 balance);
}

contract bDFSocial_Farming is Ownable {
    using SafeMath for uint;
    using EnumerableSet for EnumerableSet.AddressSet;
    
    event RewardsTransferred(address holder, uint amount);
    
    // DEFISocial token contract address
    address public constant LPtokenAddress = 0x0A88Bd9Bb4Ad2625d693b521D18485EA020FEB0D; // BNB - bDFSocial LP
    address public constant tokenAddress = 0x75de745a333a47Fe786e8DbBf3E9440d3d5Bc809;  //bDFSocial
    
    
    uint public constant rewardInterval = 365 days;
    
    // staking fee 1 percent
    uint public constant stakingFeeRate = 100;
    
    // unstaking fee 0.50 percent
    uint public constant unstakingFeeRate = 100;
    
    // unstaking possible after 12 hours
    //uint public constant cliffTime = 72 hours;
    
    uint public totalClaimedRewards = 0;
    
    EnumerableSet.AddressSet private holders;
    
    mapping (address => uint) public depositedTokens;
    mapping (address => uint) public stakingTime;
    mapping (address => uint) public lastClaimedTime;
    mapping (address => uint) public totalEarnedTokens;
    
    
    function updateAccount(address account) private {
        uint pendingDivs = getPendingDivs(account);
        if (pendingDivs > 0 && totalClaimedRewards.add(pendingDivs) <= 50000000000000000000) {
            require(Token(tokenAddress).transfer(account, pendingDivs), "Could not transfer tokens.");
            totalEarnedTokens[account] = totalEarnedTokens[account].add(pendingDivs);
            totalClaimedRewards = totalClaimedRewards.add(pendingDivs);
            emit RewardsTransferred(account, pendingDivs);
        }
        lastClaimedTime[account] = block.timestamp;
    }
    
    function getPendingDivs(address _holder) public view returns (uint) {
        if (!holders.contains(_holder)) return 0;
        if (depositedTokens[_holder] == 0) return 0;

        uint timeDiff = block.timestamp.sub(lastClaimedTime[_holder]);
        uint stakedAmount = depositedTokens[_holder];
        
        
        uint numHolders = getNumberOfHolders();
        uint rewardRateFinal = numHolders.mul(1e2);
        
        uint pendingDivs = stakedAmount
                            .mul(rewardRateFinal) 
                            .mul(timeDiff)
                            .div(rewardInterval)
                            .div(1e4);
            
        return pendingDivs;
    }
    
    function getNumberOfHolders() public view returns (uint) {
        return holders.length();
    }
    
    
    function deposit(uint amountToStake) public {
        require(amountToStake > 300000000000000000, "Cannot deposit less than 0.5 Tokens");
        require(Token(LPtokenAddress).transferFrom(msg.sender, address(this), amountToStake), "Insufficient Token Allowance");
        
        updateAccount(msg.sender);
        
        uint fee = amountToStake.mul(stakingFeeRate).div(1e4);
        uint amountAfterFee = amountToStake.sub(fee);
        require(Token(LPtokenAddress).transfer(owner, fee), "Could not transfer deposit fee.");
        
        depositedTokens[msg.sender] = depositedTokens[msg.sender].add(amountAfterFee);
        
        if (!holders.contains(msg.sender)) {
            holders.add(msg.sender);
            stakingTime[msg.sender] = block.timestamp;
        }else{
            
        }
    }
    
    function withdraw(uint amountToWithdraw) public {
        require(depositedTokens[msg.sender] >= amountToWithdraw, "Invalid amount to withdraw");
        
        //require(block.timestamp.sub(stakingTime[msg.sender]) > cliffTime, "You recently staked, please wait before withdrawing.");
        
        if(totalClaimedRewards.add(getPendingDivs(msg.sender)) <= 50000000000000000000){
            updateAccount(msg.sender);
        }
        
        
        uint fee = amountToWithdraw.mul(unstakingFeeRate).div(1e4);
        uint amountAfterFee = amountToWithdraw.sub(fee);
        
        depositedTokens[msg.sender] = depositedTokens[msg.sender].sub(amountToWithdraw);
        
        require(Token(LPtokenAddress).transfer(owner, fee), "Could not transfer withdraw fee.");
        require(Token(LPtokenAddress).transfer(msg.sender, amountAfterFee), "Could not transfer tokens.");
        
        
        
        if (holders.contains(msg.sender) && depositedTokens[msg.sender] == 0) {
            holders.remove(msg.sender);
        }
    }
    
    function emergencyWithdraw(uint amountToWithdraw) public {
        require(depositedTokens[msg.sender] >= amountToWithdraw, "Invalid amount to withdraw");
        
        //require(block.timestamp.sub(stakingTime[msg.sender]) > cliffTime, "You recently staked, please wait before withdrawing.");
        
        //updateAccount(msg.sender);
        
        uint fee = amountToWithdraw.mul(unstakingFeeRate).div(1e4);
        uint amountAfterFee = amountToWithdraw.sub(fee);
        
        depositedTokens[msg.sender] = depositedTokens[msg.sender].sub(amountToWithdraw);
        
        require(Token(LPtokenAddress).transfer(owner, fee), "Could not transfer withdraw fee.");
        require(Token(LPtokenAddress).transfer(msg.sender, amountAfterFee), "Could not transfer tokens.");
        
        
        if (holders.contains(msg.sender) && depositedTokens[msg.sender] == 0) {
            holders.remove(msg.sender);
        }
    }
    
    function claimDivs() public {
        updateAccount(msg.sender);
    }
    
    
    
    uint private constant stakingAndDaoTokens = 50e18;
    
    function getStakingAndDaoAmount() public view returns (uint) {
        if (totalClaimedRewards >= stakingAndDaoTokens) {
            return 0;
        }
        uint remaining = stakingAndDaoTokens.sub(totalClaimedRewards);
        return remaining;
    }
    
    // function to allow admin to claim *other* ERC20 tokens sent to this contract (by mistake)
    // Admin cannot transfer out YF-DAI from this smart contract
    function transferAnyERC20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        require (_tokenAddr != LPtokenAddress, "Cannot Transfer Out DFSocial!");
        Token(_tokenAddr).transfer(_to, _amount);
    }
}

Contract ABI

[{"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":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsTransferred","type":"event"},{"inputs":[],"name":"LPtokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDivs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToStake","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToWithdraw","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getNumberOfHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_holder","type":"address"}],"name":"getPendingDivs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingAndDaoAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaimedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalClaimedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalEarnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakingFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToWithdraw","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600060015534801561001557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611ec9806100656000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806398896d10116100ad578063d578ceab11610071578063d578ceab14610473578063d816c7d514610491578063f2fde38b146104af578063f3f91fa0146104f3578063f9da7db81461054b5761012c565b806398896d10146103435780639d76ea581461039b578063b6b55f25146103cf578063bec4de3f146103fd578063c326bf4f1461041b5761012c565b8063583d42fd116100f4578063583d42fd146101d35780635ef057be1461022b5780636270cd18146102495780636a395ccb146102a15780638da5cb5b1461030f5761012c565b806319aa70e714610131578063268cab491461013b5780632e1a7d4d14610159578063308feec3146101875780635312ea8e146101a5575b600080fd5b61013961057f565b005b61014361058a565b6040518082815260200191505060405180910390f35b6101856004803603602081101561016f57600080fd5b81019080803590602001909291905050506105d1565b005b61018f610a97565b6040518082815260200191505060405180910390f35b6101d1600480360360208110156101bb57600080fd5b8101908080359060200190929190505050610aa8565b005b610215600480360360208110156101e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f38565b6040518082815260200191505060405180910390f35b610233610f50565b6040518082815260200191505060405180910390f35b61028b6004803603602081101561025f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f55565b6040518082815260200191505060405180910390f35b61030d600480360360608110156102b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f6d565b005b61031761112d565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103856004803603602081101561035957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611151565b6040518082815260200191505060405180910390f35b6103a36112e4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103fb600480360360208110156103e557600080fd5b81019080803590602001909291905050506112fc565b005b61040561175b565b6040518082815260200191505060405180910390f35b61045d6004803603602081101561043157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611763565b6040518082815260200191505060405180910390f35b61047b61177b565b6040518082815260200191505060405180910390f35b610499611781565b6040518082815260200191505060405180910390f35b6104f1600480360360208110156104c557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611786565b005b6105356004803603602081101561050957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118d5565b6040518082815260200191505060405180910390f35b6105536118ed565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61058833611905565b565b60006802b5e3af16b1880000600154106105a757600090506105ce565b60006105c76001546802b5e3af16b1880000611bc490919063ffffffff16565b9050809150505b90565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c696420616d6f756e7420746f20776974686472617700000000000081525060200191505060405180910390fd5b6802b5e3af16b18800006106ad61069c33611151565b600154611bdb90919063ffffffff16565b116106bc576106bb33611905565b5b60006106e66127106106d8606485611bf790919063ffffffff16565b611c2690919063ffffffff16565b905060006106fd8284611bc490919063ffffffff16565b905061075183600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc490919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550730a88bd9bb4ad2625d693b521d18485ea020feb0d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561083957600080fd5b505af115801561084d573d6000803e3d6000fd5b505050506040513d602081101561086357600080fd5b81019080805190602001909291905050506108e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74207472616e73666572207769746864726177206665652e81525060200191505060405180910390fd5b730a88bd9bb4ad2625d693b521d18485ea020feb0d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561096b57600080fd5b505af115801561097f573d6000803e3d6000fd5b505050506040513d602081101561099557600080fd5b8101908080519060200190929190505050610a18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b610a2c336002611c3f90919063ffffffff16565b8015610a7757506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15610a9257610a90336002611c6f90919063ffffffff16565b505b505050565b6000610aa36002611c9f565b905090565b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610b5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f496e76616c696420616d6f756e7420746f20776974686472617700000000000081525060200191505060405180910390fd5b6000610b87612710610b79606485611bf790919063ffffffff16565b611c2690919063ffffffff16565b90506000610b9e8284611bc490919063ffffffff16565b9050610bf283600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bc490919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550730a88bd9bb4ad2625d693b521d18485ea020feb0d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610cda57600080fd5b505af1158015610cee573d6000803e3d6000fd5b505050506040513d6020811015610d0457600080fd5b8101908080519060200190929190505050610d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74207472616e73666572207769746864726177206665652e81525060200191505060405180910390fd5b730a88bd9bb4ad2625d693b521d18485ea020feb0d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e0c57600080fd5b505af1158015610e20573d6000803e3d6000fd5b505050506040513d6020811015610e3657600080fd5b8101908080519060200190929190505050610eb9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b610ecd336002611c3f90919063ffffffff16565b8015610f1857506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15610f3357610f31336002611c6f90919063ffffffff16565b505b505050565b60056020528060005260406000206000915090505481565b606481565b60076020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fc557600080fd5b730a88bd9bb4ad2625d693b521d18485ea020feb0d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f43616e6e6f74205472616e73666572204f7574204446536f6369616c2100000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110ec57600080fd5b505af1158015611100573d6000803e3d6000fd5b505050506040513d602081101561111657600080fd5b810190808051906020019092919050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611167826002611c3f90919063ffffffff16565b61117457600090506112df565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156111c557600090506112df565b6000611219600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442611bc490919063ffffffff16565b90506000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611269610a97565b90506000611281606483611bf790919063ffffffff16565b905060006112d46127106112c66301e133806112b8896112aa888b611bf790919063ffffffff16565b611bf790919063ffffffff16565b611c2690919063ffffffff16565b611c2690919063ffffffff16565b905080955050505050505b919050565b7375de745a333a47fe786e8dbbf3e9440d3d5bc80981565b670429d069189e0000811161135c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611e716023913960400191505060405180910390fd5b730a88bd9bb4ad2625d693b521d18485ea020feb0d73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050506040513d602081101561142957600080fd5b81019080805190602001909291905050506114ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f496e73756666696369656e7420546f6b656e20416c6c6f77616e63650000000081525060200191505060405180910390fd5b6114b533611905565b60006114df6127106114d1606485611bf790919063ffffffff16565b611c2690919063ffffffff16565b905060006114f68284611bc490919063ffffffff16565b9050730a88bd9bb4ad2625d693b521d18485ea020feb0d73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561159d57600080fd5b505af11580156115b1573d6000803e3d6000fd5b505050506040513d60208110156115c757600080fd5b810190808051906020019092919050505061164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f74207472616e73666572206465706f736974206665652e0081525060200191505060405180910390fd5b61169c81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bdb90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116f3336002611c3f90919063ffffffff16565b6117555761170b336002611cb490919063ffffffff16565b5042600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611756565b5b505050565b6301e1338081565b60046020528060005260406000206000915090505481565b60015481565b606481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117de57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561181857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60066020528060005260406000206000915090505481565b730a88bd9bb4ad2625d693b521d18485ea020feb0d81565b600061191082611151565b905060008111801561193f57506802b5e3af16b188000061193c82600154611bdb90919063ffffffff16565b11155b15611b7c577375de745a333a47fe786e8dbbf3e9440d3d5bc80973ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156119c957600080fd5b505af11580156119dd573d6000803e3d6000fd5b505050506040513d60208110156119f357600080fd5b8101908080519060200190929190505050611a76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f74207472616e7366657220746f6b656e732e00000000000081525060200191505060405180910390fd5b611ac881600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bdb90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b2081600154611bdb90919063ffffffff16565b6001819055507f586b2e63a21a7a4e1402e36f48ce10cb1ec94684fea254c186b76d1f98ecf1308282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600082821115611bd057fe5b818303905092915050565b600080828401905083811015611bed57fe5b8091505092915050565b60008082840290506000841480611c16575082848281611c1357fe5b04145b611c1c57fe5b8091505092915050565b600080828481611c3257fe5b0490508091505092915050565b6000611c67836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ce4565b905092915050565b6000611c97836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611d07565b905092915050565b6000611cad82600001611def565b9050919050565b6000611cdc836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611e00565b905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611de35760006001820390506000600186600001805490500390506000866000018281548110611d5257fe5b9060005260206000200154905080876000018481548110611d6f57fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480611da757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050611de9565b60009150505b92915050565b600081600001805490509050919050565b6000611e0c8383611ce4565b611e65578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611e6a565b600090505b9291505056fe43616e6e6f74206465706f736974206c657373207468616e20302e3520546f6b656e73a26469706673582212209e3c489f4f7c432fef917e7c1f62956591efa79508fbf3bb852c03487221d29464736f6c63430007060033

Deployed ByteCode Sourcemap

10103:6316:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15585:72;;;:::i;:::-;;15743:261;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13527:1074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12564:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14613:960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11060:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10661:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11166:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16179:237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9063:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11840:712;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10459:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12681:834;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10572:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11005:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10904:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10750:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9677:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11111:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10347:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15585:72;15624:25;15638:10;15624:13;:25::i;:::-;15585:72::o;15743:261::-;15798:4;15725:5;15819:19;;:42;15815:83;;15885:1;15878:8;;;;15815:83;15908:14;15925:44;15949:19;;15725:5;15925:23;;:44;;;;:::i;:::-;15908:61;;15987:9;15980:16;;;15743:261;;:::o;13527:1074::-;13625:16;13594:15;:27;13610:10;13594:27;;;;;;;;;;;;;;;;:47;;13586:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13895:20;13840:51;13864:26;13879:10;13864:14;:26::i;:::-;13840:19;;:23;;:51;;;;:::i;:::-;:75;13837:131;;13931:25;13945:10;13931:13;:25::i;:::-;13837:131;13998:8;14009:47;14052:3;14009:38;10790:3;14009:16;:20;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;13998:58;;14067:19;14089:25;14110:3;14089:16;:20;;:25;;;;:::i;:::-;14067:47;;14165:49;14197:16;14165:15;:27;14181:10;14165:27;;;;;;;;;;;;;;;;:31;;:49;;;;:::i;:::-;14135:15;:27;14151:10;14135:27;;;;;;;;;;;;;;;:79;;;;10388:42;14243:30;;;14274:5;;;;;;;;;;14281:3;14243:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14235:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10388:42;14341:30;;;14372:10;14384:14;14341:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14333:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14475:28;14492:10;14475:7;:16;;:28;;;;:::i;:::-;:64;;;;;14538:1;14507:15;:27;14523:10;14507:27;;;;;;;;;;;;;;;;:32;14475:64;14471:123;;;14556:26;14571:10;14556:7;:14;;:26;;;;:::i;:::-;;14471:123;13527:1074;;;:::o;12564:99::-;12615:4;12639:16;:7;:14;:16::i;:::-;12632:23;;12564:99;:::o;14613:960::-;14720:16;14689:15;:27;14705:10;14689:27;;;;;;;;;;;;;;;;:47;;14681:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14980:8;14991:47;15034:3;14991:38;10790:3;14991:16;:20;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;14980:58;;15049:19;15071:25;15092:3;15071:16;:20;;:25;;;;:::i;:::-;15049:47;;15147:49;15179:16;15147:15;:27;15163:10;15147:27;;;;;;;;;;;;;;;;:31;;:49;;;;:::i;:::-;15117:15;:27;15133:10;15117:27;;;;;;;;;;;;;;;:79;;;;10388:42;15225:30;;;15256:5;;;;;;;;;;15263:3;15225:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15217:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10388:42;15323:30;;;15354:10;15366:14;15323:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15315:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15447:28;15464:10;15447:7;:16;;:28;;;;:::i;:::-;:64;;;;;15510:1;15479:15;:27;15495:10;15479:27;;;;;;;;;;;;;;;;:32;15447:64;15443:123;;;15528:26;15543:10;15528:7;:14;;:26;;;;:::i;:::-;;15443:123;14613:960;;;:::o;11060:44::-;;;;;;;;;;;;;;;;;:::o;10661:41::-;10699:3;10661:41;:::o;11166:50::-;;;;;;;;;;;;;;;;;:::o;16179:237::-;9488:5;;;;;;;;;;9474:19;;:10;:19;;;9466:28;;;;;;10388:42:::1;16295:28;;:10;:28;;;;16286:71;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16374:10;16368:26;;;16395:3;16400:7;16368:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;16179:237:::0;;;:::o;9063:20::-;;;;;;;;;;;;:::o;11840:712::-;11902:4;11924:25;11941:7;11924;:16;;:25;;;;:::i;:::-;11919:40;;11958:1;11951:8;;;;11919:40;12002:1;11974:15;:24;11990:7;11974:24;;;;;;;;;;;;;;;;:29;11970:43;;;12012:1;12005:8;;;;11970:43;12026:13;12042:45;12062:15;:24;12078:7;12062:24;;;;;;;;;;;;;;;;12042:15;:19;;:45;;;;:::i;:::-;12026:61;;12098:17;12118:15;:24;12134:7;12118:24;;;;;;;;;;;;;;;;12098:44;;12173:15;12191:20;:18;:20::i;:::-;12173:38;;12222:20;12245:19;12260:3;12245:10;:14;;:19;;;;:::i;:::-;12222:42;;12285:16;12304:197;12497:3;12304:158;10610:8;12304:108;12403:8;12304:63;12351:15;12304:12;:46;;:63;;;;:::i;:::-;:98;;:108;;;;:::i;:::-;:142;;:158;;;;:::i;:::-;:192;;:197;;;;:::i;:::-;12285:216;;12533:11;12526:18;;;;;;;11840:712;;;;:::o;10459:81::-;10498:42;10459:81;:::o;12681:834::-;12760:18;12744:13;:34;12736:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10388:42;12837:34;;;12872:10;12892:4;12899:13;12837:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12829:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12967:25;12981:10;12967:13;:25::i;:::-;13013:8;13024:42;13062:3;13024:33;10699:3;13024:13;:17;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;13013:53;;13077:19;13099:22;13117:3;13099:13;:17;;:22;;;;:::i;:::-;13077:44;;10388:42;13140:30;;;13171:5;;;;;;;;;;13178:3;13140:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13132:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13269:47;13301:14;13269:15;:27;13285:10;13269:27;;;;;;;;;;;;;;;;:31;;:47;;;;:::i;:::-;13239:15;:27;13255:10;13239:27;;;;;;;;;;;;;;;:77;;;;13342:28;13359:10;13342:7;:16;;:28;;;;:::i;:::-;13337:171;;13387:23;13399:10;13387:7;:11;;:23;;;;:::i;:::-;;13451:15;13425:11;:23;13437:10;13425:23;;;;;;;;;;;;;;;:41;;;;13337:171;;;;12681:834;;;:::o;10572:46::-;10610:8;10572:46;:::o;11005:48::-;;;;;;;;;;;;;;;;;:::o;10904:35::-;;;;:::o;10750:43::-;10790:3;10750:43;:::o;9677:178::-;9488:5;;;;;;;;;;9474:19;;:10;:19;;;9466:28;;;;;;9774:1:::1;9754:22;;:8;:22;;;;9746:31;;;::::0;::::1;;9817:8;9789:37;;9810:5;::::0;::::1;;;;;;;;9789:37;;;;;;;;;;;;9841:8;9833:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;9677:178:::0;:::o;11111:48::-;;;;;;;;;;;;;;;;;:::o;10347:83::-;10388:42;10347:83;:::o;11235:593::-;11294:16;11313:23;11328:7;11313:14;:23::i;:::-;11294:42;;11365:1;11351:11;:15;:79;;;;;11410:20;11370:36;11394:11;11370:19;;:23;;:36;;;;:::i;:::-;:60;;11351:79;11347:421;;;10498:42;11455:28;;;11484:7;11493:11;11455:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11447:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11580:43;11611:11;11580:17;:26;11598:7;11580:26;;;;;;;;;;;;;;;;:30;;:43;;;;:::i;:::-;11551:17;:26;11569:7;11551:26;;;;;;;;;;;;;;;:72;;;;11660:36;11684:11;11660:19;;:23;;:36;;;;:::i;:::-;11638:19;:58;;;;11716:40;11735:7;11744:11;11716:40;;;;;;;;;;;;;;;;;;;;;;;;;;11347:421;11805:15;11778;:24;11794:7;11778:24;;;;;;;;;;;;;;;:42;;;;11235:593;;:::o;617:113::-;675:7;703:1;698;:6;;691:14;;;;723:1;719;:5;712:12;;617:113;;;;:::o;736:133::-;794:7;810:9;826:1;822;:5;810:17;;846:1;841;:6;;834:14;;;;862:1;855:8;;;736:133;;;;:::o;188:147::-;246:7;262:9;278:1;274;:5;262:17;;298:1;293;:6;:20;;;;312:1;307;303;:5;;;;;;:10;293:20;286:28;;;;328:1;321:8;;;188:147;;;;:::o;341:270::-;399:7;490:9;506:1;502;:5;;;;;;490:17;;604:1;597:8;;;341:270;;;;:::o;6378:158::-;6458:4;6482:46;6492:3;:10;;6520:5;6512:14;;6504:23;;6482:9;:46::i;:::-;6475:53;;6378:158;;;;:::o;6143:149::-;6216:4;6240:44;6248:3;:10;;6276:5;6268:14;;6260:23;;6240:7;:44::i;:::-;6233:51;;6143:149;;;;:::o;6622:117::-;6685:7;6712:19;6720:3;:10;;6712:7;:19::i;:::-;6705:26;;6622:117;;;:::o;5824:143::-;5894:4;5918:41;5923:3;:10;;5951:5;5943:14;;5935:23;;5918:4;:41::i;:::-;5911:48;;5824:143;;;;:::o;4698:129::-;4771:4;4818:1;4795:3;:12;;:19;4808:5;4795:19;;;;;;;;;;;;:24;;4788:31;;4698:129;;;;:::o;3068:1544::-;3134:4;3252:18;3273:3;:12;;:19;3286:5;3273:19;;;;;;;;;;;;3252:40;;3323:1;3309:10;:15;3305:1300;;3671:21;3708:1;3695:10;:14;3671:38;;3724:17;3765:1;3744:3;:11;;:18;;;;:22;3724:42;;4011:17;4031:3;:11;;4043:9;4031:22;;;;;;;;;;;;;;;;4011:42;;4177:9;4148:3;:11;;4160:13;4148:26;;;;;;;;;;;;;;;:38;;;;4296:1;4280:13;:17;4254:3;:12;;:23;4267:9;4254:23;;;;;;;;;;;:43;;;;4406:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;4501:3;:12;;:19;4514:5;4501:19;;;;;;;;;;;4494:26;;;4544:4;4537:11;;;;;;;;3305:1300;4588:5;4581:12;;;3068:1544;;;;;:::o;4913:109::-;4969:7;4996:3;:11;;:18;;;;4989:25;;4913:109;;;:::o;2478:414::-;2541:4;2563:21;2573:3;2578:5;2563:9;:21::i;:::-;2558:327;;2601:3;:11;;2618:5;2601:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2784:3;:11;;:18;;;;2762:3;:12;;:19;2775:5;2762:19;;;;;;;;;;;:40;;;;2824:4;2817:11;;;;2558:327;2868:5;2861:12;;2478:414;;;;;:::o

Swarm Source

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