ETH Price: $2,211.82 (-4.74%)

Contract

0x371eE509100af3Eb863ED61b07825a50B60aB5C3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Execute111526692020-10-29 16:11:191582 days ago1603987879IN
0x371eE509...0B60aB5C3
0 ETH0.003011848.00000145
Execute109886772020-10-04 9:51:221608 days ago1601805082IN
0x371eE509...0B60aB5C3
0 ETH0.0023434238.00000145
Execute102987492020-06-19 21:56:131714 days ago1592603773IN
0x371eE509...0B60aB5C3
0 ETH0.0584947622
Execute102986912020-06-19 21:44:241714 days ago1592603064IN
0x371eE509...0B60aB5C3
0 ETH0.0606917922
Execute102986852020-06-19 21:43:261714 days ago1592603006IN
0x371eE509...0B60aB5C3
0 ETH0.071509122
Execute102986752020-06-19 21:40:291714 days ago1592602829IN
0x371eE509...0B60aB5C3
0 ETH0.0095043522
Execute102986752020-06-19 21:40:291714 days ago1592602829IN
0x371eE509...0B60aB5C3
0 ETH0.0047421317.13410088
Execute102964732020-06-19 13:33:361715 days ago1592573616IN
0x371eE509...0B60aB5C3
0 ETH0.0188860741
Execute102964652020-06-19 13:31:121715 days ago1592573472IN
0x371eE509...0B60aB5C3
130 ETH0.0076880341
Execute102854132020-06-17 20:36:491716 days ago1592426209IN
0x371eE509...0B60aB5C3
0 ETH0.0100969230
Execute102854052020-06-17 20:34:551716 days ago1592426095IN
0x371eE509...0B60aB5C3
0 ETH0.0124680930
Execute102853582020-06-17 20:25:281716 days ago1592425528IN
0x371eE509...0B60aB5C3
0 ETH0.0105197531
Execute102851442020-06-17 19:32:041716 days ago1592422324IN
0x371eE509...0B60aB5C3
0 ETH0.0773547225
Execute102851362020-06-17 19:31:131716 days ago1592422273IN
0x371eE509...0B60aB5C3
0 ETH0.0786269225
Execute101878122020-06-02 17:45:041731 days ago1591119904IN
0x371eE509...0B60aB5C3
0 ETH0.0634331727
Execute101872262020-06-02 15:36:021731 days ago1591112162IN
0x371eE509...0B60aB5C3
9 ETH0.0090765963.00000145
Execute101864652020-06-02 12:41:451732 days ago1591101705IN
0x371eE509...0B60aB5C3
0 ETH0.0079708426
Execute101864522020-06-02 12:39:071732 days ago1591101547IN
0x371eE509...0B60aB5C3
0 ETH0.0971313226.40000023
Execute101144512020-05-22 7:48:341743 days ago1590133714IN
0x371eE509...0B60aB5C3
0 ETH0.0798197730
Execute101052912020-05-20 21:47:111744 days ago1590011231IN
0x371eE509...0B60aB5C3
0 ETH0.0425599216
Execute100761542020-05-16 8:50:491749 days ago1589619049IN
0x371eE509...0B60aB5C3
0 ETH0.0090379424
Execute100761272020-05-16 8:46:241749 days ago1589618784IN
0x371eE509...0B60aB5C3
0 ETH0.0073579924
Execute100719802020-05-15 17:10:131749 days ago1589562613IN
0x371eE509...0B60aB5C3
0.09 ETH0.0033136723
Execute100719682020-05-15 17:08:051749 days ago1589562485IN
0x371eE509...0B60aB5C3
0 ETH0.0576000427
Execute100651622020-05-14 15:41:051750 days ago1589470865IN
0x371eE509...0B60aB5C3
0.05340967 ETH0.0082085527.5
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
102986912020-06-19 21:44:241714 days ago1592603064
0x371eE509...0B60aB5C3
30.17739633 ETH
102986912020-06-19 21:44:241714 days ago1592603064
0x371eE509...0B60aB5C3
30.17739633 ETH
102986852020-06-19 21:43:261714 days ago1592603006
0x371eE509...0B60aB5C3
90.05522007 ETH
102986852020-06-19 21:43:261714 days ago1592603006
0x371eE509...0B60aB5C3
90.05522007 ETH
102964652020-06-19 13:31:121715 days ago1592573472
0x371eE509...0B60aB5C3
130 ETH
102854132020-06-17 20:36:491716 days ago1592426209
0x371eE509...0B60aB5C3
130.00190463 ETH
102854132020-06-17 20:36:491716 days ago1592426209
0x371eE509...0B60aB5C3
130.00190463 ETH
102853582020-06-17 20:25:281716 days ago1592425528
0x371eE509...0B60aB5C3
70.00000005 ETH
102853582020-06-17 20:25:281716 days ago1592425528
0x371eE509...0B60aB5C3
70.00000005 ETH
102851442020-06-17 19:32:041716 days ago1592422324
0x371eE509...0B60aB5C3
50 ETH
102851442020-06-17 19:32:041716 days ago1592422324
0x371eE509...0B60aB5C3
50 ETH
102851362020-06-17 19:31:131716 days ago1592422273
0x371eE509...0B60aB5C3
50 ETH
102851362020-06-17 19:31:131716 days ago1592422273
0x371eE509...0B60aB5C3
50 ETH
101878122020-06-02 17:45:041731 days ago1591119904
0x371eE509...0B60aB5C3
9 ETH
101878122020-06-02 17:45:041731 days ago1591119904
0x371eE509...0B60aB5C3
9 ETH
101872262020-06-02 15:36:021731 days ago1591112162
0x371eE509...0B60aB5C3
9 ETH
101864652020-06-02 12:41:451732 days ago1591101705
0x371eE509...0B60aB5C3
0.23 ETH
101864652020-06-02 12:41:451732 days ago1591101705
0x371eE509...0B60aB5C3
0.23 ETH
101864522020-06-02 12:39:071732 days ago1591101547
0x371eE509...0B60aB5C3
50.22157886 ETH
101864522020-06-02 12:39:071732 days ago1591101547
0x371eE509...0B60aB5C3
50.22157886 ETH
101144512020-05-22 7:48:341743 days ago1590133714
0x371eE509...0B60aB5C3
25.13 ETH
101144512020-05-22 7:48:341743 days ago1590133714
0x371eE509...0B60aB5C3
25.13 ETH
101052912020-05-20 21:47:111744 days ago1590011231
0x371eE509...0B60aB5C3
25.12975276 ETH
101052912020-05-20 21:47:111744 days ago1590011231
0x371eE509...0B60aB5C3
25.12975276 ETH
100761272020-05-16 8:46:241749 days ago1589618784
0x371eE509...0B60aB5C3
25.50000008 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

API
[{"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.