PHP WebShell

Текущая директория: /opt/BitGoJS/modules/express/src/lightning

Просмотр файла: lightningUtils.ts

import { promises as fs } from 'fs';
import { decodeOrElse } from '@bitgo/sdk-core';
import { LightningSignerConfigs, LightningSignerConfig } from './codecs';
import { forceSecureUrl } from '../config';

/**
 * Get the lightning signer configurations from the given file path
 */
export async function getLightningSignerConfigs(path: string): Promise<LightningSignerConfigs> {
  const configFile = await fs.readFile(path, { encoding: 'utf8' });
  const configs: unknown = JSON.parse(configFile);
  const decoded = decodeOrElse(LightningSignerConfigs.name, LightningSignerConfigs, configs, (errors) => {
    throw new Error(`Invalid lightning signer config file: ${errors}`);
  });
  const lightningSignerConfigs: LightningSignerConfigs = {};
  for (const [walletId, { url, tlsCert }] of Object.entries(decoded)) {
    const secureUrl = forceSecureUrl(url);
    lightningSignerConfigs[walletId] = { url: secureUrl, tlsCert };
  }
  return lightningSignerConfigs;
}

/**
 * Get the lightning signer configuration for the given walletId
 */
export async function getLightningSignerConfig(
  walletId: string,
  config: { lightningSignerFileSystemPath?: string }
): Promise<LightningSignerConfig> {
  if (!config.lightningSignerFileSystemPath) {
    throw new Error('Missing required configuration: lightningSignerFileSystemPath');
  }
  const lightningSignerConfigs = await getLightningSignerConfigs(config.lightningSignerFileSystemPath);
  const lightningSignerConfig = lightningSignerConfigs[walletId];
  if (!lightningSignerConfig) {
    throw new Error(`Missing required configuration for walletId: ${walletId}`);
  }
  return lightningSignerConfig;
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!