def test_wallet_address_set(): with requests_mock.mock() as m: m.post('https://api.idex.market/returnNextNonce', json={'nonce': 1}, status_code=200) client = Client(api_key, address) client.get_my_next_nonce()
def test_wallet_address_not_set(): client = Client(api_key) with pytest.raises(IdexWalletAddressNotFoundException): with requests_mock.mock() as m: m.post('https://api.idex.market/returnNextNonce', json={}, status_code=200) client.get_my_next_nonce()
def test_wallet_address_set(): """Test valid currency""" client = Client('0x926cfc20de3f3bdba2d6e7d75dbb1d0a3f93b9a2') with requests_mock.mock() as m: m.post('https://api.idex.market/returnNextNonce', json=json_res, status_code=200) client.get_my_next_nonce()
def test_private_key_not_set(): """Test invalid currency""" client = Client('0x926cfc20de3f3bdba2d6e7d75dbb1d0a3f93b9a2') with pytest.raises(IdexPrivateKeyNotFoundException): with requests_mock.mock() as m: m.post('https://api.idex.market/cancel', json=json_res, status_code=200) client.cancel_order( '0xcfe4018c59e50e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc52' )
def test_private_key_set(): """Test private key is set""" with requests_mock.mock() as m: m.post('https://api.idex.market/returnNextNonce', json={'nonce': 1}, status_code=200) m.post('https://api.idex.market/cancel', json=json_res, status_code=200) client = Client(api_key, address, private_key) client.cancel_order( '0xcfe4018c59e50e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc52' )
def test_private_key_set(): """Test private key is set""" client = Client( '0x926cfc20de3f3bdba2d6e7d75dbb1d0a3f93b9a2', '0xcfe4018c59e50e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc52') with requests_mock.mock() as m: m.post('https://api.idex.market/cancel', json=json_res, status_code=200) client.cancel_order( '0xcfe4018c59e50e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc52' )
def __init__( self, account_name='', api_key="0x0000000000000000000000000000000000000000", api_secret="0xvxdlk4xjau61mzedukz40us75qqxm9uahimpn912rmm36ai1d45sn7wx4qg6uhaw" ): super().__init__("idex", account_name, api_key, api_secret) self.idexClient = IdexClient(self.api_key, self.api_secret)
class Idex: def __init__(self): self.client = Client(s.IDEX_API_KEY, s.IDEX_ADDRESS, s.IDEX_PRIVATE_KEY) def get_ticker(self, symbol): item = self.client.get_ticker("_".join(reversed(symbol))) item.update(symbol="".join(symbol), ticker=symbol[0]) return item
def _process_idex(_, symbol): client = IdexClient(s.IDEX_API_KEY, s.IDEX_ADDRESS, s.IDEX_PRIVATE_KEY) order_book = client.get_order_book(market="_".join(reversed(symbol)), count=100) _order_book = { "asks": [], "bids": [], } for x in ( "asks", "bids", ): for xx in order_book[x]: _order_book[x].append([xx["price"], xx["amount"]]) _process("{}{}".format(*symbol), _order_book, offset=ORDER_BOOK_IDEX_OFFSET)
def test_private_key_invalid(): """Test private key is not valid""" with pytest.raises(IdexException): keys = [ '0xcfe4018c59e50e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc5' # too short '0xcfe4018c59e50e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc555' # too long '0xcxe4018c59ex0e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc555' # invalid chars 'aacfe4018c59e50e0e1964c979e6213ce5eb8c751cbc98a44251eb48a0985adc5' # not prefix ] for key in keys: client = Client('0x926cfc20de3f3bdba2d6e7d75dbb1d0a3f93b9a2', key)
def __init__(self, exchangeName, apiKeyFirst, addressFirst, apiSecretFirst, \ apiKeySecond, addressSecond, apiSecretSecond, \ apiKeyThird = None, addressThird=None, apiSecretThird = None, \ apiKeyFourth = None, addressFourth=None, apiSecretFourth = None, \ apiKeyFifth = None, addressFifth=None, apiSecretFifth = None): if exchangeName == self.IDEX_IDENT: exchangeFirstClient = Client(apiKeyFirst, addressFirst, apiSecretFirst) exchangeSecondClient = Client(apiKeySecond, addressSecond, apiSecretSecond) exchangeThirdClient = Client(apiKeyThird, addressThird, apiSecretThird) exchangeFourthClient = Client(apiKeyFourth, addressFourth, apiSecretFourth) exchangeFifthClient = Client(apiKeyFifth, addressFifth, apiSecretFifth) self.clientlist = [ exchangeFirstClient, exchangeSecondClient, exchangeThirdClient, exchangeFourthClient, exchangeFifthClient ] # remove wallet if the address is invalid or has a balance of 0 self.clients = [] for clientCheck in self.clientlist: wallet_address = clientCheck.get_wallet_address() print(wallet_address) if wallet_address: self.clients.append(clientCheck) self.exchange = self.clients[0] if (len(self.clients) < 2): sys.exit() self.isOrder = False self.exchangeName = exchangeName
class IdexLogic(BaseExchangeBL): def __init__( self, account_name='', api_key="0x0000000000000000000000000000000000000000", api_secret="0xvxdlk4xjau61mzedukz40us75qqxm9uahimpn912rmm36ai1d45sn7wx4qg6uhaw" ): super().__init__("idex", account_name, api_key, api_secret) self.idexClient = IdexClient(self.api_key, self.api_secret) def getSymbolsFromExchange(self): data = self.idexClient.get_currencies() symbols = set([]) for item in data: if item not in symbols and item != '000': symbols.add((item, self.exchangeName)) return symbols
#!/usr/bin/env python # coding=utf-8 from idex.client import Client from idex.exceptions import IdexCurrencyNotFoundException import pytest import requests_mock client = Client() currency_res = { "ETH": { "decimals": 18, "address": '0x0000000000000000000000000000000000000000', "name": 'Ether' }, "REP": { "decimals": 8, "address": '0xc853ba17650d32daba343294998ea4e33e7a48b9', "name": 'Reputation' }, "DVIP": { "decimals": 8, "address": '0xf59fad2879fb8380ffa6049a48abf9c9959b3b5c', "name": 'Aurora' } } def test_valid_currency():
#!/usr/bin/env python # coding=utf-8 from decimal import * from idex.client import Client from idex.exceptions import IdexCurrencyNotFoundException import pytest import requests_mock api_key = 'api:jVXLd5h1bEYcKgZbQru2k' client = Client(api_key) currencies_json = { "ETH": { "name": "Ether", "decimals": 18, "address": "0x0000000000000000000000000000000000000000" }, "EAGLE": { "name": "Eagle", "address": "0x0000000000000000000000000000000000000000" }, } examples = [ ['ETH', '3100000000000000000000', 3100], ['ETH', '400000000000000000', 0.4], ['ETH', '1', 0.000000000000000001], ['ETH', '8', 0.000000000000000008], ['ETH', '888', 0.000000000000000888],
def __init__(self): self.client = Client(s.IDEX_API_KEY, s.IDEX_ADDRESS, s.IDEX_PRIVATE_KEY)