const configManager = require('./new-config-manager') const ph = require('./plugin-helper') const _ = require('lodash/fp') function fetch(settings, cryptoCode) { const plugin = configManager.getWalletSettings( cryptoCode, settings.config, ).layer2 if (_.isEmpty(plugin) || plugin === 'no-layer2') return Promise.resolve() const layer2 = ph.load(ph.LAYER2, plugin) const account = settings.accounts[plugin] return Promise.resolve({ layer2, account }) } function newAddress(settings, info) { return fetch(settings, info.cryptoCode).then(r => { if (!r) return return r.layer2.newAddress(r.account, info) }) } function getStatus(settings, tx) { const toAddress = tx.layer2Address if (!toAddress) return Promise.resolve({ status: 'notSeen' }) return fetch(settings, tx.cryptoCode).then(r => { if (!r) return { status: 'notSeen' } return r.layer2.getStatus( r.account, toAddress, tx.cryptoAtoms, tx.cryptoCode, ) }) } function cryptoNetwork(settings, cryptoCode) { const plugin = configManager.getWalletSettings( cryptoCode, settings.config, ).layer2 const layer2 = ph.load(ph.LAYER2, plugin) const account = settings.accounts[plugin] if (!layer2.cryptoNetwork) return Promise.resolve(false) return layer2.cryptoNetwork(account, cryptoCode) } function isLayer2Address(address) { return address.split(':').length >= 2 } module.exports = { isLayer2Address, newAddress, getStatus, cryptoNetwork, }