ETH Price: $3,079.86 (-0.06%)
Gas: 10 Gwei

Contract

0xFA635D9093C2dd637CF19d48Df6EA1DBde56DDB1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Cast88965262019-11-08 13:44:101625 days ago1573220650IN
0xFA635D90...Bde56DDB1
0 ETH0.000505774.33328606
0x6080604088923302019-11-07 21:23:211625 days ago1573161801IN
 Create: RaiseCeilingLowerSF
0 ETH0.000256491

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RaiseCeilingLowerSF

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2019-11-07
*/

// hevm: flattened sources of src/2019-11-07_5.5_to_5_and_cap_120M.t.sol
pragma solidity >=0.5.10;

////// lib/ds-exec/src/exec.sol
// exec.sol - base contract used by anything that wants to do "untyped" calls

// 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 DSExec {
    function tryExec( address target, bytes memory data, uint value)
             internal
             returns (bool ok)
    {
        assembly {
            ok := call(gas, target, value, add(data, 0x20), mload(data), 0, 0)
        }
    }
    function exec( address target, bytes memory data, uint value)
             internal
    {
        if(!tryExec(target, data, value)) {
            revert("ds-exec-call-failed");
        }
    }

    // Convenience aliases
    function exec( address t, bytes memory c )
        internal
    {
        exec(t, c, 0);
    }
    function exec( address t, uint256 v )
        internal
    {
        bytes memory c; exec(t, c, v);
    }
    function tryExec( address t, bytes memory c )
        internal
        returns (bool)
    {
        return tryExec(t, c, 0);
    }
    function tryExec( address t, uint256 v )
        internal
        returns (bool)
    {
        bytes memory c; return tryExec(t, c, v);
    }
}

////// lib/ds-note/src/note.sol
/// note.sol -- the `note' modifier, for logging calls as events

// 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 DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint256           wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;
        uint256 wad;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
            wad := callvalue
        }

        emit LogNote(msg.sig, msg.sender, foo, bar, wad, msg.data);

        _;
    }
}

////// src/2019-11-07_5.5_to_5_and_cap_120M.t.sol
// 2019-11-07_5.5_to_5_and_cap_120M.t.sol

// 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.5.10; */

/* import "ds-test/test.sol"; */
/* import "ds-exec/exec.sol"; */
/* import "ds-note/note.sol"; */

interface SaiTub {
    function fee() external view returns (uint256);
    function cap() external view returns (uint256);
    function mat() external view returns (uint256);
    function drip() external;
}

interface ERC20 {
    function allowance(address,address) external view returns (uint256);
    function balanceOf(address) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    function approve(address,uint256) external returns (bool);
}

interface DSChief {
    function hat() external view returns (address);
    function GOV() external view returns (address);
    function IOU() external view returns (address);
    function approvals(address) external view returns (uint256);
    function lock(uint wad) external;
    function free(uint wad) external;
    function vote(address[] calldata yays) external returns (bytes32);
    function vote(bytes32 slate) external;
    function lift(address whom) external;
}

contract RaiseCeilingLowerSF is DSExec, DSNote {

    uint256 constant public CAP  = 120000000 * 10 ** 18; // 120,000,000 DAI
    uint256 constant public FEE  = 1000000001547125957863212448;
    address constant public MOM  = 0xF2C5369cFFb8Ea6284452b0326e326DbFdCb867C; // SaiMom

    bool public done;

    function cast() public note {
        require(!done);
        done = true;

        // increase cap to 120,000,000
        exec(MOM, abi.encodeWithSignature("setCap(uint256)", CAP), 0);

        // decrease fee to 5.0
        exec(MOM, abi.encodeWithSignature("setFee(uint256)", FEE), 0);

    }
}

Contract Security Audit

Contract ABI

[{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":true,"internalType":"bytes32","name":"foo","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"bar","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"constant":true,"inputs":[],"name":"CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MOM","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"cast","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"done","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506102f8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806386a4f6ee1461005c57806396d373e514610080578063ae8421e11461008a578063c57981b5146100a6578063ec81b483146100c0575b600080fd5b6100646100c8565b604080516001600160a01b039092168252519081900360200190f35b6100886100e0565b005b610092610232565b604080519115158252519081900360200190f35b6100ae61023b565b60408051918252519081900360200190f35b6100ae61024b565b73f2c5369cffb8ea6284452b0326e326dbfdcb867c81565b604080513480825260208201838152369383018490526004359360243593849286923392600080356001600160e01b03191693889391929060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a460005460ff161561015457600080fd5b6000805460ff19166001178155604080516a6342fd08f00f63780000006024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166347786d3760e01b1790526101c69173f2c5369cffb8ea6284452b0326e326dbfdcb867c919061025a565b604080516b033b2e3cb548ff197d3905a06024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166369fe0e2d60e01b17905261022d9073f2c5369cffb8ea6284452b0326e326dbfdcb867c90600061025a565b505050565b60005460ff1681565b6b033b2e3cb548ff197d3905a081565b6a6342fd08f00f637800000081565b6102658383836102ac565b61022d576040805162461bcd60e51b8152602060048201526013602482015272191ccb595e1958cb58d85b1b0b59985a5b1959606a1b604482015290519081900360640190fd5b600080600084516020860185885af194935050505056fea265627a7a72315820d72c16a49a1813de2ccf63c47b4b52fe3a240af138684e88a63082d33eff7d8c64736f6c634300050c0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100575760003560e01c806386a4f6ee1461005c57806396d373e514610080578063ae8421e11461008a578063c57981b5146100a6578063ec81b483146100c0575b600080fd5b6100646100c8565b604080516001600160a01b039092168252519081900360200190f35b6100886100e0565b005b610092610232565b604080519115158252519081900360200190f35b6100ae61023b565b60408051918252519081900360200190f35b6100ae61024b565b73f2c5369cffb8ea6284452b0326e326dbfdcb867c81565b604080513480825260208201838152369383018490526004359360243593849286923392600080356001600160e01b03191693889391929060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a460005460ff161561015457600080fd5b6000805460ff19166001178155604080516a6342fd08f00f63780000006024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166347786d3760e01b1790526101c69173f2c5369cffb8ea6284452b0326e326dbfdcb867c919061025a565b604080516b033b2e3cb548ff197d3905a06024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166369fe0e2d60e01b17905261022d9073f2c5369cffb8ea6284452b0326e326dbfdcb867c90600061025a565b505050565b60005460ff1681565b6b033b2e3cb548ff197d3905a081565b6a6342fd08f00f637800000081565b6102658383836102ac565b61022d576040805162461bcd60e51b8152602060048201526013602482015272191ccb595e1958cb58d85b1b0b59985a5b1959606a1b604482015290519081900360640190fd5b600080600084516020860185885af194935050505056fea265627a7a72315820d72c16a49a1813de2ccf63c47b4b52fe3a240af138684e88a63082d33eff7d8c64736f6c634300050c0032

Deployed Bytecode Sourcemap

5211:624:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5211:624:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5410:73;;;:::i;:::-;;;;-1:-1:-1;;;;;5410:73:0;;;;;;;;;;;;;;5527:305;;;:::i;:::-;;5502:16;;;:::i;:::-;;;;;;;;;;;;;;;;;;5344:59;;;:::i;:::-;;;;;;;;;;;;;;;;5267:51;;;:::i;5410:73::-;5441:42;5410:73;:::o;5527:305::-;3247:53;;;3210:9;3247:53;;;;;;;;;3291:8;3247:53;;;;;;3150:1;3137:15;;3186:2;3173:16;;;;3137:15;;3264:10;;-1:-1:-1;3255:7:0;;-1:-1:-1;;;;;;3255:7:0;;3210:9;;-1:-1:-1;;3247:53:0;;;;-1:-1:-1;3291:8:0;;-1:-1:-1;3247:53:0;1:33:-1;99:1;81:16;;;74:27;3247:53:0;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;3247:53:0;;;;-1:-1:-1;3247:53:0;;-1:-1:-1;;;;;3247:53:0;5575:4;;;;5574:5;5566:14;;;;;;5591:4;:11;;-1:-1:-1;;5591:11:0;5598:4;5591:11;;;5665:47;;;5298:20;5665:47;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5665:47:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;5655:61:0;;5441:42;;5665:47;5655:4;:61::i;:::-;5771:47;;;5375:28;5771:47;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;5771:47:0;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;5761:61:0;;5441:42;;-1:-1:-1;5761:4:0;:61::i;:::-;5527:305;;;:::o;5502:16::-;;;;;;:::o;5344:59::-;5375:28;5344:59;:::o;5267:51::-;5298:20;5267:51;:::o;1220:198::-;1325:28;1333:6;1341:4;1347:5;1325:7;:28::i;:::-;1321:90;;1370:29;;;-1:-1:-1;;;1370:29:0;;;;;;;;;;;;-1:-1:-1;;;1370:29:0;;;;;;;;;;;;;;970:244;1081:7;1194:1;1191;1184:4;1178:11;1171:4;1165;1161:15;1154:5;1146:6;1141:3;1136:60;1130:66;1115:92;-1:-1:-1;;;;1115:92:0:o

Swarm Source

bzzr://d72c16a49a1813de2ccf63c47b4b52fe3a240af138684e88a63082d33eff7d8c

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
[ 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.