Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Traders
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
6060604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107ca806100536000396000f30060606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637e44c2941461009357806382d38954146100f95780638da5cb5b1461014a578063cb56e40b1461019f578063d2598c4c14610205578063d6d6e8bd1461022b578063f2fde38b14610270578063faa51485146102a9575b600080fd5b341561009e57600080fd5b6100b7600480803560ff169060200190919050506102fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010457600080fd5b610130600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061032d565b604051808215151515815260200191505060405180910390f35b341561015557600080fd5b61015d61034d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101aa57600080fd5b6101c3600480803560ff16906020019091905050610372565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021057600080fd5b610229600480803560ff169060200190919050506103b5565b005b341561023657600080fd5b61026e600480803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506104d7565b005b341561027b57600080fd5b6102a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610673565b005b34156102b457600080fd5b6102e0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610748565b604051808215151515815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b60026000600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600160008260ff1660ff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561053257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663d16352af6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561059557600080fd5b5af115156105a257600080fd5b5050506040518051905060ff168260ff161415156105bf57600080fd5b80600160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ce57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561074557806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058204bbeed014486d87c925c0ad50742d485f353d3892141a7d4d76f3c673e556b5a0029
Deployed Bytecode
0x60606040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637e44c2941461009357806382d38954146100f95780638da5cb5b1461014a578063cb56e40b1461019f578063d2598c4c14610205578063d6d6e8bd1461022b578063f2fde38b14610270578063faa51485146102a9575b600080fd5b341561009e57600080fd5b6100b7600480803560ff169060200190919050506102fa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010457600080fd5b610130600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061032d565b604051808215151515815260200191505060405180910390f35b341561015557600080fd5b61015d61034d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101aa57600080fd5b6101c3600480803560ff16906020019091905050610372565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561021057600080fd5b610229600480803560ff169060200190919050506103b5565b005b341561023657600080fd5b61026e600480803560ff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506104d7565b005b341561027b57600080fd5b6102a7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610673565b005b34156102b457600080fd5b6102e0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610748565b604051808215151515815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008360ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b60026000600160008460ff1660ff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff0219169055600160008260ff1660ff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561053257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1663d16352af6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561059557600080fd5b5af115156105a257600080fd5b5050506040518051905060ff168260ff161415156105bf57600080fd5b80600160008460ff1660ff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ce57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561074557806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690509190505600a165627a7a723058204bbeed014486d87c925c0ad50742d485f353d3892141a7d4d76f3c673e556b5a0029
Swarm Source
bzzr://4bbeed014486d87c925c0ad50742d485f353d3892141a7d4d76f3c673e556b5a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.