@@ -185,14 +185,41 @@ class NormalSplicesStateSpec extends TestKitBaseClass with FixtureAnyFunSuiteLik
185
185
test(" recv CMD_SPLICE (splice-out, would go below reserve)" ) { f =>
186
186
import f ._
187
187
188
+ val availableToSpend = alice.stateData.asInstanceOf [DATA_NORMAL ].commitments.availableBalanceForSend
189
+
188
190
val initialState = alice.stateData.asInstanceOf [DATA_NORMAL ]
189
191
assert(initialState.commitments.latest.capacity == 1_500_000 .sat)
190
192
assert(initialState.commitments.latest.localCommit.spec.toLocal == 800_000_000 .msat)
191
193
assert(initialState.commitments.latest.localCommit.spec.toRemote == 700_000_000 .msat)
192
194
193
195
val sender = TestProbe ()
194
- val cmd = CMD_SPLICE (sender.ref, spliceIn_opt = None , Some (SpliceOut (790_000 sat, defaultSpliceOutScriptPubKey)))
196
+ val cmd = CMD_SPLICE (sender.ref, spliceIn_opt = Some (SpliceIn (1000 .sat)), Some (SpliceOut (1001 .sat + availableToSpend.truncateToSatoshi, defaultSpliceOutScriptPubKey)))
197
+ alice ! cmd
198
+ sender.expectMsgType[RES_FAILURE [_, _]]
199
+ }
200
+
201
+ test(" recv CMD_SPLICE (splice-out, would go below reserve, quiescent)" , Tag (ChannelStateTestsTags .Quiescence ), Tag (NoMaxHtlcValueInFlight )) { f =>
202
+ import f ._
203
+
204
+ val availableToSpend = alice.stateData.asInstanceOf [DATA_NORMAL ].commitments.availableBalanceForSend
205
+
206
+ // add htlcs to make alice's balance go below reserve
207
+ addHtlc(1_000 .msat, alice, bob, alice2bob, bob2alice)
208
+ crossSign(alice, bob, alice2bob, bob2alice)
209
+
210
+ val initialState = alice.stateData.asInstanceOf [DATA_NORMAL ]
211
+ assert(initialState.commitments.latest.capacity == 1_500_000 .sat)
212
+ assert(initialState.commitments.latest.localCommit.spec.toLocal == 799_999_000 .msat)
213
+ assert(initialState.commitments.latest.localCommit.spec.toRemote == 700_000_000 .msat)
214
+
215
+ val sender = TestProbe ()
216
+
217
+ val cmd = CMD_SPLICE (sender.ref, spliceIn_opt = Some (SpliceIn (1000 sat)), Some (SpliceOut (1000 .sat + availableToSpend.truncateToSatoshi, defaultSpliceOutScriptPubKey)))
195
218
alice ! cmd
219
+ alice2bob.expectMsgType[Stfu ]
220
+ alice2bob.forward(bob)
221
+ bob2alice.expectMsgType[Stfu ]
222
+ bob2alice.forward(alice)
196
223
sender.expectMsgType[RES_FAILURE [_, _]]
197
224
}
198
225
0 commit comments