ETH Price: $2,660.72 (+1.70%)

Contract

0x0061Cc250c17C9a9f6335ACAf1Bb94b3FCF9E6Ad
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute192515672024-02-18 1:55:11358 days ago1708221311IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.0012785315.96792209
Set Owner192515362024-02-18 1:48:47358 days ago1708220927IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.0008045413.60706017
Execute91639982019-12-26 4:06:381873 days ago1577333198IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.001946142
Execute91304082019-12-19 11:31:391880 days ago1576755099IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.001864535
Execute91304012019-12-19 11:29:321880 days ago1576754972IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.002207145
Execute91300052019-12-19 9:27:311880 days ago1576747651IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.002489586
Execute91300032019-12-19 9:27:041880 days ago1576747624IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.002819466
Execute91299642019-12-19 9:15:131880 days ago1576746913IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.00113055
Execute91299222019-12-19 9:06:541880 days ago1576746414IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.002208765
Execute91299192019-12-19 9:06:021880 days ago1576746362IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.002351655.5
Execute86744992019-10-04 8:06:441956 days ago1570176404IN
0x0061Cc25...3FCF9E6Ad
0.1 ETH0.000137531.1
Execute85541042019-09-15 12:30:511975 days ago1568550651IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.00408123
Execute85540382019-09-15 12:12:421975 days ago1568549562IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.0040287923
Execute84627182019-09-01 6:11:241989 days ago1567318284IN
0x0061Cc25...3FCF9E6Ad
0.099 ETH0.000375283
Execute84610342019-08-31 23:56:091989 days ago1567295769IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000162191
Execute84610262019-08-31 23:54:191989 days ago1567295659IN
0x0061Cc25...3FCF9E6Ad
0.024 ETH0.000139841
Execute84587092019-08-31 15:14:341990 days ago1567264474IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000162251
Execute84587022019-08-31 15:13:171990 days ago1567264397IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000199991
Execute84586952019-08-31 15:11:181990 days ago1567264278IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000459811.5
Execute84586832019-08-31 15:08:311990 days ago1567264111IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000236481.1
Execute84585602019-08-31 14:39:441990 days ago1567262384IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.00057343
Execute84585502019-08-31 14:37:031990 days ago1567262223IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000668693
Execute84585322019-08-31 14:33:081990 days ago1567261988IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000612853.5
Execute84585162019-08-31 14:29:321990 days ago1567261772IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.0021491910
Execute84569832019-08-31 8:57:171990 days ago1567241837IN
0x0061Cc25...3FCF9E6Ad
0 ETH0.000272293
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
91304082019-12-19 11:31:391880 days ago1576755099
0x0061Cc25...3FCF9E6Ad
0.22302045 ETH
91304082019-12-19 11:31:391880 days ago1576755099
0x0061Cc25...3FCF9E6Ad
0.22302045 ETH
86744992019-10-04 8:06:441956 days ago1570176404
0x0061Cc25...3FCF9E6Ad
0.1 ETH
84627182019-09-01 6:11:241989 days ago1567318284
0x0061Cc25...3FCF9E6Ad
0.099 ETH
84610262019-08-31 23:54:191989 days ago1567295659
0x0061Cc25...3FCF9E6Ad
0.024 ETH
84586952019-08-31 15:11:181990 days ago1567264278
0x0061Cc25...3FCF9E6Ad
0.28781779 ETH
84586952019-08-31 15:11:181990 days ago1567264278
0x0061Cc25...3FCF9E6Ad
0.28781779 ETH
84227802019-08-26 0:55:351995 days ago1566780935
0x0061Cc25...3FCF9E6Ad
0.001 ETH
84041332019-08-23 3:31:171998 days ago1566531077
0x0061Cc25...3FCF9E6Ad
0 ETH
83981282019-08-22 5:12:061999 days ago1566450726
0x0061Cc25...3FCF9E6Ad
0.027 ETH
83980992019-08-22 5:05:381999 days ago1566450338
0x0061Cc25...3FCF9E6Ad
0.00097337 ETH
83980992019-08-22 5:05:381999 days ago1566450338
0x0061Cc25...3FCF9E6Ad
0.00097337 ETH
83555552019-08-15 14:13:082006 days ago1565878388
0x0061Cc25...3FCF9E6Ad
0.025 ETH
83549722019-08-15 12:03:002006 days ago1565870580
0x0061Cc25...3FCF9E6Ad
0.163 ETH
83548392019-08-15 11:31:262006 days ago1565868686  Contract Creation0 ETH
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.