Skip to content

Commit

Permalink
setup network
Browse files Browse the repository at this point in the history
  • Loading branch information
boufni95 committed Apr 24, 2024
1 parent 8e7d8fc commit 9f2bc13
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 9 deletions.
20 changes: 18 additions & 2 deletions src/services/main/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ export type MainSettings = {
skipSanityCheck: 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 => {
return {
watchDogSettings: LoadWatchdogSettingsFromEnv(),
Expand All @@ -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 settings = LoadMainSettingsFromEnv()
return {
Expand All @@ -61,8 +67,18 @@ export const LoadTestSettingsFromEnv = (): MainSettings & { lndSettings: { other
lndAddr: EnvMustBeNonEmptyString("LND_THIRD_ADDR"),
lndCertPath: EnvMustBeNonEmptyString("LND_THIRD_CERT_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")
}
}
}
19 changes: 13 additions & 6 deletions src/tests/.env.test
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
LND_ADDRESS=127.0.0.1:10001
LND_CERT_PATH=alice-tls.cert
LND_ADDRESS=127.0.0.1:10001 #alice
LND_CERT_PATH=alice-tls.cert #alice
LND_MACAROON_PATH=alice-admin.macaroon
DATABASE_FILE=db.sqlite
JWT_SECRET=bigsecrethere
Expand All @@ -22,12 +22,19 @@ METRICS_DATABASE_FILE=metrics.sqlite
WATCHDOG_MAX_DIFF_BPS=100
WATCHDOG_MAX_DIFF_SATS=10000


# dave <--> alice <--> carol <--> bob
LND_OTHER_ADDR=127.0.0.1:10002
LND_OTHER_CERT_PATH=bob-tls.cert
LND_OTHER_MACAROON_PATH=bob-admin.macaroon

LND_THIRD_ADDR=127.0.0.1:10004
LND_THIRD_CERT_PATH=dave-tls.cert
LND_THIRD_MACAROON_PATH=dave-admin.macaroon
LND_THIRD_ADDR=127.0.0.1:10003
LND_THIRD_CERT_PATH=carol-tls.cert
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 changes: 43 additions & 0 deletions src/tests/networkSetup.ts
Original file line number Diff line number Diff line change
@@ -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 })
}
5 changes: 4 additions & 1 deletion src/tests/testRunner.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { globby } from 'globby'
import { setupNetwork } from './networkSetup.js'
import { Describe, SetupTest, teardown, TestBase } from './testBase.js'


Expand All @@ -19,7 +20,9 @@ const getDescribe = (fileName: string): Describe => {
}
}
const start = async () => {

if (process.argv[2] === 'setup_network') {
await setupNetwork()
}
const files = await globby(["**/*.spec.js", "!**/node_modules/**"])
const modules: { file: string, module: TestModule }[] = []
let devModule = -1
Expand Down

0 comments on commit 9f2bc13

Please sign in to comment.