Contract 0x0a74D136fAfed0F8d58ce4b7307283695EC7A0B6 2

 
 
Txn Hash
Method
Block
From
To
Value
0x55dcf78b6d8da14dc0a1af844095bf00d92250afdc0c6ab60f63ce5fd95c9683Execute108864532020-09-18 13:42:26800 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.02242589276.6
0x30c653809135593222080fc924116e7f61bb2cf63dde40a63908da8b5f80c549Execute108864492020-09-18 13:41:11800 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.01758606261.60000175
0xe5a9179444ca58eb73dce223227d83d5b6f307220cb7bb016453e90b7388a460Execute108859582020-09-18 11:45:10800 days 14 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.03721359224.4
0xce075a34732e1ed01ceee133af2f48edcda1c4087fa2814402944edc5d4eef46Execute108859522020-09-18 11:44:37800 days 14 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.02100168244.416
0xfa09fea39b700d31e7705e5284ea5025b1989ffeeaad9c9ac3c6277352216e0fExecute108859462020-09-18 11:43:16800 days 14 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.03097361244.416
0xcdde7844e7e6983a56770fce041ba3a3fdef1e471e43c8a0197bc0035c6168a2Execute89270592019-11-13 14:59:191110 days 11 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000146841.2
0xcd002c23d58e45e91fe62474307c396a5379e704e9d2a2001f5854c1716fea58Execute89270452019-11-13 14:56:221110 days 11 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.0012417111.565
0xfc64b3740aeed8b07251801a9b9e8a211e4e313728d8bcca8f3589a8d1b3f935Execute89270442019-11-13 14:56:081110 days 11 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.0014151811.565
0x70b6773c4cd617d32d2675c579a5e361d0fb102a83f7fe179099a7cd0ca2e295Execute89270382019-11-13 14:54:331110 days 11 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.0009565912
0x7b20e0826461e80a27df8737e8576892ca65afd53e81a2dd81502b733e439219Execute89270312019-11-13 14:53:261110 days 11 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.0038043212
0xfd66d7add4f85183cabcb5a930a9ca72bb69b7c3ccc641de5d7fb17e1fd8e22bExecute89270222019-11-13 14:49:551110 days 11 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.001337766
0xaff78d186dbb3631a2269ce3f4255b17414bb7a4c4353a649403fac906d99dd6Execute89208882019-11-12 14:29:221111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000257541.728
0x771b99345c6a8923cfd123fdfd22e7bcbc792e8fa169d6b7788f0e6b983c9580Execute89208792019-11-12 14:27:211111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.001247766
0x997b961f725530c22d5408bc696a725625a5ead74a4563162a666247d034613cExecute89208752019-11-12 14:26:201111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.001072456
0xfa62e153cd40e4babce0bf618322ac5663bc9bdb1798e57c9f1827e9f7d6abeaExecute89208662019-11-12 14:23:431111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000111161.2
0x165a6a60968e496b99555600c815c8d07c6aee7267055e116b0600fce5b461c8Execute89208342019-11-12 14:15:491111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000442742.4
0x26e938353f340c684418db31f22e8c911cfaa27fd5cd760092baf88f1923ab94Execute89208062019-11-12 14:09:121111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.00086819.6
0x8e8e58adb69104e61a12727560d56f7afd9dbe50cb21c68e46c4dbd5cc01ebe9Execute89207732019-11-12 14:01:281111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.0021517211.664
0xce056ee709783b1bc4ea9639c7a4e7821b07df7c243c9f790d80ac413794121cExecute89207552019-11-12 13:58:281111 days 12 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.00114016.48
0xb9ff4e69baf309bad5b3af21f48b2e38672d836b2dd0e4895eeb4f94fd807ac2Execute88734322019-11-04 20:28:311119 days 6 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000445711.2
0xd29a8a5549ac6eea498c9414d721a1cdffbbcda8622285169fed8db49b9cc579Execute88734322019-11-04 20:28:311119 days 6 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000190481.2
0x6ceb58d1517ad4dc958d9560af025f149a5025439025e4fbb9ff710c74a24edeExecute88734322019-11-04 20:28:311119 days 6 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000209531.32
0xb4a066b92c9776657439d282bbdb990704f24f632d0efb0edc930770df467aa9Execute88716142019-11-04 13:33:421119 days 13 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.00093114.8
0x524576904dd53b2cddb51a09c434d2c05f7b300d2151f8afcb5e1c8e40050615Execute88715992019-11-04 13:29:341119 days 13 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000314811.8
0xad0d21c58c618f68b6960f4e7bd5b7a2ebc58b2cdc7bb3695ab15e71c3719a93Execute88715592019-11-04 13:23:531119 days 13 hrs agoENS Name myne.eth IN  0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60 Ether0.000298583.6
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x55dcf78b6d8da14dc0a1af844095bf00d92250afdc0c6ab60f63ce5fd95c9683108864532020-09-18 13:42:26800 days 12 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 0x57875ef0e6bdd9bb32ff033e80ed8479313a36c35.22054333 Ether
0x30c653809135593222080fc924116e7f61bb2cf63dde40a63908da8b5f80c549108864492020-09-18 13:41:11800 days 12 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6ENS Name myne.eth2 Ether
0xe5a9179444ca58eb73dce223227d83d5b6f307220cb7bb016453e90b7388a460108859582020-09-18 11:45:10800 days 14 hrs ago Uniswap V2: Router 2 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b67.20446957 Ether
0x997b961f725530c22d5408bc696a725625a5ead74a4563162a666247d034613c89208752019-11-12 14:26:201111 days 12 hrs ago Compound: Contract 1 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60.00149122 Ether
0x997b961f725530c22d5408bc696a725625a5ead74a4563162a666247d034613c89208752019-11-12 14:26:201111 days 12 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Compound: Contract 10.42755751 Ether
0xfa62e153cd40e4babce0bf618322ac5663bc9bdb1798e57c9f1827e9f7d6abea89208662019-11-12 14:23:431111 days 12 hrs ago Uniswap: SAI 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60.4262 Ether
0x165a6a60968e496b99555600c815c8d07c6aee7267055e116b0600fce5b461c889208342019-11-12 14:15:491111 days 12 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Compound: Contract 10.62446163 Ether
0x26e938353f340c684418db31f22e8c911cfaa27fd5cd760092baf88f1923ab9489208062019-11-12 14:09:121111 days 12 hrs ago Uniswap: SAI 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60.62446163 Ether
0x8e8e58adb69104e61a12727560d56f7afd9dbe50cb21c68e46c4dbd5cc01ebe989207732019-11-12 14:01:281111 days 12 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Compound: Contract 11.68575219 Ether
0xce056ee709783b1bc4ea9639c7a4e7821b07df7c243c9f790d80ac413794121c89207552019-11-12 13:58:281111 days 12 hrs ago Uniswap: MRQ 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b61.61476736 Ether
0xb9ff4e69baf309bad5b3af21f48b2e38672d836b2dd0e4895eeb4f94fd807ac288734322019-11-04 20:28:311119 days 6 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Kyber: Proxy3.1 Ether
0xd29a8a5549ac6eea498c9414d721a1cdffbbcda8622285169fed8db49b9cc57988734322019-11-04 20:28:311119 days 6 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: SAI3.09598482 Ether
0x6ceb58d1517ad4dc958d9560af025f149a5025439025e4fbb9ff710c74a24ede88734322019-11-04 20:28:311119 days 6 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: SAI3.09598482 Ether
0xab7d6c0db625d7b7e9a5ab3dc261e127ff35273e61d233a044ca2969df17004388716192019-11-04 13:35:021119 days 12 hrs ago Rhino.fi: OTC 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b62.7 Ether
0xb4a066b92c9776657439d282bbdb990704f24f632d0efb0edc930770df467aa988716142019-11-04 13:33:421119 days 13 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: MRQ0.50571083 Ether
0x524576904dd53b2cddb51a09c434d2c05f7b300d2151f8afcb5e1c8e4005061588715992019-11-04 13:29:341119 days 13 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: MRQ0.17 Ether
0xad0d21c58c618f68b6960f4e7bd5b7a2ebc58b2cdc7bb3695ab15e71c3719a9388715592019-11-04 13:23:531119 days 13 hrs ago Uniswap: WBTC 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60.00130252 Ether
0xf1a76740423a6f24ff9fa93e094db94ffbf26949d3e130371adce3fda9fd09e688713292019-11-04 12:31:431119 days 14 hrs ago Rhino.fi: OTC 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b61 Ether
0xfae82344165653cae65f66e1b60da6d566771e51f438b91b63b6f59197a7fdab88712032019-11-04 11:56:381119 days 14 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: MRQ0.1 Ether
0xd089b11167555644ecf434fdb70e244400d34e6dadba28db4306eba16b2bc6b688293262019-10-28 18:17:221126 days 8 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: MRQ0.11627604 Ether
0xe28681f1d0cfd84d2b2469f8c9b293ad43085ed71590d9ec91e088af9150150788293152019-10-28 18:14:431126 days 8 hrs ago Compound: cETH Token 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60.28666918 Ether
0x8f8cab02212e855d72a1a77ff3864929fb4a8131c309cb3a1bc4bd138418020788293032019-10-28 18:10:121126 days 8 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: SAI0.54242032 Ether
0xb72882c7f794d90739e28af373e3d71db71cc2ae805147c8c58424c9c41ff7d088279162019-10-28 12:45:421126 days 13 hrs ago Uniswap: MRQ 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60.40616779 Ether
0xd4b15889f184ee0f32b7610e7207695e92d25d0b30d5a9ea5eb6761ea12a6a3a87905652019-10-22 13:32:411132 days 13 hrs ago Uniswap: MRQ 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b60.13625253 Ether
0x2a911b9c14ffd495837a90d358d1953fb547e6d81ff87ec629094c745c98d56c87327012019-10-13 10:50:001141 days 15 hrs ago 0x0a74d136fafed0f8d58ce4b7307283695ec7a0b6 Uniswap: SAI0.45575554 Ether
[ Download CSV Export 
Loading

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

Contract Name:
AppProxyUpgradeable

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-10-28
*/

pragma solidity 0.4.24;
// File: contracts/common/UnstructuredStorage.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;


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) }
    }
}
// File: contracts/acl/IACL.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;


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);
}
// File: contracts/common/IVaultRecoverable.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;


interface IVaultRecoverable {
    function transferToVault(address token) external;

    function allowRecoverability(address token) external view returns (bool);
    function getRecoveryVault() external view returns (address);
}
// File: contracts/kernel/IKernel.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;




// This should be an interface, but interfaces can't inherit yet :(
contract IKernel is IVaultRecoverable {
    event SetApp(bytes32 indexed namespace, bytes32 indexed appId, address app);

    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);
}
// File: contracts/apps/AppStorage.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;




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);
    }
}
// File: contracts/common/IsContract.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;


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;
    }
}
// File: contracts/lib/misc/ERCProxy.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;


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);
}
// File: contracts/common/DelegateProxy.sol
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) }
        }
    }
}
// File: contracts/common/DepositableStorage.sol
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);
    }
}
// File: contracts/common/DepositableDelegateProxy.sol
contract DepositableDelegateProxy is DepositableStorage, DelegateProxy {
    event ProxyDeposit(address sender, uint256 value);

    function () external payable {
        // send / transfer
        if (gasleft() < FWD_GAS_LIMIT) {
            require(msg.value > 0 && msg.data.length == 0);
            require(isDepositable());
            emit ProxyDeposit(msg.sender, msg.value);
        } else { // all calls except for send or transfer
            address target = implementation();
            delegatedFwd(target, msg.data);
        }
    }
}
// File: contracts/kernel/KernelConstants.sol
/*
 * SPDX-License-Identitifer:    MIT
 */

pragma solidity ^0.4.24;


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;
}
// File: contracts/apps/AppProxyBase.sol
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);
    }
}
// File: contracts/apps/AppProxyUpgradeable.sol
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
    {

    }

    /**
     * @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 Security Audit

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"}]

608060405234801561001057600080fd5b506040516106e93803806106e98339810160409081528151602083015191830151909201828282600061004b84640100000000610124810204565b61005d8364010000000061014c810204565b61006f83640100000000610183810204565b90506000825111156101185761008d81640100000000610253810204565b151561009857600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100cd5781810151838201526020016100b5565b50505050905090810190601f1680156100fa5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561011857600080fd5b505050505050506102b3565b6101496000805160206106c9833981519152826401000000006103d361028082021704565b50565b6101497fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b826401000000006103d361028082021704565b6000610196640100000000610284810204565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f6004820152602481018590529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b15801561022157600080fd5b505af1158015610235573d6000803e3d6000fd5b505050506040513d602081101561024b57600080fd5b505192915050565b600080600160a060020a038316151561026f576000915061027a565b823b90506000811191505b50919050565b9055565b60006102aa6000805160206106c98339815191526401000000006102bd6102af82021704565b905090565b5490565b610407806102c26000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b60006127105a10156100e357600034118015610086575036155b151561009157600080fd5b6100996101e3565b15156100a457600080fd5b6040805133815234602082015281517f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1929181900390910190a1610128565b6100eb610213565b9050610128816000368080601f01602080910402602001604051908101604052809392919081815260200183838082843750610225945050505050565b50005b34801561013757600080fd5b50610140610266565b60408051918252519081900360200190f35b34801561015e57600080fd5b506101676101e3565b604080519115158252519081900360200190f35b34801561018757600080fd5b50610190610213565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b5061014061026b565b3480156101da57600080fd5b50610190610296565b600061020e7f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6102bd565b905090565b600061020e61022061026b565b6102c1565b600061023083610395565b151561023b57600080fd5b612710905060008083516020850186855a03f43d604051816000823e828015610262578282f35b8282fd5b600290565b600061020e7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6102bd565b600061020e7f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b5b5490565b60006102cb610296565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561036357600080fd5b505af1158015610377573d6000803e3d6000fd5b505050506040513d602081101561038d57600080fd5b505192915050565b60008073ffffffffffffffffffffffffffffffffffffffff831615156103be57600091506103c9565b823b90506000811191505b50919050565b5490565b9055565b90555600a165627a7a72305820276efdd7355da6d727d8d918d459c69583630a4e2f5b4f75e059a5dfa16b10bf00294172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b0000000000000000000000008a83d4bce45b4c4f751f76cf565953d1e4a3bf0abf8491150dafc5dcaee5b861414dca922de09ccffa344964ae167212e8c673ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Swarm Source

bzzr://276efdd7355da6d727d8d918d459c69583630a4e2f5b4f75e059a5dfa16b10bf
Block Transaction Difficulty Gas Used Reward
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.

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.