ETH Price: $3,048.64 (-0.67%)
Gas: 6 Gwei

Contract

0x8E5F3abC36dA63142275202454c11237F47DD170
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Cast94455482020-02-09 1:15:351549 days ago1581210935IN
0x8E5F3abC...7F47DD170
0 ETH0.001000124
Schedule94455402020-02-09 1:14:111549 days ago1581210851IN
0x8E5F3abC...7F47DD170
0 ETH0.00058544
0x6080604094363422020-02-07 15:30:051551 days ago1581089405IN
 Create: DssFebruary7Spell
0 ETH0.00467324.0001

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To Value
94363422020-02-07 15:30:051551 days ago1581089405
0x8E5F3abC...7F47DD170
 Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DssFebruary7Spell

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-02-07
*/

/**
 *Submitted for verification at Etherscan.io on 2020-01-31
*/

pragma solidity ^0.5.12;

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, "ds-math-add-overflow");
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, "ds-math-sub-underflow");
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

// https://github.com/dapphub/ds-pause
contract DSPauseAbstract {
    function setOwner(address) public;
    // setAuthority address should conform to DSAuthorityAbstract
    function setAuthority(address) public;
    function setDelay(uint256) public;
    // mapping (bytes32 => bool) public plans;
    function plans(bytes32) public view returns (bool);
    // DSPauseProxyAbstract public proxy;
    function proxy() public view returns (address);
    // uint256 public delay;
    function delay() public view returns (uint256);
    function plot(address, bytes32, bytes memory, uint256) public;
    function drop(address, bytes32, bytes memory, uint256) public;
    function exec(address, bytes32, bytes memory, uint256) public returns (bytes memory);
}

// https://github.com/makerdao/dss/blob/master/src/jug.sol
contract JugAbstract {
    // mapping (address => uint) public wards;
    function wards(address) public view returns (uint256);
    function rely(address) external;
    function deny(address) external;
    struct Ilk {
        uint256 duty;
        uint256  rho;
    }
    // mapping (bytes32 => Ilk) public ilks;
    function ilks(bytes32) public view returns (uint256, uint256);
    // VatLike public vat;
    function vat() public view returns (address);
    // address public vow;
    function vow() public view returns (address);
    // uint256 public base;
    function base() public view returns (address);
    // uint256 constant ONE = 10 ** 27;
    function ONE() public view returns (uint256);
    function init(bytes32) external;
    function file(bytes32, bytes32, uint256) external;
    function file(bytes32, uint256) external;
    function file(bytes32, address) external;
    function drip(bytes32) external returns (uint256);
}

// https://github.com/makerdao/dss/blob/master/src/pot.sol
contract PotAbstract {
    // mapping (address => uint256) public wards;
    function wards(address) public view returns (uint256);
    function rely(address) external;
    function deny(address) external;
    // mapping (address => uint256) public pie;  // user Savings Dai
    function pie(address) public view returns (uint256);
    // uint256 public Pie;  // total Savings Dai
    function Pie() public view returns (uint256);
    // uint256 public dsr;  // the Dai Savings Rate
    function dsr() public view returns (uint256);
    // uint256 public chi;  // the Rate Accumulator
    function chi() public view returns (uint256);
    // VatAbstract public vat;  // CDP engine
    function vat() public view returns (address);
    // address public vow;  // debt engine
    function vow() public view returns (address);
    // uint256 public rho;  // time of last drip
    function rho() public view returns (uint256);
    // uint256 public live;  // Access Flag
    function live() public view returns (uint256);
    function file(bytes32, uint256) external;
    function file(bytes32, address) external;
    function cage() external;
    function drip() external returns (uint256);
    function join(uint256) external;
    function exit(uint256) external;
}

contract VatAbstract {
    // mapping (address => uint) public wards;
    function wards(address) public view returns (uint256);
    function rely(address) external;
    function deny(address) external;
    struct Ilk {
        uint256 Art;   // Total Normalised Debt     [wad]
        uint256 rate;  // Accumulated Rates         [ray]
        uint256 spot;  // Price with Safety Margin  [ray]
        uint256 line;  // Debt Ceiling              [rad]
        uint256 dust;  // Urn Debt Floor            [rad]
    }
    struct Urn {
        uint256 ink;   // Locked Collateral  [wad]
        uint256 art;   // Normalised Debt    [wad]
    }
    // mapping (address => mapping (address => uint256)) public can;
    function can(address, address) public view returns (uint256);
    function hope(address) external;
    function nope(address) external;
    // mapping (bytes32 => Ilk) public ilks;
    function ilks(bytes32) external view returns (uint256, uint256, uint256, uint256, uint256);
    // mapping (bytes32 => mapping (address => Urn)) public urns;
    function urns(bytes32, address) public view returns (uint256, uint256);
    // mapping (bytes32 => mapping (address => uint256)) public gem;  // [wad]
    function gem(bytes32, address) public view returns (uint256);
    // mapping (address => uint256) public dai;  // [rad]
    function dai(address) public view returns (uint256);
    // mapping (address => uint256) public sin;  // [rad]
    function sin(address) public view returns (uint256);
    // uint256 public debt;  // Total Dai Issued    [rad]
    function debt() public view returns (uint256);
    // uint256 public vice;  // Total Unbacked Dai  [rad]
    function vice() public view returns (uint256);
    // uint256 public Line;  // Total Debt Ceiling  [rad]
    function Line() public view returns (uint256);
    // uint256 public live;  // Access Flag
    function live() public view returns (uint256);
    function init(bytes32) external;
    function file(bytes32, uint256) external;
    function file(bytes32, bytes32, uint256) external;
    function cage() external;
    function slip(bytes32, address, int256) external;
    function flux(bytes32, address, address, uint256) external;
    function move(address, address, uint256) external;
    function frob(bytes32, address, address, address, int256, int256) external;
    function fork(bytes32, address, address, int256, int256) external;
    function grab(bytes32, address, address, address, int256, int256) external;
    function heal(uint256) external;
    function suck(address, address, uint256) external;
    function fold(bytes32, address, int256) external;
}

contract SaiMomLike {
    function setCap(uint256) external;
    function setFee(uint256) external;
}

contract SaiConstants {
    uint256 constant WAD = 10 ** 18;
    uint256 constant RAD = 10 ** 45;
    address constant public SAIMOM = 0xF2C5369cFFb8Ea6284452b0326e326DbFdCb867C;
    uint256 constant public SCDCAP = 30000000;
    uint256 constant public SCDFEE = 1000000002732676825177582095;
}

contract SpellAction is SaiConstants, DSMath {
    address constant public VAT = 0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B;
    address constant public JUG = 0x19c0976f590D67707E62397C87829d896Dc0f1F1;
    address constant public POT = 0x197E90f9FAD81970bA7976f33CbD77088E5D7cf7;

    function execute() external {
        // drip
        PotAbstract(POT).drip();
        JugAbstract(JUG).drip("ETH-A");
        JugAbstract(JUG).drip("BAT-A");

        // set dsr to 7.5%
        PotAbstract(POT).file("dsr", 1000000002293273137447730714);

        // SF = 8%
        uint256 sf = 1000000002440418608258400030;

        // set ETH-A duty to 8%
        JugAbstract(JUG).file("ETH-A", "duty", sf);

        // set BAT-A duty to 8%
        JugAbstract(JUG).file("BAT-A", "duty", sf);
    }
}

contract DssFebruary7Spell is SaiConstants, DSMath {
    DSPauseAbstract  public pause =
        DSPauseAbstract(0xbE286431454714F511008713973d3B053A2d38f3);
    address          public action;
    bytes32          public tag;
    uint256          public eta;
    bytes            public sig;
    bool             public done;

    constructor() public {
        sig = abi.encodeWithSignature("execute()");
        action = address(new SpellAction());
        bytes32 _tag;
        address _action = action;
        assembly { _tag := extcodehash(_action) }
        tag = _tag;
    }

    function schedule() public {
        require(eta == 0, "spell-already-scheduled");
        eta = add(now, DSPauseAbstract(pause).delay());
        pause.plot(action, tag, sig, eta);

        // NOTE: 'eta' check should mimic the old behavior of 'done', thus
        // preventing these SCD changes from being executed again.

        // Lower Stability Fee in SCD to 9%
        SaiMomLike(SAIMOM).setFee(SCDFEE);
    }

    function cast() public {
        require(!done, "spell-already-cast");
        done = true;
        pause.exec(action, tag, sig, eta);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"SAIMOM","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SCDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SCDFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"action","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"},{"constant":true,"inputs":[],"name":"eta","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pause","outputs":[{"internalType":"contract DSPauseAbstract","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"schedule","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tag","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405273be286431454714f511008713973d3b053a2d38f36000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561006457600080fd5b506040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050600490805190602001906100fd9291906101a1565b5060405161010a90610221565b604051809103906000f080158015610126573d6000803e3d6000fd5b50600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050803f9150816002819055505050610253565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101e257805160ff1916838001178555610210565b82800160010185558215610210579182015b8281111561020f5782518255916020019190600101906101f4565b5b50905061021d919061022e565b5090565b61074080610d3883390190565b61025091905b8082111561024c576000816000905550600101610234565b5090565b90565b610ad6806102626000396000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80638456cb59116100715780638456cb591461020057806396d373e51461024a578063ae8421e114610254578063b0604a2614610276578063cb20a28814610280578063f7992d851461029e576100a8565b8062a7029b146100ad5780630a7a1c4d1461013057806333dba3511461017a57806351f91066146101c457806357f6ca68146101e2575b600080fd5b6100b56102bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f55780820151818401526020810190506100da565b50505050905090810190601f1680156101225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61013861035a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610182610380565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101cc610398565b6040518082815260200191505060405180910390f35b6101ea61039e565b6040518082815260200191505060405180910390f35b6102086103ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102526103d3565b005b61025c6106ce565b604051808215151515815260200191505060405180910390f35b61027e6106e1565b005b610288610a10565b6040518082815260200191505060405180910390f35b6102a6610a18565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103525780601f1061032757610100808354040283529160200191610352565b820191906000526020600020905b81548152906001019060200180831161033557829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73f2c5369cffb8ea6284452b0326e326dbfdcb867c81565b60025481565b6b033b2e3cc5bceb5502a6ea0f81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900460ff1615610456576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f7370656c6c2d616c72656164792d63617374000000000000000000000000000081525060200191505060405180910390fd5b6001600560006101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663168ccd67600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660025460046003546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105af5780601f10610584576101008083540402835291602001916105af565b820191906000526020600020905b81548152906001019060200180831161059257829003601f168201915b505095505050505050600060405180830381600087803b1580156105d257600080fd5b505af11580156105e6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561061057600080fd5b810190808051604051939291908464010000000082111561063057600080fd5b8382019150602082018581111561064657600080fd5b825186600182028301116401000000008211171561066357600080fd5b8083526020830192505050908051906020019080838360005b8381101561069757808201518184015260208101905061067c565b50505050905090810190601f1680156106c45780820380516001836020036101000a031916815260200191505b5060405250505050565b600560009054906101000a900460ff1681565b600060035414610759576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f7370656c6c2d616c72656164792d7363686564756c656400000000000000000081525060200191505060405180910390fd5b610804426000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c457600080fd5b505afa1580156107d8573d6000803e3d6000fd5b505050506040513d60208110156107ee57600080fd5b8101908080519060200190929190505050610a1e565b6003819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166346d2fbbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660025460046003546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156109485780601f1061091d57610100808354040283529160200191610948565b820191906000526020600020905b81548152906001019060200180831161092b57829003601f168201915b505095505050505050600060405180830381600087803b15801561096b57600080fd5b505af115801561097f573d6000803e3d6000fd5b5050505073f2c5369cffb8ea6284452b0326e326dbfdcb867c73ffffffffffffffffffffffffffffffffffffffff166369fe0e2d6b033b2e3cc5bceb5502a6ea0f6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156109f657600080fd5b505af1158015610a0a573d6000803e3d6000fd5b50505050565b6301c9c38081565b60035481565b6000828284019150811015610a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fea265627a7a723158204c8c45bef7682d3e1f5b9d0254c1823599ecdef8ab4d529452d399cd6572bc5b64736f6c634300050c0032608060405234801561001057600080fd5b50610720806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063614619541161005b578063614619541461013457806361d782621461013e578063970b1d4414610188578063cb20a288146101d25761007d565b806333dba3511461008257806348bb9069146100cc57806357f6ca6814610116575b600080fd5b61008a6101f0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100d4610208565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61011e610220565b6040518082815260200191505060405180910390f35b61013c610230565b005b6101466106b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101906106cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101da6106e3565b6040518082815260200191505060405180910390f35b73f2c5369cffb8ea6284452b0326e326dbfdcb867c81565b73197e90f9fad81970ba7976f33cbd77088e5d7cf781565b6b033b2e3cc5bceb5502a6ea0f81565b73197e90f9fad81970ba7976f33cbd77088e5d7cf773ffffffffffffffffffffffffffffffffffffffff16639f678cca6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561028c57600080fd5b505af11580156102a0573d6000803e3d6000fd5b505050506040513d60208110156102b657600080fd5b8101908080519060200190929190505050507319c0976f590d67707e62397c87829d896dc0f1f173ffffffffffffffffffffffffffffffffffffffff166344e2a5a86040518163ffffffff1660e01b815260040180807f4554482d410000000000000000000000000000000000000000000000000000008152506020019050602060405180830381600087803b15801561034f57600080fd5b505af1158015610363573d6000803e3d6000fd5b505050506040513d602081101561037957600080fd5b8101908080519060200190929190505050507319c0976f590d67707e62397c87829d896dc0f1f173ffffffffffffffffffffffffffffffffffffffff166344e2a5a86040518163ffffffff1660e01b815260040180807f4241542d410000000000000000000000000000000000000000000000000000008152506020019050602060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b505050506040513d602081101561043c57600080fd5b81019080805190602001909291905050505073197e90f9fad81970ba7976f33cbd77088e5d7cf773ffffffffffffffffffffffffffffffffffffffff166329ae81146b033b2e3cbfa3d80192847e1a6040518263ffffffff1660e01b815260040180807f6473720000000000000000000000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b1580156104e957600080fd5b505af11580156104fd573d6000803e3d6000fd5b5050505060006b033b2e3cc1ae9c08407ebf1e90507319c0976f590d67707e62397c87829d896dc0f1f173ffffffffffffffffffffffffffffffffffffffff16631a0b287e826040518263ffffffff1660e01b815260040180807f4554482d41000000000000000000000000000000000000000000000000000000815250602001807f6475747900000000000000000000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b1580156105c957600080fd5b505af11580156105dd573d6000803e3d6000fd5b505050507319c0976f590d67707e62397c87829d896dc0f1f173ffffffffffffffffffffffffffffffffffffffff16631a0b287e826040518263ffffffff1660e01b815260040180807f4241542d41000000000000000000000000000000000000000000000000000000815250602001807f6475747900000000000000000000000000000000000000000000000000000000815250602001828152602001915050600060405180830381600087803b15801561069857600080fd5b505af11580156106ac573d6000803e3d6000fd5b5050505050565b7335d1b3f3d7966a1dfe207aa4514c12a259a0492b81565b7319c0976f590d67707e62397c87829d896dc0f1f181565b6301c9c3808156fea265627a7a7231582080b7f3fb6bd7c7116c7939fed4b9c23ba33c0bb5bdf2920c564fc1fa49ce0e7564736f6c634300050c0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100a85760003560e01c80638456cb59116100715780638456cb591461020057806396d373e51461024a578063ae8421e114610254578063b0604a2614610276578063cb20a28814610280578063f7992d851461029e576100a8565b8062a7029b146100ad5780630a7a1c4d1461013057806333dba3511461017a57806351f91066146101c457806357f6ca68146101e2575b600080fd5b6100b56102bc565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f55780820151818401526020810190506100da565b50505050905090810190601f1680156101225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61013861035a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610182610380565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101cc610398565b6040518082815260200191505060405180910390f35b6101ea61039e565b6040518082815260200191505060405180910390f35b6102086103ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102526103d3565b005b61025c6106ce565b604051808215151515815260200191505060405180910390f35b61027e6106e1565b005b610288610a10565b6040518082815260200191505060405180910390f35b6102a6610a18565b6040518082815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103525780601f1061032757610100808354040283529160200191610352565b820191906000526020600020905b81548152906001019060200180831161033557829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73f2c5369cffb8ea6284452b0326e326dbfdcb867c81565b60025481565b6b033b2e3cc5bceb5502a6ea0f81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900460ff1615610456576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f7370656c6c2d616c72656164792d63617374000000000000000000000000000081525060200191505060405180910390fd5b6001600560006101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663168ccd67600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660025460046003546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156105af5780601f10610584576101008083540402835291602001916105af565b820191906000526020600020905b81548152906001019060200180831161059257829003601f168201915b505095505050505050600060405180830381600087803b1580156105d257600080fd5b505af11580156105e6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561061057600080fd5b810190808051604051939291908464010000000082111561063057600080fd5b8382019150602082018581111561064657600080fd5b825186600182028301116401000000008211171561066357600080fd5b8083526020830192505050908051906020019080838360005b8381101561069757808201518184015260208101905061067c565b50505050905090810190601f1680156106c45780820380516001836020036101000a031916815260200191505b5060405250505050565b600560009054906101000a900460ff1681565b600060035414610759576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f7370656c6c2d616c72656164792d7363686564756c656400000000000000000081525060200191505060405180910390fd5b610804426000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c457600080fd5b505afa1580156107d8573d6000803e3d6000fd5b505050506040513d60208110156107ee57600080fd5b8101908080519060200190929190505050610a1e565b6003819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166346d2fbbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660025460046003546040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156109485780601f1061091d57610100808354040283529160200191610948565b820191906000526020600020905b81548152906001019060200180831161092b57829003601f168201915b505095505050505050600060405180830381600087803b15801561096b57600080fd5b505af115801561097f573d6000803e3d6000fd5b5050505073f2c5369cffb8ea6284452b0326e326dbfdcb867c73ffffffffffffffffffffffffffffffffffffffff166369fe0e2d6b033b2e3cc5bceb5502a6ea0f6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156109f657600080fd5b505af1158015610a0a573d6000803e3d6000fd5b50505050565b6301c9c38081565b60035481565b6000828284019150811015610a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fea265627a7a723158204c8c45bef7682d3e1f5b9d0254c1823599ecdef8ab4d529452d399cd6572bc5b64736f6c634300050c0032

Deployed Bytecode Sourcemap

9449:1190:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9449:1190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9719:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9719:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9614:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8434:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9651:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8564:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9507:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10492:144;;;:::i;:::-;;9753:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10056:428;;;:::i;:::-;;8516:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9685:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9719;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9614:30::-;;;;;;;;;;;;;:::o;8434:75::-;8467:42;8434:75;:::o;9651:27::-;;;;:::o;8564:61::-;8597:28;8564:61;:::o;9507:100::-;;;;;;;;;;;;;:::o;10492:144::-;10535:4;;;;;;;;;;;10534:5;10526:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10580:4;10573;;:11;;;;;;;;;;;;;;;;;;10595:5;;;;;;;;;;;:10;;;10606:6;;;;;;;;;;;10614:3;;10619;10624;;10595:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10595:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10595:33:0;;;;;;39:16:-1;36:1;17:17;2:54;10595:33:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10595:33:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;10595:33:0;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10595:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10492:144::o;9753:28::-;;;;;;;;;;;;;:::o;10056:428::-;10109:1;10102:3;;:8;10094:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10155:40;10159:3;10180:5;;;;;;;;;;;10164:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10164:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10164:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10164:30:0;;;;;;;;;;;;;;;;10155:3;:40::i;:::-;10149:3;:46;;;;10206:5;;;;;;;;;;;:10;;;10217:6;;;;;;;;;;;10225:3;;10230;10235;;10206:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10206:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10206:33:0;;;;8467:42;10443:25;;;8597:28;10443:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10443:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10443:33:0;;;;10056:428::o;8516:41::-;8549:8;8516:41;:::o;9685:27::-;;;;:::o;122:128::-;174:6;216:1;210;206;:5;202:9;;;201:16;;193:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;122:128;;;;:::o

Swarm Source

bzzr://80b7f3fb6bd7c7116c7939fed4b9c23ba33c0bb5bdf2920c564fc1fa49ce0e75

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