ETH Price: $2,102.37 (-10.86%)

Contract

0x316C387eC14A0D0C15ed8167bA98352059E568c6
 
Transaction Hash
Method
Block
From
To
Execute149904352022-06-19 11:00:22988 days ago1655636422IN
DSProxy #206,094
0 ETH0.008492129.5355133
Execute149904312022-06-19 10:58:50988 days ago1655636330IN
DSProxy #206,094
6.42642384 ETH0.0088793122.17606564
Execute149904202022-06-19 10:55:21988 days ago1655636121IN
DSProxy #206,094
10 ETH0.0290012916.90473975
Execute149385202022-06-10 12:55:57997 days ago1654865757IN
DSProxy #206,094
0 ETH0.0217257188.36514515
Execute149385172022-06-10 12:54:54997 days ago1654865694IN
DSProxy #206,094
0 ETH0.1120951973.67001721
Execute149375262022-06-10 8:50:44998 days ago1654851044IN
DSProxy #206,094
0 ETH0.0165903941.43745794
Execute149374712022-06-10 8:37:37998 days ago1654850257IN
DSProxy #206,094
0 ETH0.0589605646.30372274
Execute149374532022-06-10 8:32:46998 days ago1654849966IN
DSProxy #206,094
0 ETH0.0657223551.38910665
Execute149189982022-06-07 5:06:301001 days ago1654578390IN
DSProxy #206,094
0 ETH0.0526553544.57362384
Execute149189952022-06-07 5:04:581001 days ago1654578298IN
DSProxy #206,094
0 ETH0.0518745536.15430138
Execute149141592022-06-06 9:21:231002 days ago1654507283IN
DSProxy #206,094
0 ETH0.0871466840.79324443
Execute148786172022-05-31 12:11:501007 days ago1653999110IN
DSProxy #206,094
0 ETH0.021801214.03409905
Execute148786012022-05-31 12:09:341007 days ago1653998974IN
DSProxy #206,094
0 ETH0.005286921.20188385
Execute148785802022-05-31 12:05:101007 days ago1653998710IN
DSProxy #206,094
0 ETH0.0109371822.77513433
Execute148784722022-05-31 11:39:261007 days ago1653997166IN
DSProxy #206,094
0 ETH0.0131219642.93793971
Execute148784592022-05-31 11:35:231007 days ago1653996923IN
DSProxy #206,094
0 ETH0.0203056748.99698721
Execute148784452022-05-31 11:31:031007 days ago1653996663IN
DSProxy #206,094
0 ETH0.0753661837.87675658
Execute148784432022-05-31 11:29:571007 days ago1653996597IN
DSProxy #206,094
29 ETH0.0136036937.8634529
Execute147534692022-05-11 7:12:181028 days ago1652253138IN
DSProxy #206,094
0 ETH0.02681948101.38463971
Execute147534102022-05-11 6:57:071028 days ago1652252227IN
DSProxy #206,094
0 ETH0.1129133977.09556695
Execute147449112022-05-09 22:14:311029 days ago1652134471IN
DSProxy #206,094
35 ETH0.03551809108.07172791
Execute147444062022-05-09 20:17:041029 days ago1652127424IN
DSProxy #206,094
0 ETH0.04999105119.94475859
Execute146598052022-04-26 11:06:091042 days ago1650971169IN
DSProxy #206,094
0 ETH0.010423534.9629464
Execute146591542022-04-26 8:39:151043 days ago1650962355IN
DSProxy #206,094
0 ETH0.0086148724.55843285
Execute145643202022-04-11 12:08:121057 days ago1649678892IN
DSProxy #206,094
0 ETH0.0086129436.06761653
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
149904312022-06-19 10:58:50988 days ago1655636330
DSProxy #206,094
6.42642384 ETH
149904242022-06-19 10:56:22988 days ago1655636182
DSProxy #206,094
13.5742196 ETH
149904242022-06-19 10:56:22988 days ago1655636182
DSProxy #206,094
13.5742196 ETH
149904202022-06-19 10:55:21988 days ago1655636121
DSProxy #206,094
10 ETH
148784432022-05-31 11:29:571007 days ago1653996597
DSProxy #206,094
29 ETH
147449112022-05-09 22:14:311029 days ago1652134471
DSProxy #206,094
35 ETH
142756512022-02-25 13:57:471102 days ago1645797467
DSProxy #206,094
291.7331161 ETH
142756512022-02-25 13:57:471102 days ago1645797467
DSProxy #206,094
291.7331161 ETH
142756512022-02-25 13:57:471102 days ago1645797467
DSProxy #206,094
291.7331161 ETH
142756512022-02-25 13:57:471102 days ago1645797467
DSProxy #206,094
291.7331161 ETH
142250962022-02-17 17:52:341110 days ago1645120354
DSProxy #206,094
55.00023672 ETH
142250962022-02-17 17:52:341110 days ago1645120354
DSProxy #206,094
55.00023672 ETH
141407432022-02-04 17:00:281123 days ago1643994028
DSProxy #206,094
55 ETH
139910132022-01-12 13:41:481146 days ago1641994908
DSProxy #206,094
30 ETH
139910002022-01-12 13:37:161146 days ago1641994636
DSProxy #206,094
30 ETH
136249832021-11-16 6:21:011204 days ago1637043661
DSProxy #206,094
5 ETH
136249832021-11-16 6:21:011204 days ago1637043661
DSProxy #206,094
5 ETH
133919782021-10-10 16:27:561240 days ago1633883276
DSProxy #206,094
10 ETH
133919782021-10-10 16:27:561240 days ago1633883276
DSProxy #206,094
10 ETH
132560092021-09-19 11:58:161261 days ago1632052696
DSProxy #206,094
19 ETH
132560092021-09-19 11:58:161261 days ago1632052696
DSProxy #206,094
19 ETH
130322132021-08-15 21:29:121296 days ago1629062952
DSProxy #206,094
3 ETH
130292582021-08-15 10:40:461297 days ago1629024046
DSProxy #206,094
84.67557093 ETH
130292582021-08-15 10:40:461297 days ago1629024046
DSProxy #206,094
84.67557093 ETH
130292582021-08-15 10:40:461297 days ago1629024046
DSProxy #206,094
84.67557093 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

API
[{"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 0x803b788cfbfec47a1927638c47dc9c2c8eea4e71.

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.