ETH Price: $2,151.59 (+0.15%)

Contract

0xDb29eB6AE1Fbd247B45a6BFF3F5Ce4dB46C2fF6B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer78680012019-05-31 15:05:212485 days ago1559315121IN
0xDb29eB6A...B46C2fF6B
0 ETH0.00014934

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Exchanger

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-05-31
*/

pragma solidity ^0.4.25;

/*
Name: Exchanger
Symbol: EXS
*/

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = 0x2E4987e4e1C4DA0236E20dd2aaB433ABaa24193d;
        emit LogSetOwner(0x2E4987e4e1C4DA0236E20dd2aaB433ABaa24193d);
    }

    function setOwner(address owner_0x2E4987e4e1C4DA0236E20dd2aaB433ABaa24193d)
        public
        auth
    {
        owner = owner_0x2E4987e4e1C4DA0236E20dd2aaB433ABaa24193d;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        emit LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}


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

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

contract ERC20Events {
    event Approval(address indexed src, address indexed guy, uint wad);
    event Transfer(address indexed src, address indexed dst, uint wad);
}

contract ERC20 is ERC20Events {
    function totalSupply() public view returns (uint);
    function balanceOf(address guy) public view returns (uint);
    function allowance(address src, address guy) public view returns (uint);

    function approve(address guy, uint wad) public returns (bool);
    function transfer(address dst, uint wad) public returns (bool);
    function transferFrom(
        address src, address dst, uint wad
    ) public returns (bool);
}

contract DSTokenBase is ERC20, DSMath {
    uint256                                            _supply;
    mapping (address => uint256)                       _balances;
    mapping (address => mapping (address => uint256))  _approvals;

    constructor(uint supply) public {
        _balances[msg.sender] = supply;
        _supply = supply;
    }

 /**
  * @dev Total number of tokens in existence
  */
    function totalSupply() public view returns (uint) {
        return _supply;
    }

 /**
  * @dev Gets the balance of the specified address.
  * @param src The address to query the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */

    function balanceOf(address src) public view returns (uint) {
        return _balances[src];
    }

 /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param src address The address which owns the funds.
   * @param guy address The address which will spend the funds.
   */
    function allowance(address src, address guy) public view returns (uint) {
        return _approvals[src][guy];
    }

  /**
   * @dev Transfer token for a specified address
   * @param dst The address to transfer to.
   * @param wad The amount to be transferred.
   */

    function transfer(address dst, uint wad) public returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

 /**
   * @dev Transfer tokens from one address to another
   * @param src address The address which you want to send tokens from
   * @param dst address The address which you want to transfer to
   * @param wad uint256 the amount of tokens to be transferred
   */

    function transferFrom(address src, address dst, uint wad)
        public
        returns (bool)
    {
        if (src != msg.sender) {
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }


 /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param guy The address which will spend the funds.
   * @param wad The amount of tokens to be spent.
   */

    function approve(address guy, uint wad) public returns (bool) {
        _approvals[msg.sender][guy] = wad;

        emit Approval(msg.sender, guy, wad);

        return true;
    }

 /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   * approve should be called when allowed_[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param src The address which will spend the funds.
   * @param wad The amount of tokens to increase the allowance by.
   */
  function increaseAllowance(
    address src,
    uint256 wad
  )
    public
    returns (bool)
  {
    require(src != address(0));

    _approvals[src][msg.sender] = add(_approvals[src][msg.sender], wad);
    emit Approval(msg.sender, src, _approvals[msg.sender][src]);
    return true;
  }

 /**
   * @dev Decrese the amount of tokens that an owner allowed to a spender.
   * approve should be called when allowed_[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param src The address which will spend the funds.
   * @param wad The amount of tokens to increase the allowance by.
   */
  function decreaseAllowance(
    address src,
    uint256 wad
  )
    public
    returns (bool)
  {
    require(src != address(0));
    _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
    emit Approval(msg.sender, src, _approvals[msg.sender][src]);
    return true;
  }

}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;

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

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

        _;
    }
}

contract DSStop is DSNote, DSAuth {

    bool public stopped;

    modifier stoppable {
        require(!stopped);
        _;
    }
    function stop() public auth note {
        stopped = true;
    }
    function start() public auth note {
        stopped = false;
    }

}


contract Exchanger is DSTokenBase , DSStop {

    string  public  symbol="EXS";
    string  public  name="Exchanger";
    uint256  public  decimals = 18; // Standard Token Precision
    uint256 public initialSupply=5000000000000000000000000;
    address public burnAdmin;
    constructor() public
    DSTokenBase(initialSupply)
    {
        burnAdmin=0x2E4987e4e1C4DA0236E20dd2aaB433ABaa24193d;
    }

    event Burn(address indexed guy, uint wad);

 /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyAdmin() {
    require(isAdmin());
    _;
  }

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isAdmin() public view returns(bool) {
    return msg.sender == burnAdmin;
}

/**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyAdmin {
    burnAdmin = address(0);
  }

    function approve(address guy) public stoppable returns (bool) {
        return super.approve(guy, uint(-1));
    }

    function approve(address guy, uint wad) public stoppable returns (bool) {
        return super.approve(guy, wad);
    }

    function transferFrom(address src, address dst, uint wad)
        public
        stoppable
        returns (bool)
    {
        if (src != msg.sender && _approvals[src][msg.sender] != uint(-1)) {
            _approvals[src][msg.sender] = sub(_approvals[src][msg.sender], wad);
        }

        _balances[src] = sub(_balances[src], wad);
        _balances[dst] = add(_balances[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }



    /**
   * @dev Burns a specific amount of tokens from the target address
   * @param guy address The address which you want to send tokens from
   * @param wad uint256 The amount of token to be burned
   */
    function burnfromAdmin(address guy, uint wad) public onlyAdmin {
        require(guy != address(0));


        _balances[guy] = sub(_balances[guy], wad);
        _supply = sub(_supply, wad);

        emit Burn(guy, wad);
        emit Transfer(guy, address(0), wad);
    }


}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner_0x2E4987e4e1C4DA0236E20dd2aaB433ABaa24193d","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"wad","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"burnfromAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"wad","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"guy","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"dst","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Transfer","type":"event"}]

60c0604052600360808190527f455853000000000000000000000000000000000000000000000000000000000060a090815261003e9160059190610138565b506040805180820190915260098082527f45786368616e6765720000000000000000000000000000000000000000000000602090920191825261008391600691610138565b5060126007556a0422ca8b0a00a4250000006008553480156100a457600080fd5b506008543360009081526001602052604080822083905591815560048054600160a060020a031916732e4987e4e1c4da0236e20dd2aab433abaa24193d90811790915591517fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed949190a260098054600160a060020a031916732e4987e4e1c4da0236e20dd2aab433abaa24193d1790556101d3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061017957805160ff19168380011785556101a6565b828001600101855582156101a6579182015b828111156101a657825182559160200191906001019061018b565b506101b29291506101b6565b5090565b6101d091905b808211156101b257600081556001016101bc565b90565b610df3806101e26000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014257806307da68f5146101cc578063095ea7b3146101e357806313af40351461021b57806318160ddd1461023c57806323b872dd14610263578063313ce5671461028d578063378dc3dc146102a257806339509351146102b757806370a08231146102db578063715018a6146102fc57806375f12b21146103115780637a9e5e4b1461032657806381bdf98c146103475780638da5cb5b1461037857806395d89b411461038d5780639a599e37146103a2578063a457c2d7146103c6578063a9059cbb146103ea578063b6db75a01461040e578063be9a655514610423578063bf7e214f14610438578063daea85c51461044d578063dd62ed3e1461046e575b600080fd5b34801561014e57600080fd5b50610157610495565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610191578181015183820152602001610179565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b506101e1610523565b005b3480156101ef57600080fd5b50610207600160a060020a03600435166024356105bd565b604080519115158252519081900360200190f35b34801561022757600080fd5b506101e1600160a060020a03600435166105ea565b34801561024857600080fd5b50610251610668565b60408051918252519081900360200190f35b34801561026f57600080fd5b50610207600160a060020a036004358116906024351660443561066e565b34801561029957600080fd5b506102516107d1565b3480156102ae57600080fd5b506102516107d7565b3480156102c357600080fd5b50610207600160a060020a03600435166024356107dd565b3480156102e757600080fd5b50610251600160a060020a0360043516610899565b34801561030857600080fd5b506101e16108b4565b34801561031d57600080fd5b506102076108e6565b34801561033257600080fd5b506101e1600160a060020a03600435166108f6565b34801561035357600080fd5b5061035c610974565b60408051600160a060020a039092168252519081900360200190f35b34801561038457600080fd5b5061035c610983565b34801561039957600080fd5b50610157610992565b3480156103ae57600080fd5b506101e1600160a060020a03600435166024356109ed565b3480156103d257600080fd5b50610207600160a060020a0360043516602435610ae6565b3480156103f657600080fd5b50610207600160a060020a0360043516602435610b2b565b34801561041a57600080fd5b50610207610b38565b34801561042f57600080fd5b506101e1610b49565b34801561044457600080fd5b5061035c610bdd565b34801561045957600080fd5b50610207600160a060020a0360043516610bec565b34801561047a57600080fd5b50610251600160a060020a0360043581169060243516610c12565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b505050505081565b61053933600035600160e060020a031916610c3d565b151561054457600080fd5b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60045460009060a060020a900460ff16156105d757600080fd5b6105e18383610d41565b90505b92915050565b61060033600035600160e060020a031916610c3d565b151561060b57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b60005490565b60045460009060a060020a900460ff161561068857600080fd5b600160a060020a03841633148015906106c65750600160a060020a038416600090815260026020908152604080832033845290915290205460001914155b1561071e57600160a060020a03841660009081526002602090815260408083203384529091529020546106f99083610da7565b600160a060020a03851660009081526002602090815260408083203384529091529020555b600160a060020a0384166000908152600160205260409020546107419083610da7565b600160a060020a0380861660009081526001602052604080822093909355908516815220546107709083610db7565b600160a060020a0380851660008181526001602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60075481565b60085481565b6000600160a060020a03831615156107f457600080fd5b600160a060020a03831660009081526002602090815260408083203384529091529020546108229083610db7565b600160a060020a0384166000818152600260208181526040808420338086529083528185209690965591815281832084845281529181902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a031660009081526001602052604090205490565b6108bc610b38565b15156108c757600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff19169055565b60045460a060020a900460ff1681565b61090c33600035600160e060020a031916610c3d565b151561091757600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada490600090a250565b600954600160a060020a031681565b600454600160a060020a031681565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b6109f5610b38565b1515610a0057600080fd5b600160a060020a0382161515610a1557600080fd5b600160a060020a038216600090815260016020526040902054610a389082610da7565b600160a060020a03831660009081526001602052604081209190915554610a5f9082610da7565b600055604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000600160a060020a0383161515610afd57600080fd5b600160a060020a03831660009081526002602090815260408083203384529091529020546108229083610da7565b60006105e133848461066e565b600954600160a060020a0316331490565b610b5f33600035600160e060020a031916610c3d565b1515610b6a57600080fd5b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506004805474ff000000000000000000000000000000000000000019169055565b600354600160a060020a031681565b60045460009060a060020a900460ff1615610c0657600080fd5b6105e482600019610d41565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6000600160a060020a038316301415610c58575060016105e4565b600454600160a060020a0384811691161415610c76575060016105e4565b600354600160a060020a03161515610c90575060006105e4565b600354604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152306024830152600160e060020a0319861660448301529151919092169163b70096139160648083019260209291908290030181600087803b158015610d0e57600080fd5b505af1158015610d22573d6000803e3d6000fd5b505050506040513d6020811015610d3857600080fd5b505190506105e4565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b808203828111156105e457600080fd5b808201828110156105e457600080fd00a165627a7a7230582039558e1d0480c9870bef5fc2a0d4582c50048479accd56358d26b09a452b13d60029

Deployed Bytecode

0x60806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461014257806307da68f5146101cc578063095ea7b3146101e357806313af40351461021b57806318160ddd1461023c57806323b872dd14610263578063313ce5671461028d578063378dc3dc146102a257806339509351146102b757806370a08231146102db578063715018a6146102fc57806375f12b21146103115780637a9e5e4b1461032657806381bdf98c146103475780638da5cb5b1461037857806395d89b411461038d5780639a599e37146103a2578063a457c2d7146103c6578063a9059cbb146103ea578063b6db75a01461040e578063be9a655514610423578063bf7e214f14610438578063daea85c51461044d578063dd62ed3e1461046e575b600080fd5b34801561014e57600080fd5b50610157610495565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610191578181015183820152602001610179565b50505050905090810190601f1680156101be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d857600080fd5b506101e1610523565b005b3480156101ef57600080fd5b50610207600160a060020a03600435166024356105bd565b604080519115158252519081900360200190f35b34801561022757600080fd5b506101e1600160a060020a03600435166105ea565b34801561024857600080fd5b50610251610668565b60408051918252519081900360200190f35b34801561026f57600080fd5b50610207600160a060020a036004358116906024351660443561066e565b34801561029957600080fd5b506102516107d1565b3480156102ae57600080fd5b506102516107d7565b3480156102c357600080fd5b50610207600160a060020a03600435166024356107dd565b3480156102e757600080fd5b50610251600160a060020a0360043516610899565b34801561030857600080fd5b506101e16108b4565b34801561031d57600080fd5b506102076108e6565b34801561033257600080fd5b506101e1600160a060020a03600435166108f6565b34801561035357600080fd5b5061035c610974565b60408051600160a060020a039092168252519081900360200190f35b34801561038457600080fd5b5061035c610983565b34801561039957600080fd5b50610157610992565b3480156103ae57600080fd5b506101e1600160a060020a03600435166024356109ed565b3480156103d257600080fd5b50610207600160a060020a0360043516602435610ae6565b3480156103f657600080fd5b50610207600160a060020a0360043516602435610b2b565b34801561041a57600080fd5b50610207610b38565b34801561042f57600080fd5b506101e1610b49565b34801561044457600080fd5b5061035c610bdd565b34801561045957600080fd5b50610207600160a060020a0360043516610bec565b34801561047a57600080fd5b50610251600160a060020a0360043581169060243516610c12565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b820191906000526020600020905b8154815290600101906020018083116104fe57829003601f168201915b505050505081565b61053933600035600160e060020a031916610c3d565b151561054457600080fd5b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60045460009060a060020a900460ff16156105d757600080fd5b6105e18383610d41565b90505b92915050565b61060033600035600160e060020a031916610c3d565b151561060b57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b60005490565b60045460009060a060020a900460ff161561068857600080fd5b600160a060020a03841633148015906106c65750600160a060020a038416600090815260026020908152604080832033845290915290205460001914155b1561071e57600160a060020a03841660009081526002602090815260408083203384529091529020546106f99083610da7565b600160a060020a03851660009081526002602090815260408083203384529091529020555b600160a060020a0384166000908152600160205260409020546107419083610da7565b600160a060020a0380861660009081526001602052604080822093909355908516815220546107709083610db7565b600160a060020a0380851660008181526001602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60075481565b60085481565b6000600160a060020a03831615156107f457600080fd5b600160a060020a03831660009081526002602090815260408083203384529091529020546108229083610db7565b600160a060020a0384166000818152600260208181526040808420338086529083528185209690965591815281832084845281529181902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a031660009081526001602052604090205490565b6108bc610b38565b15156108c757600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff19169055565b60045460a060020a900460ff1681565b61090c33600035600160e060020a031916610c3d565b151561091757600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290556040519116907f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada490600090a250565b600954600160a060020a031681565b600454600160a060020a031681565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561051b5780601f106104f05761010080835404028352916020019161051b565b6109f5610b38565b1515610a0057600080fd5b600160a060020a0382161515610a1557600080fd5b600160a060020a038216600090815260016020526040902054610a389082610da7565b600160a060020a03831660009081526001602052604081209190915554610a5f9082610da7565b600055604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000600160a060020a0383161515610afd57600080fd5b600160a060020a03831660009081526002602090815260408083203384529091529020546108229083610da7565b60006105e133848461066e565b600954600160a060020a0316331490565b610b5f33600035600160e060020a031916610c3d565b1515610b6a57600080fd5b60408051348082526020820183815236938301849052600435936024359384938693339360008035600160e060020a031916949092606082018484808284376040519201829003965090945050505050a450506004805474ff000000000000000000000000000000000000000019169055565b600354600160a060020a031681565b60045460009060a060020a900460ff1615610c0657600080fd5b6105e482600019610d41565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6000600160a060020a038316301415610c58575060016105e4565b600454600160a060020a0384811691161415610c76575060016105e4565b600354600160a060020a03161515610c90575060006105e4565b600354604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152306024830152600160e060020a0319861660448301529151919092169163b70096139160648083019260209291908290030181600087803b158015610d0e57600080fd5b505af1158015610d22573d6000803e3d6000fd5b505050506040513d6020811015610d3857600080fd5b505190506105e4565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b808203828111156105e457600080fd5b808201828110156105e457600080fd00a165627a7a7230582039558e1d0480c9870bef5fc2a0d4582c50048479accd56358d26b09a452b13d60029

Deployed Bytecode Sourcemap

9607:2374:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9694:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9694:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9694:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9456:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9456:66:0;;;;;;10867:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10867:121:0;-1:-1:-1;;;;;10867:121:0;;;;;;;;;;;;;;;;;;;;;;;;;619:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;619:220:0;-1:-1:-1;;;;;619:220:0;;;;;4751:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4751:83:0;;;;;;;;;;;;;;;;;;;;10996:471;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10996:471:0;-1:-1:-1;;;;;10996:471:0;;;;;;;;;;;;9733:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9733:30:0;;;;9798:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9798:54:0;;;;7728:302;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7728:302:0;-1:-1:-1;;;;;7728:302:0;;;;;;;5039:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5039:99:0;-1:-1:-1;;;;;5039:99:0;;;;;10654:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10654:81:0;;;;9355:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9355:19:0;;;;847:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;847:164:0;-1:-1:-1;;;;;847:164:0;;;;;9859:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9859:24:0;;;;;;;;-1:-1:-1;;;;;9859:24:0;;;;;;;;;;;;;;415:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:26:0;;;;9659:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9659:28:0;;;;11694:280;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11694:280:0;-1:-1:-1;;;;;11694:280:0;;;;;;;8479:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8479:300:0;-1:-1:-1;;;;;8479:300:0;;;;;;;5653:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5653:123:0;-1:-1:-1;;;;;5653:123:0;;;;;;;10298:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10298:86:0;;;;9528:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9528:68:0;;;;378:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;378:30:0;;;;10743:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10743:116:0;-1:-1:-1;;;;;10743:116:0;;;;;5369:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5369:118:0;-1:-1:-1;;;;;5369:118:0;;;;;;;;;;9694:32;;;;;;;;;;;;;;;-1:-1:-1;;9694:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9456:66::-;1052:33;1065:10;1077:7;;-1:-1:-1;;;;;;1077:7:0;1052:12;:33::i;:::-;1044:42;;;;;;;;9224:59;;;9263:9;9224:59;;;;;;;;;9274:8;9224:59;;;;;;9157:1;9144:15;;9193:2;9180:16;;;;9144:15;;9241:10;;-1:-1:-1;9232:7:0;;-1:-1:-1;;;;;;9232:7:0;;-1:-1:-1;;9224:59:0;;;-1:-1:-1;9274:8:0;;-1:-1:-1;9224:59:0;;;;;;;;;;-1:-1:-1;9224:59:0;;-1:-1:-1;;;;;9224:59:0;-1:-1:-1;;9500:7:0;:14;;-1:-1:-1;;9500:14:0;-1:-1:-1;;;9500:14:0;;;9456:66::o;10867:121::-;9422:7;;10933:4;;-1:-1:-1;;;9422:7:0;;;;9421:8;9413:17;;;;;;10957:23;10971:3;10976;10957:13;:23::i;:::-;10950:30;;9441:1;10867:121;;;;:::o;619:220::-;1052:33;1065:10;1077:7;;-1:-1:-1;;;;;;1077:7:0;1052:12;:33::i;:::-;1044:42;;;;;;;;741:5;:56;;-1:-1:-1;;741:56:0;-1:-1:-1;;;;;741:56:0;;;;;;;;;;;813:18;;825:5;;;813:18;;-1:-1:-1;;813:18:0;619:220;:::o;4751:83::-;4795:4;4819:7;4751:83;:::o;10996:471::-;9422:7;;11107:4;;-1:-1:-1;;;9422:7:0;;;;9421:8;9413:17;;;;;;-1:-1:-1;;;;;11133:17:0;;11140:10;11133:17;;;;:60;;-1:-1:-1;;;;;;11154:15:0;;;;;;:10;:15;;;;;;;;11170:10;11154:27;;;;;;;;-1:-1:-1;;11154:39:0;;11133:60;11129:160;;;-1:-1:-1;;;;;11244:15:0;;;;;;:10;:15;;;;;;;;11260:10;11244:27;;;;;;;;11240:37;;11273:3;11240;:37::i;:::-;-1:-1:-1;;;;;11210:15:0;;;;;;:10;:15;;;;;;;;11226:10;11210:27;;;;;;;:67;11129:160;-1:-1:-1;;;;;11322:14:0;;;;;;:9;:14;;;;;;11318:24;;11338:3;11318;:24::i;:::-;-1:-1:-1;;;;;11301:14:0;;;;;;;:9;:14;;;;;;:41;;;;11374:14;;;;;;;11370:24;;11390:3;11370;:24::i;:::-;-1:-1:-1;;;;;11353:14:0;;;;;;;:9;:14;;;;;;;;;:41;;;;11412:23;;;;;;;11353:14;;11412:23;;;;;;;;;;;;;-1:-1:-1;11455:4:0;10996:471;;;;;:::o;9733:30::-;;;;:::o;9798:54::-;;;;:::o;7728:302::-;7822:4;-1:-1:-1;;;;;7846:17:0;;;;7838:26;;;;;;-1:-1:-1;;;;;7907:15:0;;;;;;:10;:15;;;;;;;;7923:10;7907:27;;;;;;;;7903:37;;7936:3;7903;:37::i;:::-;-1:-1:-1;;;;;7873:15:0;;;;;;:10;:15;;;;;;;;7889:10;7873:27;;;;;;;;;:67;;;;7978:22;;;;;;:27;;;;;;;;;;7952:54;;;;;;;7873:15;;7889:10;7952:54;;;;;;;;;;;-1:-1:-1;8020:4:0;7728:302;;;;:::o;5039:99::-;-1:-1:-1;;;;;5116:14:0;5092:4;5116:14;;;:9;:14;;;;;;;5039:99::o;10654:81::-;10189:9;:7;:9::i;:::-;10181:18;;;;;;;;10707:9;:22;;-1:-1:-1;;10707:22:0;;;10654:81::o;9355:19::-;;;-1:-1:-1;;;9355:19:0;;;;;:::o;847:164::-;1052:33;1065:10;1077:7;;-1:-1:-1;;;;;;1077:7:0;1052:12;:33::i;:::-;1044:42;;;;;;;;939:9;:22;;-1:-1:-1;;939:22:0;-1:-1:-1;;;;;939:22:0;;;;;;;;;;;977:26;;993:9;;;977:26;;-1:-1:-1;;977:26:0;847:164;:::o;9859:24::-;;;-1:-1:-1;;;;;9859:24:0;;:::o;415:26::-;;;-1:-1:-1;;;;;415:26:0;;:::o;9659:28::-;;;;;;;;;;;;;;;-1:-1:-1;;9659:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11694:280;10189:9;:7;:9::i;:::-;10181:18;;;;;;;;-1:-1:-1;;;;;11776:17:0;;;;11768:26;;;;;;-1:-1:-1;;;;;11830:14:0;;;;;;:9;:14;;;;;;11826:24;;11846:3;11826;:24::i;:::-;-1:-1:-1;;;;;11809:14:0;;;;;;:9;:14;;;;;:41;;;;11875:7;11871:17;;11884:3;11871;:17::i;:::-;11861:7;:27;11906:14;;;;;;;;-1:-1:-1;;;;;11906:14:0;;;;;;;;;;;;;11936:30;;;;;;;;11958:1;;-1:-1:-1;;;;;11936:30:0;;;;;;;;;;;;11694:280;;:::o;8479:300::-;8573:4;-1:-1:-1;;;;;8597:17:0;;;;8589:26;;;;;;-1:-1:-1;;;;;8656:15:0;;;;;;:10;:15;;;;;;;;8672:10;8656:27;;;;;;;;8652:37;;8685:3;8652;:37::i;5653:123::-;5710:4;5734:34;5747:10;5759:3;5764;5734:12;:34::i;10298:86::-;10371:9;;-1:-1:-1;;;;;10371:9:0;10357:10;:23;;10298:86::o;9528:68::-;1052:33;1065:10;1077:7;;-1:-1:-1;;;;;;1077:7:0;1052:12;:33::i;:::-;1044:42;;;;;;;;9224:59;;;9263:9;9224:59;;;;;;;;;9274:8;9224:59;;;;;;9157:1;9144:15;;9193:2;9180:16;;;;9144:15;;9241:10;;-1:-1:-1;9232:7:0;;-1:-1:-1;;;;;;9232:7:0;;-1:-1:-1;;9224:59:0;;;-1:-1:-1;9274:8:0;;-1:-1:-1;9224:59:0;;;;;;;;;;-1:-1:-1;9224:59:0;;-1:-1:-1;;;;;9224:59:0;-1:-1:-1;;9573:7:0;:15;;-1:-1:-1;;9573:15:0;;;9528:68::o;378:30::-;;;-1:-1:-1;;;;;378:30:0;;:::o;10743:116::-;9422:7;;10799:4;;-1:-1:-1;;;9422:7:0;;;;9421:8;9413:17;;;;;;10823:28;10837:3;-1:-1:-1;;10823:13:0;:28::i;5369:118::-;-1:-1:-1;;;;;5459:15:0;;;5435:4;5459:15;;;:10;:15;;;;;;;;:20;;;;;;;;;;;;;5369:118::o;1114:371::-;1184:4;-1:-1:-1;;;;;1205:20:0;;1220:4;1205:20;1201:277;;;-1:-1:-1;1249:4:0;1242:11;;1201:277;1282:5;;-1:-1:-1;;;;;1275:12:0;;;1282:5;;1275:12;1271:207;;;-1:-1:-1;1311:4:0;1304:11;;1271:207;1337:9;;-1:-1:-1;;;;;1337:9:0;:27;1333:145;;;-1:-1:-1;1388:5:0;1381:12;;1333:145;1433:9;;:33;;;;;;-1:-1:-1;;;;;1433:33:0;;;;;;;1456:4;1433:33;;;;-1:-1:-1;;;;;;1433:33:0;;;;;;;;:9;;;;;:17;;:33;;;;;;;;;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;1433:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1433:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1433:33:0;;-1:-1:-1;1426:40:0;;7092:186;7176:10;7148:4;7165:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;7165:27:0;;;;;;;;;;;:33;;;7216:30;;;;;;;7148:4;;7165:27;;7176:10;;7216:30;;;;;;;;-1:-1:-1;7266:4:0;7092:186;;;;:::o;1627:104::-;1711:5;;;1706:16;;;;1698:25;;;;;1517:104;1601:5;;;1596:16;;;;1588:25;;;;

Swarm Source

bzzr://39558e1d0480c9870bef5fc2a0d4582c50048479accd56358d26b09a452b13d6

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