ETH Price: $3,542.13 (-0.89%)
Gas: 21 Gwei

Contract

0x1EAD8a37d189a67B1736020131d4890833cF9103
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Cast85495542019-09-14 19:25:181657 days ago1568489118IN
0x1EAD8a37...833cF9103
0 ETH0.001728618.84115123
0x6080604085413032019-09-13 12:22:591658 days ago1568377379IN
 Contract Creation
0 ETH0.0116395822

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x4C3c8aCA...0D52b3cd9
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
DSSpell

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-09-06
*/

// spell.sol - An un-owned object that performs one action one time only

// Copyright (C) 2017, 2018 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);
    }
}

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

        _;
    }
}

contract DSSpell is DSExec, DSNote {
    address public whom;
    uint256 public mana;
    bytes   public data;
    bool    public done;

    constructor(address whom_, uint256 mana_, bytes memory data_) public {
        whom = whom_;
        mana = mana_;
        data = data_;
    }
    // Only marked 'done' if CALL succeeds (not exceptional condition).
    function cast() public note {
        require(!done, "ds-spell-already-cast");
        exec(whom, data, mana);
        done = true;
    }
}

contract DSSpellBook {
    function make(address whom, uint256 mana, bytes memory data) public returns (DSSpell) {
        return new DSSpell(whom, mana, data);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"data","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"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":"mana","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whom","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"whom_","type":"address"},{"internalType":"uint256","name":"mana_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100575760003560e01c806373d4a13a1461005c57806396d373e5146100df578063ae8421e1146100e9578063bdb001a71461010b578063c5c0db0814610129575b600080fd5b610064610173565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100a4578082015181840152602081019050610089565b50505050905090810190601f1680156100d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100e7610211565b005b6100f1610436565b604051808215151515815260200191505060405180910390f35b610113610449565b6040518082815260200191505060405180910390f35b61013161044f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102095780601f106101de57610100808354040283529160200191610209565b820191906000526020600020905b8154815290600101906020018083116101ec57829003601f168201915b505050505081565b60008060006004359250602435915034905081833373ffffffffffffffffffffffffffffffffffffffff166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168460003660405180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060405180910390a4600360009054906101000a900460ff161561034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d7370656c6c2d616c72656164792d63617374000000000000000000000081525060200191505060405180910390fd5b6104166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104095780601f106103de57610100808354040283529160200191610409565b820191906000526020600020905b8154815290600101906020018083116103ec57829003601f168201915b5050505050600154610474565b6001600360006101000a81548160ff021916908315150217905550505050565b600360009054906101000a900460ff1681565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61047f8383836104f6565b6104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f64732d657865632d63616c6c2d6661696c65640000000000000000000000000081525060200191505060405180910390fd5b505050565b600080600084516020860185885af19050939250505056fea265627a7a72315820940fe6468171ffd1da91bc71f917d558aaf0da1ba929dba7c1b5573a385b123064736f6c634300050b0032

Deployed Bytecode Sourcemap

2394:517:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2394:517:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2488:19;;;:::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;2488:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2767:141;;;:::i;:::-;;2514:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2462;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2436;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2488;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2767:141::-;2103:11;2125;2147;2215:1;2202:15;2195:22;;2251:2;2238:16;2231:23;;2275:9;2268:16;;2346:3;2341;2329:10;2312:53;;2320:7;;;;2312:53;;;2351:3;2356:8;;2312:53;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2312:53:0;;;;;;;;;;;;;;;2815:4;;;;;;;;;;;2814:5;2806:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2856:22;2861:4;;;;;;;;;;;2867;2856:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2873:4;;2856;:22::i;:::-;2896:4;2889;;:11;;;;;;;;;;;;;;;;;;2767:141;;;:::o;2514:19::-;;;;;;;;;;;;;:::o;2462:::-;;;;:::o;2436:::-;;;;;;;;;;;;;:::o;1077:198::-;1182:28;1190:6;1198:4;1204:5;1182:7;:28::i;:::-;1178:90;;1227:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1178:90;1077:198;;;:::o;827:244::-;938:7;1051:1;1048;1041:4;1035:11;1028:4;1022;1018:15;1011:5;1003:6;998:3;993:60;987:66;;972:92;;;;;:::o

Swarm Source

bzzr://940fe6468171ffd1da91bc71f917d558aaf0da1ba929dba7c1b5573a385b1230

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

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