Contract 0xB62d5cfE67B69F9bF045a2f7Ef923A384D533154

Contract Overview

Balance:
0 Ether

Token:
Txn Hash
Method
Block
From
To
Value
0x2c8307d41e5da00b509784bfee1ec35e0bc3213474efe2561145d78a16d0f609Deposit65434112020-05-24 7:50:17771 days 16 hrs ago0x56788e08c97d2677daded801e69bfe5d33ddacd5 IN  0xb62d5cfe67b69f9bf045a2f7ef923a384d5331540 Ether0.00022651
0x1faec9ca44576ad8b1945eb7514cd310d816e804a83754d96606d455098b1b6bDeposit64517092020-05-08 9:44:33787 days 14 hrs ago0xeecec8087ffb090ac0a51d3149a28f9f8cb9837e IN  0xb62d5cfe67b69f9bf045a2f7ef923a384d5331540 Ether0.0022587810
0x80692d7e67c9cf2bba1831b9621ebb797ac8066f0947c8903adc310ab80c7bbaDeposit64517052020-05-08 9:43:33787 days 14 hrs ago0xeecec8087ffb090ac0a51d3149a28f9f8cb9837e IN  0xb62d5cfe67b69f9bf045a2f7ef923a384d5331540 Ether0.0027085410
0xdf6058e4b89fec2505ca60ce3e27d569a5ec06cd6a56b9c0fe3e59fe56188caaDeposit64515372020-05-08 9:01:33787 days 15 hrs ago0xeecec8087ffb090ac0a51d3149a28f9f8cb9837e IN  0xb62d5cfe67b69f9bf045a2f7ef923a384d5331540 Ether0.000199721
0x359718fcf7258a9681c134275d24fb36c1b09f6b631395288c6c3320034e9b90Deposit64515252020-05-08 8:58:33787 days 15 hrs ago0xeecec8087ffb090ac0a51d3149a28f9f8cb9837e IN  0xb62d5cfe67b69f9bf045a2f7ef923a384d5331540 Ether0.000200491
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x2c8307d41e5da00b509784bfee1ec35e0bc3213474efe2561145d78a16d0f60965434112020-05-24 7:50:17771 days 16 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf4560e7cb77d8b2d87f9ddce8863b3c56ffa30b80 Ether
0x2c8307d41e5da00b509784bfee1ec35e0bc3213474efe2561145d78a16d0f60965434112020-05-24 7:50:17771 days 16 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
0x2c8307d41e5da00b509784bfee1ec35e0bc3213474efe2561145d78a16d0f60965434112020-05-24 7:50:17771 days 16 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
0x2c8307d41e5da00b509784bfee1ec35e0bc3213474efe2561145d78a16d0f60965434112020-05-24 7:50:17771 days 16 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x94d3013a8700e8b168f66529ad143590cc6b259d0 Ether
0x2c8307d41e5da00b509784bfee1ec35e0bc3213474efe2561145d78a16d0f60965434112020-05-24 7:50:17771 days 16 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf978f03d4a1768215a65ca83114c2f1ed29e33270 Ether
0x1faec9ca44576ad8b1945eb7514cd310d816e804a83754d96606d455098b1b6b64517092020-05-08 9:44:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf4560e7cb77d8b2d87f9ddce8863b3c56ffa30b80 Ether
0x1faec9ca44576ad8b1945eb7514cd310d816e804a83754d96606d455098b1b6b64517092020-05-08 9:44:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
0x1faec9ca44576ad8b1945eb7514cd310d816e804a83754d96606d455098b1b6b64517092020-05-08 9:44:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
0x1faec9ca44576ad8b1945eb7514cd310d816e804a83754d96606d455098b1b6b64517092020-05-08 9:44:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x94d3013a8700e8b168f66529ad143590cc6b259d0 Ether
0x1faec9ca44576ad8b1945eb7514cd310d816e804a83754d96606d455098b1b6b64517092020-05-08 9:44:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf978f03d4a1768215a65ca83114c2f1ed29e33270 Ether
0x80692d7e67c9cf2bba1831b9621ebb797ac8066f0947c8903adc310ab80c7bba64517052020-05-08 9:43:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf4560e7cb77d8b2d87f9ddce8863b3c56ffa30b80 Ether
0x80692d7e67c9cf2bba1831b9621ebb797ac8066f0947c8903adc310ab80c7bba64517052020-05-08 9:43:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
0x80692d7e67c9cf2bba1831b9621ebb797ac8066f0947c8903adc310ab80c7bba64517052020-05-08 9:43:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
0x80692d7e67c9cf2bba1831b9621ebb797ac8066f0947c8903adc310ab80c7bba64517052020-05-08 9:43:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x94d3013a8700e8b168f66529ad143590cc6b259d0 Ether
0x80692d7e67c9cf2bba1831b9621ebb797ac8066f0947c8903adc310ab80c7bba64517052020-05-08 9:43:33787 days 14 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf978f03d4a1768215a65ca83114c2f1ed29e33270 Ether
0x38408983888c80aa0c55b109e569f1b85959abddbb93ccbcbd790716b06b650364516122020-05-08 9:20:18787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf4560e7cb77d8b2d87f9ddce8863b3c56ffa30b80 Ether
0x38408983888c80aa0c55b109e569f1b85959abddbb93ccbcbd790716b06b650364516122020-05-08 9:20:18787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x6142214d83670226872d51e935fb57bec8832a600 Ether
0x38408983888c80aa0c55b109e569f1b85959abddbb93ccbcbd790716b06b650364516122020-05-08 9:20:18787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x6142214d83670226872d51e935fb57bec8832a600 Ether
0x38408983888c80aa0c55b109e569f1b85959abddbb93ccbcbd790716b06b650364516122020-05-08 9:20:18787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x94d3013a8700e8b168f66529ad143590cc6b259d0 Ether
0x38408983888c80aa0c55b109e569f1b85959abddbb93ccbcbd790716b06b650364516122020-05-08 9:20:18787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf978f03d4a1768215a65ca83114c2f1ed29e33270 Ether
0x38408983888c80aa0c55b109e569f1b85959abddbb93ccbcbd790716b06b650364516122020-05-08 9:20:18787 days 15 hrs ago 0x39a4d265db942361d92e2b0039cae73ea72a2ff9 0xb62d5cfe67b69f9bf045a2f7ef923a384d5331540 Ether
0xdf6058e4b89fec2505ca60ce3e27d569a5ec06cd6a56b9c0fe3e59fe56188caa64515372020-05-08 9:01:33787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
0xdf6058e4b89fec2505ca60ce3e27d569a5ec06cd6a56b9c0fe3e59fe56188caa64515372020-05-08 9:01:33787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x94d3013a8700e8b168f66529ad143590cc6b259d0 Ether
0xdf6058e4b89fec2505ca60ce3e27d569a5ec06cd6a56b9c0fe3e59fe56188caa64515372020-05-08 9:01:33787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0xf978f03d4a1768215a65ca83114c2f1ed29e33270 Ether
0x359718fcf7258a9681c134275d24fb36c1b09f6b631395288c6c3320034e9b9064515252020-05-08 8:58:33787 days 15 hrs ago 0xb62d5cfe67b69f9bf045a2f7ef923a384d533154 0x133718321fa777472fe1d3ed0d55b0594e6b31d20 Ether
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xab393c75780bf85d2fccad6e4789570390dc9c23

Contract Name:
AppProxyUpgradeable

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-04-08
*/

pragma solidity 0.4.24;
// produced by the Solididy File Flattener (c) David Appleton 2018
// contact : [email protected]
// released under Apache 2.0 licence
// input  /Users/mathew/workspace/aragon-forks/aragonOS/contracts/apps/AppProxyUpgradeable.sol
// flattened :  Wednesday, 08-Apr-20 18:50:16 UTC
interface IACL {
    function initialize(address permissionsCreator) external;

    // TODO: this should be external
    // See https://github.com/ethereum/solidity/issues/4832
    function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);
}

contract KernelAppIds {
    /* Hardcoded constants to save gas
    bytes32 internal constant KERNEL_CORE_APP_ID = apmNamehash("kernel");
    bytes32 internal constant KERNEL_DEFAULT_ACL_APP_ID = apmNamehash("acl");
    bytes32 internal constant KERNEL_DEFAULT_VAULT_APP_ID = apmNamehash("vault");
    */
    bytes32 internal constant KERNEL_CORE_APP_ID = 0x3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c;
    bytes32 internal constant KERNEL_DEFAULT_ACL_APP_ID = 0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a;
    bytes32 internal constant KERNEL_DEFAULT_VAULT_APP_ID = 0x7e852e0fcfce6551c13800f1e7476f982525c2b5277ba14b24339c68416336d1;
}


contract KernelNamespaceConstants {
    /* Hardcoded constants to save gas
    bytes32 internal constant KERNEL_CORE_NAMESPACE = keccak256("core");
    bytes32 internal constant KERNEL_APP_BASES_NAMESPACE = keccak256("base");
    bytes32 internal constant KERNEL_APP_ADDR_NAMESPACE = keccak256("app");
    */
    bytes32 internal constant KERNEL_CORE_NAMESPACE = 0xc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f8;
    bytes32 internal constant KERNEL_APP_BASES_NAMESPACE = 0xf1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f;
    bytes32 internal constant KERNEL_APP_ADDR_NAMESPACE = 0xd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb;
}

library UnstructuredStorage {
    function getStorageBool(bytes32 position) internal view returns (bool data) {
        assembly { data := sload(position) }
    }

    function getStorageAddress(bytes32 position) internal view returns (address data) {
        assembly { data := sload(position) }
    }

    function getStorageBytes32(bytes32 position) internal view returns (bytes32 data) {
        assembly { data := sload(position) }
    }

    function getStorageUint256(bytes32 position) internal view returns (uint256 data) {
        assembly { data := sload(position) }
    }

    function setStorageBool(bytes32 position, bool data) internal {
        assembly { sstore(position, data) }
    }

    function setStorageAddress(bytes32 position, address data) internal {
        assembly { sstore(position, data) }
    }

    function setStorageBytes32(bytes32 position, bytes32 data) internal {
        assembly { sstore(position, data) }
    }

    function setStorageUint256(bytes32 position, uint256 data) internal {
        assembly { sstore(position, data) }
    }
}

interface IVaultRecoverable {
    event RecoverToVault(address indexed vault, address indexed token, uint256 amount);

    function transferToVault(address token) external;

    function allowRecoverability(address token) external view returns (bool);
    function getRecoveryVault() external view returns (address);
}

contract IsContract {
    /*
    * NOTE: this should NEVER be used for authentication
    * (see pitfalls: https://github.com/fergarrui/ethereum-security/tree/master/contracts/extcodesize).
    *
    * This is only intended to be used as a sanity check that an address is actually a contract,
    * RATHER THAN an address not being a contract.
    */
    function isContract(address _target) internal view returns (bool) {
        if (_target == address(0)) {
            return false;
        }

        uint256 size;
        assembly { size := extcodesize(_target) }
        return size > 0;
    }
}

contract ERCProxy {
    uint256 internal constant FORWARDING = 1;
    uint256 internal constant UPGRADEABLE = 2;

    function proxyType() public pure returns (uint256 proxyTypeId);
    function implementation() public view returns (address codeAddr);
}

interface IKernelEvents {
    event SetApp(bytes32 indexed namespace, bytes32 indexed appId, address app);
}


// This should be an interface, but interfaces can't inherit yet :(
contract IKernel is IKernelEvents, IVaultRecoverable {
    function acl() public view returns (IACL);
    function hasPermission(address who, address where, bytes32 what, bytes how) public view returns (bool);

    function setApp(bytes32 namespace, bytes32 appId, address app) public;
    function getApp(bytes32 namespace, bytes32 appId) public view returns (address);
}

contract DelegateProxy is ERCProxy, IsContract {
    uint256 internal constant FWD_GAS_LIMIT = 10000;

    /**
    * @dev Performs a delegatecall and returns whatever the delegatecall returned (entire context execution will return!)
    * @param _dst Destination address to perform the delegatecall
    * @param _calldata Calldata for the delegatecall
    */
    function delegatedFwd(address _dst, bytes _calldata) internal {
        require(isContract(_dst));
        uint256 fwdGasLimit = FWD_GAS_LIMIT;

        assembly {
            let result := delegatecall(sub(gas, fwdGasLimit), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0)
            let size := returndatasize
            let ptr := mload(0x40)
            returndatacopy(ptr, 0, size)

            // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas.
            // if the call returned error data, forward it
            switch result case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }
}

contract DepositableStorage {
    using UnstructuredStorage for bytes32;

    // keccak256("aragonOS.depositableStorage.depositable")
    bytes32 internal constant DEPOSITABLE_POSITION = 0x665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea;

    function isDepositable() public view returns (bool) {
        return DEPOSITABLE_POSITION.getStorageBool();
    }

    function setDepositable(bool _depositable) internal {
        DEPOSITABLE_POSITION.setStorageBool(_depositable);
    }
}

contract AppStorage {
    using UnstructuredStorage for bytes32;

    /* Hardcoded constants to save gas
    bytes32 internal constant KERNEL_POSITION = keccak256("aragonOS.appStorage.kernel");
    bytes32 internal constant APP_ID_POSITION = keccak256("aragonOS.appStorage.appId");
    */
    bytes32 internal constant KERNEL_POSITION = 0x4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b;
    bytes32 internal constant APP_ID_POSITION = 0xd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b;

    function kernel() public view returns (IKernel) {
        return IKernel(KERNEL_POSITION.getStorageAddress());
    }

    function appId() public view returns (bytes32) {
        return APP_ID_POSITION.getStorageBytes32();
    }

    function setKernel(IKernel _kernel) internal {
        KERNEL_POSITION.setStorageAddress(address(_kernel));
    }

    function setAppId(bytes32 _appId) internal {
        APP_ID_POSITION.setStorageBytes32(_appId);
    }
}

contract DepositableDelegateProxy is DepositableStorage, DelegateProxy {
    event ProxyDeposit(address sender, uint256 value);

    function () external payable {
        uint256 forwardGasThreshold = FWD_GAS_LIMIT;
        bytes32 isDepositablePosition = DEPOSITABLE_POSITION;

        // Optimized assembly implementation to prevent EIP-1884 from breaking deposits, reference code in Solidity:
        // https://github.com/aragon/aragonOS/blob/v4.2.1/contracts/common/DepositableDelegateProxy.sol#L10-L20
        assembly {
            // Continue only if the gas left is lower than the threshold for forwarding to the implementation code,
            // otherwise continue outside of the assembly block.
            if lt(gas, forwardGasThreshold) {
                // Only accept the deposit and emit an event if all of the following are true:
                // the proxy accepts deposits (isDepositable), msg.data.length == 0, and msg.value > 0
                if and(and(sload(isDepositablePosition), iszero(calldatasize)), gt(callvalue, 0)) {
                    // Equivalent Solidity code for emitting the event:
                    // emit ProxyDeposit(msg.sender, msg.value);

                    let logData := mload(0x40) // free memory pointer
                    mstore(logData, caller) // add 'msg.sender' to the log data (first event param)
                    mstore(add(logData, 0x20), callvalue) // add 'msg.value' to the log data (second event param)

                    // Emit an event with one topic to identify the event: keccak256('ProxyDeposit(address,uint256)') = 0x15ee...dee1
                    log1(logData, 0x40, 0x15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1)

                    stop() // Stop. Exits execution context
                }

                // If any of above checks failed, revert the execution (if ETH was sent, it is returned to the sender)
                revert(0, 0)
            }
        }

        address target = implementation();
        delegatedFwd(target, msg.data);
    }
}

contract AppProxyBase is AppStorage, DepositableDelegateProxy, KernelNamespaceConstants {
    /**
    * @dev Initialize AppProxy
    * @param _kernel Reference to organization kernel for the app
    * @param _appId Identifier for app
    * @param _initializePayload Payload for call to be made after setup to initialize
    */
    constructor(IKernel _kernel, bytes32 _appId, bytes _initializePayload) public {
        setKernel(_kernel);
        setAppId(_appId);

        // Implicit check that kernel is actually a Kernel
        // The EVM doesn't actually provide a way for us to make sure, but we can force a revert to
        // occur if the kernel is set to 0x0 or a non-code address when we try to call a method on
        // it.
        address appCode = getAppBase(_appId);

        // If initialize payload is provided, it will be executed
        if (_initializePayload.length > 0) {
            require(isContract(appCode));
            // Cannot make delegatecall as a delegateproxy.delegatedFwd as it
            // returns ending execution context and halts contract deployment
            require(appCode.delegatecall(_initializePayload));
        }
    }

    function getAppBase(bytes32 _appId) internal view returns (address) {
        return kernel().getApp(KERNEL_APP_BASES_NAMESPACE, _appId);
    }
}

contract AppProxyUpgradeable is AppProxyBase {
    /**
    * @dev Initialize AppProxyUpgradeable (makes it an upgradeable Aragon app)
    * @param _kernel Reference to organization kernel for the app
    * @param _appId Identifier for app
    * @param _initializePayload Payload for call to be made after setup to initialize
    */
    constructor(IKernel _kernel, bytes32 _appId, bytes _initializePayload)
        AppProxyBase(_kernel, _appId, _initializePayload)
        public // solium-disable-line visibility-first
    {
        // solium-disable-previous-line no-empty-blocks
    }

    /**
     * @dev ERC897, the address the proxy would delegate calls to
     */
    function implementation() public view returns (address) {
        return getAppBase(appId());
    }

    /**
     * @dev ERC897, whether it is a forwarding (1) or an upgradeable (2) proxy
     */
    function proxyType() public pure returns (uint256 proxyTypeId) {
        return UPGRADEABLE;
    }
}

Contract ABI

[{"constant":true,"inputs":[],"name":"proxyType","outputs":[{"name":"proxyTypeId","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"isDepositable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"appId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kernel","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kernel","type":"address"},{"name":"_appId","type":"bytes32"},{"name":"_initializePayload","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"ProxyDeposit","type":"event"}]

608060405234801561001057600080fd5b506040516106ed3803806106ed8339810160409081528151602083015191830151909201828282600061004b84640100000000610124810204565b61005d8364010000000061014c810204565b61006f83640100000000610183810204565b90506000825111156101185761008d81640100000000610253810204565b151561009857600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100cd5781810151838201526020016100b5565b50505050905090810190601f1680156100fa5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561011857600080fd5b505050505050506102b3565b6101496000805160206106cd833981519152826401000000006103d761028082021704565b50565b6101497fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b826401000000006103d761028082021704565b6000610196640100000000610284810204565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f6004820152602481018590529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b15801561022157600080fd5b505af1158015610235573d6000803e3d6000fd5b505050506040513d602081101561024b57600080fd5b505192915050565b600080600160a060020a038316151561026f576000915061027a565b823b90506000811191505b50919050565b9055565b60006102aa6000805160206106cd8339815191526401000000006103cf6102af82021704565b905090565b5490565b61040b806102c26000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e3565b9050610126816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101fa945050505050565b505050005b34801561013757600080fd5b5061014061023b565b60408051918252519081900360200190f35b34801561015e57600080fd5b50610167610240565b604080519115158252519081900360200190f35b34801561018757600080fd5b506101906101e3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b5061014061026b565b3480156101da57600080fd5b50610190610296565b60006101f56101f061026b565b6102c1565b905090565b600061020583610395565b151561021057600080fd5b612710905060008083516020850186855a03f43d604051816000823e828015610237578282f35b8282fd5b600290565b60006101f57f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6103cf565b60006101f57fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6103cf565b60006101f57f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6103cf565b60006102cb610296565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561036357600080fd5b505af1158015610377573d6000803e3d6000fd5b505050506040513d602081101561038d57600080fd5b505192915050565b60008073ffffffffffffffffffffffffffffffffffffffff831615156103be57600091506103c9565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a72305820ff3ed81d4538b94eae9970fe3325a7dc8765cfd400c4992d9ac96c2f2eeb289f00294172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b0000000000000000000000007b29bacec9818825f2453ccf1d05f57ae9093ec56b20a3010614eeebf2138ccec99f028a61c811b3b1a3343b6ff635985c75c91f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

10948:1002:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4986:5;6153:66;7665:27;4986:5;8228:3;8225:28;8222:2;;;8551:1;8540:9;8537:16;8521:12;8514:20;8490:21;8484:28;8480:55;8476:78;8473:2;;;8740:4;8734:11;8806:6;8797:7;8790:23;8918:9;8911:4;8902:7;8898:18;8891:37;9163:66;9157:4;9148:7;9143:87;9254:6;8473:2;9462:1;9459;9452:12;8222:2;9519:16;:14;:16::i;:::-;9502:33;;9546:30;9559:6;9567:8;;9546:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9546:12:0;;-1:-1:-1;;;;;9546:30:0:i;:::-;7625:1959;;;10948:1002;11847:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11847:100:0;;;;;;;;;;;;;;;;;;;;6228:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6228:115:0;;;;;;;;;;;;;;;;;;;;;;11640:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11640:101:0;;;;;;;;;;;;;;;;;;;;;;;7140:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7140:108:0;;;;7014:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7014:118:0;;;;11640:101;11687:7;11714:19;11725:7;:5;:7::i;:::-;11714:10;:19::i;:::-;11707:26;;11640:101;:::o;5261:694::-;5370:19;5342:16;5353:4;5342:10;:16::i;:::-;5334:25;;;;;;;;4986:5;5370:35;;5541:1;5538;5526:9;5520:16;5513:4;5502:9;5498:20;5492:4;5478:11;5473:3;5469:21;5456:87;5569:14;5614:4;5608:11;5656:4;5653:1;5648:3;5633:28;5859:6;5866:28;;;;5930:4;5925:3;5918:17;5866:28;5887:4;5882:3;5875:17;11847:100;4172:1;11847:100;:::o;6228:115::-;6274:4;6298:37;6153:66;6298:35;:37::i;7140:108::-;7178:7;7205:35;6939:66;7205:33;:35::i;7014:118::-;7053:7;7088:35;6822:66;7088:33;:35::i;10796:145::-;10855:7;10882:8;:6;:8::i;:::-;:51;;;;;;1794:66;10882:51;;;;;;;;;;;;:15;;;;;;;;:51;;;;;;;;;;;;;;;;:15;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;10882:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10882:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10882:51:0;;10796:145;-1:-1:-1;;10796:145:0:o;3801:252::-;3861:4;;3882:21;;;;3878:66;;;3927:5;3920:12;;;;3878:66;4010:7;3998:20;3990:28;;4044:1;4037:4;:8;4030:15;;3801:252;;;;;:::o;2030:130::-;2136:15;;2126:27::o;2168:136::-;2280:15;;2270:27::o;2723:121::-;2813:22;;2811:26::o;2852:121::-;2942:22;;2940:26::o

Swarm Source

bzzr://ff3ed81d4538b94eae9970fe3325a7dc8765cfd400c4992d9ac96c2f2eeb289f
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.