@@ -26,6 +26,7 @@ import org.lightningdevkit.ldknode.ElectrumSyncConfig
2626import org.lightningdevkit.ldknode.Event
2727import org.lightningdevkit.ldknode.FeeRate
2828import org.lightningdevkit.ldknode.Node
29+ import org.lightningdevkit.ldknode.NodeEntropy
2930import org.lightningdevkit.ldknode.NodeException
3031import org.lightningdevkit.ldknode.NodeStatus
3132import org.lightningdevkit.ldknode.PaymentDetails
@@ -99,14 +100,14 @@ class LightningService @Inject constructor(
99100
100101 configureChainSource(customServerUrl)
101102 configureGossipSource(customRgsServerUrl)
102-
103- setEntropyBip39Mnemonic(mnemonic, passphrase)
104103 }
105104
106105 Logger .debug(" Building node…" )
107106
108107 val vssStoreId = vssStoreIdProvider.getVssStoreId(walletIndex)
109108
109+ val nodeEntropy = NodeEntropy .fromBip39Mnemonic(mnemonic, passphrase)
110+
110111 ServiceQueue .LDK .background {
111112 node = try {
112113 val lnurlAuthServerUrl = Env .lnurlAuthServerUrl
@@ -119,16 +120,22 @@ class LightningService @Inject constructor(
119120 storeId = vssStoreId,
120121 lnurlAuthServerUrl = lnurlAuthServerUrl,
121122 fixedHeaders = emptyMap(),
123+ nodeEntropy = nodeEntropy,
122124 )
123125 } else {
124126 builder.buildWithVssStoreAndFixedHeaders(
125127 vssUrl = vssUrl,
126128 storeId = vssStoreId,
127129 fixedHeaders = emptyMap(),
130+ nodeEntropy = nodeEntropy,
128131 )
129132 }
130133 } catch (e: BuildException ) {
131134 throw LdkError (e)
135+ } finally {
136+ // cleanup sensitive data
137+ // TODO cleanup mnemonic and passphrase strings from memory
138+ nodeEntropy.destroy()
132139 }
133140 }
134141
@@ -760,6 +767,8 @@ class LightningService @Inject constructor(
760767 " ⛔ Channel closed: channelId: $channelId userChannelId: $userChannelId counterpartyNodeId: $counterpartyNodeId reason: $reason "
761768 )
762769 }
770+
771+ else -> Logger .info(" LDK-node event: $event " )
763772 }
764773 }
765774 // endregion
0 commit comments