Contract 0xeada3d1ccbbb1c6b4c40a16d34f64cb0df0225fd

 
Txn Hash
Block
From
To
Value [Txn Fee]
0xc7b451124c0e3766fed6c8d24c2de7cb2a625512a5e2a1448ffa17386b3a821e90877742021-07-12 9:12:4413 days 13 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.00022106
0x706abe0827fd28e155a73b2408cb3496356988cab04e03656598ad5caa079a2690877542021-07-12 9:11:4413 days 13 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.00022112
0x334ae65fc95a53505d19b649d0aa02aaf0929b600c8e2897dcfb66edb14b3f9185692582021-06-24 7:01:2931 days 15 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.00033137
0x2f628922066a4c9e0dece2cf50fe7af74d137eecccce58a28d7a0e2ed7ecd27585449042021-06-23 10:39:1532 days 12 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.000611045
0xd56ecb4f3b868fcaaa905b498826d9e453c2d89b3095dd881b4a0cdfea9914cc85448702021-06-23 10:37:3332 days 12 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.0002827
0x1b1567494332158f64aea146b251c07c4e3c9b7f9c1cd1455f698dfa77ede00385448262021-06-23 10:35:2132 days 12 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.00029612
0x1fd2e10b244b989884d8b0dbd805695f679ebd680d8ecd7d87f5fafb0aba119075109742021-05-18 8:13:1068 days 14 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.00020977
0xf048594424f26547acd5b02a4f9c88e318c3676c591d0d32b71a2c602d9ec5b273654932021-05-13 4:53:0973 days 17 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.000564305
0x78ea87932a3578ac54e2a2139cf82ef624556779461bb6e67e0e74cee4e91a6573654842021-05-13 4:52:4273 days 17 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.00028259
0xcd72110d0837f0d349c5bbf881553bb085f240ef652d61f90f8ce25d4149421173649562021-05-13 4:25:3673 days 18 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.00051569934
0x3897f9f2b41c41cb48da4211db814abc683fa24e85e969c11f895ba921021fc868356002021-04-24 5:30:2892 days 17 hrs ago0x878712cf2f9ed392f7f34c3483eaa3fd22fb6ec6 IN  bDollar: DAO Fund0 BNB0.000323105
0xdf2fc815a6415051d45b7b3e2b987d86d5d251dca600e11e99780d6b9e61560266234372021-04-16 18:49:16100 days 3 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473755
0x2f911372eefc7cd5c400f6796598c20d35fae09f71e63faffff1ef3b8f6dbad366234042021-04-16 18:47:37100 days 3 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0x1084d0dc64192725f3fd4f26296958d19713a8d061c5e10f2d925ba53ffa33fd66233232021-04-16 18:43:34100 days 3 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0x9df970fcac2ae869acdce93b342893629e5c27a30142a3b27f652f8fa8075b4366233162021-04-16 18:43:13100 days 3 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0xc61deb0b59b25acc6ff24d90e27d5484f9e2aa4cc9cb80704e858699bc7ab97d66233082021-04-16 18:42:49100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0x882574f27dd7b3d55130052dd57bb867c94c8454ab17a66ef043a95a016977eb66233022021-04-16 18:42:31100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0xc90830d108f0e55f7436c2b3102458b706b270aab9637289408c3d6bf3a9b4cb66232932021-04-16 18:42:04100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0x9c2be0c07163a64280bf255c9993b4f4471f27a87a9507668c5d2586e971cc5566232792021-04-16 18:41:22100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0xc83a38803e213fc72fb18ddee5584259b8db2d4562f6cd8a171a5e9aac105d5266231292021-04-16 18:33:52100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0x401376a18e72c8d84e9d950a74536cd0892ef544efdd10d90139452658e0021366230602021-04-16 18:30:25100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0xd254378cf499ffe9c09053c2eab4d956a753e76fb1a34424503f4956c585a45a66230502021-04-16 18:29:55100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0x7ebee73efb3f4df8b455507e186f6171b17e852b6a5722ae66d96079be3bd3ec66230452021-04-16 18:29:40100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0x06c4a5b6d42beaca470578d3c9b397be855a207087b75f54e193bd4f4963f6d366230332021-04-16 18:29:04100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473545
0xcc48f3d88356950b01ae4d5ddb7d4a361a646de703cbfd324275df956bd56d3766229702021-04-16 18:25:55100 days 4 hrs agoBearn.fi: Deployer IN  bDollar: DAO Fund0 BNB0.001473755
[ Download CSV Export 

OVERVIEW

This DAO fund will rebalance BDO, BUSD and WBNB.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund PancakeSwap: Router0 BNB
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund 0xfab911c54f7cf3fffde0482d2267a751d87b5b200 BNB
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund Binance: WBNB Token0 BNB
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund Binance: BUSD Stablecoin0 BNB
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x8dfd65fe914abb65239d18d041d02b1a47b13aa8ba343e6ac8c16b4ff47c728654554362021-03-06 22:44:33140 days 23 hrs ago bDollar: DAO Fund 0xeca7fc4c554086198deebcaff6c90d368dc327e00 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund PancakeSwap: Router0 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund 0xfab911c54f7cf3fffde0482d2267a751d87b5b200 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund Binance: WBNB Token0 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund Binance: BUSD Stablecoin0 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x5632f0e62eb8344a4c5b57c47cbee4e06d99a00d32f06a33870ebcb817cc1ad954554352021-03-06 22:44:30140 days 23 hrs ago bDollar: DAO Fund 0xeca7fc4c554086198deebcaff6c90d368dc327e00 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund PancakeSwap: Router0 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund 0xfab911c54f7cf3fffde0482d2267a751d87b5b200 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund Binance: WBNB Token0 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund Binance: BUSD Stablecoin0 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund bDollar: BDO Token0 BNB
0x9f420129f12e542103a522a84c2b7433218495b0c8b02d64509ebb8b72b4eed054554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund 0xeca7fc4c554086198deebcaff6c90d368dc327e00 BNB
0x4f9d0bde184c64187fd8c74c230a41b2b4fc2848d771515615760d0475a7c71c54554342021-03-06 22:44:27140 days 23 hrs ago bDollar: DAO Fund PancakeSwap: Router0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x15a90e6157a870cd335af03c6df776d0b1ebf94f

Contract Name:
AdminUpgradeabilityProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at BscScan.com on 2020-12-31
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
abstract contract Proxy {
    /**
     * @dev Fallback function.
     * Implemented entirely in `_fallback`.
     */
    fallback() external payable {
        _fallback();
    }

    /**
     * @dev Receive function.
     * Implemented entirely in `_fallback`.
     */
    receive() external payable {
        _fallback();
    }

    /**
     * @return The Address of the implementation.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates execution to an implementation contract.
     * This is a low level function that doesn't return to its internal call site.
     * It will return to the external caller whatever the implementation returns.
     * @param implementation Address to delegate.
     */
    function _delegate(address implementation) internal {
        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 Function that is run as the first thing in the fallback function.
     * Can be redefined in derived contracts to add functionality.
     * Redefinitions must call super._willFallback().
     */
    function _willFallback() internal virtual {}

    /**
     * @dev fallback implementation.
     * Extracted to enable manual triggering.
     */
    function _fallback() internal {
        _willFallback();
        _delegate(_implementation());
    }
}

/**
 * @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);
            }
        }
    }
}

/**
 * @title UpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract UpgradeabilityProxy is Proxy {
    /**
     * @dev Contract constructor.
     * @param _logic Address of the initial implementation.
     * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
     * It should include the signature and the parameters of the function to be called, as described in
     * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
     * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
     */
    constructor(address _logic, bytes memory _data) public payable {
        assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
        _setImplementation(_logic);
        if (_data.length > 0) {
            (bool success, ) = _logic.delegatecall(_data);
            require(success);
        }
    }

    /**
     * @dev Emitted when the implementation is upgraded.
     * @param implementation Address of the new implementation.
     */
    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 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @dev Returns the current implementation.
     * @return impl Address of the current implementation
     */
    function _implementation() internal view override returns (address impl) {
        bytes32 slot = IMPLEMENTATION_SLOT;
        assembly {
            impl := sload(slot)
        }
    }

    /**
     * @dev Upgrades the proxy to a new implementation.
     * @param newImplementation Address of the new implementation.
     */
    function _upgradeTo(address newImplementation) internal {
        _setImplementation(newImplementation);
        emit Upgraded(newImplementation);
    }

    /**
     * @dev Sets the implementation address of the proxy.
     * @param newImplementation Address of the new implementation.
     */
    function _setImplementation(address newImplementation) internal {
        require(Address.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address");

        bytes32 slot = IMPLEMENTATION_SLOT;

        assembly {
            sstore(slot, newImplementation)
        }
    }
}

/**
 * @title AdminUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * All external functions in this contract must be guarded by the
 * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract AdminUpgradeabilityProxy is UpgradeabilityProxy {
    /**
     * Contract constructor.
     * @param _logic address of the initial implementation.
     * @param _admin Address of the proxy administrator.
     * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
     * It should include the signature and the parameters of the function to be called, as described in
     * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
     * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
     */
    constructor(
        address _logic,
        address _admin,
        bytes memory _data
    ) public payable UpgradeabilityProxy(_logic, _data) {
        assert(ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1));
        _setAdmin(_admin);
    }

    /**
     * @dev Emitted when the administration has been transferred.
     * @param previousAdmin Address of the previous admin.
     * @param newAdmin Address of the new admin.
     */
    event AdminChanged(address previousAdmin, address newAdmin);

    /**
     * @dev Storage slot with the admin of the contract.
     * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is
     * validated in the constructor.
     */

    bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @dev Modifier to check whether the `msg.sender` is the admin.
     * If it is, it will run the function. Otherwise, it will delegate the call
     * to the implementation.
     */
    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    /**
     * @return The address of the proxy admin.
     */
    function admin() external ifAdmin returns (address) {
        return _admin();
    }

    /**
     * @return The address of the implementation.
     */
    function implementation() external ifAdmin returns (address) {
        return _implementation();
    }

    /**
     * @dev Changes the admin of the proxy.
     * Only the current admin can call this function.
     * @param newAdmin Address to transfer proxy administration to.
     */
    function changeAdmin(address newAdmin) external ifAdmin {
        require(newAdmin != address(0), "Cannot change the admin of a proxy to the zero address");
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev Upgrade the backing implementation of the proxy.
     * Only the admin can call this function.
     * @param newImplementation Address of the new implementation.
     */
    function upgradeTo(address newImplementation) external ifAdmin {
        _upgradeTo(newImplementation);
    }

    /**
     * @dev Upgrade the backing implementation of the proxy and call a function
     * on the new implementation.
     * This is useful to initialize the proxied contract.
     * @param newImplementation Address of the new implementation.
     * @param data Data to send as msg.data in the low level call.
     * It should include the signature and the parameters of the function to be called, as described in
     * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
     */
    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin {
        _upgradeTo(newImplementation);
        (bool success, ) = newImplementation.delegatecall(data);
        require(success);
    }

    /**
     * @return adm The admin slot.
     */
    function _admin() internal view returns (address adm) {
        bytes32 slot = ADMIN_SLOT;
        assembly {
            adm := sload(slot)
        }
    }

    /**
     * @dev Sets the address of the proxy admin.
     * @param newAdmin Address of the new proxy admin.
     */
    function _setAdmin(address newAdmin) internal {
        bytes32 slot = ADMIN_SLOT;

        assembly {
            sstore(slot, newAdmin)
        }
    }

    /**
     * @dev Only fall back when the sender is not the admin.
     */
    function _willFallback() internal virtual override {
        require(msg.sender != _admin(), "Cannot call fallback function from the proxy admin");
        super._willFallback();
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051610a34380380610a348339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6104bb1760201c565b61020d5760405162461bcd60e51b815260040180806020018281038252603b8152602001806109f9603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61078f8061026a6000396000f3fe60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146101425780638f28397014610180578063f851a440146101c05761006d565b80633659cfe6146100755780634f1ef286146100b55761006d565b3661006d5761006b6101d5565b005b61006b6101d5565b34801561008157600080fd5b5061006b6004803603602081101561009857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101ef565b61006b600480360360408110156100cb57600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561010357600080fd5b82018360208201111561011557600080fd5b8035906020019184600183028401116401000000008311171561013757600080fd5b509092509050610243565b34801561014e57600080fd5b50610157610317565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561018c57600080fd5b5061006b600480360360208110156101a357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661036e565b3480156101cc57600080fd5b50610157610476565b6101dd6104c1565b6101ed6101e8610555565b61057a565b565b6101f761059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023857610233816105c3565b610240565b6102406101d5565b50565b61024b61059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561030a57610287836105c3565b60008373ffffffffffffffffffffffffffffffffffffffff1683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146102f1576040519150601f19603f3d011682016040523d82523d6000602084013e6102f6565b606091505b505090508061030457600080fd5b50610312565b6103126101d5565b505050565b600061032161059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103635761035c610555565b905061036b565b61036b6101d5565b90565b61037661059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102385773ffffffffffffffffffffffffffffffffffffffff8116610415576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806106e96036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61043e61059e565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a161023381610610565b600061048061059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103635761035c61059e565b3b151590565b6104c961059e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561054d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806106b76032913960400191505060405180910390fd5b6101ed6101ed565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e808015610599573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6105cc81610634565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b61063d816104bb565b610692576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b81526020018061071f603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a264697066735822122018153eb0c295da24191af63bed66559ee0714155b7bf4524593edad7e3f5f0d664736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000000000000000000d55373b43ae205861c364306103c7e25125ab8e1000000000000000000000000d4a31c617a10ba894ec18307802ab1dded8f258300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

11896:4529:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;684:11;:9;:11::i;:::-;11896:4529;;525:11;:9;:11::i;14734:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14734:111:0;;;;:::i;15393:240::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15393:240:0;;-1:-1:-1;15393:240:0;-1:-1:-1;15393:240:0;:::i;13990:104::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14289:242;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14289:242:0;;;;:::i;13827:86::-;;;;;;;;;;;;;:::i;2476:103::-;2517:15;:13;:15::i;:::-;2543:28;2553:17;:15;:17::i;:::-;2543:9;:28::i;:::-;2476:103::o;14734:111::-;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;14808:29:::1;14819:17;14808:10;:29::i;:::-;13646:100:::0;;;13723:11;:9;:11::i;:::-;14734:111;:::o;15393:240::-;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;15503:29:::1;15514:17;15503:10;:29::i;:::-;15544:12;15562:17;:30;;15593:4;;15562:36;;;;;;;;;;::::0;;::::1;::::0;-1:-1:-1;15562:36:0::1;::::0;-1:-1:-1;15562:36:0;;-1:-1:-1;;15562:36:0;;::::1;::::0;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15543:55;;;15617:7;15609:16;;;::::0;::::1;;13689:1;13646:100:::0;;;13723:11;:9;:11::i;:::-;15393:240;;;:::o;13990:104::-;14042:7;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;14069:17:::1;:15;:17::i;:::-;14062:24;;13646:100:::0;;;13723:11;:9;:11::i;:::-;13990:104;:::o;14289:242::-;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;14364:22:::1;::::0;::::1;14356:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14461:32;14474:8;:6;:8::i;:::-;14461:32;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;14504:19;14514:8;14504:9;:19::i;13827:86::-:0;13870:7;13664:8;:6;:8::i;:::-;13650:22;;:10;:22;;;13646:100;;;13897:8:::1;:6;:8::i;3267:444::-:0;3647:20;3695:8;;;3267:444::o;16235:187::-;16319:8;:6;:8::i;:::-;16305:22;;:10;:22;;;;16297:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16393:21;:19;:21::i;10556:190::-;10355:66;10717:11;;10694:45::o;1155:938::-;1490:14;1487:1;1484;1471:34;1708:1;1705;1689:14;1686:1;1670:14;1663:5;1650:60;1787:16;1784:1;1781;1766:38;1827:6;1904:76;;;;2039:16;2036:1;2029:27;1904:76;1944:16;1941:1;1934:27;15695:161;13341:66;15827:11;;15805:44::o;10897:155::-;10964:37;10983:17;10964:18;:37::i;:::-;11017:27;;;;;;;;;;;10897:155;:::o;15988:159::-;13341:66;16107:22;16092:48::o;11205:317::-;11288:37;11307:17;11288:18;:37::i;:::-;11280:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10355:66;11473:31;11458:57::o

Swarm Source

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