Add oracle rates

This commit is contained in:
2026-04-27 08:42:51 +00:00
parent dbfb2c68d2
commit 7ad17a7c0e
17 changed files with 884 additions and 25 deletions

View File

@@ -11,6 +11,7 @@ import { BaseStorage, Storage } from "./storage.js";
import { SyncServer } from "../utils/sync-server.js";
import { HistoryService } from "./history.js";
import { type BlockchainService, ElectrumService } from "./electrum.js";
import { RatesService } from "./rates.js";
import { EventEmitter } from "../utils/event-emitter.js";
@@ -46,6 +47,7 @@ export class AppService extends EventEmitter<AppEventMap> {
public config: AppConfig;
public history: HistoryService;
public electrum: BlockchainService;
public rates: RatesService;
public invitations: Invitation[] = [];
private invitationEventCleanup = new Map<
@@ -107,8 +109,9 @@ export class AppService extends EventEmitter<AppEventMap> {
host: config.electrumHost,
applicationIdentifier: config.electrumApplicationIdentifier,
});
const rates = await RatesService.create();
return new AppService(engine, walletStorage, config, electrum);
return new AppService(engine, walletStorage, config, electrum, rates);
}
constructor(
@@ -116,6 +119,7 @@ export class AppService extends EventEmitter<AppEventMap> {
storage: BaseStorage,
config: AppConfig,
electrum: BlockchainService,
rates: RatesService,
) {
super();
@@ -123,6 +127,7 @@ export class AppService extends EventEmitter<AppEventMap> {
this.storage = storage;
this.config = config;
this.electrum = electrum;
this.rates = rates;
this.history = new HistoryService(engine, this.invitations);
}
@@ -257,6 +262,11 @@ export class AppService extends EventEmitter<AppEventMap> {
}
async start(): Promise<void> {
// Start rates in the background so BCH -> fiat conversions become reactive in the TUI.
this.rates.start().catch((err) =>
console.error('Error starting rates service:', err),
);
// Get the invitations db
const invitationsDb = this.storage.child("invitations");