wip
This commit is contained in:
parent
61a424447a
commit
b781d245e3
8 changed files with 45 additions and 14 deletions
|
|
@ -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=
|
||||||
|
|
|
||||||
20
src/index.ts
20
src/index.ts
|
|
@ -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)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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 })
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue