ETH Price: $2,338.46 (+11.38%)

Contract

0xDacC23C8D2b0EB2FCcA22feac3d70F8A094ED638
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
New ESM122712342021-04-19 15:08:031792 days ago1618844883IN
0xDacC23C8...A094ED638
0 ETH0.2460185350
New ESM122711972021-04-19 14:59:021792 days ago1618844342IN
0xDacC23C8...A094ED638
0 ETH0.17994496256
New ESM122482102021-04-16 1:30:091795 days ago1618536609IN
0xDacC23C8...A094ED638
0 ETH0.070291100
New ESM122466102021-04-15 19:30:331795 days ago1618515033IN
0xDacC23C8...A094ED638
0 ETH0.049203770

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-122712342021-04-19 15:08:031792 days ago1618844883
0xDacC23C8...A094ED638
 Contract Creation0 ETH
-122711972021-04-19 14:59:021792 days ago1618844342
0xDacC23C8...A094ED638
 Contract Creation0 ETH
-122482102021-04-16 1:30:091795 days ago1618536609
0xDacC23C8...A094ED638
 Contract Creation0 ETH
-122466102021-04-15 19:30:331795 days ago1618515033
0xDacC23C8...A094ED638
 Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ESMFab

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-04-15
*/

// SPDX-License-Identifier: AGPL-3.0-or-later

/// DssDeploy.sol

// Copyright (C) 2018-2020 Maker Ecosystem Growth Holdings, INC.

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity >=0.5.12;

interface GemLike {
    function balanceOf(address) external view returns (uint256);
    function burn(uint256) external;
    function transfer(address, uint256) external returns (bool);
    function transferFrom(address, address, uint256) external returns (bool);
}

interface EndLike {
    function live() external view returns (uint256);
    function vat()  external view returns (address);
    function cage() external;
}

interface DenyLike {
    function deny(address) external;
}

contract ESM {
    GemLike public immutable gem;   // collateral (MKR token)
    EndLike public immutable end;   // cage module
    address public immutable proxy; // Pause proxy
    uint256 public immutable min;   // minimum activation threshold [wad]

    mapping(address => uint256) public sum; // per-address balance
    uint256 public Sum; // total balance

    event Fire();
    event Join(address indexed usr, uint256 wad);

    constructor(address gem_, address end_, address proxy_, uint256 min_) public {
        gem = GemLike(gem_);
        end = EndLike(end_);
        proxy = proxy_;
        min = min_;
    }

    function revokesGovernanceAccess() external view returns (bool ret) {
        ret = proxy != address(0);
    }

    // -- math --
    function add(uint256 x, uint256 y) internal pure returns (uint256 z) {
        z = x + y;
        require(z >= x);
    }

    function fire() external {
        require(Sum >= min,  "ESM/min-not-reached");

        if (proxy != address(0)) {
            DenyLike(end.vat()).deny(proxy);
        }
        end.cage();

        emit Fire();
    }

    function deny(address target) external {
        require(Sum >= min,  "ESM/min-not-reached");

        DenyLike(target).deny(proxy);
    }

    function join(uint256 wad) external {
        require(end.live() == 1, "ESM/system-already-shutdown");

        sum[msg.sender] = add(sum[msg.sender], wad);
        Sum = add(Sum, wad);

        require(gem.transferFrom(msg.sender, address(this), wad), "ESM/transfer-failed");
        emit Join(msg.sender, wad);
    }

    function burn() external {
        gem.burn(gem.balanceOf(address(this)));
    }
}


contract ESMFab {
    function newESM(address gov, address end, address proxy, uint min) public returns (ESM esm) {
        esm = new ESM(gov, end, proxy, min);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"gov","type":"address"},{"internalType":"address","name":"end","type":"address"},{"internalType":"address","name":"proxy","type":"address"},{"internalType":"uint256","name":"min","type":"uint256"}],"name":"newESM","outputs":[{"internalType":"contract ESM","name":"esm","type":"address"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610ff1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063429baf6814610030575b600080fd5b6100bc6004803603608081101561004657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506100e8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000848484846040516100fa90610182565b808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050604051809103906000f080158015610177573d6000803e3d6000fd5b509050949350505050565b610e2c806101908339019056fe61010060405234801561001157600080fd5b50604051610e2c380380610e2c8339818101604052608081101561003457600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050508373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508060e081815250505050505060805160601c60a05160601c60c05160601c60e051610c9e61018e600039806107905280610aa85280610c2c5250806105fe528061084052806109385280610b5c5280610be4525080610288528061087c52806109be5280610c085250806104385280610642528061067e5280610a6c5250610c9e6000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637bd2bea7116100715780637bd2bea71461012e5780637e459c60146101625780639c52a7f1146101ba578063ec556889146101fe578063efbe1c1c14610232578063f889794514610266576100a9565b8063049878f3146100ae57806314c7bbd5146100dc57806337be827d146100fc57806344df8e701461011a578063457094cc14610124575b600080fd5b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610284565b005b6100e46105e3565b60405180821515815260200191505060405180910390f35b61010461063a565b6040518082815260200191505060405180910390f35b610122610640565b005b61012c61078e565b005b610136610a6a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a46004803603602081101561017857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a8e565b6040518082815260200191505060405180910390f35b6101fc600480360360208110156101d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa6565b005b610206610be2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61023a610c06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61026e610c2a565b6040518082815260200191505060405180910390f35b60017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ec57600080fd5b505afa158015610300573d6000803e3d6000fd5b505050506040513d602081101561031657600080fd5b81019080805190602001909291905050501461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f73797374656d2d616c72656164792d73687574646f776e000000000081525060200191505060405180910390fd5b6103e26000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610c4e565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061043060015482610c4e565b6001819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156104e557600080fd5b505af11580156104f9573d6000803e3d6000fd5b505050506040513d602081101561050f57600080fd5b8101908080519060200190929190505050610592576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f7472616e736665722d6661696c65640000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fb4e09949657f21548b58afe74e7b86cd2295da5ff1598ae1e5faecb1cf19ca95826040518082815260200191505060405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161415905090565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342966c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561070357600080fd5b505afa158015610717573d6000803e3d6000fd5b505050506040513d602081101561072d57600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561077457600080fd5b505af1158015610788573d6000803e3d6000fd5b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001541015610826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109bc577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156108e057600080fd5b505afa1580156108f4573d6000803e3d6000fd5b505050506040513d602081101561090a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663692450096040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a2457600080fd5b505af1158015610a38573d6000803e3d6000fd5b505050507f14c539ef1ff6ef515371448cd46419fd75ebb8698b7f6644c4f66b03b032708560405160405180910390a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020528060005260406000206000915090505481565b7f00000000000000000000000000000000000000000000000000000000000000006001541015610b3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818301905082811015610c6257600080fd5b9291505056fea2646970667358221220fcd5f8fbbf34660879434e696b1d4846acf5aa234300337a20528e65e9855cec64736f6c634300060c0033a264697066735822122062899685e0f8bdd489f541a842b278489881757aff1e9e0ef1815dd84f76f74764736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063429baf6814610030575b600080fd5b6100bc6004803603608081101561004657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506100e8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000848484846040516100fa90610182565b808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050604051809103906000f080158015610177573d6000803e3d6000fd5b509050949350505050565b610e2c806101908339019056fe61010060405234801561001157600080fd5b50604051610e2c380380610e2c8339818101604052608081101561003457600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050508373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508060e081815250505050505060805160601c60a05160601c60c05160601c60e051610c9e61018e600039806107905280610aa85280610c2c5250806105fe528061084052806109385280610b5c5280610be4525080610288528061087c52806109be5280610c085250806104385280610642528061067e5280610a6c5250610c9e6000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637bd2bea7116100715780637bd2bea71461012e5780637e459c60146101625780639c52a7f1146101ba578063ec556889146101fe578063efbe1c1c14610232578063f889794514610266576100a9565b8063049878f3146100ae57806314c7bbd5146100dc57806337be827d146100fc57806344df8e701461011a578063457094cc14610124575b600080fd5b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610284565b005b6100e46105e3565b60405180821515815260200191505060405180910390f35b61010461063a565b6040518082815260200191505060405180910390f35b610122610640565b005b61012c61078e565b005b610136610a6a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a46004803603602081101561017857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a8e565b6040518082815260200191505060405180910390f35b6101fc600480360360208110156101d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa6565b005b610206610be2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61023a610c06565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61026e610c2a565b6040518082815260200191505060405180910390f35b60017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ec57600080fd5b505afa158015610300573d6000803e3d6000fd5b505050506040513d602081101561031657600080fd5b81019080805190602001909291905050501461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f73797374656d2d616c72656164792d73687574646f776e000000000081525060200191505060405180910390fd5b6103e26000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610c4e565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061043060015482610c4e565b6001819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156104e557600080fd5b505af11580156104f9573d6000803e3d6000fd5b505050506040513d602081101561050f57600080fd5b8101908080519060200190929190505050610592576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f7472616e736665722d6661696c65640000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fb4e09949657f21548b58afe74e7b86cd2295da5ff1598ae1e5faecb1cf19ca95826040518082815260200191505060405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161415905090565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342966c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561070357600080fd5b505afa158015610717573d6000803e3d6000fd5b505050506040513d602081101561072d57600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561077457600080fd5b505af1158015610788573d6000803e3d6000fd5b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001541015610826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146109bc577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156108e057600080fd5b505afa1580156108f4573d6000803e3d6000fd5b505050506040513d602081101561090a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156109a357600080fd5b505af11580156109b7573d6000803e3d6000fd5b505050505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663692450096040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a2457600080fd5b505af1158015610a38573d6000803e3d6000fd5b505050507f14c539ef1ff6ef515371448cd46419fd75ebb8698b7f6644c4f66b03b032708560405160405180910390a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020528060005260406000206000915090505481565b7f00000000000000000000000000000000000000000000000000000000000000006001541015610b3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000818301905082811015610c6257600080fd5b9291505056fea2646970667358221220fcd5f8fbbf34660879434e696b1d4846acf5aa234300337a20528e65e9855cec64736f6c634300060c0033a264697066735822122062899685e0f8bdd489f541a842b278489881757aff1e9e0ef1815dd84f76f74764736f6c634300060c0033

Deployed Bytecode Sourcemap

3081:172:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3104:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3187:7;3221:3;3226;3231:5;3238:3;3213:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3207:35;;3104:146;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o

Swarm Source

ipfs://62899685e0f8bdd489f541a842b278489881757aff1e9e0ef1815dd84f76f747

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.