mirror of
https://github.com/ACINQ/eclair.git
synced 2025-03-12 19:01:39 +01:00
Add support for phoenix legacy migration messages
PhoenixAndroidLegacyMigrate is a message to signal migration readiness. PhoenixAndroidLegacyMigrateResponse is the response confirming that the peer acknowledges that this phoenix app is ready to migrate.
This commit is contained in:
parent
11b2e27444
commit
cad5b2a546
4 changed files with 27 additions and 0 deletions
|
@ -154,6 +154,15 @@ class Peer(val nodeParams: NodeParams, remoteNodeId: PublicKey, watcher: ActorRe
|
|||
d.peerConnection ! UnsetFCMToken
|
||||
stay
|
||||
|
||||
case Event(s: SendPhoenixAndroidLegacyMigrate, d: ConnectedData) =>
|
||||
d.peerConnection ! PhoenixAndroidLegacyMigrate(s.newNodeId)
|
||||
stay
|
||||
|
||||
case Event(s: PhoenixAndroidLegacyMigrateResponse, d: ConnectedData) =>
|
||||
d.peerConnection ! TransportHandler.ReadAck(s)
|
||||
context.system.eventStream.publish(s)
|
||||
stay
|
||||
|
||||
case Event(c: Peer.OpenChannel, d: ConnectedData) =>
|
||||
if (c.fundingSatoshis >= Channel.MAX_FUNDING && !nodeParams.features.hasFeature(Wumbo)) {
|
||||
sender ! Status.Failure(new RuntimeException(s"fundingSatoshis=${c.fundingSatoshis} is too big, you must enable large channels support in 'eclair.features' to use funding above ${Channel.MAX_FUNDING} (see eclair.conf)"))
|
||||
|
@ -496,6 +505,7 @@ object Peer {
|
|||
case class SendSwapInRequest(nodeId: PublicKey)
|
||||
case class SendSetFCMToken(nodeId: PublicKey, token: String)
|
||||
case class SendUnsetFCMToken(nodeId: PublicKey)
|
||||
case class SendPhoenixAndroidLegacyMigrate(nodeId: PublicKey, newNodeId: PublicKey)
|
||||
// @formatter:on
|
||||
|
||||
def makeChannelParams(nodeParams: NodeParams, defaultFinalScriptPubkey: ByteVector, localPaymentBasepoint: Option[PublicKey], isFunder: Boolean, fundingAmount: Satoshi): LocalParams = {
|
||||
|
|
|
@ -93,6 +93,12 @@ class Switchboard(nodeParams: NodeParams, watcher: ActorRef, relayer: ActorRef,
|
|||
case None => log.error(s"could not discard fcm token to unknown peer=${f.nodeId}")
|
||||
}
|
||||
|
||||
case d: Peer.SendPhoenixAndroidLegacyMigrate =>
|
||||
getPeer(d.nodeId) match {
|
||||
case Some(peer) => peer forward d
|
||||
case None => sender ! Status.Failure(new RuntimeException("peer not found"))
|
||||
}
|
||||
|
||||
case authenticated: PeerConnection.Authenticated =>
|
||||
// if this is an incoming connection, we might not yet have created the peer
|
||||
val peer = createOrGetPeer(authenticated.remoteNodeId, offlineChannels = Set.empty)
|
||||
|
|
|
@ -354,6 +354,12 @@ object LightningMessageCodecs {
|
|||
|
||||
val unsetFcmToken: Codec[UnsetFCMToken.type ] = provide(UnsetFCMToken)
|
||||
|
||||
val phoenixAndroidLegacyMigrateCodec: Codec[PhoenixAndroidLegacyMigrate] =
|
||||
("newNodeId" | publicKey).as[PhoenixAndroidLegacyMigrate]
|
||||
|
||||
val phoenixAndroidLegacyMigrateResponseCodec: Codec[PhoenixAndroidLegacyMigrateResponse] =
|
||||
("newNodeId" | publicKey).as[PhoenixAndroidLegacyMigrateResponse]
|
||||
|
||||
val lightningMessageCodec = discriminated[LightningMessage].by(uint16)
|
||||
.typecase(16, initCodec)
|
||||
.typecase(17, errorCodec)
|
||||
|
@ -402,6 +408,8 @@ object LightningMessageCodecs {
|
|||
|
||||
.typecase(35017, setFcmTokenCodec)
|
||||
.typecase(35019, unsetFcmToken)
|
||||
.typecase(35025, phoenixAndroidLegacyMigrateCodec)
|
||||
.typecase(35027, phoenixAndroidLegacyMigrateResponseCodec)
|
||||
|
||||
val meteredLightningMessageCodec = Codec[LightningMessage](
|
||||
(msg: LightningMessage) => KamonExt.time(Metrics.EncodeDuration.withTag(Tags.MessageType, msg.getClass.getSimpleName))(lightningMessageCodec.encode(msg)),
|
||||
|
|
|
@ -375,3 +375,6 @@ case class SwapOutResponse(chainHash: ByteVector32,
|
|||
|
||||
case class SetFCMToken(token: String) extends LightningMessage
|
||||
case object UnsetFCMToken extends LightningMessage
|
||||
//
|
||||
case class PhoenixAndroidLegacyMigrate(newNodeId: PublicKey) extends LightningMessage
|
||||
case class PhoenixAndroidLegacyMigrateResponse(newNodeId: PublicKey) extends LightningMessage
|
||||
|
|
Loading…
Add table
Reference in a new issue