ETH Price: $2,520.20 (-0.35%)

Contract

0x4cF723F59F86e0837D33DE40DCA910DC38996D9e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Add Trader56700162018-05-24 18:15:032289 days ago1527185703IN
0x4cF723F5...C38996D9e
0 ETH0.0006603110
0x6060604056699842018-05-24 18:02:552289 days ago1527184975IN
 Create: Traders
0 ETH0.0060488210

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Traders

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-07-03
*/

/*

  Copyright 2018 Dexdex.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

*/

pragma solidity ^0.4.21;

contract Ownable {
    address public owner;

    function Ownable()
        public
    {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner)
        public
        onlyOwner
    {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }
}

contract ITrader {

  function getDataLength(
  ) public pure returns (uint256);

  function getProtocol(
  ) public pure returns (uint8);

  function getAvailableVolume(
    bytes orderData
  ) public view returns(uint);

  function isExpired(
    bytes orderData
  ) public view returns (bool); 

  function trade(
    bool isSell,
    bytes orderData,
    uint volume,
    uint volumeEth
  ) public;
  
  function getFillVolumes(
    bool isSell,
    bytes orderData,
    uint volume,
    uint volumeEth
  ) public view returns(uint, uint);

}

contract ITraders {

  /// @dev Add a valid trader address. Only owner.
  function addTrader(uint8 id, ITrader trader) public;

  /// @dev Remove a trader address. Only owner.
  function removeTrader(uint8 id) public;

  /// @dev Get trader by id.
  function getTrader(uint8 id) public view returns(ITrader);

  /// @dev Check if an address is a valid trader.
  function isValidTraderAddress(address addr) public view returns(bool);

}

contract Traders is ITraders, Ownable {

  mapping(uint8 => ITrader) public traders; // Mappings of ids of allowed addresses
  mapping(address => bool) public addresses; // Mappings of addresses of allowed addresses

  /// @dev Add a valid trader address. Only owner.
  function addTrader(uint8 protocolId, ITrader trader) public onlyOwner {
    require(protocolId == trader.getProtocol());
    traders[protocolId] = trader;
    addresses[trader] = true;
  }

  /// @dev Remove a trader address. Only owner.
  function removeTrader(uint8 protocolId) public onlyOwner {
    delete addresses[traders[protocolId]];
    delete traders[protocolId];
  }

  /// @dev Get trader by protocolId.
  function getTrader(uint8 protocolId) public view returns(ITrader) {
    return traders[protocolId];
  }

  /// @dev Check if an address is a valid trader.
  function isValidTraderAddress(address addr) public view returns(bool) {
    return addresses[addr];
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"traders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addresses","outputs":[{"name":"","type":"bool"}],"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":"protocolId","type":"uint8"}],"name":"getTrader","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"protocolId","type":"uint8"}],"name":"removeTrader","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"protocolId","type":"uint8"},{"name":"trader","type":"address"}],"name":"addTrader","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isValidTraderAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]

6060604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107ca806100536000396000f30060606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637e44c2941461009357806382d38954146100f95780638da5cb5b1461014a578063cb56e40b1461019f578063d2598c4c14610205578063d6d6e8bd1461022b578063f2fde38b14610270578063faa51485146102a9575b600080fd5b341561009e57600080fd5b6100b7600480803560ff169060200190919050506102fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010457600080fd5b610130600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061032d565b604051808215151515815260200191505060405180910390f35b341561015557600080fd5b61015d61034d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101aa57600080fd5b6101c3600480803560ff16906020019091905050610372565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021057600080fd5b610229600480803560ff169060200190919050506103b5565b005b341561023657600080fd5b61026e600480803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506104d7565b005b341561027b57600080fd5b6102a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610673565b005b34156102b457600080fd5b6102e0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610748565b604051808215151515815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b60026000600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600160008260ff1660ff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561053257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663d16352af6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561059557600080fd5b5af115156105a257600080fd5b5050506040518051905060ff168260ff161415156105bf57600080fd5b80600160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ce57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561074557806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058204bbeed014486d87c925c0ad50742d485f353d3892141a7d4d76f3c673e556b5a0029

Deployed Bytecode

0x60606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637e44c2941461009357806382d38954146100f95780638da5cb5b1461014a578063cb56e40b1461019f578063d2598c4c14610205578063d6d6e8bd1461022b578063f2fde38b14610270578063faa51485146102a9575b600080fd5b341561009e57600080fd5b6100b7600480803560ff169060200190919050506102fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010457600080fd5b610130600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061032d565b604051808215151515815260200191505060405180910390f35b341561015557600080fd5b61015d61034d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101aa57600080fd5b6101c3600480803560ff16906020019091905050610372565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021057600080fd5b610229600480803560ff169060200190919050506103b5565b005b341561023657600080fd5b61026e600480803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506104d7565b005b341561027b57600080fd5b6102a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610673565b005b34156102b457600080fd5b6102e0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610748565b604051808215151515815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b60026000600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600160008260ff1660ff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561053257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663d16352af6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561059557600080fd5b5af115156105a257600080fd5b5050506040518051905060ff168260ff161415156105bf57600080fd5b80600160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ce57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561074557806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058204bbeed014486d87c925c0ad50742d485f353d3892141a7d4d76f3c673e556b5a0029

Swarm Source

bzzr://4bbeed014486d87c925c0ad50742d485f353d3892141a7d4d76f3c673e556b5a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.