ETH Price: $2,721.07 (+1.67%)
Gas: 0.75 Gwei

Contract

0xd5c91F3EF6610Dd5b1428Bf9A67E3c03323C65f8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute93044932020-01-18 9:47:541854 days ago1579340874IN
0xd5c91F3E...3323C65f8
0 ETH0.000667592
Execute93044862020-01-18 9:46:341854 days ago1579340794IN
0xd5c91F3E...3323C65f8
0 ETH0.000233321
Execute92930432020-01-16 15:38:561856 days ago1579189136IN
0xd5c91F3E...3323C65f8
0 ETH0.000396261
Execute92930382020-01-16 15:37:261856 days ago1579189046IN
0xd5c91F3E...3323C65f8
0.4 ETH0.0001441
Execute92835092020-01-15 4:23:521857 days ago1579062232IN
0xd5c91F3E...3323C65f8
0 ETH0.00121713
Execute92835002020-01-15 4:21:451857 days ago1579062105IN
0xd5c91F3E...3323C65f8
41 ETH0.000572473.6
Execute88000392019-10-24 1:13:401940 days ago1571879620IN
0xd5c91F3E...3323C65f8
0 ETH0.001034693.32
Execute87985772019-10-23 19:38:181941 days ago1571859498IN
0xd5c91F3E...3323C65f8
0 ETH0.000560961.8
Execute87937572019-10-23 1:31:431941 days ago1571794303IN
0xd5c91F3E...3323C65f8
0 ETH0.0032655810
Execute85960112019-09-22 1:11:481972 days ago1569114708IN
0xd5c91F3E...3323C65f8
0 ETH0.000355982.2
Execute85683292019-09-17 17:43:331977 days ago1568742213IN
0xd5c91F3E...3323C65f8
0 ETH0.0071842722
Execute85519662019-09-15 4:27:351979 days ago1568521655IN
0xd5c91F3E...3323C65f8
30.974515 ETH0.0017097711.00000095
Execute85514652019-09-15 2:39:421979 days ago1568515182IN
0xd5c91F3E...3323C65f8
2.9 ETH0.0023757914.6
Execute85440822019-09-13 23:03:581981 days ago1568415838IN
0xd5c91F3E...3323C65f8
0 ETH0.002685778.2
Execute85048242019-09-07 19:39:411987 days ago1567885181IN
0xd5c91F3E...3323C65f8
0 ETH0.002292737
Execute85046192019-09-07 18:59:561987 days ago1567882796IN
0xd5c91F3E...3323C65f8
28.2 ETH0.001384258.5
Execute85040742019-09-07 16:59:441987 days ago1567875584IN
0xd5c91F3E...3323C65f8
0 ETH0.0032753310
Execute84855642019-09-04 19:51:401990 days ago1567626700IN
0xd5c91F3E...3323C65f8
0 ETH0.000242811.5
Execute84855362019-09-04 19:45:131990 days ago1567626313IN
0xd5c91F3E...3323C65f8
17.1415241 ETH0.000541881.5
Execute84855132019-09-04 19:39:221990 days ago1567625962IN
0xd5c91F3E...3323C65f8
0 ETH0.000357011.5
Execute84855082019-09-04 19:37:141990 days ago1567625834IN
0xd5c91F3E...3323C65f8
0 ETH0.000265221.5
Execute84855002019-09-04 19:35:331990 days ago1567625733IN
0xd5c91F3E...3323C65f8
0 ETH0.000635592
Execute84801492019-09-03 23:29:411990 days ago1567553381IN
0xd5c91F3E...3323C65f8
0 ETH0.000323752
Execute84773542019-09-03 13:06:031991 days ago1567515963IN
0xd5c91F3E...3323C65f8
0 ETH0.0044427813
Execute84602062019-08-31 20:49:361994 days ago1567284576IN
0xd5c91F3E...3323C65f8
0 ETH0.000161741
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
93044932020-01-18 9:47:541854 days ago1579340874
0xd5c91F3E...3323C65f8
41.40007238 ETH
93044932020-01-18 9:47:541854 days ago1579340874
0xd5c91F3E...3323C65f8
41.40007238 ETH
92930382020-01-16 15:37:261856 days ago1579189046
0xd5c91F3E...3323C65f8
0.4 ETH
92835002020-01-15 4:21:451857 days ago1579062105
0xd5c91F3E...3323C65f8
41 ETH
85519662019-09-15 4:27:351979 days ago1568521655
0xd5c91F3E...3323C65f8
30.94357246 ETH
85519662019-09-15 4:27:351979 days ago1568521655
0xd5c91F3E...3323C65f8
0.03094253 ETH
85514652019-09-15 2:39:421979 days ago1568515182
0xd5c91F3E...3323C65f8
2.9 ETH
85046192019-09-07 18:59:561987 days ago1567882796
0xd5c91F3E...3323C65f8
28.2 ETH
84855362019-09-04 19:45:131990 days ago1567626313
0xd5c91F3E...3323C65f8
0.17212888 ETH
84855362019-09-04 19:45:131990 days ago1567626313
0xd5c91F3E...3323C65f8
0.17212888 ETH
84855362019-09-04 19:45:131990 days ago1567626313
0xd5c91F3E...3323C65f8
17.1415241 ETH
84855132019-09-04 19:39:221990 days ago1567625962
0xd5c91F3E...3323C65f8
17 ETH
84855132019-09-04 19:39:221990 days ago1567625962
0xd5c91F3E...3323C65f8
17 ETH
84601262019-08-31 20:33:561994 days ago1567283636
0xd5c91F3E...3323C65f8
0.14825123 ETH
84601262019-08-31 20:33:561994 days ago1567283636
0xd5c91F3E...3323C65f8
0.14825123 ETH
84601262019-08-31 20:33:561994 days ago1567283636
0xd5c91F3E...3323C65f8
20.26653485 ETH
84600972019-08-31 20:27:491994 days ago1567283269
0xd5c91F3E...3323C65f8
20 ETH
84600972019-08-31 20:27:491994 days ago1567283269
0xd5c91F3E...3323C65f8
20 ETH
84536312019-08-30 20:14:571995 days ago1567196097
0xd5c91F3E...3323C65f8
0.18006229 ETH
84536312019-08-30 20:14:571995 days ago1567196097
0xd5c91F3E...3323C65f8
0.18006229 ETH
84536312019-08-30 20:14:571995 days ago1567196097
0xd5c91F3E...3323C65f8
24.91918418 ETH
84535792019-08-30 20:03:071995 days ago1567195387
0xd5c91F3E...3323C65f8
25 ETH
84535792019-08-30 20:03:071995 days ago1567195387
0xd5c91F3E...3323C65f8
25 ETH
84362732019-08-28 3:36:421997 days ago1566963402
0xd5c91F3E...3323C65f8
84.71792696 ETH
84362732019-08-28 3:36:421997 days ago1566963402
0xd5c91F3E...3323C65f8
84.71792696 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.