mirror of
https://github.com/ACINQ/eclair.git
synced 2025-03-12 02:08:30 +01:00
moved wire from a module to a package
This commit is contained in:
parent
0a5bf62aae
commit
cc11ec8d14
7 changed files with 67 additions and 84 deletions
|
@ -102,6 +102,11 @@
|
||||||
<artifactId>lenses_${scala.version.short}</artifactId>
|
<artifactId>lenses_${scala.version.short}</artifactId>
|
||||||
<version>0.4</version>
|
<version>0.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.scodec</groupId>
|
||||||
|
<artifactId>scodec-core_${scala.version.short}</artifactId>
|
||||||
|
<version>1.10.3</version>
|
||||||
|
</dependency>
|
||||||
<!-- LOGGING -->
|
<!-- LOGGING -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.clapper</groupId>
|
<groupId>org.clapper</groupId>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package fr.acinq.eclair.wire.bolt2.sdc
|
package fr.acinq.eclair.wire
|
||||||
|
|
||||||
import fr.acinq.bitcoin.BinaryData
|
import fr.acinq.bitcoin.BinaryData
|
||||||
import fr.acinq.eclair.wire.bolt2.custom._
|
import fr.acinq.eclair.wire
|
||||||
import scodec.bits.ByteVector
|
import scodec.bits.ByteVector
|
||||||
import scodec.codecs._
|
import scodec.codecs._
|
||||||
import scodec.{Attempt, Codec, Err}
|
import scodec.{Attempt, Codec, Err}
|
||||||
|
@ -59,15 +59,32 @@ object Codecs {
|
||||||
|
|
||||||
val fundingLockedCodec: Codec[FundingLocked] = (
|
val fundingLockedCodec: Codec[FundingLocked] = (
|
||||||
("temporaryChannelId" | uint64) ::
|
("temporaryChannelId" | uint64) ::
|
||||||
("channelId" | uint64) ::
|
("channelId" | uint64) ::
|
||||||
("nextKeyOffset" | binarydata(32)) ::
|
("nextKeyOffset" | binarydata(32)) ::
|
||||||
("nextRevocationHalfKey" | binarydata(33))).as[FundingLocked]
|
("nextRevocationHalfKey" | binarydata(33))).as[FundingLocked]
|
||||||
|
|
||||||
|
val updateFeeCodec: Codec[UpdateFee] = (
|
||||||
|
("channelId" | uint64) ::
|
||||||
|
("feeratePerKb" | uint32)).as[UpdateFee]
|
||||||
|
|
||||||
|
val shutdownCodec: Codec[wire.Shutdown] = (
|
||||||
|
("channelId" | uint64) ::
|
||||||
|
("len" | uint32) ::
|
||||||
|
("scriptPubKey" | binarydata(32))).as[Shutdown]
|
||||||
|
|
||||||
|
val closeSignatureCodec: Codec[CloseSignature] = (
|
||||||
|
("channelId" | uint64) ::
|
||||||
|
("feeSatoshis" | uint64) ::
|
||||||
|
("signature" | binarydata(64))).as[CloseSignature]
|
||||||
|
|
||||||
val lightningMessageCodec = discriminated[LightningMessage].by(uint32)
|
val lightningMessageCodec = discriminated[LightningMessage].by(uint32)
|
||||||
.typecase(32L, openChannelCodec)
|
.typecase(32L, openChannelCodec)
|
||||||
.typecase(33L, acceptChannelCodec)
|
.typecase(33L, acceptChannelCodec)
|
||||||
.typecase(34L, fundingCreatedCodec)
|
.typecase(34L, fundingCreatedCodec)
|
||||||
.typecase(35L, fundingSignedCodec)
|
.typecase(35L, fundingSignedCodec)
|
||||||
.typecase(36L, fundingLockedCodec)
|
.typecase(36L, fundingLockedCodec)
|
||||||
|
.typecase(37L, updateFeeCodec)
|
||||||
|
.typecase(38L, shutdownCodec)
|
||||||
|
.typecase(39L, closeSignatureCodec)
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
package fr.acinq.eclair.wire.bolt2.custom
|
package fr.acinq.eclair.wire
|
||||||
|
|
||||||
import java.io.{InputStream, OutputStream}
|
import java.io.{InputStream, OutputStream}
|
||||||
|
|
||||||
import fr.acinq.bitcoin.{BinaryData, BtcMessage}
|
|
||||||
import fr.acinq.bitcoin.Protocol._
|
import fr.acinq.bitcoin.Protocol._
|
||||||
|
import fr.acinq.bitcoin.{BinaryData, BtcMessage}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by PM on 15/11/2016.
|
* Created by PM on 15/11/2016.
|
||||||
|
@ -92,3 +92,14 @@ case class FundingLocked(temporaryChannelId: Long,
|
||||||
channelId: Long,
|
channelId: Long,
|
||||||
nextKeyOffset: BinaryData,
|
nextKeyOffset: BinaryData,
|
||||||
nextRevocationHalfKey: BinaryData) extends ChannelMessage
|
nextRevocationHalfKey: BinaryData) extends ChannelMessage
|
||||||
|
|
||||||
|
case class UpdateFee(channelId: Long,
|
||||||
|
feeratePerKb: Long) extends ChannelMessage
|
||||||
|
|
||||||
|
case class Shutdown(channelId: Long,
|
||||||
|
len: Long,
|
||||||
|
scriptPubKey: BinaryData) extends ChannelMessage
|
||||||
|
|
||||||
|
case class CloseSignature(channelId: Long,
|
||||||
|
feeSatoshis: Long,
|
||||||
|
signature: BinaryData) extends ChannelMessage
|
|
@ -0,0 +1,29 @@
|
||||||
|
package fr.acinq.eclair.wire
|
||||||
|
|
||||||
|
import fr.acinq.eclair.wire.Codecs.lightningMessageCodec
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
import org.scalatest.FunSuite
|
||||||
|
import org.scalatest.junit.JUnitRunner
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by PM on 31/05/2016.
|
||||||
|
*/
|
||||||
|
@RunWith(classOf[JUnitRunner])
|
||||||
|
class CodecsSpec extends FunSuite {
|
||||||
|
|
||||||
|
test("encode/decode all messages") {
|
||||||
|
|
||||||
|
val open = OpenChannel(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, Array.fill[Byte](33)(1), Array.fill[Byte](33)(2), Array.fill[Byte](33)(3))
|
||||||
|
val accept = AcceptChannel(2, 3, 4, 5, 6, 7, 8, Array.fill[Byte](32)(0), 9, Array.fill[Byte](33)(1), Array.fill[Byte](33)(2), Array.fill[Byte](33)(3))
|
||||||
|
val funding_created = FundingCreated(2, Array.fill[Byte](32)(0), 3, Array.fill[Byte](64)(1))
|
||||||
|
val funding_signed = FundingSigned(2, Array.fill[Byte](64)(1))
|
||||||
|
val funding_locked = FundingLocked(1, 2, Array.fill[Byte](32)(1), Array.fill[Byte](33)(2))
|
||||||
|
|
||||||
|
val msgs: List[LightningMessage] = open :: accept :: funding_created :: funding_signed :: funding_locked :: Nil
|
||||||
|
|
||||||
|
msgs.foreach {
|
||||||
|
case msg => assert(msg === lightningMessageCodec.encode(msg).flatMap(lightningMessageCodec.decode(_)).toOption.get.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,51 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<parent>
|
|
||||||
<groupId>fr.acinq.eclair</groupId>
|
|
||||||
<artifactId>eclair_2.11</artifactId>
|
|
||||||
<version>0.2-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<artifactId>eclair-wire_2.11</artifactId>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
|
|
||||||
<name>${project.artifactId}</name>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>build-helper-maven-plugin</artifactId>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>generate-sources</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>add-source</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<sources>
|
|
||||||
<source>${project.build.directory}/generated-sources/scala</source>
|
|
||||||
</sources>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.scodec</groupId>
|
|
||||||
<artifactId>scodec-core_${scala.version.short}</artifactId>
|
|
||||||
<version>1.10.3</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>fr.acinq</groupId>
|
|
||||||
<artifactId>bitcoin-lib_${scala.version.short}</artifactId>
|
|
||||||
<version>${bitcoinlib.version}</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
</project>
|
|
|
@ -1,27 +0,0 @@
|
||||||
package fr.acinq.eclair.wire.bolt2
|
|
||||||
|
|
||||||
import fr.acinq.eclair.wire.bolt2.custom._
|
|
||||||
import fr.acinq.eclair.wire.bolt2.sdc.Codecs.lightningMessageCodec
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by PM on 15/11/2016.
|
|
||||||
*/
|
|
||||||
object Test extends App {
|
|
||||||
|
|
||||||
val open = OpenChannel(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, Array.fill[Byte](33)(1), Array.fill[Byte](33)(2), Array.fill[Byte](33)(3))
|
|
||||||
val accept = AcceptChannel(2, 3, 4, 5, 6, 7, 8, Array.fill[Byte](32)(0), 9, Array.fill[Byte](33)(1), Array.fill[Byte](33)(2), Array.fill[Byte](33)(3))
|
|
||||||
val funding_created = FundingCreated(2, Array.fill[Byte](32)(0), 3, Array.fill[Byte](64)(1))
|
|
||||||
val funding_signed = FundingSigned(2, Array.fill[Byte](64)(1))
|
|
||||||
val funding_locked = FundingLocked(1, 2, Array.fill[Byte](32)(1), Array.fill[Byte](33)(2))
|
|
||||||
|
|
||||||
val msgs: List[LightningMessage] = open :: accept :: funding_created :: funding_signed :: funding_locked :: Nil
|
|
||||||
|
|
||||||
msgs.foreach {
|
|
||||||
case msg =>
|
|
||||||
val bin = lightningMessageCodec.encode(msg)
|
|
||||||
println(bin)
|
|
||||||
println(bin.flatMap(lightningMessageCodec.decode(_)))
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
1
pom.xml
1
pom.xml
|
@ -8,7 +8,6 @@
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>eclair-wire</module>
|
|
||||||
<module>lightning-types</module>
|
<module>lightning-types</module>
|
||||||
<module>eclair-node</module>
|
<module>eclair-node</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
Loading…
Add table
Reference in a new issue