ETH Price: $2,356.30 (-5.12%)

Contract

0x506b290Dec05156FbcaffF81B602E4B3717e95ab
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute207516152024-09-14 21:44:59165 days ago1726350299IN
0x506b290D...3717e95ab
0 ETH0.000144121.8
Execute207516062024-09-14 21:43:11165 days ago1726350191IN
0x506b290D...3717e95ab
0 ETH0.000104121.8
Execute207516042024-09-14 21:42:47165 days ago1726350167IN
0x506b290D...3717e95ab
0 ETH0.000104121.8
Execute122208602021-04-11 20:23:401417 days ago1618172620IN
0x506b290D...3717e95ab
0 ETH0.024924471
Execute94280472020-02-06 8:33:501847 days ago1580978030IN
0x506b290D...3717e95ab
0 ETH0.008894574
Execute91222342019-12-17 20:21:541898 days ago1576614114IN
0x506b290D...3717e95ab
0 ETH0.0145617610
Execute91218932019-12-17 18:36:121898 days ago1576607772IN
0x506b290D...3717e95ab
0 ETH0.000936453
Execute91218912019-12-17 18:35:231898 days ago1576607723IN
0x506b290D...3717e95ab
0 ETH0.005312023
Execute91218422019-12-17 18:21:201898 days ago1576606880IN
0x506b290D...3717e95ab
0 ETH0.002434787.8
Execute91218362019-12-17 18:19:251898 days ago1576606765IN
0x506b290D...3717e95ab
0 ETH0.016892118
Execute91218252019-12-17 18:15:121898 days ago1576606512IN
0x506b290D...3717e95ab
0 ETH0.003895832.2
Execute91218202019-12-17 18:14:421898 days ago1576606482IN
0x506b290D...3717e95ab
0 ETH0.003895732.2
Execute91169962019-12-16 19:15:041899 days ago1576523704IN
0x506b290D...3717e95ab
0 ETH0.0128226910.6
Execute91169852019-12-16 19:12:321899 days ago1576523552IN
0x506b290D...3717e95ab
0 ETH0.009708758
Execute91100412019-12-15 10:51:151900 days ago1576407075IN
0x506b290D...3717e95ab
0.99 ETH0.00071455
Execute91009822019-12-13 16:39:081902 days ago1576255148IN
0x506b290D...3717e95ab
0 ETH0.000936423
Execute90205692019-11-29 10:01:511916 days ago1575021711IN
0x506b290D...3717e95ab
0 ETH0.007778595
Execute90205612019-11-29 10:00:371916 days ago1575021637IN
0x506b290D...3717e95ab
0 ETH0.008313125
Execute90205212019-11-29 9:51:221916 days ago1575021082IN
0x506b290D...3717e95ab
15 ETH0.000622085
Execute90102222019-11-27 14:13:521918 days ago1574864032IN
0x506b290D...3717e95ab
0 ETH0.000516972
Execute90102132019-11-27 14:11:471918 days ago1574863907IN
0x506b290D...3717e95ab
0 ETH0.00294312
Execute90102032019-11-27 14:09:201918 days ago1574863760IN
0x506b290D...3717e95ab
0 ETH0.003508012
Execute90101962019-11-27 14:07:531918 days ago1574863673IN
0x506b290D...3717e95ab
0 ETH0.004340412
Execute89994112019-11-25 16:09:011920 days ago1574698141IN
0x506b290D...3717e95ab
0 ETH0.0144983410
Execute89973912019-11-25 8:07:401920 days ago1574669260IN
0x506b290D...3717e95ab
0 ETH0.030071420
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
122208602021-04-11 20:23:401417 days ago1618172620
0x506b290D...3717e95ab
2.65767216 ETH
122208602021-04-11 20:23:401417 days ago1618172620
0x506b290D...3717e95ab
2.65767216 ETH
94280472020-02-06 8:33:501847 days ago1580978030
0x506b290D...3717e95ab
3.19544911 ETH
94280472020-02-06 8:33:501847 days ago1580978030
0x506b290D...3717e95ab
3.19544911 ETH
91222342019-12-17 20:21:541898 days ago1576614114
0x506b290D...3717e95ab
11.5 ETH
91222342019-12-17 20:21:541898 days ago1576614114
0x506b290D...3717e95ab
11.5 ETH
91218932019-12-17 18:36:121898 days ago1576607772
0x506b290D...3717e95ab
7.95 ETH
91218932019-12-17 18:36:121898 days ago1576607772
0x506b290D...3717e95ab
7.95 ETH
91218912019-12-17 18:35:231898 days ago1576607723
0x506b290D...3717e95ab
2.5464 ETH
91218912019-12-17 18:35:231898 days ago1576607723
0x506b290D...3717e95ab
2.5464 ETH
91218422019-12-17 18:21:201898 days ago1576606880
0x506b290D...3717e95ab
3 ETH
91218422019-12-17 18:21:201898 days ago1576606880
0x506b290D...3717e95ab
3 ETH
91218362019-12-17 18:19:251898 days ago1576606765
0x506b290D...3717e95ab
6 ETH
91218362019-12-17 18:19:251898 days ago1576606765
0x506b290D...3717e95ab
6 ETH
91218252019-12-17 18:15:121898 days ago1576606512
0x506b290D...3717e95ab
6 ETH
91218252019-12-17 18:15:121898 days ago1576606512
0x506b290D...3717e95ab
6 ETH
91218202019-12-17 18:14:421898 days ago1576606482
0x506b290D...3717e95ab
4.5 ETH
91218202019-12-17 18:14:421898 days ago1576606482
0x506b290D...3717e95ab
4.5 ETH
91169962019-12-16 19:15:041899 days ago1576523704
0x506b290D...3717e95ab
1.24 ETH
91169962019-12-16 19:15:041899 days ago1576523704
0x506b290D...3717e95ab
1.24 ETH
91169852019-12-16 19:12:321899 days ago1576523552
0x506b290D...3717e95ab
1.24 ETH
91169852019-12-16 19:12:321899 days ago1576523552
0x506b290D...3717e95ab
1.24 ETH
91100412019-12-15 10:51:151900 days ago1576407075
0x506b290D...3717e95ab
0.99 ETH
91009822019-12-13 16:39:081902 days ago1576255148
0x506b290D...3717e95ab
1.5 ETH
91009822019-12-13 16:39:081902 days ago1576255148
0x506b290D...3717e95ab
1.5 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.