Contract 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash
Block
From
To
Value [Txn Fee]
0x5e754571a4ee937f57f8bd23af5e44b6706f4e6a84a6853ab4b5dac46dbf3ab285515332021-06-23 16:11:4931 days 16 hrs agoChimpySwap: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.000124475
0x930412925f93b1d20199de872d829ced37ece12bf3c57b249f59d5d63c4d028e85515282021-06-23 16:11:3431 days 16 hrs agoChimpySwap: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.000124475
0xfeb65160159f2646ac57ea60ddb9c12891f276c0cf72b2c84098cb0e1e8da7e876801322021-05-24 6:07:4462 days 2 hrs ago0x52e810267b3e499d9550b576dd03f3c70245e334 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.000124475
0xce7c0ee2a95f413c29ed370fa9bd56154659e315d70eab2c293045746e568ab068666432021-04-25 7:29:5991 days 1 hr agoMobox: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.000124475
0x92484185a9719bb53ea39193b7aa1a8a2bde26d100014673bffedbe41e38646968446872021-04-24 13:05:4891 days 19 hrs agoBalloon: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.000124475
0xc2b3719f168d91fb9a88d4c35f11ebffdaaee2bb9e992634282c26ee797855fc66296592021-04-17 0:01:4599 days 8 hrs ago0xf1db12ea0a76e7e12868ab209340dfa58cdd9e97 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.000124475
0x4acc84aee5d3c570d9576f6e31f1feb761eefee7081c2e49be974f92c04e36f156977672021-03-15 8:59:06131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00048603
0x92abc8b9bb45d5492163493fa1d38dd6329c6fafad61d99805afc0138c65b6af56977142021-03-15 8:56:27131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0xc7e00be04a4edc6a5c0813b076d6dff246d238e93305db30adae468db73fe56056977112021-03-15 8:56:18131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x32f547b479cd57f1c6ecf0386a64f59aa8a2951447563dbf972bff3bc75d6fdc56977092021-03-15 8:56:12131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x987c4a65fae15fe6495fdb8e3ae58ed8b02c7261bc18bb85e8a54b5e23cd3dae56977072021-03-15 8:56:06131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x68468700e685f3de3f235dee0d81cab5c5eee3b1be9405b1eef7ddf5f4ee201c56977042021-03-15 8:55:57131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x83aa7db5bf13f899fd5ea20ff560bfb4d1afb31eb887a536cff316dc8fdca94e56977012021-03-15 8:55:48131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0xfa013a5e84bfb3b3581f21371cfb90ab9f6e3619875bc1b3dced6fc122a0937a56977002021-03-15 8:55:45131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x4e046ddba15d164ebc13b2bfd954cff12cdc17be0ffb677d780315574c40e76756976972021-03-15 8:55:36131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x4f525165837c5c264c96c707cce7dfb39532f051a7ce17953a4b563607942e2856976832021-03-15 8:54:54131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00023021
0xef3f104d8b05408ab7e37d052f9f496faf4921447a25ede4d16480c75713e7fc56976462021-03-15 8:53:03131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00026672
0xa58588b87a944355d116340d72c7ddd6f57f1bf98a7b652b20fa7f92ee4408ea56976052021-03-15 8:51:00131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00026672
0x428b97d4fa4f081c1a7c03d62135e939269f2349e019933367b95f9bb406641f56975922021-03-15 8:50:21131 days 23 hrs ago0xa1c0de4bfc97263c25d8de96ba362264790ab344 IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00050607
0x25118f6515d57aeb5aa9e56b1c2d92aa7e8d7943b079a735386775a2e79a856c52102692021-02-26 8:41:20148 days 23 hrs agoCream.Finance: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0xdb14c37e0acd0fdd8158dee773dc8258a776882e9a4e85c7f351653c4dc4334e52102632021-02-26 8:41:02148 days 23 hrs agoCream.Finance: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x17b7aba4b5d898b8bed9727f9f8637859e9a235e8a5a2b2f036f0dd2a853888052102582021-02-26 8:40:47148 days 23 hrs agoCream.Finance: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0xe20df0397ac42f71e928310a345d37a202f671dcf6996cee77d539037e7e33a952102512021-02-26 8:40:26148 days 23 hrs agoCream.Finance: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x1427dae35ae181f9567e767263436eec9d31260e7adc4447b3390a451299052a52102432021-02-26 8:40:02148 days 23 hrs agoCream.Finance: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
0x078922e956a29ae1e3ac7c9c9ab215bfbc9edc628fc1c8ea1467f7cf4281cafb52102362021-02-26 8:39:41148 days 23 hrs agoCream.Finance: Deployer IN  0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB0.00024895
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x57f625ba8c61aa595145cbc1d2eecac3201a42b34fc68fd1093038c57a095e6d54526062021-03-06 20:23:03140 days 12 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xbffe070487f4e6bc202eea9f548817ec5e5ec7e47d13df1febcb53f5226a36f154525902021-03-06 20:22:15140 days 12 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x2fd671b1785119ef15c475ddea930ff618a639f8b9c92fb12e5df14b344343e954525162021-03-06 20:18:33140 days 12 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xea74a9f13c6a1b8250aeeb4367b3c2a4cc1d5c05bec15ab666b163b569f3eee454525012021-03-06 20:17:48140 days 12 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xe0062b745e3399148e3cd8aa855e83af192685028adb4d7d1b005bbf22e7fe3254516642021-03-06 19:35:57140 days 13 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x8616495d66ffe156adfa2f5f65d25a5b4dda107199d2f7e83917f9d97baab9f054516532021-03-06 19:35:24140 days 13 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x2f98e888cedd1b9a1deda44efc43e9b5fffc825781aa0fbf8b2eff0ff76aaf3054516422021-03-06 19:34:51140 days 13 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x2321934f56edf02bbfaddebabab0e06107e89c050419362a6e8aec85eebae63854516362021-03-06 19:34:33140 days 13 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xaffd64bc3aec17ac9ab281257854a34a129564535c5b8d20f348a05ce4d8b82754516312021-03-06 19:34:18140 days 13 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x1f2dcc4712e33b1b743a9e565d25f9f86bcd1c4d8c97448bf5967ac269ed47db54516272021-03-06 19:34:06140 days 13 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x26812ffcb87dab14bd7bd907e48937dc3abc6eef954fbc70d2788b3675c8ba9854465022021-03-06 15:16:33140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x6a0173b068b0f7909bef933e526a7a1ca625577108fe5c4fe5b70ff859fabcde54464912021-03-06 15:16:00140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x10f51657a6a2daf90e946502fd4a2fbfc894c60c34aaeb7250f18387ba791cd954464872021-03-06 15:15:48140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xd4115d32392255dbc98a4ddf35d50449c836b65a42337dc40b9a08a460af4f9c54464772021-03-06 15:15:18140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xb46598659e5cf772cbaec27dee41dec30a078936f07f1d1406af81ed6c73e3f854464592021-03-06 15:14:24140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x2ddc892e20a8c487172e7ff9eb9506881a9661741a74d96fb360a8a7121d76fa54464442021-03-06 15:13:39140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xb1ace2c40b31beed79a89da70546ca582f4e5595fb617dbbc7623abd94a2fdba54463512021-03-06 15:09:00140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xf8f21b6e4f74c4283a8cf392375ccb0397ba4db4a29e77bdde3d99bc9577cf8454463412021-03-06 15:08:30140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x4ba593bc4493702947af294df19d8226ec89c64fd515c667bf06435cfaf0383554463252021-03-06 15:07:42140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x0a493da83e89e750269677cd1ae3f68383ecb53587f73f8c6bf16ed1e2a73fbc54463252021-03-06 15:07:42140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x95b193934aefd4b56983e34c87cf33f997151351a42ba765cc8dbcc8818a4dbb54463222021-03-06 15:07:33140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x5b1c67b95f2f22148690b7da865303ceac993f3a27d07cb8ee34759d38d21d5554463122021-03-06 15:07:03140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x3eeee423b8b5391ca2cb7b53581d922c5e44d52d7bbb287e280378ac1781cfee54462962021-03-06 15:06:15140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0xfb15792041e96e641d74a0bf4c2a378551fe165493f7497754e25acba1d910bf54462962021-03-06 15:06:15140 days 17 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
0x004e43de745aeeef8f00f7955ebe2283c19c209b038f12bf84abbecbe665eea554418092021-03-06 11:21:54140 days 21 hrs ago 0xcad9146102d29175fd7908eb6820a48e4fc78cea 0x43c652589067d0a685e8dd970f63d6d1c9ad0b3d0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RewardRegister

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at BscScan.com on 2020-10-14
*/

// File: openzeppelin-solidity/contracts/GSN/Context.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.0;

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

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

// File: openzeppelin-solidity/contracts/proxy/Initializable.sol

// SPDX-License-Identifier: MIT

pragma solidity >=0.4.24 <0.7.0;


/**
 * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
 * behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an
 * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
 * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
 * 
 * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as
 * possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}.
 * 
 * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
 * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
 */
abstract contract Initializable {

    /**
     * @dev Indicates that the contract has been initialized.
     */
    bool private _initialized;

    /**
     * @dev Indicates that the contract is in the process of being initialized.
     */
    bool private _initializing;

    /**
     * @dev Modifier to protect an initializer function from being invoked twice.
     */
    modifier initializer() {
        require(_initializing || _isConstructor() || !_initialized, "Initializable: contract is already initialized");

        bool isTopLevelCall = !_initializing;
        if (isTopLevelCall) {
            _initializing = true;
            _initialized = true;
        }

        _;

        if (isTopLevelCall) {
            _initializing = false;
        }
    }

    /// @dev Returns true if and only if the function is running in the constructor
    function _isConstructor() private view returns (bool) {
        // extcodesize checks the size of the code stored in an address, and
        // address returns the current address. Since the code is still not
        // deployed when running a constructor, any checks on its code size will
        // yield zero, making it an effective way to detect if a contract is
        // under construction or not.
        address self = address(this);
        uint256 cs;
        // solhint-disable-next-line no-inline-assembly
        assembly { cs := extcodesize(self) }
        return cs == 0;
    }
}

// File: openzeppelin-solidity/contracts/utils/Address.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.2;

/**
 * @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 in 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");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

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

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

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

// File: contracts/RewardRegister.sol

pragma solidity ^0.6.0;




contract RewardRegister is Context, Initializable {
    address private _owner;

    mapping (address => address) public rewardAddresses;
    mapping (address => uint256) public registerHeights;

    event contractRegistryRequest(address indexed contractAddr, address indexed fromAddr, address indexed rewardAddr);
    event contractRegistryChecked(address indexed contractAddr, address indexed rewardAddr, uint256 indexed registerHeight);

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

    constructor() public {
    }

    /**
     * @dev sets the owner
     */
    function initialize(address owner) public initializer {
        _owner = owner;

        emit OwnershipTransferred(address(0), owner);
    }

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

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

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

    function checkRegistryRequest(address contractAddr, address payable rewardAddr, uint256 registerHeight) onlyOwner external returns (bool) {
        require(contractAddr != address(0x0), "RewardRegister: contractAddr is empty");
        require(rewardAddr != address(0x0), "RewardRegister: rewardAddr is empty");
        require(registerHeights[contractAddr] <= registerHeight, "RewardRegister: registerHeight is smaller than the previous height");
        require(Address.isContract(contractAddr), "RewardRegister: contractAddr is not a contract");

        rewardAddresses[contractAddr] = rewardAddr;
        registerHeights[contractAddr] = registerHeight;
        emit contractRegistryChecked(contractAddr, rewardAddr, registerHeight);
        return true;
    }

    function registerContract(address contractAddr, address payable rewardAddr) external returns (bool) {
        require(contractAddr != address(0x0), "RewardRegister: contractAddr should not be empty");
        require(rewardAddr != address(0x0), "RewardRegister: rewardAddr should not be empty");
        require(Address.isContract(contractAddr), "RewardRegister: contractAddr is not a contract");

        emit contractRegistryRequest(contractAddr, msg.sender, rewardAddr);
        return true;
    }
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contractAddr","type":"address"},{"indexed":true,"internalType":"address","name":"rewardAddr","type":"address"},{"indexed":true,"internalType":"uint256","name":"registerHeight","type":"uint256"}],"name":"contractRegistryChecked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contractAddr","type":"address"},{"indexed":true,"internalType":"address","name":"fromAddr","type":"address"},{"indexed":true,"internalType":"address","name":"rewardAddr","type":"address"}],"name":"contractRegistryRequest","type":"event"},{"inputs":[{"internalType":"address","name":"contractAddr","type":"address"},{"internalType":"address payable","name":"rewardAddr","type":"address"},{"internalType":"uint256","name":"registerHeight","type":"uint256"}],"name":"checkRegistryRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contractAddr","type":"address"},{"internalType":"address payable","name":"rewardAddr","type":"address"}],"name":"registerContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"registerHeights","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewardAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506108e8806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638ffd033c1161005b5780638ffd033c14610128578063c4d66de81461014e578063d7e5fbf314610176578063f2fde38b146101a45761007d565b806351ca4a4b146100825780635dfe4198146100ba5780638da5cb5b14610104575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101ca565b60408051918252519081900360200190f35b6100f0600480360360608110156100d057600080fd5b506001600160a01b038135811691602081013590911690604001356101dc565b604080519115158252519081900360200190f35b61010c6103ca565b604080516001600160a01b039092168252519081900360200190f35b61010c6004803603602081101561013e57600080fd5b50356001600160a01b03166103df565b6101746004803603602081101561016457600080fd5b50356001600160a01b03166103fa565b005b6100f06004803603604081101561018c57600080fd5b506001600160a01b03813581169160200135166104ef565b610174600480360360208110156101ba57600080fd5b50356001600160a01b0316610602565b60026020526000908152604090205481565b60006101e661070a565b6000546201000090046001600160a01b039081169116146102385760405162461bcd60e51b815260040180806020018281038252602781526020018061078b6027913960400191505060405180910390fd5b6001600160a01b03841661027d5760405162461bcd60e51b81526004018080602001828103825260258152602001806108106025913960400191505060405180910390fd5b6001600160a01b0383166102c25760405162461bcd60e51b81526004018080602001828103825260238152602001806108906023913960400191505060405180910390fd5b6001600160a01b0384166000908152600260205260409020548210156103195760405162461bcd60e51b815260040180806020018281038252604281526020018061071b6042913960600191505060405180910390fd5b6103228461070e565b61035d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806107e2602e913960400191505060405180910390fd5b6001600160a01b03848116600081815260016020908152604080832080546001600160a01b0319169589169586179055600290915280822086905551859392917f0ea8a4092d6cf733a63cf3d921ec1887df7734e7cea38840b20cd7c38304e58f91a45060019392505050565b6000546201000090046001600160a01b031690565b6001602052600090815260409020546001600160a01b031681565b600054610100900460ff16806104135750610413610714565b80610421575060005460ff16155b61045c5760405162461bcd60e51b815260040180806020018281038252602e815260200180610835602e913960400191505060405180910390fd5b600054610100900460ff16158015610487576000805460ff1961ff0019909116610100171660011790555b6000805462010000600160b01b031916620100006001600160a01b0385169081029190911782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a380156104eb576000805461ff00191690555b5050565b60006001600160a01b0383166105365760405162461bcd60e51b81526004018080602001828103825260308152602001806107b26030913960400191505060405180910390fd5b6001600160a01b03821661057b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061075d602e913960400191505060405180910390fd5b6105848361070e565b6105bf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806107e2602e913960400191505060405180910390fd5b6040516001600160a01b038084169133918616907ffa7091c2b1d5c9d90ac8c6b40f05959b7ff189d916ae5d97cc9fc94d85ee927e90600090a450600192915050565b61060a61070a565b6000546201000090046001600160a01b0390811691161461065c5760405162461bcd60e51b815260040180806020018281038252602781526020018061078b6027913960400191505060405180910390fd5b6001600160a01b0381166106a15760405162461bcd60e51b815260040180806020018281038252602d815260200180610863602d913960400191505060405180910390fd5b600080546040516001600160a01b03808516936201000090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b3390565b3b151590565b303b159056fe52657761726452656769737465723a20726567697374657248656967687420697320736d616c6c6572207468616e207468652070726576696f75732068656967687452657761726452656769737465723a20726577617264416464722073686f756c64206e6f7420626520656d70747952657761726452656769737465723a2063616c6c6572206973206e6f7420746865206f776e657252657761726452656769737465723a20636f6e7472616374416464722073686f756c64206e6f7420626520656d70747952657761726452656769737465723a20636f6e747261637441646472206973206e6f74206120636f6e747261637452657761726452656769737465723a20636f6e74726163744164647220697320656d707479496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656452657761726452656769737465723a206e6577206f776e657220697320746865207a65726f206164647265737352657761726452656769737465723a207265776172644164647220697320656d707479a2646970667358221220a4ea25033f16ad4b076185df7e95151c1e69fa263326148c9cefbbedd28552cc64736f6c63430006040033

Deployed ByteCode Sourcemap

9773:2850:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9773:2850:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;9919:51:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9919:51:0;-1:-1:-1;;;;;9919:51:0;;:::i;:::-;;;;;;;;;;;;;;;;11331:774;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;11331:774:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;10627:79;;;:::i;:::-;;;;-1:-1:-1;;;;;10627:79:0;;;;;;;;;;;;;;9861:51;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9861:51:0;-1:-1:-1;;;;;9861:51:0;;:::i;10402:144::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10402:144:0;-1:-1:-1;;;;;10402:144:0;;:::i;:::-;;12113:507;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;12113:507:0;;;;;;;;;;:::i;11080:243::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11080:243:0;-1:-1:-1;;;;;11080:243:0;;:::i;9919:51::-;;;;;;;;;;;;;:::o;11331:774::-;11463:4;10849:12;:10;:12::i;:::-;10839:6;;;;;-1:-1:-1;;;;;10839:6:0;;;:22;;;10831:74;;;;-1:-1:-1;;;10831:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11488:28:0;::::1;11480:78;;;;-1:-1:-1::0;;;11480:78:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11577:26:0;::::1;11569:74;;;;-1:-1:-1::0;;;11569:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11662:29:0;::::1;;::::0;;;:15:::1;:29;::::0;;;;;:47;-1:-1:-1;11662:47:0::1;11654:126;;;;-1:-1:-1::0;;;11654:126:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11799:32;11818:12;11799:18;:32::i;:::-;11791:91;;;;-1:-1:-1::0;;;11791:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11895:29:0;;::::1;;::::0;;;:15:::1;:29;::::0;;;;;;;:42;;-1:-1:-1;;;;;;11895:42:0::1;::::0;;::::1;::::0;;::::1;::::0;;11948:15:::1;:29:::0;;;;;;:46;;;12010:65;11948:46;;11895:42;:29;12010:65:::1;::::0;::::1;-1:-1:-1::0;12093:4:0::1;11331:774:::0;;;;;:::o;10627:79::-;10665:7;10692:6;;;;-1:-1:-1;;;;;10692:6:0;;10627:79::o;9861:51::-;;;;;;;;;;;;-1:-1:-1;;;;;9861:51:0;;:::o;10402:144::-;2546:13;;;;;;;;:33;;;2563:16;:14;:16::i;:::-;2546:50;;;-1:-1:-1;2584:12:0;;;;2583:13;2546:50;2538:109;;;;-1:-1:-1;;;2538:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2660:19;2683:13;;;;;;2682:14;2707:101;;;;2742:13;:20;;-1:-1:-1;;;;2742:20:0;;;;;2777:19;2758:4;2777:19;;;2707:101;10467:6:::1;:14:::0;;-1:-1:-1;;;;;;10467:14:0::1;::::0;-1:-1:-1;;;;;10467:14:0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;10499:39:::1;::::0;10467:14;;:6;10499:39:::1;::::0;10467:6;;10499:39:::1;2838:14:::0;2834:68;;;2885:5;2869:21;;-1:-1:-1;;2869:21:0;;;2834:68;10402:144;;:::o;12113:507::-;12207:4;-1:-1:-1;;;;;12232:28:0;;12224:89;;;;-1:-1:-1;;;12224:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12332:26:0;;12324:85;;;;-1:-1:-1;;;12324:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12428:32;12447:12;12428:18;:32::i;:::-;12420:91;;;;-1:-1:-1;;;12420:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12529:61;;-1:-1:-1;;;;;12529:61:0;;;;12567:10;;12529:61;;;;;;;;-1:-1:-1;12608:4:0;12113:507;;;;:::o;11080:243::-;10849:12;:10;:12::i;:::-;10839:6;;;;;-1:-1:-1;;;;;10839:6:0;;;:22;;;10831:74;;;;-1:-1:-1;;;10831:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11161:22:0;::::1;11153:80;;;;-1:-1:-1::0;;;11153:80:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11270:6;::::0;;11249:38:::1;::::0;-1:-1:-1;;;;;11249:38:0;;::::1;::::0;11270:6;;;::::1;;::::0;11249:38:::1;::::0;::::1;11298:6;:17:::0;;-1:-1:-1;;;;;11298:17:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;11298:17:0;;::::1;::::0;;;::::1;::::0;;11080:243::o;665:106::-;753:10;665:106;:::o;4418:422::-;4785:20;4824:8;;;4418:422::o;3002:604::-;3444:4;3555:17;3591:7;3002:604;:::o

Swarm Source

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