This commit is contained in:
boufni95 2025-12-15 17:55:05 +00:00
parent 61a424447a
commit b781d245e3
8 changed files with 45 additions and 14 deletions

View file

@ -18,6 +18,7 @@
# LIQUIDITY_PROVIDER_PUB=null # LIQUIDITY_PROVIDER_PUB=null
# DISABLE_LIQUIDITY_PROVIDER=false # DISABLE_LIQUIDITY_PROVIDER=false
# USE_ONLY_LIQUIDITY_PROVIDER=false # USE_ONLY_LIQUIDITY_PROVIDER=false
PROVIDER_RELAY_URL=
#SWAPS #SWAPS
# BOLTZ_HTTP_URL= # BOLTZ_HTTP_URL=

View file

@ -7,6 +7,7 @@ import { getLogger } from './services/helpers/logger.js';
import { initMainHandler, initSettings } from './services/main/init.js'; import { initMainHandler, initSettings } from './services/main/init.js';
import { nip19 } from 'nostr-tools' import { nip19 } from 'nostr-tools'
import { LoadStorageSettingsFromEnv } from './services/storage/index.js'; import { LoadStorageSettingsFromEnv } from './services/storage/index.js';
import { AppInfo } from './services/nostr/nostrPool.js';
//@ts-ignore //@ts-ignore
const { nprofileEncode } = nip19 const { nprofileEncode } = nip19
@ -22,15 +23,28 @@ const start = async () => {
return return
} }
const { apps, mainHandler, liquidityProviderInfo, wizard, adminManager } = keepOn const { mainHandler, liquidityProviderInfo, wizard, adminManager } = keepOn
const serverMethods = GetServerMethods(mainHandler) const serverMethods = GetServerMethods(mainHandler)
log("initializing nostr middleware") log("initializing nostr middleware")
const relays = settingsManager.getSettings().nostrRelaySettings.relays const relays = settingsManager.getSettings().nostrRelaySettings.relays
const maxEventContentLength = settingsManager.getSettings().nostrRelaySettings.maxEventContentLength const maxEventContentLength = settingsManager.getSettings().nostrRelaySettings.maxEventContentLength
const apps: AppInfo[] = keepOn.apps.map(app => {
return {
appId: app.appId,
privateKey: app.privateKey,
publicKey: app.publicKey,
name: app.name,
provider: app.publicKey === liquidityProviderInfo.publicKey ? {
clientId: liquidityProviderInfo.clientId,
pubDestination: settingsManager.getSettings().liquiditySettings.liquidityProviderPub,
relayUrl: settingsManager.getSettings().liquiditySettings.providerRelayUrl || relays[0]
} : undefined
}
})
const { Send, Stop, Ping, Reset } = nostrMiddleware(serverMethods, mainHandler, const { Send, Stop, Ping, Reset } = nostrMiddleware(serverMethods, mainHandler,
{ {
relays, maxEventContentLength, apps, clients: [liquidityProviderInfo], relays, maxEventContentLength, apps, /* clients: [liquidityProviderInfo], */
providerDestinationPub: settingsManager.getSettings().liquiditySettings.liquidityProviderPub /* providerDestinationPub: settingsManager.getSettings().liquiditySettings.liquidityProviderPub */
}, },
(e, p) => mainHandler.liquidityProvider.onEvent(e, p) (e, p) => mainHandler.liquidityProvider.onEvent(e, p)
) )

View file

@ -1,6 +1,6 @@
import { StateBundler } from "../storage/tlv/stateBundler.js"; import { StateBundler } from "../storage/tlv/stateBundler.js";
import { TlvStorageFactory } from "../storage/tlv/tlvFilesStorageFactory.js"; import { TlvStorageFactory } from "../storage/tlv/tlvFilesStorageFactory.js";
import { NostrSend } from "../nostr/handler.js"; import { NostrSend } from "../nostr/nostrPool.js";
import { ProcessMetricsCollector } from "../storage/tlv/processMetricsCollector.js"; import { ProcessMetricsCollector } from "../storage/tlv/processMetricsCollector.js";
type UtilsSettings = { type UtilsSettings = {
noCollector?: boolean noCollector?: boolean

View file

@ -12,7 +12,7 @@ import AppUserManager from "./appUserManager.js"
import { Application } from '../storage/entity/Application.js' import { Application } from '../storage/entity/Application.js'
import { UserReceivingInvoice, ZapInfo } from '../storage/entity/UserReceivingInvoice.js' import { UserReceivingInvoice, ZapInfo } from '../storage/entity/UserReceivingInvoice.js'
import { UnsignedEvent } from 'nostr-tools' import { UnsignedEvent } from 'nostr-tools'
import { NostrEvent, NostrSend } from '../nostr/handler.js' import { NostrSend } from '../nostr/nostrPool.js'
import MetricsManager from '../metrics/index.js' import MetricsManager from '../metrics/index.js'
import { LoggedEvent } from '../storage/eventsLog.js' import { LoggedEvent } from '../storage/eventsLog.js'
import { LiquidityProvider } from "./liquidityProvider.js" import { LiquidityProvider } from "./liquidityProvider.js"
@ -31,7 +31,7 @@ import { Agent } from "https"
import { NotificationsManager } from "./notificationsManager.js" import { NotificationsManager } from "./notificationsManager.js"
import { ApplicationUser } from '../storage/entity/ApplicationUser.js' import { ApplicationUser } from '../storage/entity/ApplicationUser.js'
import SettingsManager from './settingsManager.js' import SettingsManager from './settingsManager.js'
import { NostrSettings } from '../nostr/handler.js' import { NostrSettings, AppInfo } from '../nostr/nostrPool.js'
type UserOperationsSub = { type UserOperationsSub = {
id: string id: string
newIncomingInvoice: (operation: Types.UserOperation) => void newIncomingInvoice: (operation: Types.UserOperation) => void
@ -453,12 +453,26 @@ export default class {
publicKey: liquidityProviderApp.nostr_public_key || "", publicKey: liquidityProviderApp.nostr_public_key || "",
name: "liquidity_provider", clientId: `client_${liquidityProviderApp.app_id}` name: "liquidity_provider", clientId: `client_${liquidityProviderApp.app_id}`
} }
const relays = this.settings.getSettings().nostrRelaySettings.relays
const appsInfo: AppInfo[] = apps.map(app => {
return {
appId: app.app_id,
privateKey: app.nostr_private_key || "",
publicKey: app.nostr_public_key || "",
name: app.name,
provider: app.nostr_public_key === liquidityProviderInfo.publicKey ? {
clientId: liquidityProviderInfo.clientId,
pubDestination: this.settings.getSettings().liquiditySettings.liquidityProviderPub,
relayUrl: this.settings.getSettings().liquiditySettings.providerRelayUrl || relays[0]
} : undefined
}
})
const s: NostrSettings = { const s: NostrSettings = {
apps: apps.map(a => ({ appId: a.app_id, name: a.name, privateKey: a.nostr_private_key || "", publicKey: a.nostr_public_key || "" })), apps: appsInfo,
relays: this.settings.getSettings().nostrRelaySettings.relays, relays,
maxEventContentLength: this.settings.getSettings().nostrRelaySettings.maxEventContentLength, maxEventContentLength: this.settings.getSettings().nostrRelaySettings.maxEventContentLength,
clients: [liquidityProviderInfo], /* clients: [liquidityProviderInfo],
providerDestinationPub: this.settings.getSettings().liquiditySettings.liquidityProviderPub providerDestinationPub: this.settings.getSettings().liquiditySettings.liquidityProviderPub */
} }
this.nostrReset(s) this.nostrReset(s)
} }

View file

@ -3,7 +3,7 @@ import { NostrRequest } from '../../../proto/autogenerated/ts/nostr_transport.js
import * as Types from '../../../proto/autogenerated/ts/types.js' import * as Types from '../../../proto/autogenerated/ts/types.js'
import { ERROR, getLogger } from '../helpers/logger.js' import { ERROR, getLogger } from '../helpers/logger.js'
import { Utils } from '../helpers/utilsWrapper.js' import { Utils } from '../helpers/utilsWrapper.js'
import { NostrEvent, NostrSend } from '../nostr/handler.js' import { NostrSend } from '../nostr/nostrPool.js'
import { InvoicePaidCb } from '../lnd/settings.js' import { InvoicePaidCb } from '../lnd/settings.js'
import Storage from '../storage/index.js' import Storage from '../storage/index.js'
import SettingsManager from './settingsManager.js' import SettingsManager from './settingsManager.js'

View file

@ -168,13 +168,15 @@ export type LiquiditySettings = {
liquidityProviderPub: string // cold setting liquidityProviderPub: string // cold setting
useOnlyLiquidityProvider: boolean // hot setting useOnlyLiquidityProvider: boolean // hot setting
disableLiquidityProvider: boolean // hot setting disableLiquidityProvider: boolean // hot setting
providerRelayUrl: string
} }
export const LoadLiquiditySettingsFromEnv = (dbEnv: Record<string, string | undefined>, addToDb?: EnvCacher): LiquiditySettings => { export const LoadLiquiditySettingsFromEnv = (dbEnv: Record<string, string | undefined>, addToDb?: EnvCacher): LiquiditySettings => {
//const liquidityProviderPub = process.env.LIQUIDITY_PROVIDER_PUB === "null" ? "" : (process.env.LIQUIDITY_PROVIDER_PUB || "76ed45f00cea7bac59d8d0b7d204848f5319d7b96c140ffb6fcbaaab0a13d44e") //const liquidityProviderPub = process.env.LIQUIDITY_PROVIDER_PUB === "null" ? "" : (process.env.LIQUIDITY_PROVIDER_PUB || "76ed45f00cea7bac59d8d0b7d204848f5319d7b96c140ffb6fcbaaab0a13d44e")
const liquidityProviderPub = chooseEnv("LIQUIDITY_PROVIDER_PUB", dbEnv, "76ed45f00cea7bac59d8d0b7d204848f5319d7b96c140ffb6fcbaaab0a13d44e", addToDb) const liquidityProviderPub = chooseEnv("LIQUIDITY_PROVIDER_PUB", dbEnv, "76ed45f00cea7bac59d8d0b7d204848f5319d7b96c140ffb6fcbaaab0a13d44e", addToDb)
const disableLiquidityProvider = chooseEnvBool("DISABLE_LIQUIDITY_PROVIDER", dbEnv, false, addToDb) || liquidityProviderPub === "null" const disableLiquidityProvider = chooseEnvBool("DISABLE_LIQUIDITY_PROVIDER", dbEnv, false, addToDb) || liquidityProviderPub === "null"
const useOnlyLiquidityProvider = chooseEnvBool("USE_ONLY_LIQUIDITY_PROVIDER", dbEnv, false, addToDb) const useOnlyLiquidityProvider = chooseEnvBool("USE_ONLY_LIQUIDITY_PROVIDER", dbEnv, false, addToDb)
return { liquidityProviderPub, useOnlyLiquidityProvider, disableLiquidityProvider } const providerRelayUrl = chooseEnv("PROVIDER_RELAY_URL", dbEnv, "", addToDb)
return { liquidityProviderPub, useOnlyLiquidityProvider, disableLiquidityProvider, providerRelayUrl }
} }
export type SwapsSettings = { export type SwapsSettings = {

View file

@ -1,6 +1,6 @@
import { getLogger } from '../services/helpers/logger.js' import { getLogger } from '../services/helpers/logger.js'
import { initMainHandler, initSettings } from '../services/main/init.js' import { initMainHandler, initSettings } from '../services/main/init.js'
import { SendData } from '../services/nostr/handler.js' import { SendData } from '../services/nostr/nostrPool.js'
import { TestBase, TestUserData } from './testBase.js' import { TestBase, TestUserData } from './testBase.js'
import * as Types from '../../proto/autogenerated/ts/types.js' import * as Types from '../../proto/autogenerated/ts/types.js'
import { GetTestStorageSettings, LoadStorageSettingsFromEnv } from '../services/storage/index.js' import { GetTestStorageSettings, LoadStorageSettingsFromEnv } from '../services/storage/index.js'

View file

@ -83,7 +83,7 @@ export const SetupTest = async (d: Describe, chainTools: ChainTools): Promise<Te
const extermnalUtils = new Utils({ dataDir: storageSettings.dataDir, allowResetMetricsStorages: storageSettings.allowResetMetricsStorages }) const extermnalUtils = new Utils({ dataDir: storageSettings.dataDir, allowResetMetricsStorages: storageSettings.allowResetMetricsStorages })
/* const externalAccessToMainLnd = new LND(settings.lndSettings, new LiquidityProvider("", extermnalUtils, async () => { }, async () => { }), extermnalUtils, async () => { }, async () => { }, () => { }, () => { }) /* const externalAccessToMainLnd = new LND(settings.lndSettings, new LiquidityProvider("", extermnalUtils, async () => { }, async () => { }), extermnalUtils, async () => { }, async () => { }, () => { }, () => { })
await externalAccessToMainLnd.Warmup() */ await externalAccessToMainLnd.Warmup() */
const liquiditySettings: LiquiditySettings = { disableLiquidityProvider: true, liquidityProviderPub: "", useOnlyLiquidityProvider: false } const liquiditySettings: LiquiditySettings = { disableLiquidityProvider: true, liquidityProviderPub: "", useOnlyLiquidityProvider: false, providerRelayUrl: "" }
const lndSettings = LoadLndSettingsFromEnv({}) const lndSettings = LoadLndSettingsFromEnv({})
const secondLndNodeSettings = LoadSecondLndSettingsFromEnv() const secondLndNodeSettings = LoadSecondLndSettingsFromEnv()
const otherLndSetting = () => ({ lndSettings, lndNodeSettings: secondLndNodeSettings }) const otherLndSetting = () => ({ lndSettings, lndNodeSettings: secondLndNodeSettings })