ETH Price: $2,737.02 (-1.87%)

Contract

0x1e8A74CccD6d6C3d4bD33a5e863f039dE904e9bF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute95549592020-02-25 21:11:131823 days ago1582665073IN
0x1e8A74Cc...dE904e9bF
0 ETH0.001410943
Execute95549592020-02-25 21:11:131823 days ago1582665073IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000315071
Execute95541602020-02-25 18:10:311823 days ago1582654231IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000533671.25
Execute95541602020-02-25 18:10:311823 days ago1582654231IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000426931
Execute95541602020-02-25 18:10:311823 days ago1582654231IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000666641
Execute95524192020-02-25 11:48:561823 days ago1582631336IN
0x1e8A74Cc...dE904e9bF
0 ETH0.00056461.2
Execute95521762020-02-25 10:51:251824 days ago1582627885IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000567131.8
Execute95521522020-02-25 10:46:541824 days ago1582627614IN
0x1e8A74Cc...dE904e9bF
0.01001927 ETH0.000311822.00000014
Execute95518342020-02-25 9:34:451824 days ago1582623285IN
0x1e8A74Cc...dE904e9bF
0 ETH0.001471192.2
Execute95517982020-02-25 9:27:241824 days ago1582622844IN
0x1e8A74Cc...dE904e9bF
0.052 ETH0.000653494
Execute95516852020-02-25 8:59:371824 days ago1582621177IN
0x1e8A74Cc...dE904e9bF
0.007 ETH0.000816925
Execute95516452020-02-25 8:50:031824 days ago1582620603IN
0x1e8A74Cc...dE904e9bF
0 ETH0.001405292.1
Execute95516152020-02-25 8:45:081824 days ago1582620308IN
0x1e8A74Cc...dE904e9bF
0.046 ETH0.000375752.3
Execute95505092020-02-25 4:37:441824 days ago1582605464IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000443011
Execute95454432020-02-24 9:47:411825 days ago1582537661IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000384191
Execute95454432020-02-24 9:47:411825 days ago1582537661IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000443011
Execute95431132020-02-24 1:12:531825 days ago1582506773IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000452471
Execute95430962020-02-24 1:10:051825 days ago1582506605IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000445811
Execute95428032020-02-24 0:02:541825 days ago1582502574IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000303841
Execute95403772020-02-23 15:20:141825 days ago1582471214IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000575221
Execute95403562020-02-23 15:13:571825 days ago1582470837IN
0x1e8A74Cc...dE904e9bF
0.0235 ETH0.000161221
Execute95403242020-02-23 15:07:101825 days ago1582470430IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000153321
Execute95402852020-02-23 14:56:571825 days ago1582469817IN
0x1e8A74Cc...dE904e9bF
0.022 ETH0.000159731
Execute94843132020-02-15 0:09:191834 days ago1581725359IN
0x1e8A74Cc...dE904e9bF
0 ETH0.0003510
Execute94843072020-02-15 0:06:401834 days ago1581725200IN
0x1e8A74Cc...dE904e9bF
0 ETH0.000211081
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
95521522020-02-25 10:46:541824 days ago1582627614
0x1e8A74Cc...dE904e9bF
0.01000928 ETH
95521522020-02-25 10:46:541824 days ago1582627614
0x1e8A74Cc...dE904e9bF
0.00000998 ETH
95517982020-02-25 9:27:241824 days ago1582622844
0x1e8A74Cc...dE904e9bF
0.052 ETH
95516852020-02-25 8:59:371824 days ago1582621177
0x1e8A74Cc...dE904e9bF
0.007 ETH
95516152020-02-25 8:45:081824 days ago1582620308
0x1e8A74Cc...dE904e9bF
0.046 ETH
95505092020-02-25 4:37:441824 days ago1582605464
0x1e8A74Cc...dE904e9bF
0.003 ETH
95505092020-02-25 4:37:441824 days ago1582605464
0x1e8A74Cc...dE904e9bF
0.003 ETH
95454432020-02-24 9:47:411825 days ago1582537661
0x1e8A74Cc...dE904e9bF
0.005 ETH
95454432020-02-24 9:47:411825 days ago1582537661
0x1e8A74Cc...dE904e9bF
0.005 ETH
95431132020-02-24 1:12:531825 days ago1582506773
0x1e8A74Cc...dE904e9bF
0.107 ETH
95431132020-02-24 1:12:531825 days ago1582506773
0x1e8A74Cc...dE904e9bF
0.107 ETH
95430962020-02-24 1:10:051825 days ago1582506605
0x1e8A74Cc...dE904e9bF
0.0235 ETH
95430962020-02-24 1:10:051825 days ago1582506605
0x1e8A74Cc...dE904e9bF
0.0235 ETH
95403562020-02-23 15:13:571825 days ago1582470837
0x1e8A74Cc...dE904e9bF
0.0235 ETH
95403242020-02-23 15:07:101825 days ago1582470430
0x1e8A74Cc...dE904e9bF
0.022 ETH
95403242020-02-23 15:07:101825 days ago1582470430
0x1e8A74Cc...dE904e9bF
0.022 ETH
95402852020-02-23 14:56:571825 days ago1582469817
0x1e8A74Cc...dE904e9bF
0.022 ETH
93020012020-01-18 0:27:421862 days ago1579307262
0x1e8A74Cc...dE904e9bF
0.221 ETH
93020012020-01-18 0:27:421862 days ago1579307262
0x1e8A74Cc...dE904e9bF
0.221 ETH
93013392020-01-17 22:01:491862 days ago1579298509
0x1e8A74Cc...dE904e9bF
0.13 ETH
93004462020-01-17 18:42:481862 days ago1579286568
0x1e8A74Cc...dE904e9bF
0.0165 ETH
93004192020-01-17 18:37:161862 days ago1579286236
0x1e8A74Cc...dE904e9bF
0.08 ETH
92643122020-01-12 5:46:571868 days ago1578808017
0x1e8A74Cc...dE904e9bF
0.02090007 ETH
92643122020-01-12 5:46:571868 days ago1578808017
0x1e8A74Cc...dE904e9bF
0.00002087 ETH
92639902020-01-12 4:38:381868 days ago1578803918
0x1e8A74Cc...dE904e9bF
0.0209 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.