From fb8ae0cd5919136591999fee3bb6e537e5b186a6 Mon Sep 17 00:00:00 2001 From: pm47 Date: Fri, 9 Oct 2020 11:40:20 +0200 Subject: [PATCH] fixup! Update android branch (#1162) --- .../scala/fr/acinq/eclair/db/Databases.scala | 15 ++++++--------- .../eclair/db/sqlite/SqliteNetworkDb.scala | 11 +++++------ .../acinq/eclair/db/SqliteNetworkDbSpec.scala | 19 +++++++++---------- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/Databases.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/Databases.scala index 7eaf41f02..5261115dc 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/Databases.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/Databases.scala @@ -19,11 +19,8 @@ package fr.acinq.eclair.db import java.io.File import java.sql.{Connection, DriverManager} -import fr.acinq.bitcoin.Block -import fr.acinq.eclair.NodeParams import fr.acinq.eclair.db.sqlite._ import grizzled.slf4j.Logging -import org.sqlite.SQLiteException trait Databases { @@ -45,11 +42,11 @@ trait Databases { object Databases extends Logging { /** - * Given a parent folder it creates or loads all the databases from a JDBC connection - * - * @param dbdir - * @return - */ + * Given a parent folder it creates or loads all the databases from a JDBC connection + * + * @param dbdir + * @return + */ def sqliteJDBC(dbdir: File): Databases = { dbdir.mkdir() var sqliteEclair: Connection = null @@ -75,7 +72,7 @@ object Databases extends Logging { } def databaseByConnections(auditJdbc: Connection, networkJdbc: Connection, eclairJdbc: Connection) = new Databases { - override val network = new SqliteNetworkDb(networkJdbc, Block.RegtestGenesisBlock.hash) + override val network = new SqliteNetworkDb(networkJdbc) override val audit = new SqliteAuditDb(auditJdbc) override val channels = new SqliteChannelsDb(eclairJdbc) override val peers = new SqlitePeersDb(eclairJdbc) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteNetworkDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteNetworkDb.scala index 510703970..673c31407 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteNetworkDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteNetworkDb.scala @@ -20,20 +20,19 @@ import java.sql.Connection import fr.acinq.bitcoin.Crypto.PublicKey import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, Satoshi} -import fr.acinq.eclair.{Features, ShortChannelId} import fr.acinq.eclair.db.NetworkDb import fr.acinq.eclair.router.Router.PublicChannel -import fr.acinq.eclair.wire.LightningMessageCodecs.{channelAnnouncementCodec, channelUpdateCodec, nodeAnnouncementCodec} +import fr.acinq.eclair.wire.LightningMessageCodecs.nodeAnnouncementCodec import fr.acinq.eclair.wire.{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement} +import fr.acinq.eclair.{Features, ShortChannelId} import grizzled.slf4j.Logging import scodec.Codec -import scodec.bits.ByteVector import scala.collection.immutable.SortedMap -class SqliteNetworkDb(sqlite: Connection, chainHash: ByteVector32) extends NetworkDb with Logging { - import SqliteUtils._ +class SqliteNetworkDb(sqlite: Connection) extends NetworkDb with Logging { import SqliteUtils.ExtendedResultSet._ + import SqliteUtils._ val DB_NAME = "network" val CURRENT_VERSION = 2 @@ -60,7 +59,7 @@ class SqliteNetworkDb(sqlite: Connection, chainHash: ByteVector32) extends Netwo channelAnnouncementWitnessCodec).as[ChannelAnnouncement] val channelUpdateWitnessCodec = - ("chainHash" | provide(chainHash)) :: + ("chainHash" | provide(null.asInstanceOf[ByteVector32])) :: ("shortChannelId" | shortchannelid) :: ("timestamp" | uint32) :: (("messageFlags" | byte) >>:~ { messageFlags => diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteNetworkDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteNetworkDbSpec.scala index 189bdf943..b0af10966 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteNetworkDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteNetworkDbSpec.scala @@ -26,10 +26,9 @@ import fr.acinq.eclair.db.sqlite.SqliteNetworkDb import fr.acinq.eclair.db.sqlite.SqliteUtils._ import fr.acinq.eclair.router.Announcements import fr.acinq.eclair.router.Router.PublicChannel -import fr.acinq.eclair.wire.{ChannelAnnouncement, ChannelUpdate, Color, NodeAddress, Tor2} +import fr.acinq.eclair.wire._ import fr.acinq.eclair.{ActivatedFeature, CltvExpiryDelta, Features, LongToBtcAmount, ShortChannelId, TestConstants, randomBytes32, randomKey} import org.scalatest.funsuite.AnyFunSuite -import scodec.bits.HexStringSyntax import scala.collection.{SortedMap, mutable} @@ -39,8 +38,8 @@ class SqliteNetworkDbSpec extends AnyFunSuite { test("init sqlite 2 times in a row") { val sqlite = TestConstants.sqliteInMemory() - val db1 = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) - val db2 = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) + val db1 = new SqliteNetworkDb(sqlite) + val db2 = new SqliteNetworkDb(sqlite) } test("migration test 1->2") { @@ -82,7 +81,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite { test("add/remove/list nodes") { val sqlite = TestConstants.sqliteInMemory() - val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) + val db = new SqliteNetworkDb(sqlite) val node_1 = Announcements.makeNodeAnnouncement(randomKey, "node-alice", Color(100.toByte, 200.toByte, 300.toByte), NodeAddress.fromParts("192.168.1.42", 42000).get :: Nil, Features.empty) val node_2 = Announcements.makeNodeAnnouncement(randomKey, "node-bob", Color(100.toByte, 200.toByte, 300.toByte), NodeAddress.fromParts("192.168.1.42", 42000).get :: Nil, Features(Set(ActivatedFeature(VariableLengthOnion, Optional)))) @@ -107,7 +106,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite { test("correctly handle txids that start with 0") { val sqlite = TestConstants.sqliteInMemory() - val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) + val db = new SqliteNetworkDb(sqlite) val sig = ByteVector64.Zeroes val c = Announcements.makeChannelAnnouncement(Block.RegtestGenesisBlock.hash, ShortChannelId(42), randomKey.publicKey, randomKey.publicKey, randomKey.publicKey, randomKey.publicKey, sig, sig, sig, sig) val c_shrunk = shrink(c) @@ -118,10 +117,10 @@ class SqliteNetworkDbSpec extends AnyFunSuite { def shrink(c: ChannelAnnouncement) = c.copy(bitcoinKey1 = null, bitcoinKey2 = null, bitcoinSignature1 = null, bitcoinSignature2 = null, nodeSignature1 = null, nodeSignature2 = null, chainHash = null, features = null) - def shrink(c: ChannelUpdate) = c.copy(signature = null) + def shrink(c: ChannelUpdate) = c.copy(signature = null, chainHash = null) def simpleTest(sqlite: Connection) = { - val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) + val db = new SqliteNetworkDb(sqlite) def sig = Crypto.sign(randomBytes32, randomKey) @@ -229,7 +228,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite { test("remove many channels") { val sqlite = TestConstants.sqliteInMemory() - val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) + val db = new SqliteNetworkDb(sqlite) val sig = Crypto.sign(randomBytes32, randomKey) val priv = randomKey val pub = priv.publicKey @@ -250,7 +249,7 @@ class SqliteNetworkDbSpec extends AnyFunSuite { test("prune many channels") { val sqlite = TestConstants.sqliteInMemory() - val db = new SqliteNetworkDb(sqlite, Block.RegtestGenesisBlock.hash) + val db = new SqliteNetworkDb(sqlite) db.addToPruned(shortChannelIds) shortChannelIds.foreach { id => assert(db.isPruned((id))) }