ETH Price: $3,442.71 (-1.01%)
Gas: 4 Gwei

Contract

0xd54a2FC9e037AdD53B474dCF3C092d406AD7feCE
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,442.71/ETH)

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
Execute116502262021-01-14 1:15:421265 days ago1610586942IN
0xd54a2FC9...06AD7feCE
0 ETH0.0095083862
Execute115850592021-01-04 1:37:131275 days ago1609724233IN
0xd54a2FC9...06AD7feCE
0 ETH0.0279312150
Execute115841362021-01-03 22:07:211275 days ago1609711641IN
0xd54a2FC9...06AD7feCE
0 ETH0.0131784578.262
Execute110905762020-10-20 3:31:221351 days ago1603164682IN
0xd54a2FC9...06AD7feCE
0 ETH0.0065500526
Execute109036782020-09-21 4:46:411380 days ago1600663601IN
0xd54a2FC9...06AD7feCE
0 ETH0.00504025108.00000145
Execute104170172020-07-08 5:38:561455 days ago1594186736IN
0xd54a2FC9...06AD7feCE
0 ETH0.0091747436
Execute94714402020-02-13 0:33:491601 days ago1581554029IN
0xd54a2FC9...06AD7feCE
0 ETH0.000757754.5
Execute94713872020-02-13 0:20:331601 days ago1581553233IN
0xd54a2FC9...06AD7feCE
0 ETH0.000698133.75
Execute94711472020-02-12 23:27:111601 days ago1581550031IN
0xd54a2FC9...06AD7feCE
0 ETH0.003916213
Execute91226052019-12-17 22:08:251658 days ago1576620505IN
0xd54a2FC9...06AD7feCE
0 ETH0.006033935
Execute91226052019-12-17 22:08:251658 days ago1576620505IN
0xd54a2FC9...06AD7feCE
0 ETH0.004587672.2
Execute91223482019-12-17 20:52:171658 days ago1576615937IN
0xd54a2FC9...06AD7feCE
0 ETH0.001575248
Execute89999752019-11-25 18:20:561680 days ago1574706056IN
0xd54a2FC9...06AD7feCE
1.35 ETH0.00035332
Execute83591282019-08-16 3:38:281782 days ago1565926708IN
0xd54a2FC9...06AD7feCE
0 ETH0.004697356
Execute83591202019-08-16 3:36:141782 days ago1565926574IN
0xd54a2FC9...06AD7feCE
0.45 ETH0.001059926
Execute81632402019-07-16 17:35:121812 days ago1563298512IN
0xd54a2FC9...06AD7feCE
2 ETH0.0044693425.3
Execute81632052019-07-16 17:27:091812 days ago1563298029IN
0xd54a2FC9...06AD7feCE
0 ETH0.0093051525
Execute81631932019-07-16 17:24:381812 days ago1563297878IN
0xd54a2FC9...06AD7feCE
0 ETH0.0130731724.2
Execute81445522019-07-13 19:30:331815 days ago1563046233IN
0xd54a2FC9...06AD7feCE
0.5 ETH0.000176651
Execute81280842019-07-11 5:28:421818 days ago1562822922IN
0xd54a2FC9...06AD7feCE
0.187 ETH0.000529963
Execute81272272019-07-11 2:22:011818 days ago1562811721IN
0xd54a2FC9...06AD7feCE
0 ETH0.001979533

Latest 18 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
116502262021-01-14 1:15:421265 days ago1610586942
0xd54a2FC9...06AD7feCE
4.43153303 ETH
116502262021-01-14 1:15:421265 days ago1610586942
0xd54a2FC9...06AD7feCE
4.43153303 ETH
115841362021-01-03 22:07:211275 days ago1609711641
0xd54a2FC9...06AD7feCE
4 ETH
115841362021-01-03 22:07:211275 days ago1609711641
0xd54a2FC9...06AD7feCE
4 ETH
94714402020-02-13 0:33:491601 days ago1581554029
0xd54a2FC9...06AD7feCE
5 ETH
94714402020-02-13 0:33:491601 days ago1581554029
0xd54a2FC9...06AD7feCE
5 ETH
91226052019-12-17 22:08:251658 days ago1576620505
0xd54a2FC9...06AD7feCE
3 ETH
91226052019-12-17 22:08:251658 days ago1576620505
0xd54a2FC9...06AD7feCE
3 ETH
89999752019-11-25 18:20:561680 days ago1574706056
0xd54a2FC9...06AD7feCE
1.35 ETH
83591282019-08-16 3:38:281782 days ago1565926708
0xd54a2FC9...06AD7feCE
0.45961186 ETH
83591282019-08-16 3:38:281782 days ago1565926708
0xd54a2FC9...06AD7feCE
0.45961186 ETH
83591202019-08-16 3:36:141782 days ago1565926574
0xd54a2FC9...06AD7feCE
0.45 ETH
81632402019-07-16 17:35:121812 days ago1563298512
0xd54a2FC9...06AD7feCE
2 ETH
81445522019-07-13 19:30:331815 days ago1563046233
0xd54a2FC9...06AD7feCE
0.5 ETH
81280842019-07-11 5:28:421818 days ago1562822922
0xd54a2FC9...06AD7feCE
0.187 ETH
81272272019-07-11 2:22:011818 days ago1562811721
0xd54a2FC9...06AD7feCE
0.54575691 ETH
81272272019-07-11 2:22:011818 days ago1562811721
0xd54a2FC9...06AD7feCE
0.54575691 ETH
81271902019-07-11 2:13:281818 days ago1562811208  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.