UNPKG

1.72 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const config_1 = require("./config");
4const accounts_1 = require("./accounts");
5const utils_1 = require("../lib/utils");
6const DEFAULT_BACKEND = 'one-to-one';
7class RateBackend {
8 constructor(deps) {
9 const config = deps(config_1.default);
10 this.accounts = deps(accounts_1.default);
11 const Backend = utils_1.loadModuleOfType('backend', config.backend || DEFAULT_BACKEND);
12 this.backend = new Backend(Object.assign({
13 spread: config.spread
14 }, config.backendConfig), {
15 getInfo: (account) => this.accounts.getInfo(account),
16 accounts: this.accounts
17 });
18 }
19 connect() {
20 return this.backend.connect();
21 }
22 getRate(sourceAccount, destinationAccount) {
23 return this.backend.getRate(sourceAccount, destinationAccount);
24 }
25 submitPayment(params) {
26 return this.backend.submitPayment(params);
27 }
28 submitPacket(params) {
29 if (this.backend.submitPacket) {
30 return this.backend.submitPacket(params);
31 }
32 return Promise.resolve();
33 }
34 async getStatus() {
35 const rates = {};
36 const accountIds = this.accounts.getAccountIds();
37 for (const srcAccount of accountIds) {
38 const accountRates = rates[srcAccount] = {};
39 for (const dstAccount of accountIds) {
40 if (srcAccount === dstAccount)
41 continue;
42 accountRates[dstAccount] = await this.backend.getRate(srcAccount, dstAccount);
43 }
44 }
45 return rates;
46 }
47}
48exports.default = RateBackend;
49//# sourceMappingURL=rate-backend.js.map
\No newline at end of file