Contract 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 7

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x008326ad31f2618040b650449b21df69f5981a61819950562f916f30203bd31aSwap109937342021-09-17 13:05:2014 mins ago0x4bb9eef5e3192f1f0d78f5595b0262a289a9783c IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.0004206
0xe31e22dd3a05bc1ec30d4f14ecefc27dc40b4afdc682dbc9255d529dd125dfb7Swap109937272021-09-17 13:04:5915 mins ago0x4bb9eef5e3192f1f0d78f5595b0262a289a9783c IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.0004956
0xe2258fe3840f0c2a09cf6536c4532129789b886365a9d53195e94046d6f07cd0Approve109921632021-09-17 11:46:351 hr 33 mins ago0x19d034107f7ea504903bf590199fac8171dc7f45 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.00023143
0x8b2a7cf37ef582857f9cb0766cbde8154c8348350864967bc2ebc4328efa07f0Swap109905602021-09-17 10:26:242 hrs 53 mins ago0x439141b69d2ef127fe0a7ef817d8c505c3cb4315 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000471522
0x8f212f8ee18dcfdfa509fd75995b98f887aeee10edee5a0bed8c1804e4faa1edSwap109880602021-09-17 8:21:214 hrs 58 mins ago0xebb8be69ac9e0fc0c9e3c6841d0dc0d1a5927c18 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.0004206
0x49e3df54728f8cfed6ececdab9ec9bff4664e149034a5bdb8a3abebb66781f45Redeem By Lp Tok...109718312021-09-16 18:49:2018 hrs 30 mins ago0x2a17c77a9a6cc743046bfd660eb13a04335c33d0 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000557785
0x5fa5904f3151d5b69f4f307f7c2848d9960a9fab2332c5c85380f74f1fb28312Swap109672212021-09-16 14:57:4122 hrs 22 mins ago0xd6c4694cbf900b29204037a0164a5912abd51146 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000542935
0x644ba0f553485b32680c5b9538d5208d25dcaff0dbd1bd9b2dac748069e92d97Approve109633712021-09-16 11:44:201 day 1 hr ago0x552cda6990392d5345d2bcd6ed59ae4acd24392c IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000111314
0x66b71748f59e1d38ada85b532a0249e9acda72696e3027b9bfc1058ffeee2d70Swap109624192021-09-16 10:56:431 day 2 hrs ago0xa84784afe2aa6f7ad43e0d17a45ecc3290b71d2e IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000393115
0x4fb06d01eddba4d38752782bd7b4d3842e5345c5eaa86164f6322a994344942cSwap109594142021-09-16 8:25:261 day 4 hrs ago0x9e8073406ce51835e9a61398bed71640ce6cc258 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.0005706
0xefe1e9f5460c120d41dc870768f20d4d2de077e59f992a409a58e2230f0f0c5cSwap109591532021-09-16 8:12:231 day 5 hrs ago0x12eab502716c2fb09ecc63e47544b90b3dc751ed IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.00049578
0xc1c51bf6b77bbb4d1f63a74f6a8357bbbba2396733019a2ed872399848150c49Redeem By Lp Tok...109517462021-09-16 2:01:531 day 11 hrs ago0x0284b0ac275f843397d1dba9a012652d1a29eeb6 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000632905
0x97d0b5efb58e133389150b55cbe0b94b82600febe81fd0f9ddbf79e27f066a30Swap109451442021-09-15 20:31:471 day 16 hrs ago0x6372f53dbefa6e30955cb7b6fae1c90847af7fa1 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.00049566
0x5d1d46867355c88e96fdd013ab3d3afd42b474ccab488e0e254ca376dff3f7c9Swap109451162021-09-15 20:30:231 day 16 hrs ago0x6372f53dbefa6e30955cb7b6fae1c90847af7fa1 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.0004956
0xbd4ce0f4fd21e9e94b228ed462898504c104ab972feb2374c569910def84d1c1Mint109347462021-09-15 11:51:522 days 1 hr ago0x6a951fd72da334fbac9004d3df892d4ebcf8ac6e IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.00035005
0x6748d5286284ded084af704bb08bec3c203b42b83f44fe10e57fb6b94bb55b31Approve109291662021-09-15 7:06:532 days 6 hrs ago0xf38be3b5d54a7fedcee68d420d70d2f8f9868a80 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.00023143
0x39267b54ca7c8fc20f8b9f5b9bedf5681db0e58977e67840d30cf5599390d996Swap109277172021-09-15 5:54:022 days 7 hrs ago0x701d68fab447cda6937448ea68ea6ffd7e14ed4d IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000467935
0x933dcc1a2edb7e5a8d391901657acd19b3b0f42a4f5a6ce74bd7e188cdf66d7aSwap109275202021-09-15 5:44:112 days 7 hrs ago0x701d68fab447cda6937448ea68ea6ffd7e14ed4d IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.0005707
0x3f073c081726c14fbd6447f9ffba9da546798371cd12be029edc68bccaf62fa8Swap109207502021-09-15 0:05:412 days 13 hrs ago0x77f88eb6a0db9fad689ea520f7d8a16d345b1654 IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000392995
0xf94a4ebcb1bef031e33eaf2b13dc08a4091b50213fc5e51b791f0dd9a04be171Swap109186262021-09-14 22:19:082 days 15 hrs ago0x9d125cb986d7a9426aa7adec2295bf4cb0e4306e IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.00057066
0x47815d3345928e57fa106b7f1f327024e5b0b54825de99ad6746f2bc6c87c21bSwap109185892021-09-14 22:17:172 days 15 hrs ago0x9d125cb986d7a9426aa7adec2295bf4cb0e4306e IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.00049578
0xa26e47536bb1356ee8557c1831a4d79ffc798959c58bba067b08b6ab7d229348Swap109118892021-09-14 16:41:162 days 20 hrs ago0x194f0fe6d4dfbf198868b1b507cd74122fbfebcc IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000467875
0xf07dedd38a2358d227a90f9d38f77c1182767b3942dcc1ef8994146a4f70122bSwap109053662021-09-14 11:13:493 days 2 hrs ago0xcf50ac2f6c7a3a0dba96a3be903e3744ad91c8bf IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.0004207
0xd2827bc0115e396a2d6d615b457c87602f4ce97fe644b06f3a37e0fc9e516e89Swap109047712021-09-14 10:44:043 days 2 hrs ago0x194f0fe6d4dfbf198868b1b507cd74122fbfebcc IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000467875
0x60c6ce9541ba9f4722b3e447f2e15788d31cef3f993e8d7dfd9c33ffc50b705eApprove109006932021-09-14 7:19:443 days 6 hrs ago0x72dcbbbf54b24d22f8be0990349032a931799ccf IN  0xe5859f4efc09027a9b718781dcb2c6910cac6e910 BNB0.000111314
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Paxos Standard: PAX Token0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 DAI Stablecoin0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 USD Coin: USDC Token0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 BUSD-T Stablecoin0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Binance: BUSD Stablecoin0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Paxos Standard: PAX Token0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 DAI Stablecoin0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 USD Coin: USDC Token0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 BUSD-T Stablecoin0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Binance: BUSD Stablecoin0 BNB
0x36c2d95b1e87fa0cc9170a0af67db53e62a98ea59da0fac06f1f37e10c645ac053465242021-03-03 2:35:13198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 0x965cc658158a7689fbb6c4df735aa435c500c29b0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Paxos Standard: PAX Token0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 DAI Stablecoin0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 USD Coin: USDC Token0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Binance: BUSD Stablecoin0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Paxos Standard: PAX Token0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 DAI Stablecoin0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 USD Coin: USDC Token0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 BUSD-T Stablecoin0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Binance: BUSD Stablecoin0 BNB
0x6dfcce5271da8580379b52fa6ca69abcf771204f97b480897707ef6f45df3f9453463502021-03-03 2:26:31198 days 10 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 0x965cc658158a7689fbb6c4df735aa435c500c29b0 BNB
0x89685fce3d214966a025b8c2fd885ce98e8eac154d22c9725f628d35d7bf74c053460032021-03-03 2:09:10198 days 11 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Paxos Standard: PAX Token0 BNB
0x89685fce3d214966a025b8c2fd885ce98e8eac154d22c9725f628d35d7bf74c053460032021-03-03 2:09:10198 days 11 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 DAI Stablecoin0 BNB
0x89685fce3d214966a025b8c2fd885ce98e8eac154d22c9725f628d35d7bf74c053460032021-03-03 2:09:10198 days 11 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 BUSD-T Stablecoin0 BNB
0x89685fce3d214966a025b8c2fd885ce98e8eac154d22c9725f628d35d7bf74c053460032021-03-03 2:09:10198 days 11 hrs ago 0xe5859f4efc09027a9b718781dcb2c6910cac6e91 Binance: BUSD Stablecoin0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Root

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at BscScan.com on 2021-03-02
*/

// File: contracts/UpgradeableOwnable.sol



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.
 */
contract UpgradeableOwnable {
    bytes32 private constant _OWNER_SLOT = 0xa7b53796fd2d99cb1f5ae019b54f9e024446c3d12b483f733ccc62ed04eb126a;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        assert(_OWNER_SLOT == bytes32(uint256(keccak256("eip1967.proxy.owner")) - 1));
        _setOwner(msg.sender);
        emit OwnershipTransferred(address(0), msg.sender);
    }

    function _setOwner(address newOwner) private {
        bytes32 slot = _OWNER_SLOT;
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            sstore(slot, newOwner)
        }
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address o) {
        bytes32 slot = _OWNER_SLOT;
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            o := sload(slot)
        }
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == msg.sender, "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));
        _setOwner(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);
        _setOwner(newOwner);
    }
}

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



pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 *
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 *
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal virtual {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }

    /**
     * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     *
     * This function does not return to its internall call site, it will return directly to the external caller.
     */
    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback () external payable virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive () external payable virtual {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     *
     * If overriden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {
    }
}

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



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);
            }
        }
    }
}

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



pragma solidity >=0.6.0 <0.8.0;



/**
 * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
 * implementation address that can be changed. This address is stored in storage in the location specified by
 * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
 * implementation behind the proxy.
 *
 * Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see
 * {TransparentUpgradeableProxy}.
 */
contract UpgradeableProxy is Proxy {
    /**
     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
     *
     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
     * function call, and allows initializating the storage of the proxy like a Solidity constructor.
     */
    constructor(address _logic, bytes memory _data) public payable {
        assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        _setImplementation(_logic);
        if(_data.length > 0) {
            Address.functionDelegateCall(_logic, _data);
        }
    }

    /**
     * @dev Emitted when the implementation is upgraded.
     */
    event Upgraded(address indexed implementation);

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation address.
     */
    function _implementation() internal view virtual override returns (address impl) {
        bytes32 slot = _IMPLEMENTATION_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            impl := sload(slot)
        }
    }

    /**
     * @dev Upgrades the proxy to a new implementation.
     *
     * Emits an {Upgraded} event.
     */
    function _upgradeTo(address newImplementation) internal virtual {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    /**
     * @dev Stores a new address in the EIP1967 implementation slot.
     */
    function _setImplementation(address newImplementation) private {
        require(Address.isContract(newImplementation), "UpgradeableProxy: new implementation is not a contract");

        bytes32 slot = _IMPLEMENTATION_SLOT;

        // solhint-disable-next-line no-inline-assembly
        assembly {
            sstore(slot, newImplementation)
        }
    }
}

// File: contracts/UpgradeableOwnableProxy.sol



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.
 */
contract UpgradeableOwnableProxy is UpgradeableOwnable, UpgradeableProxy {
    /**
     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
     *
     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
     * function call, and allows initializating the storage of the proxy like a Solidity constructor.
     */
    constructor(address _logic, bytes memory _data)
        public
        payable
        UpgradeableProxy(_logic, _data) {
    }

    function upgradeTo(address newImplementation) external onlyOwner {
        _upgradeTo(newImplementation);
    }

    function implementation() external view returns (address) {
        return _implementation();
    }
}

// File: contracts/Root.sol

pragma solidity ^0.6.0;
pragma experimental ABIEncoderV2;



contract Root is UpgradeableOwnableProxy {
    constructor(address impl) public UpgradeableOwnableProxy(impl, "") {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"o","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060405162000ab638038062000ab6833981016040819052620000349162000258565b604080516020810190915260008152819081816200005233620000b6565b60405133906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36200008a82620000da565b805115620000ab57620000a982826200013c60201b620002a91760201c565b505b5050505050620003aa565b7fa7b53796fd2d99cb1f5ae019b54f9e024446c3d12b483f733ccc62ed04eb126a55565b620000f0816200016b60201b620002d51760201c565b620001185760405162461bcd60e51b81526004016200010f90620002d4565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606062000164838360405180606001604052806027815260200162000a8f6027913962000171565b9392505050565b3b151590565b60606200017e846200016b565b6200019d5760405162461bcd60e51b81526004016200010f9062000331565b60006060856001600160a01b031685604051620001bb919062000281565b600060405180830381855af49150503d8060008114620001f8576040519150601f19603f3d011682016040523d82523d6000602084013e620001fd565b606091505b509092509050620002108282866200021a565b9695505050505050565b606083156200022b57508162000164565b8251156200023c5782518084602001fd5b8160405162461bcd60e51b81526004016200010f91906200029f565b6000602082840312156200026a578081fd5b81516001600160a01b038116811462000164578182fd5b600082516200029581846020870162000377565b9190910192915050565b6000602082528251806020840152620002c081604085016020870162000377565b601f01601f19169190910160400192915050565b60208082526036908201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160408201527f74696f6e206973206e6f74206120636f6e747261637400000000000000000000606082015260800190565b60208082526026908201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6040820152651b9d1c9858dd60d21b606082015260800190565b60005b83811015620003945781810151838201526020016200037a565b83811115620003a4576000848401525b50505050565b6106d580620003ba6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780635c60da1b14610085578063715018a6146100b05780638da5cb5b146100c5578063f2fde38b146100da5761005d565b3661005d5761005b6100fa565b005b61005b6100fa565b34801561007157600080fd5b5061005b6100803660046104a7565b610114565b34801561009157600080fd5b5061009a610158565b6040516100a791906104ea565b60405180910390f35b3480156100bc57600080fd5b5061005b610167565b3480156100d157600080fd5b5061009a6101df565b3480156100e657600080fd5b5061005b6100f53660046104a7565b610204565b610102610112565b61011261010d6102db565b610300565b565b3361011d6101df565b6001600160a01b03161461014c5760405162461bcd60e51b815260040161014390610577565b60405180910390fd5b61015581610324565b50565b60006101626102db565b905090565b336101706101df565b6001600160a01b0316146101965760405162461bcd60e51b815260040161014390610577565b60006101a06101df565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36101126000610364565b7fa7b53796fd2d99cb1f5ae019b54f9e024446c3d12b483f733ccc62ed04eb126a5490565b3361020d6101df565b6001600160a01b0316146102335760405162461bcd60e51b815260040161014390610577565b6001600160a01b0381166102595760405162461bcd60e51b815260040161014390610531565b806001600160a01b031661026b6101df565b6001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361015581610364565b60606102ce838360405180606001604052806027815260200161067960279139610388565b9392505050565b3b151590565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561031f573d6000f35b3d6000fd5b61032d81610425565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fa7b53796fd2d99cb1f5ae019b54f9e024446c3d12b483f733ccc62ed04eb126a55565b6060610393846102d5565b6103af5760405162461bcd60e51b815260040161014390610602565b60006060856001600160a01b0316856040516103cb91906104ce565b600060405180830381855af49150503d8060008114610406576040519150601f19603f3d011682016040523d82523d6000602084013e61040b565b606091505b509150915061041b82828661046e565b9695505050505050565b61042e816102d5565b61044a5760405162461bcd60e51b8152600401610143906105ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6060831561047d5750816102ce565b82511561048d5782518084602001fd5b8160405162461bcd60e51b815260040161014391906104fe565b6000602082840312156104b8578081fd5b81356001600160a01b03811681146102ce578182fd5b600082516104e0818460208701610648565b9190910192915050565b6001600160a01b0391909116815260200190565b600060208252825180602084015261051d816040850160208701610648565b601f01601f19169190910160400192915050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526036908201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e74616040820152751d1a5bdb881a5cc81b9bdd08184818dbdb9d1c9858dd60521b606082015260800190565b60208082526026908201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6040820152651b9d1c9858dd60d21b606082015260800190565b60005b8381101561066357818101518382015260200161064b565b83811115610672576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201b90cb986c821ed3fbdade3b48448de59a096e75beee8c1507a2ceadead9ab0e64736f6c634300060c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564000000000000000000000000965cc658158a7689fbb6c4df735aa435c500c29b

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

000000000000000000000000965cc658158a7689fbb6c4df735aa435c500c29b

-----Decoded View---------------
Arg [0] : impl (address): 0x965cc658158a7689fbb6c4df735aa435c500c29b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000965cc658158a7689fbb6c4df735aa435c500c29b


Deployed ByteCode Sourcemap

18571:120:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5749:11;:9;:11::i;:::-;18571:120;;5517:11;:9;:11::i;18245:113::-;;;;;;;;;;-1:-1:-1;18245:113:0;;;;;:::i;:::-;;:::i;18366:101::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2246:151;;;;;;;;;;;;;:::i;1456:228::-;;;;;;;;;;;;;:::i;2552:247::-;;;;;;;;;;-1:-1:-1;2552:247:0;;;;;:::i;:::-;;:::i;5153:113::-;5202:17;:15;:17::i;:::-;5230:28;5240:17;:15;:17::i;:::-;5230:9;:28::i;:::-;5153:113::o;18245:::-;1828:10;1817:7;:5;:7::i;:::-;-1:-1:-1;;;;;1817:21:0;;1809:66;;;;-1:-1:-1;;;1809:66:0;;;;;;;:::i;:::-;;;;;;;;;18321:29:::1;18332:17;18321:10;:29::i;:::-;18245:113:::0;:::o;18366:101::-;18415:7;18442:17;:15;:17::i;:::-;18435:24;;18366:101;:::o;2246:151::-;1828:10;1817:7;:5;:7::i;:::-;-1:-1:-1;;;;;1817:21:0;;1809:66;;;;-1:-1:-1;;;1809:66:0;;;;;;;:::i;:::-;2354:1:::1;2337:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;2316:41:0::1;;;;;;;;;;;2368:21;2386:1;2368:9;:21::i;1456:228::-:0;667:66;1655:11;;1635:42::o;2552:247::-;1828:10;1817:7;:5;:7::i;:::-;-1:-1:-1;;;;;1817:21:0;;1809:66;;;;-1:-1:-1;;;1809:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2641:22:0;::::1;2633:73;;;;-1:-1:-1::0;;;2633:73:0::1;;;;;;;:::i;:::-;2752:8;-1:-1:-1::0;;;;;2722:39:0::1;2743:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;2722:39:0::1;;;;;;;;;;;2772:19;2782:8;2772:9;:19::i;12583:200::-:0;12666:12;12698:77;12719:6;12727:4;12698:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;12691:84;12583:200;-1:-1:-1;;;12583:200:0:o;6898:422::-;7265:20;7304:8;;;6898:422::o;16062:256::-;15912:66;16289:11;;16266:45::o;3746:915::-;4146:14;4143:1;4140;4127:34;4364:1;4361;4345:14;4342:1;4326:14;4319:5;4306:60;4443:16;4440:1;4437;4422:38;4483:6;4552:38;;;;4624:16;4621:1;4614:27;4552:38;4571:16;4568:1;4561:27;16444:163;16519:37;16538:17;16519:18;:37::i;:::-;16572:27;;-1:-1:-1;;;;;16572:27:0;;;;;;;;16444:163;:::o;1153:222::-;667:66;1335:22;1320:48::o;12977:423::-;13088:12;13121:18;13132:6;13121:10;:18::i;:::-;13113:69;;;;-1:-1:-1;;;13113:69:0;;;;;;;:::i;:::-;13256:12;13270:23;13297:6;-1:-1:-1;;;;;13297:19:0;13317:4;13297:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13255:67;;;;13340:52;13358:7;13367:10;13379:12;13340:17;:52::i;:::-;13333:59;12977:423;-1:-1:-1;;;;;;12977:423:0:o;16703:369::-;16785:37;16804:17;16785:18;:37::i;:::-;16777:104;;;;-1:-1:-1;;;16777:104:0;;;;;;;:::i;:::-;15912:66;17023:31;17008:57::o;13408:742::-;13523:12;13552:7;13548:595;;;-1:-1:-1;13583:10:0;13576:17;;13548:595;13697:17;;:21;13693:439;;13960:10;13954:17;14021:15;14008:10;14004:2;14000:19;13993:44;13908:148;14103:12;14096:20;;-1:-1:-1;;;14096:20:0;;;;;;;;:::i;142:241:-1:-;;246:2;234:9;225:7;221:23;217:32;214:2;;;-1:-1;;252:12;214:2;72:20;;-1:-1;;;;;5994:54;;6501:35;;6491:2;;-1:-1;;6540:12;2736:271;;670:5;5339:12;781:52;826:6;821:3;814:4;807:5;803:16;781:52;:::i;:::-;845:16;;;;;2870:137;-1:-1;;2870:137::o;3014:222::-;-1:-1;;;;;5994:54;;;;461:37;;3141:2;3126:18;;3112:124::o;3243:310::-;;3390:2;3411:17;3404:47;1018:5;5339:12;5778:6;3390:2;3379:9;3375:18;5766:19;1112:52;1157:6;5806:14;3379:9;5806:14;3390:2;1138:5;1134:16;1112:52;:::i;:::-;6421:7;6405:14;-1:-1;;6401:28;1176:39;;;;5806:14;1176:39;;3361:192;-1:-1;;3361:192::o;3560:416::-;3760:2;3774:47;;;1452:2;3745:18;;;5766:19;1488:34;5806:14;;;1468:55;-1:-1;;;1543:12;;;1536:30;1585:12;;;3731:245::o;3983:416::-;4183:2;4197:47;;;4168:18;;;5766:19;1872:34;5806:14;;;1852:55;1926:12;;;4154:245::o;4406:416::-;4606:2;4620:47;;;2177:2;4591:18;;;5766:19;2213:34;5806:14;;;2193:55;-1:-1;;;2268:12;;;2261:46;2326:12;;;4577:245::o;4829:416::-;5029:2;5043:47;;;2577:2;5014:18;;;5766:19;2613:34;5806:14;;;2593:55;-1:-1;;;2668:12;;;2661:30;2710:12;;;5000:245::o;6061:268::-;6126:1;6133:101;6147:6;6144:1;6141:13;6133:101;;;6214:11;;;6208:18;6195:11;;;6188:39;6169:2;6162:10;6133:101;;;6249:6;6246:1;6243:13;6240:2;;;6126:1;6305:6;6300:3;6296:16;6289:27;6240:2;;6110:219;;;:::o

Swarm Source

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