setup network
This commit is contained in:
parent
ceacbbf70e
commit
f64b49bf29
4 changed files with 78 additions and 9 deletions
|
|
@ -22,6 +22,12 @@ export type MainSettings = {
|
||||||
skipSanityCheck: boolean
|
skipSanityCheck: boolean
|
||||||
disableExternalPayments: boolean
|
disableExternalPayments: boolean
|
||||||
}
|
}
|
||||||
|
export type BitcoinCoreSettings = {
|
||||||
|
port: number
|
||||||
|
user: string
|
||||||
|
pass: string
|
||||||
|
}
|
||||||
|
export type TestSettings = MainSettings & { lndSettings: { otherNode: NodeSettings, thirdNode: NodeSettings, fourthNode: NodeSettings }, bitcoinCoreSettings: BitcoinCoreSettings }
|
||||||
export const LoadMainSettingsFromEnv = (): MainSettings => {
|
export const LoadMainSettingsFromEnv = (): MainSettings => {
|
||||||
return {
|
return {
|
||||||
watchDogSettings: LoadWatchdogSettingsFromEnv(),
|
watchDogSettings: LoadWatchdogSettingsFromEnv(),
|
||||||
|
|
@ -44,7 +50,7 @@ export const LoadMainSettingsFromEnv = (): MainSettings => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const LoadTestSettingsFromEnv = (): MainSettings & { lndSettings: { otherNode: NodeSettings, thirdNode: NodeSettings } } => {
|
export const LoadTestSettingsFromEnv = (): TestSettings => {
|
||||||
const eventLogPath = `logs/eventLogV2Test${Date.now()}.csv`
|
const eventLogPath = `logs/eventLogV2Test${Date.now()}.csv`
|
||||||
const settings = LoadMainSettingsFromEnv()
|
const settings = LoadMainSettingsFromEnv()
|
||||||
return {
|
return {
|
||||||
|
|
@ -61,8 +67,18 @@ export const LoadTestSettingsFromEnv = (): MainSettings & { lndSettings: { other
|
||||||
lndAddr: EnvMustBeNonEmptyString("LND_THIRD_ADDR"),
|
lndAddr: EnvMustBeNonEmptyString("LND_THIRD_ADDR"),
|
||||||
lndCertPath: EnvMustBeNonEmptyString("LND_THIRD_CERT_PATH"),
|
lndCertPath: EnvMustBeNonEmptyString("LND_THIRD_CERT_PATH"),
|
||||||
lndMacaroonPath: EnvMustBeNonEmptyString("LND_THIRD_MACAROON_PATH")
|
lndMacaroonPath: EnvMustBeNonEmptyString("LND_THIRD_MACAROON_PATH")
|
||||||
|
},
|
||||||
|
fourthNode: {
|
||||||
|
lndAddr: EnvMustBeNonEmptyString("LND_FOURTH_ADDR"),
|
||||||
|
lndCertPath: EnvMustBeNonEmptyString("LND_FOURTH_CERT_PATH"),
|
||||||
|
lndMacaroonPath: EnvMustBeNonEmptyString("LND_FOURTH_MACAROON_PATH")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skipSanityCheck: true
|
skipSanityCheck: true,
|
||||||
|
bitcoinCoreSettings: {
|
||||||
|
port: EnvMustBeInteger("BITCOIN_CORE_PORT"),
|
||||||
|
user: EnvMustBeNonEmptyString("BITCOIN_CORE_USER"),
|
||||||
|
pass: EnvMustBeNonEmptyString("BITCOIN_CORE_PASS")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
LND_ADDRESS=127.0.0.1:10001
|
LND_ADDRESS=127.0.0.1:10001 #alice
|
||||||
LND_CERT_PATH=alice-tls.cert
|
LND_CERT_PATH=alice-tls.cert #alice
|
||||||
LND_MACAROON_PATH=alice-admin.macaroon
|
LND_MACAROON_PATH=alice-admin.macaroon
|
||||||
DATABASE_FILE=db.sqlite
|
DATABASE_FILE=db.sqlite
|
||||||
JWT_SECRET=bigsecrethere
|
JWT_SECRET=bigsecrethere
|
||||||
|
|
@ -22,12 +22,19 @@ METRICS_DATABASE_FILE=metrics.sqlite
|
||||||
WATCHDOG_MAX_DIFF_BPS=100
|
WATCHDOG_MAX_DIFF_BPS=100
|
||||||
WATCHDOG_MAX_DIFF_SATS=10000
|
WATCHDOG_MAX_DIFF_SATS=10000
|
||||||
|
|
||||||
|
# dave <--> alice <--> carol <--> bob
|
||||||
LND_OTHER_ADDR=127.0.0.1:10002
|
LND_OTHER_ADDR=127.0.0.1:10002
|
||||||
LND_OTHER_CERT_PATH=bob-tls.cert
|
LND_OTHER_CERT_PATH=bob-tls.cert
|
||||||
LND_OTHER_MACAROON_PATH=bob-admin.macaroon
|
LND_OTHER_MACAROON_PATH=bob-admin.macaroon
|
||||||
|
|
||||||
LND_THIRD_ADDR=127.0.0.1:10004
|
LND_THIRD_ADDR=127.0.0.1:10003
|
||||||
LND_THIRD_CERT_PATH=dave-tls.cert
|
LND_THIRD_CERT_PATH=carol-tls.cert
|
||||||
LND_THIRD_MACAROON_PATH=dave-admin.macaroon
|
LND_THIRD_MACAROON_PATH=carol-admin.macaroon
|
||||||
|
|
||||||
|
LND_FOURTH_ADDR=127.0.0.1:10004
|
||||||
|
LND_FOURTH_CERT_PATH=dave-tls.cert
|
||||||
|
LND_FOURTH_MACAROON_PATH=dave-admin.macaroon
|
||||||
|
|
||||||
|
BITCOIN_CORE_PORT=18443
|
||||||
|
BITCOIN_CORE_USER=polaruser
|
||||||
|
BITCOIN_CORE_PASS=polarpass
|
||||||
43
src/tests/networkSetup.ts
Normal file
43
src/tests/networkSetup.ts
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
import BitcoinCore from 'bitcoin-core';
|
||||||
|
import { LoadTestSettingsFromEnv, TestSettings } from "../services/main/settings.js"
|
||||||
|
import LND from '../services/lnd/lnd.js'
|
||||||
|
// dave <--> alice <--> carol <--> bob
|
||||||
|
export const setupNetwork = async () => {
|
||||||
|
const settings = LoadTestSettingsFromEnv()
|
||||||
|
const core = await initBitcoinCore(settings)
|
||||||
|
const { alice, bob, carol, dave } = await initLndInstances(settings)
|
||||||
|
}
|
||||||
|
|
||||||
|
const initLndInstances = async (settings: TestSettings) => {
|
||||||
|
const alice = new LND(settings.lndSettings, console.log, console.log, () => { }, () => { })
|
||||||
|
await alice.Warmup()
|
||||||
|
|
||||||
|
const bobSettings = { ...settings.lndSettings, mainNode: settings.lndSettings.otherNode }
|
||||||
|
const bob = new LND(bobSettings, console.log, console.log, () => { }, () => { })
|
||||||
|
await bob.Warmup()
|
||||||
|
|
||||||
|
const carolSettings = { ...settings.lndSettings, mainNode: settings.lndSettings.thirdNode }
|
||||||
|
const carol = new LND(carolSettings, console.log, console.log, () => { }, () => { })
|
||||||
|
await carol.Warmup()
|
||||||
|
|
||||||
|
const daveSettings = { ...settings.lndSettings, mainNode: settings.lndSettings.fourthNode }
|
||||||
|
const dave = new LND(daveSettings, console.log, console.log, () => { }, () => { })
|
||||||
|
await dave.Warmup()
|
||||||
|
return { alice, bob, carol, dave }
|
||||||
|
}
|
||||||
|
|
||||||
|
const initBitcoinCore = async (settings: TestSettings) => {
|
||||||
|
const core = new BitcoinCore({
|
||||||
|
//network: 'regtest',
|
||||||
|
host: '127.0.0.1',
|
||||||
|
port: `${settings.bitcoinCoreSettings.port}`,
|
||||||
|
username: settings.bitcoinCoreSettings.user,
|
||||||
|
password: settings.bitcoinCoreSettings.pass,
|
||||||
|
// use a long timeout due to the time it takes to mine a lot of blocks
|
||||||
|
timeout: 5 * 60 * 1000,
|
||||||
|
})
|
||||||
|
const wallet = await core.createWallet('');
|
||||||
|
console.log({ wallet })
|
||||||
|
const address = await core.getNewAddress()
|
||||||
|
console.log({ address })
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { globby } from 'globby'
|
import { globby } from 'globby'
|
||||||
|
import { setupNetwork } from './networkSetup.js'
|
||||||
import { Describe, SetupTest, teardown, TestBase } from './testBase.js'
|
import { Describe, SetupTest, teardown, TestBase } from './testBase.js'
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -19,7 +20,9 @@ const getDescribe = (fileName: string): Describe => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const start = async () => {
|
const start = async () => {
|
||||||
|
if (process.argv[2] === 'setup_network') {
|
||||||
|
await setupNetwork()
|
||||||
|
}
|
||||||
const files = await globby(["**/*.spec.js", "!**/node_modules/**"])
|
const files = await globby(["**/*.spec.js", "!**/node_modules/**"])
|
||||||
const modules: { file: string, module: TestModule }[] = []
|
const modules: { file: string, module: TestModule }[] = []
|
||||||
let devModule = -1
|
let devModule = -1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue