ETH Price: $3,315.70 (-1.78%)

Contract

0x9c6d67C5Fd1f78C3DAeE702b9a59183c0f4a9d17
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute111107732020-10-23 5:49:271551 days ago1603432167IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0021707435.2
Execute90270192019-11-30 13:38:051879 days ago1575121085IN
0x9c6d67C5...c0f4a9d17
0 ETH0.000204884.1000003
Execute90270102019-11-30 13:36:211879 days ago1575120981IN
0x9c6d67C5...c0f4a9d17
0 ETH0.005409344.1000003
Execute90270042019-11-30 13:35:031879 days ago1575120903IN
0x9c6d67C5...c0f4a9d17
0 ETH0.001097615.1000003
Execute90269722019-11-30 13:28:291879 days ago1575120509IN
0x9c6d67C5...c0f4a9d17
0 ETH0.001567656.10000003
Execute90266412019-11-30 11:56:411879 days ago1575115001IN
0x9c6d67C5...c0f4a9d17
0 ETH0.001516975.2000003
Execute90261592019-11-30 10:01:181879 days ago1575108078IN
0x9c6d67C5...c0f4a9d17
0 ETH0.001097955.10000003
Execute89975332019-11-25 8:40:021884 days ago1574671202IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0042857411.1000003
Execute89951062019-11-24 23:03:101884 days ago1574636590IN
0x9c6d67C5...c0f4a9d17
17.5 ETH0.0013866611.1000003
Execute89812472019-11-22 15:55:291887 days ago1574438129IN
0x9c6d67C5...c0f4a9d17
60 ETH0.0031372225.1000003
Execute89809292019-11-22 14:34:591887 days ago1574433299IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0093097823.21000033
Execute89800812019-11-22 11:12:281887 days ago1574421148IN
0x9c6d67C5...c0f4a9d17
49 ETH0.0038871531.1000003
Execute89799692019-11-22 10:47:591887 days ago1574419679IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0102739526.60882329
Execute89799332019-11-22 10:39:341887 days ago1574419174IN
0x9c6d67C5...c0f4a9d17
34 ETH0.0030093424.100003
Execute89799252019-11-22 10:38:301887 days ago1574419110IN
0x9c6d67C5...c0f4a9d17
34 ETH0.0030122324.1000003
Execute89798692019-11-22 10:26:401887 days ago1574418400IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0088645522.1000003
Execute89797972019-11-22 10:11:501887 days ago1574417510IN
0x9c6d67C5...c0f4a9d17
0 ETH0.009062522.1000003
Execute89759642019-11-21 18:46:011887 days ago1574361961IN
0x9c6d67C5...c0f4a9d17
0 ETH0.002942810.100003
Execute89759402019-11-21 18:41:351887 days ago1574361695IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0128451410.100003
Execute89759222019-11-21 18:37:591887 days ago1574361479IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0133543310.1000003
Execute89759102019-11-21 18:35:521887 days ago1574361352IN
0x9c6d67C5...c0f4a9d17
0 ETH0.0142294310.1000003
Execute89253722019-11-13 8:20:441896 days ago1573633244IN
0x9c6d67C5...c0f4a9d17
0 ETH0.000304836.10000003
Execute89253622019-11-13 8:19:421896 days ago1573633182IN
0x9c6d67C5...c0f4a9d17
0 ETH0.008057685.31
Execute86825142019-10-05 14:05:221935 days ago1570284322IN
0x9c6d67C5...c0f4a9d17
10 ETH0.000301342.42
Execute86263772019-09-26 19:32:181943 days ago1569526338IN
0x9c6d67C5...c0f4a9d17
26 ETH0.0015067112.100003
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
90270102019-11-30 13:36:211879 days ago1575120981
0x9c6d67C5...c0f4a9d17
1,089.91569793 ETH
90270102019-11-30 13:36:211879 days ago1575120981
0x9c6d67C5...c0f4a9d17
1,089.91569793 ETH
89951062019-11-24 23:03:101884 days ago1574636590
0x9c6d67C5...c0f4a9d17
17.5 ETH
89812472019-11-22 15:55:291887 days ago1574438129
0x9c6d67C5...c0f4a9d17
60 ETH
89800812019-11-22 11:12:281887 days ago1574421148
0x9c6d67C5...c0f4a9d17
49 ETH
89799332019-11-22 10:39:341887 days ago1574419174
0x9c6d67C5...c0f4a9d17
34 ETH
89799252019-11-22 10:38:301887 days ago1574419110
0x9c6d67C5...c0f4a9d17
34 ETH
89759402019-11-21 18:41:351887 days ago1574361695
0x9c6d67C5...c0f4a9d17
223.4 ETH
89759402019-11-21 18:41:351887 days ago1574361695
0x9c6d67C5...c0f4a9d17
223.4 ETH
89759222019-11-21 18:37:591887 days ago1574361479
0x9c6d67C5...c0f4a9d17
224 ETH
89759222019-11-21 18:37:591887 days ago1574361479
0x9c6d67C5...c0f4a9d17
224 ETH
89759102019-11-21 18:35:521887 days ago1574361352
0x9c6d67C5...c0f4a9d17
448 ETH
89759102019-11-21 18:35:521887 days ago1574361352
0x9c6d67C5...c0f4a9d17
448 ETH
89253622019-11-13 8:19:421896 days ago1573633182
0x9c6d67C5...c0f4a9d17
895.46002399 ETH
89253622019-11-13 8:19:421896 days ago1573633182
0x9c6d67C5...c0f4a9d17
895.46002399 ETH
86825142019-10-05 14:05:221935 days ago1570284322
0x9c6d67C5...c0f4a9d17
10 ETH
86263772019-09-26 19:32:181943 days ago1569526338
0x9c6d67C5...c0f4a9d17
26 ETH
86236072019-09-26 9:05:491944 days ago1569488749
0x9c6d67C5...c0f4a9d17
60.00003897 ETH
86236072019-09-26 9:05:491944 days ago1569488749
0x9c6d67C5...c0f4a9d17
60.00003897 ETH
86197242019-09-25 18:33:491944 days ago1569436429
0x9c6d67C5...c0f4a9d17
60 ETH
86171262019-09-25 8:36:191945 days ago1569400579
0x9c6d67C5...c0f4a9d17
52 ETH
86141842019-09-24 21:34:161945 days ago1569360856
0x9c6d67C5...c0f4a9d17
29 ETH
85162172019-09-09 14:33:151961 days ago1568039595
0x9c6d67C5...c0f4a9d17
10 ETH
85162172019-09-09 14:33:151961 days ago1568039595
0x9c6d67C5...c0f4a9d17
10 ETH
83505462019-08-14 19:32:361986 days ago1565811156
0x9c6d67C5...c0f4a9d17
165 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x5D4a9452...b2E9d13dB
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
UserWallet

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-04-07
*/

pragma solidity ^0.5.2;

/**
 * @title RegistryInterface Interface 
 */
interface RegistryInterface {
    function logic(address logicAddr) external view returns (bool);
    function record(address currentOwner, address nextOwner) external;
}


/**
 * @title Address Registry Record
 */
contract AddressRecord {

    /**
     * @dev address registry of system, logic and wallet addresses
     */
    address public registry;

    /**
     * @dev Throws if the logic is not authorised
     */
    modifier logicAuth(address logicAddr) {
        require(logicAddr != address(0), "logic-proxy-address-required");
        require(RegistryInterface(registry).logic(logicAddr), "logic-not-authorised");
        _;
    }

}


/**
 * @title User Auth
 */
contract UserAuth is AddressRecord {

    event LogSetOwner(address indexed owner);
    address public owner;

    /**
     * @dev Throws if not called by owner or contract itself
     */
    modifier auth {
        require(isAuth(msg.sender), "permission-denied");
        _;
    }

    /**
     * @dev sets new owner
     */
    function setOwner(address nextOwner) public auth {
        RegistryInterface(registry).record(owner, nextOwner);
        owner = nextOwner;
        emit LogSetOwner(nextOwner);
    }

    /**
     * @dev checks if called by owner or contract itself
     * @param src is the address initiating the call
     */
    function isAuth(address src) public view returns (bool) {
        if (src == owner) {
            return true;
        } else if (src == address(this)) {
            return true;
        }
        return false;
    }
}


/**
 * @dev logging the execute events
 */
contract UserNote {
    event LogNote(
        bytes4 indexed sig,
        address indexed guy,
        bytes32 indexed foo,
        bytes32 bar,
        uint wad,
        bytes fax
    );

    modifier note {
        bytes32 foo;
        bytes32 bar;
        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }
        emit LogNote(
            msg.sig, 
            msg.sender, 
            foo, 
            bar, 
            msg.value,
            msg.data
        );
        _;
    }
}


/**
 * @title User Owned Contract Wallet
 */
contract UserWallet is UserAuth, UserNote {

    event LogExecute(address target, uint srcNum, uint sessionNum);

    /**
     * @dev sets the "address registry", owner's last activity, owner's active period and initial owner
     */
    constructor() public {
        registry = msg.sender;
        owner = msg.sender;
    }

    function() external payable {}

    /**
     * @dev Execute authorised calls via delegate call
     * @param _target logic proxy address
     * @param _data delegate call data
     * @param _src to find the source
     * @param _session to find the session
     */
    function execute(
        address _target,
        bytes memory _data,
        uint _src,
        uint _session
    ) 
        public
        payable
        note
        auth
        logicAuth(_target)
        returns (bytes memory response)
    {
        emit LogExecute(
            _target,
            _src,
            _session
        );
        
        // call contract in current context
        assembly {
            let succeeded := delegatecall(sub(gas, 5000), _target, add(_data, 0x20), mload(_data), 0, 0)
            let size := returndatasize

            response := mload(0x40)
            mstore(0x40, add(response, and(add(add(size, 0x20), 0x1f), not(0x1f))))
            mstore(response, size)
            returndatacopy(add(response, 0x20), 0, size)

            switch iszero(succeeded)
                case 1 {
                    // throw if delegatecall failed
                    revert(add(response, 0x20), size)
                }
        }
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"nextOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"}],"name":"isAuth","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"registry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_data","type":"bytes"},{"name":"_src","type":"uint256"},{"name":"_session","type":"uint256"}],"name":"execute","outputs":[{"name":"response","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"srcNum","type":"uint256"},{"indexed":false,"name":"sessionNum","type":"uint256"}],"name":"LogExecute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":false,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

Deployed Bytecode

0x608060405260043610610067576000357c01000000000000000000000000000000000000000000000000000000009004806313af4035146100695780632520e7ff146100ba5780637b103999146101235780638da5cb5b1461017a578063f3541901146101d1575b005b34801561007557600080fd5b506100b86004803603602081101561008c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610339565b005b3480156100c657600080fd5b50610109600480360360208110156100dd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610567565b604051808215151515815260200191505060405180910390f35b34801561012f57600080fd5b5061013861060f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561018657600080fd5b5061018f610634565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102be600480360360808110156101e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561022457600080fd5b82018360208201111561023657600080fd5b8035906020019184600183028401116401000000008311171561025857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019092919050505061065a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fe5780820151818401526020810190506102e3565b50505050905090810190601f16801561032b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61034233610567565b15156103b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2d64656e69656400000000000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166339035d56600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b5050505080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156105c8576001905061060a565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610605576001905061060a565b600090505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060008060043591506024359050813373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f644843f351d3fba4abcd60109eaff9f54bac8fb8ccf0bab941009c21df21cf31843460003660405180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509550505050505060405180910390a461074233610567565b15156107b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7065726d697373696f6e2d64656e69656400000000000000000000000000000081525060200191505060405180910390fd5b86600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f6c6f6769632d70726f78792d616464726573732d72657175697265640000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311390441826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561091657600080fd5b505afa15801561092a573d6000803e3d6000fd5b505050506040513d602081101561094057600080fd5b810190808051906020019092919050505015156109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6c6f6769632d6e6f742d617574686f726973656400000000000000000000000081525060200191505060405180910390fd5b7fbd37415aaf130f9a169d66bc22d669b6a5aa55f384e7b41d105714eb8277b341888787604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1600080885160208a018b6113885a03f43d6040519550601f19601f6020830101168601604052808652806000602088013e811560018114610a7857610a7f565b8160208801fd5b50505050505094935050505056fea165627a7a72305820a70df5c3d70f52cf6a410ed7bf147d9052fbab8b4e98568082f924a8dd7f63c90029

Swarm Source

bzzr://a70df5c3d70f52cf6a410ed7bf147d9052fbab8b4e98568082f924a8dd7f63c9

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.