ETH Price: $2,300.35 (-4.96%)

Contract

0x09e05fF6142F2f9de8B6B65855A1d56B6cfE4c58
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Join183162282023-10-09 23:37:47342 days ago1696894667IN
Maker: MCD Esm 2
0 ETH0.000413125.44398219
Join152113842022-07-25 11:25:31783 days ago1658748331IN
Maker: MCD Esm 2
0 ETH0.0015178518.81723881
Join141597872022-02-07 15:37:49951 days ago1644248269IN
Maker: MCD Esm 2
0 ETH0.01647258145
Deny141260022022-02-02 10:06:51956 days ago1643796411IN
Maker: MCD Esm 2
0 ETH0.0018619579.80265008
Rely141259982022-02-02 10:05:58956 days ago1643796358IN
Maker: MCD Esm 2
0 ETH0.0041137886.9353985
0x60c06040141258572022-02-02 9:33:41956 days ago1643794421IN
 Create: ESM
0 ETH0.1045979772.7507019

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ESM

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 2022-02-02
*/

// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity >=0.6.12;

////// src/ESM.sol

/// ESM.sol

// Copyright (C) 2019-2022 Dai Foundation

// 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.6.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 {

    uint256 constant WAD = 10 ** 18;

    GemLike public immutable gem;   // collateral (MKR token)
    address public immutable proxy; // Pause proxy

    mapping(address => uint256) public wards; // auth
    mapping(address => uint256) public sum;   // per-address balance

    uint256 public Sum;  // total balance
    uint256 public min;  // minimum activation threshold [wad]
    EndLike public end;  // cage module
    uint256 public live; // active flag

    event Fire();
    event Join(address indexed usr, uint256 wad);
    event File(bytes32 indexed what, uint256 data);
    event File(bytes32 indexed what, address data);
    event Rely(address indexed usr);
    event Deny(address indexed usr);
    event DenyProxy(address indexed base, address indexed pause);

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

        wards[msg.sender] = 1;
        emit Rely(msg.sender);
    }

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

    // --- Auth ---
    function rely(address usr) external auth {
        wards[usr] = 1;

        emit Rely(usr);
    }

    function deny(address usr) external auth {
        wards[usr] = 0;

        emit Deny(usr);
    }
    modifier auth {
        require(wards[msg.sender] == 1, "ESM/not-authorized");
        _;
    }

    // -- admin --
    function file(bytes32 what, uint256 data) external auth {
        if (what == "min") {
            require(data > WAD, "ESM/min-too-small");
            min = data;
        } else {
            revert("ESM/file-unrecognized-param");
        }

        emit File(what, data);
    }

    function file(bytes32 what, address data) external auth {
        if (what == "end") {
            end = EndLike(data);
        } else {
            revert("ESM/file-unrecognized-param");
        }

        emit File(what, data);
    }

    function cage() external auth {
        live = 0;
    }

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

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

        emit Fire();
    }

    function denyProxy(address target) external {
        require(live == 1, "ESM/permanently-disabled");
        require(Sum >= min, "ESM/min-not-reached");

        DenyLike(target).deny(proxy);
        emit DenyProxy(target, proxy);
    }

    function join(uint256 wad) external {
        require(live == 1, "ESM/permanently-disabled");
        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 Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"gem_","type":"address"},{"internalType":"address","name":"end_","type":"address"},{"internalType":"address","name":"proxy_","type":"address"},{"internalType":"uint256","name":"min_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"base","type":"address"},{"indexed":true,"internalType":"address","name":"pause","type":"address"}],"name":"DenyProxy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"data","type":"uint256"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"what","type":"bytes32"},{"indexed":false,"internalType":"address","name":"data","type":"address"}],"name":"File","type":"event"},{"anonymous":false,"inputs":[],"name":"Fire","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Join","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"inputs":[],"name":"Sum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"denyProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"end","outputs":[{"internalType":"contract EndLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"uint256","name":"data","type":"uint256"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"what","type":"bytes32"},{"internalType":"address","name":"data","type":"address"}],"name":"file","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gem","outputs":[{"internalType":"contract GemLike","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"join","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"live","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"min","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revokesGovernanceAccess","outputs":[{"internalType":"bool","name":"ret","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c060405234801561001057600080fd5b506040516119703803806119708339818101604052608081101561003357600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050508373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b8152505080600381905550600160058190555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a25050505060805160601c60a05160601c6117746101fc6000398061096a52806109ef5280610a855280610f30528061102a52806116d65250806106af5280610cd85280610d14528061135c52506117746000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80637bd2bea7116100a2578063bf353dbb11610071578063bf353dbb14610353578063d4e8be83146103ab578063ec556889146103f9578063efbe1c1c1461042d578063f88979451461046157610116565b80637bd2bea7146102655780637e459c6014610299578063957aa58c146102f15780639c52a7f11461030f57610116565b806337be827d116100e957806337be827d146101e557806344df8e7014610203578063457094cc1461020d57806365fae35e14610217578063692450091461025b57610116565b8063049878f31461011b5780630715940e1461014957806314c7bbd51461018d57806329ae8114146101ad575b600080fd5b6101476004803603602081101561013157600080fd5b810190808035906020019092919050505061047f565b005b61018b6004803603602081101561015f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061085a565b005b610195610a6a565b60405180821515815260200191505060405180910390f35b6101e3600480360360408110156101c357600080fd5b810190808035906020019092919080359060200190929190505050610ac1565b005b6101ed610cd0565b6040518082815260200191505060405180910390f35b61020b610cd6565b005b610215610e24565b005b6102596004803603602081101561022d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061115e565b005b61026361129c565b005b61026d61135a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137e565b6040518082815260200191505060405180910390f35b6102f9611396565b6040518082815260200191505060405180910390f35b6103516004803603602081101561032557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b005b6103956004803603602081101561036957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114da565b6040518082815260200191505060405180910390f35b6103f7600480360360408110156103c157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f2565b005b6104016116d4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104356116f8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046961171e565b6040518082815260200191505060405180910390f35b6001600554146104f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f45534d2f7065726d616e656e746c792d64697361626c6564000000000000000081525060200191505060405180910390fd5b6001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056157600080fd5b505afa158015610575573d6000803e3d6000fd5b505050506040513d602081101561058b57600080fd5b81019080805190602001909291905050501461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f73797374656d2d616c72656164792d73687574646f776e000000000081525060200191505060405180910390fd5b610658600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611724565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106a760025482611724565b6002819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561075c57600080fd5b505af1158015610770573d6000803e3d6000fd5b505050506040513d602081101561078657600080fd5b8101908080519060200190929190505050610809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f7472616e736665722d6661696c65640000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fb4e09949657f21548b58afe74e7b86cd2295da5ff1598ae1e5faecb1cf19ca95826040518082815260200191505060405180910390a250565b6001600554146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f45534d2f7065726d616e656e746c792d64697361626c6564000000000000000081525060200191505060405180910390fd5b600354600254101561094c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156109d557600080fd5b505af11580156109e9573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f74269424d52f84560e5738dd2769b61b0e04d5c87c87ca043a1e005e0722a67860405160405180910390a350565b60008073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161415905090565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f6d696e0000000000000000000000000000000000000000000000000000000000821415610c2657670de0b6b3a76400008111610c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f45534d2f6d696e2d746f6f2d736d616c6c00000000000000000000000000000081525060200191505060405180910390fd5b80600381905550610c94565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b817fe986e40cc8c151830d4f61050f4fb2e4add8567caad2d5f5496f9158e91fe4c7826040518082815260200191505060405180910390a25050565b60025481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342966c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d6020811015610dc357600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610e0a57600080fd5b505af1158015610e1e573d6000803e3d6000fd5b50505050565b600160055414610e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f45534d2f7065726d616e656e746c792d64697361626c6564000000000000000081525060200191505060405180910390fd5b6003546002541015610f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146110ae57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd257600080fd5b505afa158015610fe6573d6000803e3d6000fd5b505050506040513d6020811015610ffc57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b505050505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663692450096040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561111857600080fd5b505af115801561112c573d6000803e3d6000fd5b505050507f14c539ef1ff6ef515371448cd46419fd75ebb8698b7f6644c4f66b03b032708560405160405180910390a1565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a250565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6000600581905550565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020528060005260406000206000915090505481565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b60405160405180910390a250565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f656e6400000000000000000000000000000000000000000000000000000000008214156116145780600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611682565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b817f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600081830190508281101561173857600080fd5b9291505056fea2646970667358221220f73118f1bab39dd398899b11ce3c935cf17c6c504942c0e6ddee6fc7205144a764736f6c634300060c00330000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000bb856d1742fd182a90239d7ae85706c2fe4e5922000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb00000000000000000000000000000000000000000000152d02c7e14af6800000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c80637bd2bea7116100a2578063bf353dbb11610071578063bf353dbb14610353578063d4e8be83146103ab578063ec556889146103f9578063efbe1c1c1461042d578063f88979451461046157610116565b80637bd2bea7146102655780637e459c6014610299578063957aa58c146102f15780639c52a7f11461030f57610116565b806337be827d116100e957806337be827d146101e557806344df8e7014610203578063457094cc1461020d57806365fae35e14610217578063692450091461025b57610116565b8063049878f31461011b5780630715940e1461014957806314c7bbd51461018d57806329ae8114146101ad575b600080fd5b6101476004803603602081101561013157600080fd5b810190808035906020019092919050505061047f565b005b61018b6004803603602081101561015f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061085a565b005b610195610a6a565b60405180821515815260200191505060405180910390f35b6101e3600480360360408110156101c357600080fd5b810190808035906020019092919080359060200190929190505050610ac1565b005b6101ed610cd0565b6040518082815260200191505060405180910390f35b61020b610cd6565b005b610215610e24565b005b6102596004803603602081101561022d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061115e565b005b61026361129c565b005b61026d61135a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102db600480360360208110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137e565b6040518082815260200191505060405180910390f35b6102f9611396565b6040518082815260200191505060405180910390f35b6103516004803603602081101561032557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b005b6103956004803603602081101561036957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114da565b6040518082815260200191505060405180910390f35b6103f7600480360360408110156103c157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f2565b005b6104016116d4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104356116f8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046961171e565b6040518082815260200191505060405180910390f35b6001600554146104f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f45534d2f7065726d616e656e746c792d64697361626c6564000000000000000081525060200191505060405180910390fd5b6001600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663957aa58c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561056157600080fd5b505afa158015610575573d6000803e3d6000fd5b505050506040513d602081101561058b57600080fd5b81019080805190602001909291905050501461060f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f73797374656d2d616c72656164792d73687574646f776e000000000081525060200191505060405180910390fd5b610658600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611724565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106a760025482611724565b6002819055507f0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561075c57600080fd5b505af1158015610770573d6000803e3d6000fd5b505050506040513d602081101561078657600080fd5b8101908080519060200190929190505050610809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f7472616e736665722d6661696c65640000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fb4e09949657f21548b58afe74e7b86cd2295da5ff1598ae1e5faecb1cf19ca95826040518082815260200191505060405180910390a250565b6001600554146108d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f45534d2f7065726d616e656e746c792d64697361626c6564000000000000000081525060200191505060405180910390fd5b600354600254101561094c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156109d557600080fd5b505af11580156109e9573d6000803e3d6000fd5b505050507f000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f74269424d52f84560e5738dd2769b61b0e04d5c87c87ca043a1e005e0722a67860405160405180910390a350565b60008073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb73ffffffffffffffffffffffffffffffffffffffff161415905090565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f6d696e0000000000000000000000000000000000000000000000000000000000821415610c2657670de0b6b3a76400008111610c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f45534d2f6d696e2d746f6f2d736d616c6c00000000000000000000000000000081525060200191505060405180910390fd5b80600381905550610c94565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b817fe986e40cc8c151830d4f61050f4fb2e4add8567caad2d5f5496f9158e91fe4c7826040518082815260200191505060405180910390a25050565b60025481565b7f0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a273ffffffffffffffffffffffffffffffffffffffff166342966c687f0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d6020811015610dc357600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610e0a57600080fd5b505af1158015610e1e573d6000803e3d6000fd5b50505050565b600160055414610e9c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f45534d2f7065726d616e656e746c792d64697361626c6564000000000000000081525060200191505060405180910390fd5b6003546002541015610f16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f45534d2f6d696e2d6e6f742d726561636865640000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb73ffffffffffffffffffffffffffffffffffffffff16146110ae57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166336569e776040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd257600080fd5b505afa158015610fe6573d6000803e3d6000fd5b505050506040513d6020811015610ffc57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16639c52a7f17f000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561109557600080fd5b505af11580156110a9573d6000803e3d6000fd5b505050505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663692450096040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561111857600080fd5b505af115801561112c573d6000803e3d6000fd5b505050507f14c539ef1ff6ef515371448cd46419fd75ebb8698b7f6644c4f66b03b032708560405160405180910390a1565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611212576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a250565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b6000600581905550565b7f0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a281565b60016020528060005260406000206000915090505481565b60055481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b60405160405180910390a250565b60006020528060005260406000206000915090505481565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146115a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f45534d2f6e6f742d617574686f72697a6564000000000000000000000000000081525060200191505060405180910390fd5b7f656e6400000000000000000000000000000000000000000000000000000000008214156116145780600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611682565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f45534d2f66696c652d756e7265636f676e697a65642d706172616d000000000081525060200191505060405180910390fd5b817f8fef588b5fc1afbf5b2f06c1a435d513f208da2e6704c3d8f0e0ec91167066ba82604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b7f000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb81565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600081830190508281101561173857600080fd5b9291505056fea2646970667358221220f73118f1bab39dd398899b11ce3c935cf17c6c504942c0e6ddee6fc7205144a764736f6c634300060c0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2000000000000000000000000bb856d1742fd182a90239d7ae85706c2fe4e5922000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb00000000000000000000000000000000000000000000152d02c7e14af6800000

-----Decoded View---------------
Arg [0] : gem_ (address): 0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
Arg [1] : end_ (address): 0xBB856d1742fD182a90239D7AE85706C2FE4e5922
Arg [2] : proxy_ (address): 0xBE8E3e3618f7474F8cB1d074A26afFef007E98FB
Arg [3] : min_ (uint256): 100000000000000000000000

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a2
Arg [1] : 000000000000000000000000bb856d1742fd182a90239d7ae85706c2fe4e5922
Arg [2] : 000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb
Arg [3] : 00000000000000000000000000000000000000000000152d02c7e14af6800000


Deployed Bytecode Sourcemap

1389:3366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4279:383;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4028:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2491:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3124:289;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1695:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4670:82;;;:::i;:::-;;3737:283;;;:::i;:::-;;2782:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3672:57;;;:::i;:::-;;1451:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1623:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1843:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2891:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1568:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3421:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1514:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1802:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1738;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4279:383;4342:1;4334:4;;:9;4326:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4405:1;4391:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;4383:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:25;4473:3;:15;4477:10;4473:15;;;;;;;;;;;;;;;;4490:3;4469;:25::i;:::-;4451:3;:15;4455:10;4451:15;;;;;;;;;;;;;;;:43;;;;4511:13;4515:3;;4520;4511;:13::i;:::-;4505:3;:19;;;;4545:3;:16;;;4562:10;4582:4;4589:3;4545:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4537:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4638:10;4633:21;;;4650:3;4633:21;;;;;;;;;;;;;;;;;;4279:383;:::o;4028:243::-;4099:1;4091:4;;:9;4083:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4155:3;;4148;;:10;;4140:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4204:6;4195:21;;;4217:5;4195:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4257:5;4239:24;;4249:6;4239:24;;;;;;;;;;;;4028:243;:::o;2491:112::-;2549:8;2593:1;2576:19;;:5;:19;;;;2570:25;;2491:112;:::o;3124:289::-;3052:1;3031:5;:17;3037:10;3031:17;;;;;;;;;;;;;;;;:22;3023:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3195:13:::1;:4;:13;3191:181;;;1434:8;3233:4;:10;3225:40;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3286:4;3280:3;:10;;;;3191:181;;;3323:37;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;3191:181;3394:4;3389:16;3400:4;3389:16;;;;;;;;;;;;;;;;;;3124:289:::0;;:::o;1695:18::-;;;;:::o;4670:82::-;4706:3;:8;;;4715:3;:13;;;4737:4;4715:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4706:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4670:82::o;3737:283::-;3789:1;3781:4;;:9;3773:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3845:3;;3838;;:10;;3830:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3906:1;3889:19;;:5;:19;;;3885:83;;3934:3;;;;;;;;;;;:7;;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3925:24;;;3950:5;3925:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3885:83;3978:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4006:6;;;;;;;;;;3737:283::o;2782:101::-;3052:1;3031:5;:17;3037:10;3031:17;;;;;;;;;;;;;;;;:22;3023:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2847:1:::1;2834:5;:10:::0;2840:3:::1;2834:10;;;;;;;;;;;;;;;:14;;;;2871:3;2866:9;;;;;;;;;;;;2782:101:::0;:::o;3672:57::-;3052:1;3031:5;:17;3037:10;3031:17;;;;;;;;;;;;;;;;:22;3023:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3720:1:::1;3713:4;:8;;;;3672:57::o:0;1451:28::-;;;:::o;1623:38::-;;;;;;;;;;;;;;;;;:::o;1843:19::-;;;;:::o;2891:101::-;3052:1;3031:5;:17;3037:10;3031:17;;;;;;;;;;;;;;;;:22;3023:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2956:1:::1;2943:5:::0;:10:::1;2949:3;2943:10;;;;;;;;;;;;;;;:14;;;;2980:3;2975:9;;;;;;;;;;;;2891:101:::0;:::o;1568:40::-;;;;;;;;;;;;;;;;;:::o;3421:243::-;3052:1;3031:5;:17;3037:10;3031:17;;;;;;;;;;;;;;;;:22;3023:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3492:13:::1;:4;:13;3488:135;;;3536:4;3522:3;;:19;;;;;;;;;;;;;;;;;;3488:135;;;3574:37;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;3488:135;3645:4;3640:16;3651:4;3640:16;;;;;;;;;;;;;;;;;;;;3421:243:::0;;:::o;1514:30::-;;;:::o;1802:18::-;;;;;;;;;;;;;:::o;1738:::-;;;;:::o;2630:123::-;2688:9;2718:1;2714;:5;2710:9;;2743:1;2738;:6;;2730:15;;;;;;2630:123;;;;:::o

Swarm Source

ipfs://f73118f1bab39dd398899b11ce3c935cf17c6c504942c0e6ddee6fc7205144a7

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  ]

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.