TrustyFund/vuex-bitshares

Возможность коннектиться к разным маркетам

youaresofunny opened this issue · 9 comments

Сейчас service market работает как singleton (export default new Market('1.3.0'))

Нужно:
Возвращать объект где ключ это base asset, а значение - экземпляр в маркете.

Тогда в modules обойдёмся малой кровью:

API.Market['1.3.0'].subscribeToExchangeRate...
API.Market['1.3.0'.unsubscribeFromExchangeRate

И на экране мануальных ордеров будем забирать стакан из выбранной базы путем подписывания на нужный ассет.

TODO:

  • Поправить services/market чтобы на выходе был объект с синглтонами
  • Поправить места которые использовали этот маркет, чтобы они обращались к BTS

Не уверен, что стоит таким громоздким способом это делать. Для начала надо понять, а какие сценарии использования других маркетов предполагаются? Необходима ли возможность использования двух маркетов одновременно?

@roma219 необходима, когда юзер будет торговать на manual табе, в фоне будет висеть BTS Market.

"Необходима ли возможность использования двух маркетов одновременно?" - да

@youaresofunny Ок, это гораздо большая задача, чем просто в API.Market сделать объект с маркетами... Есть подводные камни и в количестве. Думаю целесообразно сначала сделать мануал таб чисто для bts маркета (держа в уме будущее возможность его замены), а далее уже внедрять возможность изменения - тогда и я ясно будет, в какой форме это лучше будет делать.

Мануал trading и vuex под него будут в другом issue.
Конкретно здесь все ок - малыми силами расширили service для работы с любым маркетом.

А зачем сейчас нужно это расширение? Если его использование предполагается только в модуле manual. Да и реализовать сейчас лучше как:

const baseMarket = API.Market.getMarket('1.3.0')
один раз вверху после импорта API

а не городить в каждом модуле API.Market['1.3.0']

const baseMarket = API.Market['1.3.0']