WIPP
This commit is contained in:
parent
ee37367c62
commit
f62e65fe93
3 changed files with 83 additions and 0 deletions
16
jsconfig.json
Normal file
16
jsconfig.json
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=759670
|
||||||
|
// for the documentation about the jsconfig.json format
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es6",
|
||||||
|
"module": "commonjs",
|
||||||
|
"allowSyntheticDefaultImports": true
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"node_modules",
|
||||||
|
"bower_components",
|
||||||
|
"jspm_packages",
|
||||||
|
"tmp",
|
||||||
|
"temp"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -11,6 +11,7 @@ const db = require('./postgresql_interface')
|
||||||
const logger = require('./logger')
|
const logger = require('./logger')
|
||||||
const notifier = require('./notifier')
|
const notifier = require('./notifier')
|
||||||
const T = require('./time')
|
const T = require('./time')
|
||||||
|
const config = require('./config')
|
||||||
|
|
||||||
const tradeIntervals = {}
|
const tradeIntervals = {}
|
||||||
|
|
||||||
|
|
@ -178,6 +179,8 @@ exports.configure = function configure (config) {
|
||||||
cryptoCodes = config.crypto.cryptoCurrencies
|
cryptoCodes = config.crypto.cryptoCurrencies
|
||||||
|
|
||||||
cryptoCodes.forEach(cryptoCode => {
|
cryptoCodes.forEach(cryptoCode => {
|
||||||
|
cryptoScopedConfig = config.cryptoScoped(cryptoCode, cachedConfig)
|
||||||
|
|
||||||
// TICKER [required] configure (or load)
|
// TICKER [required] configure (or load)
|
||||||
loadOrConfigPlugin(
|
loadOrConfigPlugin(
|
||||||
tickerPlugins[cryptoCode],
|
tickerPlugins[cryptoCode],
|
||||||
|
|
|
||||||
64
todo.txt
64
todo.txt
|
|
@ -25,3 +25,67 @@ schemas:
|
||||||
|
|
||||||
v update migrate-config to match lamassu.json schema
|
v update migrate-config to match lamassu.json schema
|
||||||
- update machine name
|
- update machine name
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
- are plugins loaded globally or per machine?
|
||||||
|
- list all used plugins:
|
||||||
|
ticker, trade, wallet, info (?), idVerifier, email, sms
|
||||||
|
|
||||||
|
|
||||||
|
- wallet doesn't care about fiat
|
||||||
|
|
||||||
|
- look into how each plugin is used
|
||||||
|
- info plugin not used
|
||||||
|
|
||||||
|
- need either transitive closure of all cryptos accross machines,
|
||||||
|
or add new plugin when needed
|
||||||
|
- currently we're looking at all cryptos, so this is probably easier
|
||||||
|
|
||||||
|
|
||||||
|
- different machines can have different coins, currencies, etc
|
||||||
|
- necessitates different plugins
|
||||||
|
|
||||||
|
- do plugins require initialization and state?
|
||||||
|
probably not
|
||||||
|
|
||||||
|
- require caches, so probably not big penalty to require whenever a plugin is needed
|
||||||
|
|
||||||
|
- essentially, plugins just need their account info, plus some additional
|
||||||
|
special info, such as masterSeed, fiatCurrencies, etc
|
||||||
|
|
||||||
|
- deviceCurrency needs to be fixed. currently we're assuming one currency
|
||||||
|
globally
|
||||||
|
|
||||||
|
load ticker plugin (not really, remove this), pollRate (can supply actual deviceCurrency),
|
||||||
|
purchase/trader (also device specific), consolidateTrades (see what calls this),
|
||||||
|
checkBalances (*check callee)
|
||||||
|
|
||||||
|
* pollRate -- this sets lastRates which is keyed by crypto only, may need
|
||||||
|
to be keyed by fiat as well; probably better to fetch on demand, with throttle
|
||||||
|
see: https://github.com/sindresorhus/mem
|
||||||
|
|
||||||
|
* consolidateTrades: one trader for each crypto, or separate per crypto/fiat?
|
||||||
|
does consolidateTrades need fiat currency at all? even so, shouldn't this
|
||||||
|
be in the trade record?
|
||||||
|
|
||||||
|
example: operator may have machines in US and China; might want different exchanges
|
||||||
|
for china machines; same for ticker
|
||||||
|
|
||||||
|
options: configure per machine; configure per crypto/fiat
|
||||||
|
- crypto/fiat requires more admin dev work design
|
||||||
|
- also restricts configurability
|
||||||
|
- but global ticker/exchange doesn't make sense if fiats are different
|
||||||
|
- which means it would be required to define ticker/exchange for each
|
||||||
|
machine, even if they all have the same crypto/fiat
|
||||||
|
|
||||||
|
* checkBalances: used for notifier, to indicate if balances are too low;
|
||||||
|
how to do this generalized across all machines/currencies?
|
||||||
|
|
||||||
|
* possibly configure home currency for admin; probably a good idea for
|
||||||
|
transactions, statistics, etc
|
||||||
|
|
||||||
|
-> For now, keep it as is -- one exchange per crypto, see how we handle fiat
|
||||||
|
currencies now. (passed in on trade -- we assume that we're using machine currency, which may not be true)
|
||||||
|
|
||||||
|
- consider defining exchange fiat currency in exchange account config, we don't pass in fiat amount, anyway
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue