ETH Price: $2,633.67 (-0.32%)

Contract

0x8f42091FB484ec8f2AC315BcA0CD7310193EeE62
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute156396712022-09-29 14:43:47749 days ago1664462627IN
DSProxy #160,032
0 ETH0.0051857130.77629399
Execute156396622022-09-29 14:41:59749 days ago1664462519IN
DSProxy #160,032
0 ETH0.0043069725.76001248
Execute156396292022-09-29 14:35:23749 days ago1664462123IN
DSProxy #160,032
0 ETH0.0028158715.86558265
Execute156394882022-09-29 14:06:47749 days ago1664460407IN
DSProxy #160,032
0 ETH0.0033945920.17072318
Execute156394562022-09-29 14:00:23749 days ago1664460023IN
DSProxy #160,032
0 ETH0.0027512516.10114967
Execute156394472022-09-29 13:58:35749 days ago1664459915IN
DSProxy #160,032
0 ETH0.002834316.95196106
Execute156394322022-09-29 13:55:23749 days ago1664459723IN
DSProxy #160,032
0 ETH0.0031778517.90188528
Execute156394232022-09-29 13:53:35749 days ago1664459615IN
DSProxy #160,032
0 ETH0.003474420.64348447
Execute156394082022-09-29 13:50:23749 days ago1664459423IN
DSProxy #160,032
0 ETH0.0028391516.61555756
Execute151248472022-07-12 1:21:18829 days ago1657588878IN
DSProxy #160,032
0 ETH0.0032165218.11974847
Execute151248182022-07-12 1:16:57829 days ago1657588617IN
DSProxy #160,032
0 ETH0.0029747717.67488877
Execute151247982022-07-12 1:11:05829 days ago1657588265IN
DSProxy #160,032
0 ETH0.0028031115.79085371
Execute149600342022-06-14 5:14:59856 days ago1655183699IN
DSProxy #160,032
0 ETH0.0066934840.20011889
Execute149600282022-06-14 5:14:01856 days ago1655183641IN
DSProxy #160,032
0 ETH0.0082140246.27228786
Execute149600132022-06-14 5:10:39856 days ago1655183439IN
DSProxy #160,032
0 ETH0.0085697351.46865692
Execute149600072022-06-14 5:08:59856 days ago1655183339IN
DSProxy #160,032
0 ETH0.0091151853.34476537
Execute149599842022-06-14 5:02:37856 days ago1655182957IN
DSProxy #160,032
0 ETH0.0069745141.88796496
Execute149599532022-06-14 4:56:18856 days ago1655182578IN
DSProxy #160,032
0 ETH0.0112558563.40791122
Execute149566372022-06-13 15:12:19857 days ago1655133139IN
DSProxy #160,032
0 ETH0.02010904120.77211879
Execute149566292022-06-13 15:10:34857 days ago1655133034IN
DSProxy #160,032
0 ETH0.02278587128.36028229
Execute149566212022-06-13 15:08:57857 days ago1655132937IN
DSProxy #160,032
0 ETH0.02060246123.74297414
Execute149566152022-06-13 15:07:01857 days ago1655132821IN
DSProxy #160,032
0 ETH0.02033052120.79571237
Execute149565972022-06-13 15:03:27857 days ago1655132607IN
DSProxy #160,032
0 ETH0.03041114171.31590199
Execute149536622022-06-13 2:52:05857 days ago1655088725IN
DSProxy #160,032
0 ETH0.0129594777.83281533
Execute149536522022-06-13 2:49:03857 days ago1655088543IN
DSProxy #160,032
0 ETH0.0083763749.02451495
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
156396292022-09-29 14:35:23749 days ago1664462123
DSProxy #160,032
17.261 ETH
156396292022-09-29 14:35:23749 days ago1664462123
DSProxy #160,032
17.261 ETH
156394322022-09-29 13:55:23749 days ago1664459723
DSProxy #160,032
12 ETH
156394322022-09-29 13:55:23749 days ago1664459723
DSProxy #160,032
12 ETH
151248472022-07-12 1:21:18829 days ago1657588878
DSProxy #160,032
10 ETH
151248472022-07-12 1:21:18829 days ago1657588878
DSProxy #160,032
10 ETH
151247982022-07-12 1:11:05829 days ago1657588265
DSProxy #160,032
13 ETH
151247982022-07-12 1:11:05829 days ago1657588265
DSProxy #160,032
13 ETH
149600282022-06-14 5:14:01856 days ago1655183641
DSProxy #160,032
10 ETH
149600282022-06-14 5:14:01856 days ago1655183641
DSProxy #160,032
10 ETH
149599532022-06-14 4:56:18856 days ago1655182578
DSProxy #160,032
7 ETH
149599532022-06-14 4:56:18856 days ago1655182578
DSProxy #160,032
7 ETH
149566292022-06-13 15:10:34857 days ago1655133034
DSProxy #160,032
8 ETH
149566292022-06-13 15:10:34857 days ago1655133034
DSProxy #160,032
8 ETH
149565972022-06-13 15:03:27857 days ago1655132607
DSProxy #160,032
10 ETH
149565972022-06-13 15:03:27857 days ago1655132607
DSProxy #160,032
10 ETH
149450062022-06-11 15:23:44859 days ago1654961024
DSProxy #160,032
10 ETH
149450062022-06-11 15:23:44859 days ago1654961024
DSProxy #160,032
10 ETH
149449932022-06-11 15:20:53859 days ago1654960853
DSProxy #160,032
13 ETH
149449932022-06-11 15:20:53859 days ago1654960853
DSProxy #160,032
13 ETH
149449782022-06-11 15:17:32859 days ago1654960652
DSProxy #160,032
10 ETH
149449782022-06-11 15:17:32859 days ago1654960652
DSProxy #160,032
10 ETH
149449642022-06-11 15:15:10859 days ago1654960510
DSProxy #160,032
7 ETH
149449642022-06-11 15:15:10859 days ago1654960510
DSProxy #160,032
7 ETH
149422922022-06-11 4:23:04859 days ago1654921384
DSProxy #160,032
4 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x2B9B8b83...8ff54a8AC
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
DSProxy

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-09-06
*/

// proxy.sol - execute actions atomically through the proxy's identity

// Copyright (C) 2017  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

pragma solidity ^0.4.23;

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    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);

        _;
    }
}

// DSProxy
// Allows code execution using a persistant identity This can be very
// useful to execute a sequence of atomic actions. Since the owner of
// the proxy can be changed, this allows for dynamic ownership models
// i.e. a multisig
contract DSProxy is DSAuth, DSNote {
    DSProxyCache public cache;  // global cache for contracts

    constructor(address _cacheAddr) public {
        require(setCache(_cacheAddr));
    }

    function() public payable {
    }

    // use the proxy to execute calldata _data on contract _code
    function execute(bytes _code, bytes _data)
        public
        payable
        returns (address target, bytes32 response)
    {
        target = cache.read(_code);
        if (target == 0x0) {
            // deploy contract & store its address in cache
            target = cache.write(_code);
        }

        response = execute(target, _data);
    }

    function execute(address _target, bytes _data)
        public
        auth
        note
        payable
        returns (bytes32 response)
    {
        require(_target != 0x0);

        // call contract in current context
        assembly {
            let succeeded := delegatecall(sub(gas, 5000), _target, add(_data, 0x20), mload(_data), 0, 32)
            response := mload(0)      // load delegatecall output
            switch iszero(succeeded)
            case 1 {
                // throw if delegatecall failed
                revert(0, 0)
            }
        }
    }

    //set new cache
    function setCache(address _cacheAddr)
        public
        auth
        note
        returns (bool)
    {
        require(_cacheAddr != 0x0);        // invalid cache address
        cache = DSProxyCache(_cacheAddr);  // overwrite cache
        return true;
    }
}

// DSProxyFactory
// This factory deploys new proxy instances through build()
// Deployed proxy addresses are logged
contract DSProxyFactory {
    event Created(address indexed sender, address indexed owner, address proxy, address cache);
    mapping(address=>bool) public isProxy;
    DSProxyCache public cache = new DSProxyCache();

    // deploys a new proxy instance
    // sets owner of proxy to caller
    function build() public returns (DSProxy proxy) {
        proxy = build(msg.sender);
    }

    // deploys a new proxy instance
    // sets custom owner of proxy
    function build(address owner) public returns (DSProxy proxy) {
        proxy = new DSProxy(cache);
        emit Created(msg.sender, owner, address(proxy), address(cache));
        proxy.setOwner(owner);
        isProxy[proxy] = true;
    }
}

// DSProxyCache
// This global cache stores addresses of contracts previously deployed
// by a proxy. This saves gas from repeat deployment of the same
// contracts and eliminates blockchain bloat.

// By default, all proxies deployed from the same factory store
// contracts in the same cache. The cache a proxy instance uses can be
// changed.  The cache uses the sha3 hash of a contract's bytecode to
// lookup the address
contract DSProxyCache {
    mapping(bytes32 => address) cache;

    function read(bytes _code) public view returns (address) {
        bytes32 hash = keccak256(_code);
        return cache[hash];
    }

    function write(bytes _code) public returns (address target) {
        assembly {
            target := create(0, add(_code, 0x20), mload(_code))
            switch iszero(extcodesize(target))
            case 1 {
                // throw if contract failed to deploy
                revert(0, 0)
            }
        }
        bytes32 hash = keccak256(_code);
        cache[hash] = target;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_data","type":"bytes"}],"name":"execute","outputs":[{"name":"response","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_code","type":"bytes"},{"name":"_data","type":"bytes"}],"name":"execute","outputs":[{"name":"target","type":"address"},{"name":"response","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"cache","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cacheAddr","type":"address"}],"name":"setCache","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_cacheAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"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":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

Deployed Bytecode

0x60806040526004361061008d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461008f5780631cff79cd146100b05780631f6a1eb91461011c57806360c7d295146101c95780637a9e5e4b146101fa5780638da5cb5b1461021b578063948f507614610230578063bf7e214f14610265575b005b34801561009b57600080fd5b5061008d600160a060020a036004351661027a565b60408051602060046024803582810135601f810185900485028601850190965285855261010a958335600160a060020a03169536956044949193909101919081908401838280828437509497506102f89650505050505050565b60408051918252519081900360200190f35b6040805160206004803580820135601f81018490048402850184019095528484526101a694369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506103be9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156101d557600080fd5b506101de6105ce565b60408051600160a060020a039092168252519081900360200190f35b34801561020657600080fd5b5061008d600160a060020a03600435166105dd565b34801561022757600080fd5b506101de610657565b34801561023c57600080fd5b50610251600160a060020a0360043516610666565b604080519115158252519081900360200190f35b34801561027157600080fd5b506101de61072d565b61029033600035600160e060020a03191661073c565b151561029b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b600061031033600035600160e060020a03191661073c565b151561031b57600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a038516151561038a57600080fd5b60206000855160208701886113885a03f460005193508015600181146103af576103b4565b600080fd5b5050505092915050565b6002546040517f8bf4515c0000000000000000000000000000000000000000000000000000000081526020600482018181528551602484015285516000948594600160a060020a0390911693638bf4515c93899390928392604490910191908501908083838b5b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561048957600080fd5b505af115801561049d573d6000803e3d6000fd5b505050506040513d60208110156104b357600080fd5b50519150600160a060020a03821615156105bb576002546040517f7ed0c3b2000000000000000000000000000000000000000000000000000000008152602060048201818152875160248401528751600160a060020a0390941693637ed0c3b293899383926044909201919085019080838360005b83811015610540578181015183820152602001610528565b50505050905090810190601f16801561056d5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561058c57600080fd5b505af11580156105a0573d6000803e3d6000fd5b505050506040513d60208110156105b657600080fd5b505191505b6105c582846102f8565b90509250929050565b600254600160a060020a031681565b6105f333600035600160e060020a03191661073c565b15156105fe57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b600061067e33600035600160e060020a03191661073c565b151561068957600080fd5b6040805134808252602082018381523693830184905260043593602435938493869333600160a060020a03169360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a4600160a060020a03841615156106f857600080fd5b60028054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff19909116179055600192505050919050565b600054600160a060020a031681565b600030600160a060020a031683600160a060020a031614156107605750600161084a565b600154600160a060020a038481169116141561077e5750600161084a565b600054600160a060020a031615156107985750600061084a565b60008054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301523081166024830152600160e060020a0319871660448301529151919092169263b700961392606480820193602093909283900390910190829087803b15801561081b57600080fd5b505af115801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b505190505b929150505600a165627a7a72305820e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e10029

Swarm Source

bzzr://e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

The proxy contract address for 0xf4290ab1a8129b8b887d3ab331f24ecf812bda8e.

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.