Contract 0x15a90e6157a870cd335af03c6df776d0b1ebf94f

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1fc6469897ff4378609952064eec95b47bfe0de0b83db4c32ab2ea4f293d5ed8Buy Bonds110136432021-09-18 5:42:3423 hrs 51 mins ago0x0dd89655c6ee8d660c00667625434b53112bd32e IN  bDollar: Treasury0 BNB0.00108848
0x4714ad63cd27506952c3299435ebae48529e3f674fda9cba4cf38b82dbef09faRedeem Bonds109857982021-09-17 6:28:151 day 23 hrs ago0xc64d755e5faf51a39f5cee1e492dd9268b5db203 IN  bDollar: Treasury0 BNB0.00061173
0x8074f25fdee66e93240de5dd3564d5e4127d0cd038271b4d8bc8692d54d11dd1Redeem Bonds109857432021-09-17 6:25:301 day 23 hrs ago0xc64d755e5faf51a39f5cee1e492dd9268b5db203 IN  bDollar: Treasury0 BNB0.00068673
0xde204b5e10f349214484cd63332e3fba9e7d2568b983b2c7e9866ac8dbd14dbbRedeem Bonds109857162021-09-17 6:24:091 day 23 hrs ago0xc64d755e5faf51a39f5cee1e492dd9268b5db203 IN  bDollar: Treasury0 BNB0.001045705
0x8f39435f4ca225873e0f85a398d6492e0ab6dd97409c6310a7876b4f7fa0cbedRedeem Bonds109236932021-09-15 2:32:504 days 3 hrs ago0xc5f181067f1f0b7bc6de241346219e9fff68256f IN  bDollar: Treasury0 BNB0.000973765
0x049fc12e712c82c1b75cb3e60c4c8ef707e517236a53f09253c11f69d10156bcRedeem Bonds109091222021-09-14 14:22:024 days 15 hrs ago0xefd13efd334bd05ea3311714449531fdd6f88965 IN  bDollar: Treasury0 BNB0.00068667
0xa46c3cd7ca9035f0152e0d40e491dee05230e6e942cf3de5d83550cdb40f42e0Redeem Bonds109075142021-09-14 13:01:384 days 16 hrs ago0x5f953d64127c53d250b471d7202056a70ec87b9f IN  bDollar: Treasury0 BNB0.000898765
0x094d12dc59d09484c3ce35d66e5eafbdca72ed7fb1d53ec630e42f8549cdeb98Redeem Bonds108975642021-09-14 4:43:155 days 50 mins ago0xd7c5767a0b77e8cfe2f75b8138f73d408bdfad9c IN  bDollar: Treasury0 BNB0.00068667
0xd97661a55bed388869f2741ce659270257a35c5d8fe3030f542c578c1eb6b562Redeem Bonds108947092021-09-14 2:20:085 days 3 hrs ago0x28c36f4c67706df806bd963aff627382155e0652 IN  bDollar: Treasury0 BNB0.001225705
0x30ae7651e0af186d3ca25f28e3e65ca718e638a160ee9cca331e6077226a056bBuy Bonds107927552021-09-10 12:51:228 days 16 hrs ago0x88d14a8496dca90425d67b05c5cc918fefd4c917 IN  bDollar: Treasury0 BNB0.00112136
0xe50adb92e798f7c40f714712070d596f4b83b659bec4ed38d9f00602e4059556Buy Bonds107912002021-09-10 11:33:128 days 18 hrs ago0x88d14a8496dca90425d67b05c5cc918fefd4c917 IN  bDollar: Treasury0 BNB0.00122636
0xac3ae1b044fdb9e29dd22f16fed9c347e85f63ef5c7d8efd3a66b05430b64115Buy Bonds107468432021-09-08 22:14:3410 days 7 hrs ago0x88d14a8496dca90425d67b05c5cc918fefd4c917 IN  bDollar: Treasury0 BNB0.00112136
0xc1b91c98ccadf2e08d98ad14808096de6565eeb3ee8dfed1ddc85e2d0cd087d3Buy Bonds107380092021-09-08 14:47:0010 days 14 hrs ago0x88d14a8496dca90425d67b05c5cc918fefd4c917 IN  bDollar: Treasury0 BNB0.00112136
0x2884ec175a1d29571078d96fa73bb2ede9c6386889ca1dbc2894e2383a0c69b2Buy Bonds107318142021-09-08 9:34:4710 days 19 hrs ago0x88d14a8496dca90425d67b05c5cc918fefd4c917 IN  bDollar: Treasury0 BNB0.00128036
0x0ac6ea3f114af8bba901ac6ed4c56a2bcd8995e442898f8faf6dcd847305ee41Redeem Bonds106988782021-09-07 5:36:2311 days 23 hrs ago0xef473a114741a02c241460ad1659895050bd66d3 IN  bDollar: Treasury0 BNB0.000952765
0x01a89bef1bc796d32c4192591d3ff1efcc844f647f1c3facbf3f682aad0b7c4eBuy Bonds106911732021-09-06 23:04:5012 days 6 hrs ago0x88d14a8496dca90425d67b05c5cc918fefd4c917 IN  bDollar: Treasury0 BNB0.0012383
0x142327aae36bb2dabba78e69604918137cb553186f391f10e6222beb0c7deb1aRedeem Bonds106663822021-09-06 2:16:4813 days 3 hrs ago0x9ccbb654d9ac6e0eaccb4bd998e8ac2e8e8e32f3 IN  bDollar: Treasury0 BNB0.00068667
0x989693564dda003c5a2801409c3da82a1eb8c638e7ddbc9a6a9ad1abd83c1b10Redeem Bonds106642762021-09-06 0:31:3013 days 5 hrs ago0x76918841298c0eecf0fe9409cdad3000320666ed IN  bDollar: Treasury0 BNB0.000973705
0xdec0433137de716bca3aefba01e6a5aba73aa8e4604c01a98e71d13132780ee3Buy Bonds106558892021-09-05 17:31:4613 days 12 hrs ago0x0dd89655c6ee8d660c00667625434b53112bd32e IN  bDollar: Treasury0 BNB0.000780445
0x58a96946d7e55707af030f5cf12b6b31c1d173e6d017c38902173d1ced1830d7Buy Bonds106535942021-09-05 15:36:2613 days 13 hrs ago0xfd42f983a34b7dfa6fdf32b505a9f346e981aae9 IN  bDollar: Treasury0 BNB0.000930445
0x4783729e4159e6d3e0c1a9cc25a021991aaacd97dad6479d95d706fd143af0d8Redeem Bonds106497322021-09-05 12:23:0713 days 17 hrs ago0x2e5f2ef25027dca5bd3dfc8735b4dbbc8aa9de1b IN  bDollar: Treasury0 BNB0.001015705
0x1a0d2e09f5914cd3d55da26a56725d35526a08e21efaa0334725b5d9ae6f8e0dRedeem Bonds106225272021-09-04 13:35:0314 days 15 hrs ago0xd30d5aa0d3d9a297f2a390312cb8ff3ceb82e5b6 IN  bDollar: Treasury0 BNB0.000940645
0xc0893a6bd811f82986b68338fd45a24809991a8a12e95763ab0ed3a5d8d61bf0Allocate Seignio...105990432021-09-03 18:00:0715 days 11 hrs ago0xbd000f4cecf87c86c754f9f462be0c678c6ea3c4 IN  bDollar: Treasury0 BNB0.00625233
0x2f83148f73da23529c9695f0e9df7dc22dd26eb05ea9e4f74cd3bc7233b8e4a1Allocate Seignio...105978432021-09-03 17:00:0715 days 12 hrs ago0xbd000f4cecf87c86c754f9f462be0c678c6ea3c4 IN  bDollar: Treasury0 BNB0.00615522
0x5a48f79739057e27d1b18c76eb56b78fefd8da17fd8348e534e35bd1ac2721daAllocate Seignio...105966912021-09-03 16:00:0515 days 13 hrs ago0xbd000f4cecf87c86c754f9f462be0c678c6ea3c4 IN  bDollar: Treasury0 BNB0.00615522
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x7ba1d6227d07770129b8f1833b37c76e3ccb01250b6db43303bfdc14e8508eb054713122021-03-07 11:58:33195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0x7ba1d6227d07770129b8f1833b37c76e3ccb01250b6db43303bfdc14e8508eb054713122021-03-07 11:58:33195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0x7ba1d6227d07770129b8f1833b37c76e3ccb01250b6db43303bfdc14e8508eb054713122021-03-07 11:58:33195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0x7ba1d6227d07770129b8f1833b37c76e3ccb01250b6db43303bfdc14e8508eb054713122021-03-07 11:58:33195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0x1266b5512d11da2b8f36f03b22c4b9ea7c68ce1b0f32ba5a54ea327e99df635754712962021-03-07 11:57:45195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0x1266b5512d11da2b8f36f03b22c4b9ea7c68ce1b0f32ba5a54ea327e99df635754712962021-03-07 11:57:45195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0x489ccc6740b274db5d768d1628653236745e2de4bf629047daffa2f94ba80fb654712732021-03-07 11:56:36195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0x489ccc6740b274db5d768d1628653236745e2de4bf629047daffa2f94ba80fb654712732021-03-07 11:56:36195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0x68933b8c9984622805c4ae608376d97da740c5767c331f01c3c551eb0be1652a54712692021-03-07 11:56:24195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0x68933b8c9984622805c4ae608376d97da740c5767c331f01c3c551eb0be1652a54712692021-03-07 11:56:24195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0xe32f344978a079b5c6641b2e34c9387db622e010e57b1d969586fe463f051c6e54712672021-03-07 11:56:18195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0xe32f344978a079b5c6641b2e34c9387db622e010e57b1d969586fe463f051c6e54712672021-03-07 11:56:18195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0xb76bc65acaa13dbad164bdeceb08ac37283355a844cba857717f80d3980a86c354712532021-03-07 11:55:36195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0xb76bc65acaa13dbad164bdeceb08ac37283355a844cba857717f80d3980a86c354712532021-03-07 11:55:36195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0xc2b34262e957d29d219d2bef2f6322e574d1c2f058d622c95647bd9e7b72bd7954712432021-03-07 11:55:06195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0xc2b34262e957d29d219d2bef2f6322e574d1c2f058d622c95647bd9e7b72bd7954712432021-03-07 11:55:06195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0x29414a6bb8d103138fa79c76cc2cf497256d7be56d7f55aecd341c93ce040b3254712402021-03-07 11:54:57195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0x29414a6bb8d103138fa79c76cc2cf497256d7be56d7f55aecd341c93ce040b3254712402021-03-07 11:54:57195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0xcc6cadbd4553c5613e2b1ab451e6faad4388523ab438b7fd5ae3417e2f5430fc54712082021-03-07 11:53:21195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0xcc6cadbd4553c5613e2b1ab451e6faad4388523ab438b7fd5ae3417e2f5430fc54712082021-03-07 11:53:21195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0xbabc8eb0ebb9490f43e7be71ea23e8f1751f382965749ea466e74e343d8507fe54711902021-03-07 11:52:27195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0xbabc8eb0ebb9490f43e7be71ea23e8f1751f382965749ea466e74e343d8507fe54711902021-03-07 11:52:27195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0x3e959e2aeedd3e607325a9aefe75e964ebca7a65a13dc9c6b9311b0923c8356254711892021-03-07 11:52:24195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
0x3e959e2aeedd3e607325a9aefe75e964ebca7a65a13dc9c6b9311b0923c8356254711892021-03-07 11:52:24195 days 17 hrs ago bDollar: Boardroom bDollar: Treasury0 BNB
0x3e959e2aeedd3e607325a9aefe75e964ebca7a65a13dc9c6b9311b0923c8356254711892021-03-07 11:52:24195 days 17 hrs ago bDollar: Treasury 0x636353773f8f199a4fb521bd5c0b1d36bfd1985d0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

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 Security Audit

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

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

000000000000000000000000d55373b43ae205861c364306103c7e25125ab8e1000000000000000000000000d4a31c617a10ba894ec18307802ab1dded8f258300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _logic (address): 0xd55373b43ae205861c364306103c7e25125ab8e1
Arg [1] : _admin (address): 0xd4a31c617a10ba894ec18307802ab1dded8f2583
Arg [2] : _data (bytes): 0x

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000d55373b43ae205861c364306103c7e25125ab8e1
Arg [1] : 000000000000000000000000d4a31c617a10ba894ec18307802ab1dded8f2583
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000


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.