Contract 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x8056e5f9ebe251862b968a212b673fe894fccee2dabefca96bb46c0ffa5205daActivate By Sign532647032023-01-15 14:38:47403 days 14 hrs ago0xfb5aea6e43f3850f809b29e9657ac613373337b2 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00005039 0.1
0x659f965e0dc5c47aed974bc751c62d4cf16b79c732bae1003120497fb57d1940Activate By Sign532192042023-01-15 10:55:10403 days 17 hrs ago0x88b69abccc7b7454523c1967b52b52949804f70d IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.000049080.1
0x59bc247a9bea1f94e52d1802b8bb039b3fe422bff3c756b8f5440e05390e4f77Activate By Sign532151762023-01-15 10:33:14403 days 18 hrs ago0xddcc6a7c9f53a437f4d6515bdf058b029e8e1169 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00004612 0.1
0x63278a2f49107d3ce871693a3ebf61e87556a4728a4fc1f9521ce77cf100d529Activate By Sign531663472023-01-15 5:42:23403 days 22 hrs ago0xfeb4c836d6a48914db59db557a9f55d0a8909811 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.0000467 0.1
0x6ac273b02625891f8132103f540755f46380f7f78c15ad513466816d5de826aeActivate By Sign530902022023-01-14 19:51:16404 days 8 hrs ago0x3267cb555f960fda9df275109c689846dada41c0 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00005275 0.1
0x788e235faf03bf817f97027c7195347edc103e85415dc6836e6d94a00ad5c2ccActivate By Sign530336842023-01-14 14:04:51404 days 14 hrs ago0xae3ae6b70e66b04305d35211d93fa4d56ee8ac47 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00004759 0.1
0xf1b5922829d83b8705259aa6e67e73db48458f7897e8f0cec1408d9941c96e14Activate By Sign529991612023-01-14 11:00:43404 days 17 hrs ago0x57fdca138116b86f12ad8431739718950c2ba8ad IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00007051 0.1
0x2f391eefa2498d5072861728d307c94ceb5389e8928f8d78ea24008b7c374ca5Activate By Sign529606942023-01-14 7:39:50404 days 21 hrs ago0xcec08941dcfcc6df840727f37febaa40017982c0 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00005659 0.1
0xc701d1e9bb423310073105cbc1dcefe6def72541364683d947e62fb5a9e4aeffActivate By Sign529289582023-01-14 4:27:08405 days 14 mins ago0x076a6faed850c0c2b270e7271a526cb26755f14d IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00007601 0.1
0x80c9b8d5aad59aae74de3fe2c2b26534ff5130258405b9b74040f386a62e62a0Activate By Sign529265522023-01-14 4:10:45405 days 30 mins ago0x2b133847465ce196015044afbe675afdda482e1b IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00007558 0.1
0x7483453f49a08cda9ffb1f988d6c2593c7890d8bc9d2c62e9036710b1d0574c9Activate By Sign528814452023-01-13 23:50:01405 days 4 hrs ago0x848fdc63b72ca50164f7975c0f3789c8165a08d1 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00009157 0.1
0x22bb3e09f6d9162d57c651ebe1e74109d828ca3a02a7bbb7253ebce2ad9c006fActivate By Sign528660232023-01-13 22:09:42405 days 6 hrs ago0x7cda80d1deea1546afe39d60d3b9124093e4dd38 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00008376 0.1
0x77f927167ea5600b5ada63dcc18fbd15661efe665a3a1d2a0ddc43b4105dd63bActivate By Sign528430882023-01-13 19:47:24405 days 8 hrs ago0x23c17b2fe71220daa0a248b51dc0e66a3952193c IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00007972 0.1
0x8d81572a6d89c9e2a4a2e00ea1c2a236c7f3367f1aac3e2217fa7ceae2b51a7fActivate By Sign528228142023-01-13 17:37:05405 days 11 hrs ago0x4af7c12c7e210f4cb8f2d8e340aaadae05a9f655 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00012348 0.1
0xe24891e5d4e20d16dceca6c8efc547980d9380f95fd14ab25036d435183ee931Activate By Sign528088112023-01-13 16:04:50405 days 12 hrs ago0x04385bac7a2b202ca8069900005f3c0ba215a32a IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00012347 0.1
0x3eba9983514c2d0186cb9e895df4a82b00b1fdb9a060b9e27c42abf8006ca642Activate By Sign528020672023-01-13 15:24:32405 days 13 hrs ago0x92aace6e6cc704fbee9a81f671fc9795288f1df5 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.000094060.1
0x6113e41ca45e446b2c207c9f3a6d1394786b2ec0fa6ed02d742af826acfd1541Activate By Sign528000342023-01-13 15:13:06405 days 13 hrs ago0x42a63047a1cd8449e3e70adeb7363c4ca01db528 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00008038 0.1
0xf36db020173b66a07b282109a3bfe3ad47069fe112175a63889cb6a544173a8bActivate By Sign527977052023-01-13 14:59:35405 days 13 hrs ago0x727222c3de6227757356728ff1806b8d7355a03f IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00007233 0.1
0x692b99d1dd4aaa1b2477f7c2b45790bb3abd7015be2dc5037b65a2e9b1cefcd6Activate By Sign527783712023-01-13 13:08:42405 days 15 hrs ago0x2fcd4d1154ef31f2b81cd133626d850c70e6d819 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.0000444 0.1
0x2cc8b33cd2607198fb02f676003f9598ff356376ff5c44ef532d88c3fb14913bActivate By Sign527754312023-01-13 12:52:31405 days 15 hrs ago0xb44d57a251da397bcbe33cfbbef567e9fed151fc IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00004434 0.1
0xf90f64c9f58193ba6b33acd3477137bf7c79cf0fcd64afd619d7c4fcad1d3420Activate By Sign526810492023-01-13 2:57:00406 days 1 hr ago0x688a85c4a51513c8ef7e42743ea5dbc7ec19f69d IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00005625 0.1
0x8c77086f37b7e65420326720e0a5f5ff024da031025bd3801c95986ead1190d3Activate By Sign526808882023-01-13 2:55:47406 days 1 hr ago0x6a4f702fdf49a348ed98a45e0298be8952fdf866 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00005524 0.1
0x3e479c98ca279d6f5936bf59307af1ca65d5bbfd4e8dfe240e4552be1b48b44aActivate By Sign525244902023-01-12 10:39:12406 days 18 hrs ago0x9af591b1582b85eb8112d70dedfe57c294e6c228 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00004614 0.1
0xf0db28c70852c68377cfcdc352d3173b3375112481234ebaf85d31d551397845Activate By Sign523869592023-01-11 20:15:53407 days 8 hrs ago0x5fdd97c6b27050b30390113927f8119649e09d57 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00007845 0.1
0x0d0b7b618cf264b1fdc04055e76ee472893ed764285e9975c41fc3a541381e32Activate By Sign523506462023-01-11 16:58:59407 days 11 hrs ago0xd9e644dfb5bba8dcbce6f43f94eef1f578839e63 IN  0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH0.00008438 0.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xcfc7ad6cc07db59dc1167efa1605444ca0b11fbe969c9719f899a639540d1dea577310292023-02-03 16:50:06384 days 11 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0xe382021d67ea9cf659ea4409cd728dfcb3ba9066eb1fc3d1297b64413f3ba026548293122023-01-23 1:47:54396 days 2 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x6615225b99c3d27b827590f63380884eb4ca3f2ecd459df2f0a8badea0853a9a547576332023-01-22 17:16:08396 days 11 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x8931acc9fb1d483a1a8e32d0dd72b2241388765c53189efe1e9294f21062cff9547530102023-01-22 16:47:41396 days 11 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x2f86a35b14c4d2ea1c7fc16e76a45d2c51e8f783174b8eca75d98547468fb47d547528272023-01-22 16:46:32396 days 11 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x2cd3258929fcd72fd0ea86b3c7b6c9602be8748c9c1aaf78293726225dcbebe2545371422023-01-21 16:22:35397 days 12 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x8ee35c8c9181a0796f3040a1c839692d9a783738f344f33533d3c04a3c8cba1c544918762023-01-21 11:31:06397 days 17 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x160c63ac404dec09b58cb2f5766c3fc1f120ef91ce3a46a5703c7cfe303a2507542841952023-01-20 12:48:17398 days 15 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x0a0da2cd6a3ddca49b822743275c60d072429bc8b7e2933137c8f73bbe62340f537113652023-01-17 15:02:34401 days 13 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x41f10d2e9f59f5f1ff7a9496b56bf970a97f85814eae1ad9da38474d92569bee537112342023-01-17 15:01:56401 days 13 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x7b5603a7a01e3c2cfcd4864ecb82635701ae12119495bf36b65285063e0c823b535459112023-01-16 20:17:48402 days 8 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x6596554c9caac99e0e0a565b1a995ca2011abfd7c417639eeba332f305430383535155962023-01-16 17:25:49402 days 11 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x7f2eb542c32a5a1f6ba8f7477e00d7f6fe5064b9f3a86f8ff132fecc13c4cebc534513282023-01-16 11:08:37402 days 17 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x73c93a866d8c33eee13e357e0d84e818959e2ee260f4fab11a44d4fdbfd57255534482342023-01-16 10:49:28402 days 17 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0xedbabfdd20f68fca57f31241405601134433f80b9e45a636f062f83520dee920534380062023-01-16 9:46:53402 days 18 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0xbd7bcf2e1afefd14d10c84144ef4689a97bd9ebb0835fd4fc68696d176d52999534324582023-01-16 9:14:31402 days 19 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0xb16b5b55c3ff6a5f00849820b12de7a7bb7ae9535b103575d178f948a41783f4534320222023-01-16 9:12:11402 days 19 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x4a27147fcbab45e48c0a6528b3ded517a8de9544b7304ffcf771714a97a0a576534279432023-01-16 8:48:37402 days 19 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x23c76dc7a6479d42bf142a728c1ae98293642a31fef44f92dada9e5119901bed534264382023-01-16 8:39:47402 days 20 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x2bb004902445558e0dd4a79727d1b1a8fd0d8d8013bde1c2c7ca386e5fe16aa4534211432023-01-16 8:11:33402 days 20 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x9bd1e6c5fc5a228fa69b1dfd27795ef8be915aa3ff459a9d99f0f9110300f184534203742023-01-16 8:08:17402 days 20 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x173784221931e1e5f17da170c2a23608927c4314768245f2ca2607c9a913bd3f534198702023-01-16 8:04:39402 days 20 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x3036e86ba2fe13c3f7db95b922052a7ddbbd70ad595f766524eb96f51d1c4904534195892023-01-16 8:02:53402 days 20 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0x2e519d198b16d1d3bf812daf77ba3afbfbfab7e72b72f9ea5bfb26896a7c1719534176322023-01-16 7:50:22402 days 20 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
0xc3f94820e1522f840d80ab2fcfdef15317d04b59d748d8c7482eaa2635164a33534173462023-01-16 7:48:38402 days 20 hrs ago 0x45eecdada0b58b0e78f94549f65fdaf447b35c17 0x13319b5cab59084189f20bd66b2e9e12b52c2a6a0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Referral

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-01-05
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

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

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

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

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

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

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    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;
    }

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

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

pragma solidity >=0.6.0 <0.8.0;


/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor () internal {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

pragma solidity 0.6.12;

interface IReferral {
  function setMasterChef(address _masterChef) external;

  function activate(address referrer) external;

  function activateBySign(
    address referee,
    address referrer,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external;

  function isActivated(address _address) external view returns (bool);

  function updateReferralReward(address accountAddress, uint256 reward) external;

  function claimReward() external;
}

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

pragma solidity >=0.6.2 <0.8.0;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

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

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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

pragma solidity =0.6.12;



contract Referral is IReferral, Ownable, ReentrancyGuard {
  using SafeMath for uint256;
  using SafeERC20 for IERC20;

  /**
   * @dev The struct of account information.
   * @param referrer The referrer addresss.
   * @param reward Total pending reward of an address.
   * @param accumReward Total claimed reward of an address.
   * @param referredCount The total referral amount of an address.
   * @param activeTime The active timestamp of an address.
   */
  struct Account {
    address referrer;
    uint256 reward;
    uint256 accumReward;
    uint256 referredCount;
    uint256 activeTime;
  }

  event Activate(address referee, address referrer);
  event ClaimReward(address accountAddress, uint256 reward);
  event UpdateReferralReward(address referee, address referrer, uint256 reward);
  event UpdateMasterChef(address masterChef);

  // MasterChef address.
  address public masterChef;
  // SUGAR token.
  IERC20 public token;
  // Info of each account
  mapping(address => Account) public accounts;
  // Total rewards distributed
  uint256 public totalReward;
  // Total rewards transferred to this contract
  uint256 public totalRewardTransferred;

  bytes32 public DOMAIN_SEPARATOR;
  // keccak256("Activate(address referee,address referrer)")
  bytes32 public constant ACTIVATE_TYPEHASH = 0x4b1fc20d2fd2102f86b90df2c22a6641f5ef4f7fd96d33e36ab9bd6fbad1cf30;

  constructor(address _tokenAddress) public {
    require(
      _tokenAddress != address(0) && _tokenAddress != address(1),
      "Referral::constructor::_tokenAddress must not be address(0) or address(1)"
    );

    token = IERC20(_tokenAddress);

    uint256 chainId;
    assembly {
      chainId := chainid()
    }
    DOMAIN_SEPARATOR = keccak256(
      abi.encode(
        keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
        keccak256("Referral"),
        keccak256("1"),
        chainId,
        address(this)
      )
    );
  }

  // Only MasterChef can continue the execution
  modifier onlyMasterChef() {
    require(msg.sender == masterChef, "only masterChef");
    _;
  }

  // Update MasterChef address
  function setMasterChef(address _masterChef) public override onlyOwner {
    require(_masterChef != address(0), "invalid _masterChef");

    masterChef = _masterChef;
    emit UpdateMasterChef(_masterChef);
  }

  // Activates sender
  function activate(address referrer) external override {
    _activate(msg.sender, referrer);
  }

  // Delegates activates from signatory to `referee`
  function activateBySign(
    address referee,
    address referrer,
    uint8 v,
    bytes32 r,
    bytes32 s
  ) external override {
    bytes32 digest = keccak256(
      abi.encodePacked("\x19\x01", DOMAIN_SEPARATOR, keccak256(abi.encode(ACTIVATE_TYPEHASH, referee, referrer)))
    );
    address signer = ecrecover(digest, v, r, s);
    require(signer == referee, "invalid signature");

    _activate(referee, referrer);
  }

  // Internal function to activate `referee`
  function _activate(address referee, address referrer) internal {
    require(referee != address(0), "invalid referee");
    require(referee != referrer, "referee = referrer");
    require(accounts[referee].activeTime == 0, "referee account have been activated");
    if (referrer != address(0)) {
      require(accounts[referrer].activeTime > 0, "referrer account is not activated");
    }

    accounts[referee].referrer = referrer;
    accounts[referee].activeTime = block.timestamp;
    if (referrer != address(0)) {
      accounts[referrer].referredCount = accounts[referrer].referredCount.add(1);
    }

    emit Activate(referee, referrer);
  }

  // Function for check whether an address has activated
  function isActivated(address _address) public view override returns (bool) {
    return accounts[_address].activeTime > 0;
  }

  // Function for letting some observer call when some conditions met
  // Currently, the caller will MasterChef after transferring the SUGAR reward
  function updateReferralReward(address accountAddress, uint256 reward) external override onlyMasterChef {
    totalRewardTransferred = totalRewardTransferred.add(reward);
    if (accounts[accountAddress].referrer != address(0)) {
      Account storage referrerAccount = accounts[accounts[accountAddress].referrer];
      referrerAccount.reward = referrerAccount.reward.add(reward);
      totalReward = totalReward.add(reward);

      emit UpdateReferralReward(accountAddress, accounts[accountAddress].referrer, reward);
    }
  }

  // Claim SUGAR earned
  function claimReward() external override nonReentrant {
    require(accounts[msg.sender].activeTime > 0, "account is not activated");
    require(accounts[msg.sender].reward > 0, "reward amount = 0");

    Account storage account = accounts[msg.sender];
    uint256 pendingReward = account.reward;
    account.reward = account.reward.sub(pendingReward);
    account.accumReward = account.accumReward.add(pendingReward);
    token.safeTransfer(address(msg.sender), pendingReward);

    emit ClaimReward(msg.sender, pendingReward);
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"referee","type":"address"},{"indexed":false,"internalType":"address","name":"referrer","type":"address"}],"name":"Activate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"accountAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"ClaimReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"masterChef","type":"address"}],"name":"UpdateMasterChef","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"referee","type":"address"},{"indexed":false,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"UpdateReferralReward","type":"event"},{"inputs":[],"name":"ACTIVATE_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accounts","outputs":[{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"accumReward","type":"uint256"},{"internalType":"uint256","name":"referredCount","type":"uint256"},{"internalType":"uint256","name":"activeTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrer","type":"address"}],"name":"activate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referee","type":"address"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"activateBySign","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isActivated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"masterChef","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_masterChef","type":"address"}],"name":"setMasterChef","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardTransferred","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accountAddress","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"updateReferralReward","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516114013803806114018339818101604052602081101561003357600080fd5b5051600061003f6101b2565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180556001600160a01b038116158015906100af57506001600160a01b038116600114155b6100ea5760405162461bcd60e51b81526004018080602001828103825260498152602001806113b86049913960600191505060405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527fe0e014595d25934312f781a2f6c17595fb4a02c46a7e480de1ede5b709831991828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c090920190925280519101206007556101b6565b3390565b6111f3806101c56000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638da5cb5b11610097578063c9faa7c511610066578063c9faa7c514610285578063ccaf70c0146102bf578063f2fde38b146102c7578063fc0c546a146102ed57610100565b80638da5cb5b14610247578063a2d9f4dc1461024f578063b88a802f14610275578063c296527a1461027d57610100565b8063575a86b2116100d3578063575a86b2146101b85780635e5c06e2146101dc578063715018a614610237578063750142e61461023f57610100565b80631c5a9d9c14610105578063207501c81461012d5780633644e515146101595780633a20b2b414610173575b600080fd5b61012b6004803603602081101561011b57600080fd5b50356001600160a01b03166102f5565b005b61012b6004803603604081101561014357600080fd5b506001600160a01b038135169060200135610302565b61016161042d565b60408051918252519081900360200190f35b61012b600480360360a081101561018957600080fd5b506001600160a01b03813581169160208101359091169060ff6040820135169060608101359060800135610433565b6101c061059f565b604080516001600160a01b039092168252519081900360200190f35b610202600480360360208110156101f257600080fd5b50356001600160a01b03166105ae565b604080516001600160a01b03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b61012b6105e8565b6101616106a6565b6101c06106ac565b61012b6004803603602081101561026557600080fd5b50356001600160a01b03166106bb565b61012b6107d4565b61016161097f565b6102ab6004803603602081101561029b57600080fd5b50356001600160a01b0316610985565b604080519115158252519081900360200190f35b6101616109a6565b61012b600480360360208110156102dd57600080fd5b50356001600160a01b03166109ca565b6101c0610ade565b6102ff3382610aed565b50565b6002546001600160a01b03163314610353576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c9036b0b9ba32b921b432b360891b604482015290519081900360640190fd5b6006546103609082610d1c565b6006556001600160a01b038281166000908152600460205260409020541615610429576001600160a01b038083166000908152600460205260408082205490921681522060018101546103b39083610d1c565b60018201556005546103c59083610d1c565b6005556001600160a01b038084166000818152600460209081526040918290205482519384529093169282019290925280820184905290517fe0846a39221e7b3314c84790d61e0a9a2d29b1dc38a63a2d5ac4500a09f7db999181900360600190a1505b5050565b60075481565b600754604080517f4b1fc20d2fd2102f86b90df2c22a6641f5ef4f7fd96d33e36ab9bd6fbad1cf306020808301919091526001600160a01b03808a168385015288166060808401919091528351808403909101815260808301845280519082012061190160f01b60a084015260a283019490945260c2808301949094528251808303909401845260e28201808452845194820194909420600094859052610102830180855281905260ff88166101228401526101428301879052610162830186905292519293926001926101828082019392601f1981019281900390910190855afa158015610526573d6000803e3d6000fd5b505050602060405103519050866001600160a01b0316816001600160a01b03161461058c576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b6105968787610aed565b50505050505050565b6002546001600160a01b031681565b6004602081905260009182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b6105f0610d7d565b6001600160a01b03166106016106ac565b6001600160a01b03161461065c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60055481565b6000546001600160a01b031690565b6106c3610d7d565b6001600160a01b03166106d46106ac565b6001600160a01b03161461072f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610780576040805162461bcd60e51b815260206004820152601360248201527234b73b30b634b2102fb6b0b9ba32b921b432b360691b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6f322dbd39e457046ae29978ebab00f11e6e59d6c1ad690c6d773b6de2b93e479181900360200190a150565b6002600154141561082c576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001553360009081526004602081905260409091200154610896576040805162461bcd60e51b815260206004820152601860248201527f6163636f756e74206973206e6f74206163746976617465640000000000000000604482015290519081900360640190fd5b336000908152600460205260409020600101546108ee576040805162461bcd60e51b8152602060048201526011602482015270072657761726420616d6f756e74203d203607c1b604482015290519081900360640190fd5b336000908152600460205260409020600181015461090c8180610d81565b600183015560028201546109209082610d1c565b600283015560035461093c906001600160a01b03163383610dde565b604080513381526020810183905281517fba8de60c3403ec381d1d484652ea1980e3c3e56359195c92525bff4ce47ad98e929181900390910190a1505060018055565b60065481565b6001600160a01b031660009081526004602081905260409091200154151590565b7f4b1fc20d2fd2102f86b90df2c22a6641f5ef4f7fd96d33e36ab9bd6fbad1cf3081565b6109d2610d7d565b6001600160a01b03166109e36106ac565b6001600160a01b031614610a3e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610a835760405162461bcd60e51b81526004018080602001828103825260268152602001806111046026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b6001600160a01b038216610b3a576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964207265666572656560881b604482015290519081900360640190fd5b806001600160a01b0316826001600160a01b03161415610b96576040805162461bcd60e51b81526020600482015260126024820152713932b332b932b2901e903932b332b93932b960711b604482015290519081900360640190fd5b6001600160a01b0382166000908152600460208190526040909120015415610bef5760405162461bcd60e51b81526004018080602001828103825260238152602001806111716023913960400191505060405180910390fd5b6001600160a01b03811615610c56576001600160a01b03811660009081526004602081905260409091200154610c565760405162461bcd60e51b815260040180806020018281038252602181526020018061112a6021913960400191505060405180910390fd5b6001600160a01b03828116600090815260046020819052604090912080546001600160a01b03191692841692831781554291015515610cd3576001600160a01b038116600090815260046020526040902060030154610cb6906001610d1c565b6001600160a01b0382166000908152600460205260409020600301555b604080516001600160a01b0380851682528316602082015281517f34ba9e1524c1b87cf36ca6fe2aca87ca0cdea432ea9f9ec554d8c3b495ed1f7b929181900390910190a15050565b600082820183811015610d76576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b600082821115610dd8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610e30908490610e35565b505050565b6060610e8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ee69092919063ffffffff16565b805190915015610e3057808060200190516020811015610ea957600080fd5b5051610e305760405162461bcd60e51b815260040180806020018281038252602a815260200180611194602a913960400191505060405180910390fd5b6060610ef58484600085610efd565b949350505050565b606082471015610f3e5760405162461bcd60e51b815260040180806020018281038252602681526020018061114b6026913960400191505060405180910390fd5b610f4785611059565b610f98576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610fd75780518252601f199092019160209182019101610fb8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611039576040519150601f19603f3d011682016040523d82523d6000602084013e61103e565b606091505b509150915061104e82828661105f565b979650505050505050565b3b151590565b6060831561106e575081610d76565b82511561107e5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110c85781810151838201526020016110b0565b50505050905090810190601f1680156110f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573737265666572726572206163636f756e74206973206e6f7420616374697661746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c72656665726565206163636f756e742068617665206265656e206163746976617465645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220468f7b808e6fe9759572cff8f6302e9be088309612a0ecb6f77e4225a48d93f864736f6c634300060c0033526566657272616c3a3a636f6e7374727563746f723a3a5f746f6b656e41646472657373206d757374206e6f742062652061646472657373283029206f722061646472657373283129000000000000000000000000d3ccbf3867ff0204730173eb4cad3c4b5fd07c69

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c80638da5cb5b11610097578063c9faa7c511610066578063c9faa7c514610285578063ccaf70c0146102bf578063f2fde38b146102c7578063fc0c546a146102ed57610100565b80638da5cb5b14610247578063a2d9f4dc1461024f578063b88a802f14610275578063c296527a1461027d57610100565b8063575a86b2116100d3578063575a86b2146101b85780635e5c06e2146101dc578063715018a614610237578063750142e61461023f57610100565b80631c5a9d9c14610105578063207501c81461012d5780633644e515146101595780633a20b2b414610173575b600080fd5b61012b6004803603602081101561011b57600080fd5b50356001600160a01b03166102f5565b005b61012b6004803603604081101561014357600080fd5b506001600160a01b038135169060200135610302565b61016161042d565b60408051918252519081900360200190f35b61012b600480360360a081101561018957600080fd5b506001600160a01b03813581169160208101359091169060ff6040820135169060608101359060800135610433565b6101c061059f565b604080516001600160a01b039092168252519081900360200190f35b610202600480360360208110156101f257600080fd5b50356001600160a01b03166105ae565b604080516001600160a01b03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b61012b6105e8565b6101616106a6565b6101c06106ac565b61012b6004803603602081101561026557600080fd5b50356001600160a01b03166106bb565b61012b6107d4565b61016161097f565b6102ab6004803603602081101561029b57600080fd5b50356001600160a01b0316610985565b604080519115158252519081900360200190f35b6101616109a6565b61012b600480360360208110156102dd57600080fd5b50356001600160a01b03166109ca565b6101c0610ade565b6102ff3382610aed565b50565b6002546001600160a01b03163314610353576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c9036b0b9ba32b921b432b360891b604482015290519081900360640190fd5b6006546103609082610d1c565b6006556001600160a01b038281166000908152600460205260409020541615610429576001600160a01b038083166000908152600460205260408082205490921681522060018101546103b39083610d1c565b60018201556005546103c59083610d1c565b6005556001600160a01b038084166000818152600460209081526040918290205482519384529093169282019290925280820184905290517fe0846a39221e7b3314c84790d61e0a9a2d29b1dc38a63a2d5ac4500a09f7db999181900360600190a1505b5050565b60075481565b600754604080517f4b1fc20d2fd2102f86b90df2c22a6641f5ef4f7fd96d33e36ab9bd6fbad1cf306020808301919091526001600160a01b03808a168385015288166060808401919091528351808403909101815260808301845280519082012061190160f01b60a084015260a283019490945260c2808301949094528251808303909401845260e28201808452845194820194909420600094859052610102830180855281905260ff88166101228401526101428301879052610162830186905292519293926001926101828082019392601f1981019281900390910190855afa158015610526573d6000803e3d6000fd5b505050602060405103519050866001600160a01b0316816001600160a01b03161461058c576040805162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b6105968787610aed565b50505050505050565b6002546001600160a01b031681565b6004602081905260009182526040909120805460018201546002830154600384015493909401546001600160a01b03909216939092909185565b6105f0610d7d565b6001600160a01b03166106016106ac565b6001600160a01b03161461065c576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60055481565b6000546001600160a01b031690565b6106c3610d7d565b6001600160a01b03166106d46106ac565b6001600160a01b03161461072f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610780576040805162461bcd60e51b815260206004820152601360248201527234b73b30b634b2102fb6b0b9ba32b921b432b360691b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6f322dbd39e457046ae29978ebab00f11e6e59d6c1ad690c6d773b6de2b93e479181900360200190a150565b6002600154141561082c576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001553360009081526004602081905260409091200154610896576040805162461bcd60e51b815260206004820152601860248201527f6163636f756e74206973206e6f74206163746976617465640000000000000000604482015290519081900360640190fd5b336000908152600460205260409020600101546108ee576040805162461bcd60e51b8152602060048201526011602482015270072657761726420616d6f756e74203d203607c1b604482015290519081900360640190fd5b336000908152600460205260409020600181015461090c8180610d81565b600183015560028201546109209082610d1c565b600283015560035461093c906001600160a01b03163383610dde565b604080513381526020810183905281517fba8de60c3403ec381d1d484652ea1980e3c3e56359195c92525bff4ce47ad98e929181900390910190a1505060018055565b60065481565b6001600160a01b031660009081526004602081905260409091200154151590565b7f4b1fc20d2fd2102f86b90df2c22a6641f5ef4f7fd96d33e36ab9bd6fbad1cf3081565b6109d2610d7d565b6001600160a01b03166109e36106ac565b6001600160a01b031614610a3e576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610a835760405162461bcd60e51b81526004018080602001828103825260268152602001806111046026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b6001600160a01b038216610b3a576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964207265666572656560881b604482015290519081900360640190fd5b806001600160a01b0316826001600160a01b03161415610b96576040805162461bcd60e51b81526020600482015260126024820152713932b332b932b2901e903932b332b93932b960711b604482015290519081900360640190fd5b6001600160a01b0382166000908152600460208190526040909120015415610bef5760405162461bcd60e51b81526004018080602001828103825260238152602001806111716023913960400191505060405180910390fd5b6001600160a01b03811615610c56576001600160a01b03811660009081526004602081905260409091200154610c565760405162461bcd60e51b815260040180806020018281038252602181526020018061112a6021913960400191505060405180910390fd5b6001600160a01b03828116600090815260046020819052604090912080546001600160a01b03191692841692831781554291015515610cd3576001600160a01b038116600090815260046020526040902060030154610cb6906001610d1c565b6001600160a01b0382166000908152600460205260409020600301555b604080516001600160a01b0380851682528316602082015281517f34ba9e1524c1b87cf36ca6fe2aca87ca0cdea432ea9f9ec554d8c3b495ed1f7b929181900390910190a15050565b600082820183811015610d76576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b600082821115610dd8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610e30908490610e35565b505050565b6060610e8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ee69092919063ffffffff16565b805190915015610e3057808060200190516020811015610ea957600080fd5b5051610e305760405162461bcd60e51b815260040180806020018281038252602a815260200180611194602a913960400191505060405180910390fd5b6060610ef58484600085610efd565b949350505050565b606082471015610f3e5760405162461bcd60e51b815260040180806020018281038252602681526020018061114b6026913960400191505060405180910390fd5b610f4785611059565b610f98576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610fd75780518252601f199092019160209182019101610fb8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611039576040519150601f19603f3d011682016040523d82523d6000602084013e61103e565b606091505b509150915061104e82828661105f565b979650505050505050565b3b151590565b6060831561106e575081610d76565b82511561107e5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110c85781810151838201526020016110b0565b50505050905090810190601f1680156110f55780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573737265666572726572206163636f756e74206973206e6f7420616374697661746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c72656665726565206163636f756e742068617665206265656e206163746976617465645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220468f7b808e6fe9759572cff8f6302e9be088309612a0ecb6f77e4225a48d93f864736f6c634300060c0033

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

000000000000000000000000d3ccbf3867ff0204730173eb4cad3c4b5fd07c69

-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0xd3ccBF3867FF0204730173eB4cad3C4B5fd07c69

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


Deployed ByteCode Sourcemap

28188:5241:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30649:98;;;;;;;;;;;;;;;;-1:-1:-1;30649:98:0;-1:-1:-1;;;;;30649:98:0;;:::i;:::-;;32314:537;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;32314:537:0;;;;;;;;:::i;29391:31::-;;;:::i;:::-;;;;;;;;;;;;;;;;30807:441;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;30807:441:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;29087:25::-;;;:::i;:::-;;;;-1:-1:-1;;;;;29087:25:0;;;;;;;;;;;;;;29187:43;;;;;;;;;;;;;;;;-1:-1:-1;29187:43:0;-1:-1:-1;;;;;29187:43:0;;:::i;:::-;;;;-1:-1:-1;;;;;29187:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19627:148;;;:::i;29267:26::-;;;:::i;18976:87::-;;;:::i;30406:214::-;;;;;;;;;;;;;;;;-1:-1:-1;30406:214:0;-1:-1:-1;;;;;30406:214:0;;:::i;32882:544::-;;;:::i;29347:37::-;;;:::i;32029:128::-;;;;;;;;;;;;;;;;-1:-1:-1;32029:128:0;-1:-1:-1;;;;;32029:128:0;;:::i;:::-;;;;;;;;;;;;;;;;;;29489:110;;;:::i;19930:244::-;;;;;;;;;;;;;;;;-1:-1:-1;19930:244:0;-1:-1:-1;;;;;19930:244:0;;:::i;29136:19::-;;;:::i;30649:98::-;30710:31;30720:10;30732:8;30710:9;:31::i;:::-;30649:98;:::o;32314:537::-;30324:10;;-1:-1:-1;;;;;30324:10:0;30310;:24;30302:52;;;;;-1:-1:-1;;;30302:52:0;;;;;;;;;;;;-1:-1:-1;;;30302:52:0;;;;;;;;;;;;;;;32449:22:::1;::::0;:34:::1;::::0;32476:6;32449:26:::1;:34::i;:::-;32424:22;:59:::0;-1:-1:-1;;;;;32494:24:0;;::::1;32539:1;32494:24:::0;;;:8:::1;:24;::::0;;;;:33;::::1;:47:::0;32490:356:::1;;-1:-1:-1::0;;;;;32595:24:0;;::::1;32552:31;32595:24:::0;;;32586:8:::1;32595:24;::::0;;;;;:33;;;::::1;32586:43:::0;;;32595:33;32663:22;::::1;::::0;:34:::1;::::0;32690:6;32663:26:::1;:34::i;:::-;32638:22;::::0;::::1;:59:::0;32720:11:::1;::::0;:23:::1;::::0;32736:6;32720:15:::1;:23::i;:::-;32706:11;:37:::0;-1:-1:-1;;;;;32796:24:0;;::::1;;::::0;;;:8:::1;:24;::::0;;;;;;;;:33;32759:79;;;;;32796:33;;::::1;32759:79:::0;;::::1;::::0;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;32490:356;;32314:537:::0;;:::o;29391:31::-;;;;:::o;30807:441::-;31016:16;;31044:48;;;29533:66;31044:48;;;;;;;;-1:-1:-1;;;;;31044:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31034:59;;;;;;-1:-1:-1;;;30987:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30969:132;;;;;;;;;30952:14;31125:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30969:132;;30952:14;31125:26;;;;;;;31044:48;-1:-1:-1;;31125:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31108:43;;31176:7;-1:-1:-1;;;;;31166:17:0;:6;-1:-1:-1;;;;;31166:17:0;;31158:47;;;;;-1:-1:-1;;;31158:47:0;;;;;;;;;;;;-1:-1:-1;;;31158:47:0;;;;;;;;;;;;;;;31214:28;31224:7;31233:8;31214:9;:28::i;:::-;30807:441;;;;;;;:::o;29087:25::-;;;-1:-1:-1;;;;;29087:25:0;;:::o;29187:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29187:43:0;;;;;;;;;:::o;19627:148::-;19207:12;:10;:12::i;:::-;-1:-1:-1;;;;;19196:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;19196:23:0;;19188:68;;;;;-1:-1:-1;;;19188:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19734:1:::1;19718:6:::0;;19697:40:::1;::::0;-1:-1:-1;;;;;19718:6:0;;::::1;::::0;19697:40:::1;::::0;19734:1;;19697:40:::1;19765:1;19748:19:::0;;-1:-1:-1;;;;;;19748:19:0::1;::::0;;19627:148::o;29267:26::-;;;;:::o;18976:87::-;19022:7;19049:6;-1:-1:-1;;;;;19049:6:0;18976:87;:::o;30406:214::-;19207:12;:10;:12::i;:::-;-1:-1:-1;;;;;19196:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;19196:23:0;;19188:68;;;;;-1:-1:-1;;;19188:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30491:25:0;::::1;30483:57;;;::::0;;-1:-1:-1;;;30483:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;30483:57:0;;;;;;;;;;;;;::::1;;30549:10;:24:::0;;-1:-1:-1;;;;;30549:24:0;::::1;-1:-1:-1::0;;;;;;30549:24:0;;::::1;::::0;::::1;::::0;;;30585:29:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;30406:214:::0;:::o;32882:544::-;13726:1;14332:7;;:19;;14324:63;;;;;-1:-1:-1;;;14324:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13726:1;14465:7;:18;32960:10:::1;32985:1;32951:20:::0;;;:8:::1;:20;::::0;;;;;;;:31:::1;::::0;32943:72:::1;;;::::0;;-1:-1:-1;;;32943:72:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;33039:10;33060:1;33030:20:::0;;;:8:::1;:20;::::0;;;;:27:::1;;::::0;33022:61:::1;;;::::0;;-1:-1:-1;;;33022:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33022:61:0;;;;;;;;;;;;;::::1;;33127:10;33092:23;33118:20:::0;;;:8:::1;:20;::::0;;;;33169:14:::1;::::0;::::1;::::0;33207:33:::1;33169:14:::0;;33207:18:::1;:33::i;:::-;33190:14;::::0;::::1;:50:::0;33269:19:::1;::::0;::::1;::::0;:38:::1;::::0;33293:13;33269:23:::1;:38::i;:::-;33247:19;::::0;::::1;:60:::0;33314:5:::1;::::0;:54:::1;::::0;-1:-1:-1;;;;;33314:5:0::1;33341:10;33354:13:::0;33314:18:::1;:54::i;:::-;33382:38;::::0;;33394:10:::1;33382:38:::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;;13682:1:0;14644:22;;32882:544::o;29347:37::-;;;;:::o;32029:128::-;-1:-1:-1;;;;;32118:18:0;32098:4;32118:18;;;:8;:18;;;;;;;;:29;;:33;;;32029:128::o;29489:110::-;29533:66;29489:110;:::o;19930:244::-;19207:12;:10;:12::i;:::-;-1:-1:-1;;;;;19196:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;19196:23:0;;19188:68;;;;;-1:-1:-1;;;19188:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20019:22:0;::::1;20011:73;;;;-1:-1:-1::0;;;20011:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20121:6;::::0;;20100:38:::1;::::0;-1:-1:-1;;;;;20100:38:0;;::::1;::::0;20121:6;::::1;::::0;20100:38:::1;::::0;::::1;20149:6;:17:::0;;-1:-1:-1;;;;;;20149:17:0::1;-1:-1:-1::0;;;;;20149:17:0;;;::::1;::::0;;;::::1;::::0;;19930:244::o;29136:19::-;;;-1:-1:-1;;;;;29136:19:0;;:::o;31300:665::-;-1:-1:-1;;;;;31378:21:0;;31370:49;;;;;-1:-1:-1;;;31370:49:0;;;;;;;;;;;;-1:-1:-1;;;31370:49:0;;;;;;;;;;;;;;;31445:8;-1:-1:-1;;;;;31434:19:0;:7;-1:-1:-1;;;;;31434:19:0;;;31426:50;;;;;-1:-1:-1;;;31426:50:0;;;;;;;;;;;;-1:-1:-1;;;31426:50:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;31491:17:0;;;;;;:8;:17;;;;;;;;:28;;:33;31483:81;;;;-1:-1:-1;;;31483:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31575:22:0;;;31571:124;;-1:-1:-1;;;;;31616:18:0;;31648:1;31616:18;;;:8;:18;;;;;;;;:29;;31608:79;;;;-1:-1:-1;;;31608:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31703:17:0;;;;;;;:8;:17;;;;;;;;:37;;-1:-1:-1;;;;;;31703:37:0;;;;;;;;;31778:15;31747:28;;:46;31804:22;31800:119;;-1:-1:-1;;;;;31872:18:0;;;;;;:8;:18;;;;;:32;;;:39;;31909:1;31872:36;:39::i;:::-;-1:-1:-1;;;;;31837:18:0;;;;;;:8;:18;;;;;:32;;:74;31800:119;31932:27;;;-1:-1:-1;;;;;31932:27:0;;;;;;;;;;;;;;;;;;;;;;;;31300:665;;:::o;3704:179::-;3762:7;3794:5;;;3818:6;;;;3810:46;;;;;-1:-1:-1;;;3810:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3874:1;3704:179;-1:-1:-1;;;3704:179:0:o;613:106::-;701:10;613:106;:::o;4166:158::-;4224:7;4257:1;4252;:6;;4244:49;;;;;-1:-1:-1;;;4244:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4311:5:0;;;4166:158::o;8967:177::-;9077:58;;;-1:-1:-1;;;;;9077:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9077:58:0;-1:-1:-1;;;9077:58:0;;;9050:86;;9070:5;;9050:19;:86::i;:::-;8967:177;;;:::o;11272:761::-;11696:23;11722:69;11750:4;11722:69;;;;;;;;;;;;;;;;;11730:5;-1:-1:-1;;;;;11722:27:0;;;:69;;;;;:::i;:::-;11806:17;;11696:95;;-1:-1:-1;11806:21:0;11802:224;;11948:10;11937:30;;;;;;;;;;;;;;;-1:-1:-1;11937:30:0;11929:85;;;;-1:-1:-1;;;11929:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23815:195;23918:12;23950:52;23972:6;23980:4;23986:1;23989:12;23950:21;:52::i;:::-;23943:59;23815:195;-1:-1:-1;;;;23815:195:0:o;24867:530::-;24994:12;25052:5;25027:21;:30;;25019:81;;;;-1:-1:-1;;;25019:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25119:18;25130:6;25119:10;:18::i;:::-;25111:60;;;;;-1:-1:-1;;;25111:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;25245:12;25259:23;25286:6;-1:-1:-1;;;;;25286:11:0;25306:5;25314:4;25286:33;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25286:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25244:75;;;;25337:52;25355:7;25364:10;25376:12;25337:17;:52::i;:::-;25330:59;24867:530;-1:-1:-1;;;;;;;24867:530:0:o;20897:422::-;21264:20;21303:8;;;20897:422::o;27407:742::-;27522:12;27551:7;27547:595;;;-1:-1:-1;27582:10:0;27575:17;;27547:595;27696:17;;:21;27692:439;;27959:10;27953:17;28020:15;28007:10;28003:2;27999:19;27992:44;27907:148;28102:12;28095:20;;-1:-1:-1;;;28095:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Metadata Hash

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