From 73f930d6f70bcabe5acea5441294f454780fdcd4 Mon Sep 17 00:00:00 2001 From: Sam Holmes Date: Fri, 3 Jan 2025 12:24:54 -0800 Subject: [PATCH] fixup! Implement updateInfoPayload --- src/common/plugin/CurrencyPlugin.ts | 8 ++------ src/common/plugin/PluginState.ts | 19 +++++++------------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/common/plugin/CurrencyPlugin.ts b/src/common/plugin/CurrencyPlugin.ts index 11257da0..8913a18e 100644 --- a/src/common/plugin/CurrencyPlugin.ts +++ b/src/common/plugin/CurrencyPlugin.ts @@ -17,7 +17,7 @@ import { makeUtxoEngine } from '../utxobased/engine/UtxoEngine' import { makeCurrencyTools } from './CurrencyTools' import { makeEngineEmitter } from './EngineEmitter' import { makePluginState } from './PluginState' -import { asInfoPayload, EngineConfig, InfoPayload, PluginInfo } from './types' +import { asInfoPayload, EngineConfig, PluginInfo } from './types' let hasMemletBeenSet = false @@ -30,13 +30,9 @@ export function makeCurrencyPlugin( const currencyTools = makeCurrencyTools(io, pluginInfo) const { defaultSettings, pluginId, currencyCode } = currencyInfo - let cachedInfoPayload: InfoPayload | undefined - const getInfoPayload = (): InfoPayload | undefined => cachedInfoPayload - const pluginState = makePluginState({ defaultSettings: asUtxoUserSettings(defaultSettings), currencyCode, - getInfoPayload, io, log, pluginId, @@ -90,7 +86,7 @@ export function makeCurrencyPlugin( async updateInfoPayload(infoPayload) { try { - cachedInfoPayload = asInfoPayload(infoPayload) + pluginState.infoPayload = asInfoPayload(infoPayload) } catch (_) { log.warn('invalid infoPayload', infoPayload) } diff --git a/src/common/plugin/PluginState.ts b/src/common/plugin/PluginState.ts index b37eeca4..726376fb 100644 --- a/src/common/plugin/PluginState.ts +++ b/src/common/plugin/PluginState.ts @@ -28,7 +28,6 @@ interface JsonObject { export interface PluginStateSettings { currencyCode: string defaultSettings: UtxoUserSettings - getInfoPayload: () => InfoPayload | undefined io: EdgeIo log: EdgeLog pluginDisklet: Disklet @@ -36,6 +35,8 @@ export interface PluginStateSettings { } export interface PluginState { + infoPayload: InfoPayload | undefined + addEngine: (engineProcessor: UtxoEngineProcessor) => void removeEngine: (engineProcessor: UtxoEngineProcessor) => void dumpData: () => JsonObject @@ -52,13 +53,7 @@ export interface PluginState { } export function makePluginState(settings: PluginStateSettings): PluginState { - const { - defaultSettings, - getInfoPayload, - log, - pluginDisklet, - pluginId - } = settings + const { defaultSettings, log, pluginDisklet, pluginId } = settings let engines: UtxoEngineProcessor[] = [] const memlet = makeMemlet(pluginDisklet) @@ -112,20 +107,20 @@ export function makePluginState(settings: PluginStateSettings): PluginState { }) const getInfoPayloadServers = async (): Promise => { - const infoPayload = getInfoPayload() - - if (infoPayload == null) { + if (instance.infoPayload == null) { log.warn(`info server list list empty`) return [] } - const servers = Object.keys(infoPayload.blockbookServers) + const servers = Object.keys(instance.infoPayload.blockbookServers) log.warn(`info server list`, servers) return servers } const instance: PluginState = { + infoPayload: undefined, + /** * Begins notifying the engine of state changes. Used at connection time. */