- l-m shouldn't keep polling l-s when not on pending screen (low priority) - scrutinize hkdf, maybe use own simplified version - test bitcoind cash-out - test eth cash out, check that HD is still working - throttle status check for 3rd services like bitgo - load stuff from master config file - add default configuration - either remove lamassu-config or fix link in package.json ------------------------ schemas: - global crypto / global machine - global crypto / specific machine - specific crypto / global machine - specific crypto / specific machine - We'll have one group for config that applies to all 4 - Machine config applies to only global crypto (machine config screen) - Crypto config applies to only specific crypto v update migrate-config to match lamassu.json schema - 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