ETH Price: $2,543.20 (+5.42%)

Contract

0x6bC1F0288776139ecF9BEE12B5a14a76E8d5C6c3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute101892992020-06-02 23:07:011570 days ago1591139221IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0050766922
Execute101892922020-06-02 23:04:561570 days ago1591139096IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0079617722
Execute101892692020-06-02 22:59:511570 days ago1591138791IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0054675722
Execute101891622020-06-02 22:34:531570 days ago1591137293IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0074644819.8
Execute101891482020-06-02 22:32:281570 days ago1591137148IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0054675722
Execute101877712020-06-02 17:35:591570 days ago1591119359IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0116765231
Execute101877572020-06-02 17:32:571570 days ago1591119177IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0104380942
Execute101875882020-06-02 16:54:591570 days ago1591116899IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0108342828.74297188
Execute101875192020-06-02 16:40:001570 days ago1591116000IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0096925139
Execute101860052020-06-02 10:59:301570 days ago1591095570IN
0x6bC1F028...6E8d5C6c3
0.17 ETH0.0038157726.8987668
Execute101859962020-06-02 10:57:011570 days ago1591095421IN
0x6bC1F028...6E8d5C6c3
0 ETH0.011512731.37977528
Execute101815362020-06-01 18:17:161571 days ago1591035436IN
0x6bC1F028...6E8d5C6c3
0.11 ETH0.0038301327
Execute101815202020-06-01 18:14:541571 days ago1591035294IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0102772628
Execute101815172020-06-01 18:13:431571 days ago1591035223IN
0x6bC1F028...6E8d5C6c3
0.17 ETH0.0039719928
Execute101815042020-06-01 18:10:271571 days ago1591035027IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0109909830
Execute101814152020-06-01 17:49:311571 days ago1591033771IN
0x6bC1F028...6E8d5C6c3
0.25 ETH0.0043971931
Execute101813992020-06-01 17:45:341571 days ago1591033534IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0109098331
Execute101766412020-05-31 23:47:441572 days ago1590968864IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0053044314.1
Execute101766182020-05-31 23:42:171572 days ago1590968537IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0044734618
Execute101765662020-05-31 23:29:511572 days ago1590967791IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0067788718
Execute101702292020-05-31 0:02:301573 days ago1590883350IN
0x6bC1F028...6E8d5C6c3
0.11 ETH0.0028371420
Execute101701622020-05-30 23:48:481573 days ago1590882528IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0063645118.06398036
Execute101680282020-05-30 15:52:281573 days ago1590853948IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0132008135
Execute101680132020-05-30 15:48:551573 days ago1590853735IN
0x6bC1F028...6E8d5C6c3
0 ETH0.0091954637
Execute101674822020-05-30 13:48:441573 days ago1590846524IN
0x6bC1F028...6E8d5C6c3
0.11 ETH0.0043975631.00000494
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
101892992020-06-02 23:07:011570 days ago1591139221
0x6bC1F028...6E8d5C6c3
0.5578352 ETH
101892992020-06-02 23:07:011570 days ago1591139221
0x6bC1F028...6E8d5C6c3
0.5578352 ETH
101892692020-06-02 22:59:511570 days ago1591138791
0x6bC1F028...6E8d5C6c3
0.25 ETH
101892692020-06-02 22:59:511570 days ago1591138791
0x6bC1F028...6E8d5C6c3
0.25 ETH
101891482020-06-02 22:32:281570 days ago1591137148
0x6bC1F028...6E8d5C6c3
0.37 ETH
101891482020-06-02 22:32:281570 days ago1591137148
0x6bC1F028...6E8d5C6c3
0.37 ETH
101877572020-06-02 17:32:571570 days ago1591119177
0x6bC1F028...6E8d5C6c3
0.3 ETH
101877572020-06-02 17:32:571570 days ago1591119177
0x6bC1F028...6E8d5C6c3
0.3 ETH
101875192020-06-02 16:40:001570 days ago1591116000
0x6bC1F028...6E8d5C6c3
0.24 ETH
101875192020-06-02 16:40:001570 days ago1591116000
0x6bC1F028...6E8d5C6c3
0.24 ETH
101860052020-06-02 10:59:301570 days ago1591095570
0x6bC1F028...6E8d5C6c3
0.17 ETH
101815362020-06-01 18:17:161571 days ago1591035436
0x6bC1F028...6E8d5C6c3
0.11 ETH
101815172020-06-01 18:13:431571 days ago1591035223
0x6bC1F028...6E8d5C6c3
0.17 ETH
101814152020-06-01 17:49:311571 days ago1591033771
0x6bC1F028...6E8d5C6c3
0.25 ETH
101766182020-05-31 23:42:171572 days ago1590968537
0x6bC1F028...6E8d5C6c3
0.21 ETH
101766182020-05-31 23:42:171572 days ago1590968537
0x6bC1F028...6E8d5C6c3
0.21 ETH
101702292020-05-31 0:02:301573 days ago1590883350
0x6bC1F028...6E8d5C6c3
0.11 ETH
101680132020-05-30 15:48:551573 days ago1590853735
0x6bC1F028...6E8d5C6c3
0.12 ETH
101680132020-05-30 15:48:551573 days ago1590853735
0x6bC1F028...6E8d5C6c3
0.12 ETH
101674822020-05-30 13:48:441573 days ago1590846524
0x6bC1F028...6E8d5C6c3
0.11 ETH
101674552020-05-30 13:41:521573 days ago1590846112
0x6bC1F028...6E8d5C6c3
0.17 ETH
101605292020-05-29 11:56:571574 days ago1590753417
0x6bC1F028...6E8d5C6c3
0.62 ETH
101605292020-05-29 11:56:571574 days ago1590753417
0x6bC1F028...6E8d5C6c3
0.62 ETH
101604552020-05-29 11:40:291574 days ago1590752429
0x6bC1F028...6E8d5C6c3
0.73 ETH
101603372020-05-29 11:12:461574 days ago1590750766
0x6bC1F028...6E8d5C6c3
0.92 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.