1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-03-13 19:37:35 +01:00

pay-to-open: remove phoenix-side timeout

It was error prone because some device's clock are off. The timeout is
handled by our node anyway.
This commit is contained in:
pm47 2021-04-01 14:06:13 +02:00
parent d1c7264aaa
commit 7d3dca6541
No known key found for this signature in database
GPG key ID: E434ED292E85643A
2 changed files with 0 additions and 30 deletions

View file

@ -174,9 +174,7 @@ class MultiPartHandler(nodeParams: NodeParams, register: ActorRef, db: IncomingP
} else {
implicit val ec = ctx.dispatcher
val decision = Promise[Boolean]()
val delay = summarizedPayToOpenRequest.expireAt.seconds - Platform.currentTime.millisecond // there will be a race at timeout but it doesn't matter
ctx.system.eventStream.publish(PayToOpenRequestEvent(payToOpenParts.head.peer, summarizedPayToOpenRequest, decision))
ctx.system.scheduler.scheduleOnce(delay)(decision.tryFailure(new RuntimeException("pay-to-open timed out")))
decision
.future
.recover { case _: Throwable => false }

View file

@ -596,34 +596,6 @@ class MultiPartHandlerSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike
f.sender.expectMsgType[PendingPayments].paymentHashes.isEmpty
}
test("PaymentHandler should handle single-part payment success (pay-to-open, timeout)") { f =>
val nodeParams = Alice.nodeParams.copy(multiPartPaymentExpiry = 500 millis, features = featuresWithMpp)
val handler = TestActorRef[PaymentHandler](PaymentHandler.props(nodeParams, f.register.ref))
val eventListener = TestProbe()
system.eventStream.subscribe(eventListener.ref, classOf[PayToOpenRequestEvent])
val amount = 20000000 msat
val fee = 1500 sat
val funding = PayToOpenRequest.computeFunding(amount, fee)
f.sender.send(handler, ReceivePayment(Some(20000000 msat), "1 fast coffee"))
val pr = f.sender.expectMsgType[PaymentRequest]
val p1 = PayToOpenRequest(Block.RegtestGenesisBlock.hash, funding, amount, fee, pr.paymentHash, secondsFromNow(2), None, 0.msat)
f.sender.send(handler, p1)
val e1 = eventListener.expectMsgType[PayToOpenRequestEvent]
assert(e1.payToOpenRequest === p1)
assert(e1.peer === f.sender.ref)
Thread.sleep(3000) // timeout
val r1 = f.sender.expectMsgType[PayToOpenResponse]
assert(r1.paymentPreimage === ByteVector32.Zeroes)
f.sender.send(handler, GetPendingPayments)
f.sender.expectMsgType[PendingPayments].paymentHashes.isEmpty
}
test("reject single-part payment with pay-to-open if min amount not reached") { f =>
val nodeParams = Alice.nodeParams.copy(multiPartPaymentExpiry = 500 millis, features = Features(hex"028a8a"))
val handler = TestActorRef[PaymentHandler](PaymentHandler.props(nodeParams, f.register.ref))