Contract 0x89c527764f03bcb7dc469707b23b79c1d7beb780 5

 

Contract Overview

Orbit: Bridge
Balance:
16,085.941363958410232558 BNB

BNB Value:
$6,186,009.61 (@ $384.56/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xb9bbfe97cb36c1f14bcacb3d2bc6f4fb2e10611a882041aebd3eed2ad2f02ba9Deposit110732312021-09-20 7:39:508 mins ago0xa84b812d0f4d680006f77e4d9e8adc79497ad303 IN  Orbit: Bridge0.02 BNB0.000230375
0x74a7c7a9573deaa79c90f0b99eacd0ca4b81d46035c18af5acf40dc3879f52b9Deposit110732202021-09-20 7:39:179 mins ago0xc136eda69a98a5ce7156c336c277a8afafcc5c11 IN  Orbit: Bridge0.214 BNB0.000230435
0x0d80a2585f7422afaeb9498fcb50fa82eeec39cbcc430972d8408067fedc3ce2Withdraw110732192021-09-20 7:39:149 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.002772288
0x127bdb6d1bff3f8d4597c4d7dcacebb47097107b848045a0001ffa1109bfe4e1Withdraw110731772021-09-20 7:37:0811 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.002773152
0xde019ad399b0ea8d2eff1124073de020220bede3c552d4b18b76b3c6ee80055eWithdraw110731152021-09-20 7:34:0214 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0025573248
0x3c983a0f7f52ea9dab206a9e90ad7bbbc90efba556f1ce443cb9dad73cf49fdeDeposit110730312021-09-20 7:29:5018 mins ago0x00c0760336855d069cb09f0ee7857464bab5eb30 IN  Orbit: Bridge0.51 BNB0.000230375
0x0031f60fc43214e3db6e371e73cc058ce194f1854b4e1a762ecebf208958f7b1Deposit110728792021-09-20 7:22:1426 mins ago0x9a33f1cd89dcba14f4d69e803097a79aff07675b IN  Orbit: Bridge0.026416 BNB0.000230495
0xab1517ba006eadcb432085cc6a69d04c20bbcae44dce7eefd3e722ececb687f5Deposit110728142021-09-20 7:18:5929 mins ago0x2846916dada83119cb50850330a80ac52af6d3a6 IN  Orbit: Bridge0.0328 BNB0.000230435
0x2445f7ba7df233ef6fe0f18d7369a97d6d451fcb6ecfeda3de6f6c5ae2210176Withdraw110727932021-09-20 7:17:5630 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0027734976
0x90854eab97b90c5f5971f9af277bc959a8e19945d0b913dd4cae6f11d77b297aDeposit110727922021-09-20 7:17:5330 mins ago0x45314ef36f3a5930933597425b7b78a6269b41b4 IN  Orbit: Bridge0.06071 BNB0.000230435
0xde6119552c437af942de9b80c6e5c40d3b37fddce7bf0d32fbae3f2ab4366357Withdraw110727012021-09-20 7:13:2035 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.002772288
0xba3c30fc2c3cc802d74aff26c825d92c8c8b8494aadd16f2837090039d28ee8fWithdraw110725592021-09-20 7:06:1442 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.00241488
0xf038789a437c479159e634d041226e2a83df67467773fb508d25b2cdc2be27f1Withdraw110725482021-09-20 7:05:4143 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0025573248
0xd1fbd9ee3c5251746d67eb9ccc118932e9081331c2b28bb44583d06bd10b3efcDeposit Token110725142021-09-20 7:03:5944 mins ago0x9fdbea8df57182bf4cfa0d79fe5c64f5bb4dd23b IN  Orbit: Bridge0 BNB0.00037461
0x026ad19cdaee465043c882ae4e3da461bb37d655ce145802633356c15a17c6cdWithdraw110725062021-09-20 7:03:3545 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0027729792
0x8dbbda53ce2a292eebe26c5c2fcfa95dc41d56611346245b9b565fcb619fdcefWithdraw110724942021-09-20 7:02:5945 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0025564608
0x523d2d60ec7ef9cadc608f764f2dc86899dec9dbe3c1d1fb048962489cc7c24fDeposit110723302021-09-20 6:54:4554 mins ago0xef829edc15ff4bc227c650255171f46ec42cebc1 IN  Orbit: Bridge0.06597 BNB0.000230435
0x76d83ee0822c6154154d3745963017ad2d31704951759ae7ad84cb701d8771fdWithdraw110722232021-09-20 6:49:2459 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0024145344
0x916cae628e1827d81cacc7d64887cf41f02490bb997511185661a3c85e12552aWithdraw110721612021-09-20 6:46:181 hr 2 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.002773152
0x17474575a1e9bfd00aab029b52226c866c00983c0b96c5a3af9cec34603085eaWithdraw110721392021-09-20 6:45:121 hr 3 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0027729792
0x333af567235a84280b90d149b999df4c805b1c81829939fc2b048918201e0a40Withdraw110721372021-09-20 6:45:061 hr 3 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0025568064
0x0f1ddf43eb71d4a30304ab2001a4e4cfef3d0267fe39379db9faf5a392eefa9aWithdraw110721252021-09-20 6:44:301 hr 4 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.002773152
0xfb36a19407467bd775f278b193c6719afa83db18b74e5b429f857337a5c7b0ebWithdraw110721242021-09-20 6:44:271 hr 4 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.0025569792
0x2128442da947ea6807962869541ba1a6b338eef881c0ea2d8c182f30b1556cc7Withdraw110720622021-09-20 6:41:211 hr 7 mins ago0xcaa6b09c646705ca29e6ac2ec98afa3682771f53 IN  Orbit: Bridge0 BNB0.00241488
0x15f32885feb2cc3db6dd5f4c3b2e75887d0cc8041a4f885dadba4d64ee3f8445Deposit Token110720542021-09-20 6:40:571 hr 7 mins ago0x0792d2ff283f5671f2afc987c2235b790eb12f96 IN  Orbit: Bridge0 BNB0.00037535
[ Download CSV Export 

OVERVIEW

The Orbit Bridge serves to connect multiple blockchains as a bridge service. This particular smart contract handles and escrows AUTO (bep-20) tokens and mints a corresponding amount of cross-chain AUTO tokens on the other chains such as Polygon, Klaytn & HECO.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xba3c30fc2c3cc802d74aff26c825d92c8c8b8494aadd16f2837090039d28ee8f110725592021-09-20 7:06:1442 mins ago Orbit: Bridge0x7414b1f140d35c73cf39d052ff0aa3b68164fc3629.97 BNB
0x76d83ee0822c6154154d3745963017ad2d31704951759ae7ad84cb701d8771fd110722232021-09-20 6:49:2459 mins ago Orbit: Bridge0x1c17057a534c6aedd0f3294a6c37804447e200f50.845130203597486867 BNB
0x2128442da947ea6807962869541ba1a6b338eef881c0ea2d8c182f30b1556cc7110720622021-09-20 6:41:211 hr 7 mins ago Orbit: Bridge0xefa1a9c35479b36d8bf2a7aafff01e173ff478730.155844 BNB
0x26885b634bb221934410c69ea08e5c9a3baa810c8d4b50d7a024ee67666766b8110713942021-09-20 6:07:571 hr 40 mins ago Orbit: Bridge0x0ab1d38754e9a3b1253c909dd82111957a6352520.559268172 BNB
0x0129dcd69cf920623989c1386ad1b3afebd69c8f294cbbf1d11def6740018055110705982021-09-20 5:28:092 hrs 20 mins ago Orbit: Bridge0x1a008f0267bc58a6b5b50a7ff893f2f3a0322def0.3974022 BNB
0xb88c5b5f35480c9e792bd895a6f30fab40556a8bbbb7e488402fb0738297a10d110702662021-09-20 5:11:332 hrs 37 mins ago Orbit: Bridge0xb74129aa2da27cbfd6e159305fdd7fcd792030cd0.058941 BNB
0xd99f669ec704d1954082e3518c580b30ab024af680a88b353edbc9d33c12af69110702352021-09-20 5:10:002 hrs 38 mins ago Orbit: Bridge0x5a3815a38ae2e1e30aed006bcd7807c47a04e63e1.038253707 BNB
0x8fdd852f237de617b2bd465f009c03188b184b024dd4023e0b48ebfedfef98dd110700932021-09-20 5:02:542 hrs 45 mins ago Orbit: Bridge0x49d4c06b6166ec26a5915d025f3ab63aedf9df290.992882124 BNB
0xf55c4f80928e19b5f39efdfc596a0f520be9350bf49787ac2d6796a2b1b517bb110699212021-09-20 4:54:182 hrs 54 mins ago Orbit: Bridge0xe33c6f592a9c2963e04821a0b77d646e8dc3b4e40.096088815 BNB
0xd9b1b35e31eee90bbcbf3f28fe67a37553ef383cb231ebd7d3e7f3027f1e82c5110698692021-09-20 4:51:422 hrs 57 mins ago Orbit: Bridge0x2787699aec41a5e7ee27bea2eeed9c234d8a7d1a18.411297162940720218 BNB
0xcf7c81fb3ad010fdceaecc21a27e27deda65d6490abb87f8fb0bda6240f75b46110696072021-09-20 4:38:363 hrs 10 mins ago Orbit: Bridge0xcb88da7b7607caee5bf30e407b3ee41a4cab9fd40.536275256286944166 BNB
0xece464c852be99b2b5163fae95f955a854a3127da85c0a05787e52385c00be6d110691152021-09-20 4:14:003 hrs 34 mins ago Orbit: Bridge0xce1bae9d5519995c87cda24bc53975c5d7c464817.779213 BNB
0xe66dab533bbec73829de0d03f108ccc46d6d117bc082424bdc3fa7c36826b749110681232021-09-20 3:24:244 hrs 24 mins ago Orbit: Bridge0x7414b1f140d35c73cf39d052ff0aa3b68164fc3629.97 BNB
0xfd5be9867aafe18b65c71c210ac385784806085322f0ab8baf3273583d1e4b02110678982021-09-20 3:13:094 hrs 35 mins ago Orbit: Bridge0x7414b1f140d35c73cf39d052ff0aa3b68164fc3629.97 BNB
0x8be3f94a550363b5fc3bed93f5b0fa301a90b91b8021e1a5d0b074a4decd3d5c110675162021-09-20 2:54:024 hrs 54 mins ago Orbit: Bridge0x3c0062c0b91c3c3fc824193bdc867f275f57b81c0.480398121 BNB
0xd2fb8cbdc3ca191ad2e32fb4fd1bf258088419bcddb6874667bc3359090c33f2110660942021-09-20 1:42:566 hrs 5 mins ago Orbit: Bridge0x7414b1f140d35c73cf39d052ff0aa3b68164fc3629.97 BNB
0x8f38727b5a0d98c3834c49f2d72a9a575d10b3a817474c54267b92d49730860d110660832021-09-20 1:42:236 hrs 6 mins ago Orbit: Bridge0xd124bf5e9c1104ed4f97ac88f9b319a3775dcf0d3.668735592 BNB
0xc71f5eb77853e654184718ab699f0c4e7c8d9932d1cfa8b978d0306715382840110652012021-09-20 0:58:176 hrs 50 mins ago Orbit: Bridge0x2787699aec41a5e7ee27bea2eeed9c234d8a7d1a1.635967276677907003 BNB
0x52689027c281cd14750562237aefdf8dc65a7a1b86644fb76744866df3b195c7110648342021-09-20 0:39:567 hrs 8 mins ago Orbit: Bridge0x2787699aec41a5e7ee27bea2eeed9c234d8a7d1a1.850556421139975128 BNB
0xa5fa02787be44b3e35dc9701e79d235266e4cfec6e7021c83165adab2b07ea87110641762021-09-20 0:07:027 hrs 41 mins ago Orbit: Bridge0x55278e4dd44aa86be819ae52509c64f268fa05070.099610218374789452 BNB
0x95fa74f34c0c7709906eb6a5caa5af9cb9a02459aba03e038ab6e46c9501ddbf110635462021-09-19 23:35:308 hrs 13 mins ago Orbit: Bridge0xefd7393f5b1613a3cae180bfb91bcfb8f8a676fe6.508806678 BNB
0x4fdf9658833df51225ce8dca6bbaae9fa005908e88c77eb598a88e3d0b917247110633242021-09-19 23:24:248 hrs 24 mins ago Orbit: Bridge0xb3501cf736fece08a8ee7b3aa9517e18d372356c29.302182887953914369 BNB
0x2740102199aa390ba25f9723456c0e1464337ccf1450f3f8c3c28fb846504a5f110629522021-09-19 23:05:488 hrs 42 mins ago Orbit: Bridge0x93f0bd10660562d303180f3c4338e809bbdadc510.227688429928743477 BNB
0xfdf08865989f63713928d9448a0f56de21303f679426e3876a573ae7e28255ea110598672021-09-19 20:31:3311 hrs 17 mins ago Orbit: Bridge0x96b02b1b7bda19fe2647353335ba3e7a98fe58cf11.322423243 BNB
0x29740a2a3474c80f33eee25ce3380dc0a67efc14930e0fc2ef85b1a739cfe775110580512021-09-19 19:00:4412 hrs 48 mins ago Orbit: Bridge0x1d716ca490ded012b1e9bd154a3c06dc91058ed00.3996 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vault

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at BscScan.com on 2021-05-14
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

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

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

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

/**
 * @dev This contract implements a proxy that is upgradeable by an admin.
 *
 * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
 * clashing], which can potentially be used in an attack, this contract uses the
 * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
 * things that go hand in hand:
 *
 * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
 * that call matches one of the admin functions exposed by the proxy itself.
 * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
 * implementation. If the admin tries to call a function on the implementation it will fail with an error that says
 * "admin cannot fallback to proxy target".
 *
 * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing
 * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due
 * to sudden errors when trying to call a function from the proxy implementation.
 *
 * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,
 * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.
 */
contract TransparentUpgradeableProxy is UpgradeableProxy {
    /**
     * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
     * optionally initialized with `_data` as explained in {UpgradeableProxy-constructor}.
     */
    constructor(address _logic, address admin_, bytes memory _data) public payable UpgradeableProxy(_logic, _data) {
        assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1));
        _setAdmin(admin_);
    }

    /**
     * @dev Emitted when the admin account has changed.
     */
    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 private constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin.
     */
    modifier ifAdmin() {
        if (msg.sender == _admin()) {
            _;
        } else {
            _fallback();
        }
    }

    /**
     * @dev Returns the current admin.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.
     *
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
     */
    function admin() external ifAdmin returns (address admin_) {
        admin_ = _admin();
    }

    /**
     * @dev Returns the current implementation.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.
     *
     * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
     * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
     */
    function implementation() external ifAdmin returns (address implementation_) {
        implementation_ = _implementation();
    }

    /**
     * @dev Changes the admin of the proxy.
     *
     * Emits an {AdminChanged} event.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.
     */
    function changeAdmin(address newAdmin) external virtual ifAdmin {
        require(newAdmin != address(0), "TransparentUpgradeableProxy: new admin is the zero address");
        emit AdminChanged(_admin(), newAdmin);
        _setAdmin(newAdmin);
    }

    /**
     * @dev Upgrade the implementation of the proxy.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.
     */
    function upgradeTo(address newImplementation) external virtual ifAdmin {
        _upgradeTo(newImplementation);
    }

    /**
     * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified
     * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the
     * proxied contract.
     *
     * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.
     */
    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable virtual ifAdmin {
        _upgradeTo(newImplementation);
        Address.functionDelegateCall(newImplementation, data);
    }

    /**
     * @dev Returns the current admin.
     */
    function _admin() internal view virtual returns (address adm) {
        bytes32 slot = _ADMIN_SLOT;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            adm := sload(slot)
        }
    }

    /**
     * @dev Stores a new address in the EIP1967 admin slot.
     */
    function _setAdmin(address newAdmin) private {
        bytes32 slot = _ADMIN_SLOT;

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

    /**
     * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.
     */
    function _beforeFallback() internal virtual override {
        require(msg.sender != _admin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");
        super._beforeFallback();
    }
}

contract Vault is TransparentUpgradeableProxy {
    constructor(address _logic, address admin_, bytes memory _data) public TransparentUpgradeableProxy(_logic, admin_, _data){ }

    function getAdmin() public view returns (address) {
        return _admin();
    }
    
    function getImplementation() public view returns (address) {
        return _implementation();
    }
}

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":"nonpayable","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":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"implementation_","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"}]

60806040523480156200001157600080fd5b5060405162000cfb38038062000cfb833981810160405260608110156200003757600080fd5b815160208301516040808501805191519395929483019291846401000000008211156200006357600080fd5b9083019060208201858111156200007957600080fd5b82516401000000008111828201881017156200009457600080fd5b82525081516020918201929091019080838360005b83811015620000c3578181015183820152602001620000a9565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052508491508390508282816200010a826200014b565b8051156200012b57620001298282620001c260201b620003ed1760201c565b505b50620001349050565b6200013f82620001f1565b505050505050620003d3565b62000161816200021560201b620004191760201c565b6200019e5760405162461bcd60e51b815260040180806020018281038252603681526020018062000c9f6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6060620001ea838360405180606001604052806027815260200162000c78602791396200021b565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b6060620002288462000215565b620002655760405162461bcd60e51b815260040180806020018281038252602681526020018062000cd56026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b60208310620002a55780518252601f19909201916020918201910162000284565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811462000307576040519150601f19603f3d011682016040523d82523d6000602084013e6200030c565b606091505b5090925090506200031f82828662000329565b9695505050505050565b606083156200033a575081620001ea565b8251156200034b5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620003975781810151838201526020016200037d565b50505050905090810190601f168015620003c55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b61089580620003e36000396000f3fe6080604052600436106100745760003560e01c80636e9960c31161004e5780636e9960c31461016f5780638f28397014610184578063aaf10f42146101b7578063f851a440146101cc57610083565b80633659cfe61461008b5780634f1ef286146100be5780635c60da1b1461013e57610083565b36610083576100816101e1565b005b6100816101e1565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b03166101fb565b610081600480360360408110156100d457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ff57600080fd5b82018360208201111561011157600080fd5b8035906020019184600183028401116401000000008311171561013357600080fd5b509092509050610235565b34801561014a57600080fd5b506101536102b2565b604080516001600160a01b039092168252519081900360200190f35b34801561017b57600080fd5b506101536102ef565b34801561019057600080fd5b50610081600480360360208110156101a757600080fd5b50356001600160a01b03166102fe565b3480156101c357600080fd5b506101536103b8565b3480156101d857600080fd5b506101536103c2565b6101e961041f565b6101f96101f461047f565b6104a4565b565b6102036104c8565b6001600160a01b0316336001600160a01b0316141561022a57610225816104ed565b610232565b6102326101e1565b50565b61023d6104c8565b6001600160a01b0316336001600160a01b031614156102a55761025f836104ed565b61029f8383838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103ed92505050565b506102ad565b6102ad6101e1565b505050565b60006102bc6104c8565b6001600160a01b0316336001600160a01b031614156102e4576102dd61047f565b90506102ec565b6102ec6101e1565b90565b60006102f96104c8565b905090565b6103066104c8565b6001600160a01b0316336001600160a01b0316141561022a576001600160a01b0381166103645760405162461bcd60e51b815260040180806020018281038252603a815260200180610761603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61038d6104c8565b604080516001600160a01b03928316815291841660208301528051918290030190a16102258161052d565b60006102f961047f565b60006103cc6104c8565b6001600160a01b0316336001600160a01b031614156102e4576102dd6104c8565b6060610412838360405180606001604052806027815260200161079b60279139610551565b9392505050565b3b151590565b6104276104c8565b6001600160a01b0316336001600160a01b031614156104775760405162461bcd60e51b815260040180806020018281038252604281526020018061081e6042913960600191505060405180910390fd5b6101f96101f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156104c3573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6104f681610654565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b606061055c84610419565b6105975760405162461bcd60e51b81526004018080602001828103825260268152602001806107f86026913960400191505060405180910390fd5b60006060856001600160a01b0316856040518082805190602001908083835b602083106105d55780518252601f1990920191602091820191016105b6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610635576040519150601f19603f3d011682016040523d82523d6000602084013e61063a565b606091505b509150915061064a8282866106bc565b9695505050505050565b61065d81610419565b6106985760405162461bcd60e51b81526004018080602001828103825260368152602001806107c26036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b606083156106cb575081610412565b8251156106db5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561072557818101518382015260200161070d565b50505050905090810190601f1680156107525780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f2061646472657373416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a26469706673582212208e5c5ce997720326225f15910d5706bd5a2552a438347090da0e9fa293de60c264736f6c634300060c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65645570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000937936ff183102dfb1609d5dbfbc50201f92c7440000000000000000000000008d5dceab358979101dc96a62e08296269f6bd1bd00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000937936ff183102dfb1609d5dbfbc50201f92c7440000000000000000000000008d5dceab358979101dc96a62e08296269f6bd1bd00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _logic (address): 0x937936ff183102dfb1609d5dbfbc50201f92c744
Arg [1] : admin_ (address): 0x8d5dceab358979101dc96a62e08296269f6bd1bd
Arg [2] : _data (bytes): 0x

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000937936ff183102dfb1609d5dbfbc50201f92c744
Arg [1] : 0000000000000000000000008d5dceab358979101dc96a62e08296269f6bd1bd
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

20197:386:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2904:11;:9;:11::i;:::-;20197:386;;2672:11;:9;:11::i;18538:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18538:119:0;-1:-1:-1;;;;;18538:119:0;;:::i;19042:219::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19042:219:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19042:219:0;;-1:-1:-1;19042:219:0;-1:-1:-1;19042:219:0;:::i;17772:131::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17772:131:0;;;;;;;;;;;;;;20382:84;;;;;;;;;;;;;:::i;18117:254::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18117:254:0;-1:-1:-1;;;;;18117:254:0;;:::i;20478:102::-;;;;;;;;;;;;;:::i;17206:95::-;;;;;;;;;;;;;:::i;2308:113::-;2357:17;:15;:17::i;:::-;2385:28;2395:17;:15;:17::i;:::-;2385:9;:28::i;:::-;2308:113::o;18538:119::-;16664:8;:6;:8::i;:::-;-1:-1:-1;;;;;16650:22:0;:10;-1:-1:-1;;;;;16650:22:0;;16646:100;;;18620:29:::1;18631:17;18620:10;:29::i;:::-;16646:100:::0;;;16723:11;:9;:11::i;:::-;18538:119;:::o;19042:219::-;16664:8;:6;:8::i;:::-;-1:-1:-1;;;;;16650:22:0;:10;-1:-1:-1;;;;;16650:22:0;;16646:100;;;19160:29:::1;19171:17;19160:10;:29::i;:::-;19200:53;19229:17;19248:4;;19200:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;19200:28:0::1;::::0;-1:-1:-1;;;19200:53:0:i:1;:::-;;16646:100:::0;;;16723:11;:9;:11::i;:::-;19042:219;;;:::o;17772:131::-;17824:23;16664:8;:6;:8::i;:::-;-1:-1:-1;;;;;16650:22:0;:10;-1:-1:-1;;;;;16650:22:0;;16646:100;;;17878:17:::1;:15;:17::i;:::-;17860:35;;16646:100:::0;;;16723:11;:9;:11::i;:::-;17772:131;:::o;20382:84::-;20423:7;20450:8;:6;:8::i;:::-;20443:15;;20382:84;:::o;18117:254::-;16664:8;:6;:8::i;:::-;-1:-1:-1;;;;;16650:22:0;:10;-1:-1:-1;;;;;16650:22:0;;16646:100;;;-1:-1:-1;;;;;18200:22:0;::::1;18192:93;;;;-1:-1:-1::0;;;18192:93:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18301:32;18314:8;:6;:8::i;:::-;18301:32;::::0;;-1:-1:-1;;;;;18301:32:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;18344:19;18354:8;18344:9;:19::i;20478:102::-:0;20528:7;20555:17;:15;:17::i;17206:95::-;17249:14;16664:8;:6;:8::i;:::-;-1:-1:-1;;;;;16650:22:0;:10;-1:-1:-1;;;;;16650:22:0;;16646:100;;;17285:8:::1;:6;:8::i;9637:200::-:0;9720:12;9752:77;9773:6;9781:4;9752:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;9745:84;9637:200;-1:-1:-1;;;9637:200:0:o;3952:422::-;4319:20;4358:8;;;3952:422::o;19983:207::-;20069:8;:6;:8::i;:::-;-1:-1:-1;;;;;20055:22:0;:10;-1:-1:-1;;;;;20055:22:0;;;20047:101;;;;-1:-1:-1;;;20047:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20159:23;:21;:23::i;13002:256::-;12852:66;13229:11;;13206:45::o;901:915::-;1301:14;1298:1;1295;1282:34;1519:1;1516;1500:14;1497:1;1481:14;1474:5;1461:60;1598:16;1595:1;1592;1577:38;1638:6;1707:38;;;;1779:16;1776:1;1769:27;1707:38;1726:16;1723:1;1716:27;19327:227;16403:66;19525:11;;19503:44::o;13384:163::-;13459:37;13478:17;13459:18;:37::i;:::-;13512:27;;-1:-1:-1;;;;;13512:27:0;;;;;;;;13384:163;:::o;19641:216::-;16403:66;19817:22;19802:48::o;10031:423::-;10142:12;10175:18;10186:6;10175:10;:18::i;:::-;10167:69;;;;-1:-1:-1;;;10167:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10310:12;10324:23;10351:6;-1:-1:-1;;;;;10351:19:0;10371:4;10351:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10351:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10309:67;;;;10394:52;10412:7;10421:10;10433:12;10394:17;:52::i;:::-;10387:59;10031:423;-1:-1:-1;;;;;;10031:423:0:o;13643:369::-;13725:37;13744:17;13725:18;:37::i;:::-;13717:104;;;;-1:-1:-1;;;13717:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12852:66;13963:31;13948:57::o;10462:742::-;10577:12;10606:7;10602:595;;;-1:-1:-1;10637:10:0;10630:17;;10602:595;10751:17;;:21;10747:439;;11014:10;11008:17;11075:15;11062:10;11058:2;11054:19;11047:44;10962:148;11157:12;11150:20;;-1:-1:-1;;;11150:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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