From 9f6e0504dc88ea3c0288ff09ad8a73ca4a6b5da2 Mon Sep 17 00:00:00 2001 From: sstone Date: Wed, 27 Oct 2021 16:31:48 +0200 Subject: [PATCH] Use bitcoin-kmp through bitcoin-lib We use a version of bitcoin-lib that uses bitcon-kmp under the hood. Its API is the same as before, but its package is now fr.acinq.bitcoinscala. --- eclair-core/pom.xml | 8 ++++- .../main/scala/fr/acinq/eclair/Eclair.scala | 4 +-- .../src/main/scala/fr/acinq/eclair/Logs.scala | 4 +-- .../scala/fr/acinq/eclair/MilliSatoshi.scala | 2 +- .../scala/fr/acinq/eclair/NodeParams.scala | 4 +-- .../scala/fr/acinq/eclair/PluginParams.scala | 4 +-- .../main/scala/fr/acinq/eclair/Setup.scala | 2 +- .../acinq/eclair/balance/BalanceActor.scala | 2 +- .../eclair/balance/ChannelsListener.scala | 2 +- .../acinq/eclair/balance/CheckBalance.scala | 2 +- .../eclair/blockchain/BlockchainEvents.scala | 2 +- .../eclair/blockchain/OnChainWallet.scala | 4 +-- .../blockchain/bitcoind/ZmqWatcher.scala | 2 +- .../rpc/BasicBitcoinJsonRPCClient.scala | 10 ++++-- .../bitcoind/rpc/BitcoinCoreClient.scala | 26 +++++++++------ .../blockchain/bitcoind/zmq/ZMQActor.scala | 2 +- .../fee/BitcoinCoreFeeProvider.scala | 2 +- .../blockchain/fee/FallbackFeeProvider.scala | 2 +- .../eclair/blockchain/fee/FeeEstimator.scala | 4 +-- .../eclair/blockchain/fee/FeeProvider.scala | 2 +- .../blockchain/watchdogs/ExplorerApi.scala | 11 ++++--- .../blockchain/watchdogs/HeadersOverDns.scala | 8 +++-- .../fr/acinq/eclair/channel/Channel.scala | 5 +-- .../fr/acinq/eclair/channel/ChannelData.scala | 4 +-- .../acinq/eclair/channel/ChannelEvents.scala | 4 +-- .../eclair/channel/ChannelExceptions.scala | 4 +-- .../fr/acinq/eclair/channel/Commitments.scala | 4 +-- .../acinq/eclair/channel/DustExposure.scala | 2 +- .../fr/acinq/eclair/channel/Helpers.scala | 7 ++-- .../fr/acinq/eclair/channel/Register.scala | 4 +-- .../channel/publish/MempoolTxMonitor.scala | 2 +- .../publish/ReplaceableTxPublisher.scala | 2 +- .../eclair/channel/publish/TxPublisher.scala | 4 +-- .../channel/publish/TxTimeLocksMonitor.scala | 2 +- .../eclair/crypto/ChaCha20Poly1305.scala | 2 +- .../fr/acinq/eclair/crypto/Generators.scala | 4 +-- .../scala/fr/acinq/eclair/crypto/Mac.scala | 2 +- .../scala/fr/acinq/eclair/crypto/Noise.scala | 9 ++---- .../scala/fr/acinq/eclair/crypto/Random.scala | 2 +- .../fr/acinq/eclair/crypto/ShaChain.scala | 2 +- .../scala/fr/acinq/eclair/crypto/Sphinx.scala | 6 ++-- .../eclair/crypto/TransportHandler.scala | 4 +-- .../acinq/eclair/crypto/WeakEntropyPool.scala | 4 +-- .../crypto/keymanager/ChannelKeyManager.scala | 6 ++-- .../keymanager/LocalChannelKeyManager.scala | 8 +++-- .../keymanager/LocalNodeKeyManager.scala | 6 ++-- .../crypto/keymanager/NodeKeyManager.scala | 4 +-- .../scala/fr/acinq/eclair/db/AuditDb.scala | 4 +-- .../scala/fr/acinq/eclair/db/ChannelsDb.scala | 2 +- .../fr/acinq/eclair/db/DbEventHandler.scala | 4 +-- .../fr/acinq/eclair/db/DualDatabases.scala | 2 +- .../scala/fr/acinq/eclair/db/NetworkDb.scala | 4 +-- .../scala/fr/acinq/eclair/db/PaymentsDb.scala | 4 +-- .../scala/fr/acinq/eclair/db/PeersDb.scala | 2 +- .../acinq/eclair/db/PendingCommandsDb.scala | 2 +- .../fr/acinq/eclair/db/jdbc/JdbcUtils.scala | 2 +- .../fr/acinq/eclair/db/pg/PgAuditDb.scala | 4 +-- .../fr/acinq/eclair/db/pg/PgChannelsDb.scala | 2 +- .../fr/acinq/eclair/db/pg/PgNetworkDb.scala | 2 +- .../fr/acinq/eclair/db/pg/PgPaymentsDb.scala | 4 +-- .../fr/acinq/eclair/db/pg/PgPeersDb.scala | 4 +-- .../eclair/db/pg/PgPendingCommandsDb.scala | 2 +- .../eclair/db/sqlite/SqliteAuditDb.scala | 4 +-- .../eclair/db/sqlite/SqliteChannelsDb.scala | 2 +- .../eclair/db/sqlite/SqliteFeeratesDb.scala | 2 +- .../eclair/db/sqlite/SqliteNetworkDb.scala | 2 +- .../eclair/db/sqlite/SqlitePaymentsDb.scala | 4 +-- .../eclair/db/sqlite/SqlitePeersDb.scala | 4 +-- .../db/sqlite/SqlitePendingCommandsDb.scala | 2 +- .../scala/fr/acinq/eclair/io/Client.scala | 2 +- .../fr/acinq/eclair/io/ClientSpawner.scala | 2 +- .../fr/acinq/eclair/io/MessageRelay.scala | 4 +-- .../scala/fr/acinq/eclair/io/NodeURI.scala | 2 +- .../main/scala/fr/acinq/eclair/io/Peer.scala | 4 +-- .../fr/acinq/eclair/io/PeerConnection.scala | 4 +-- .../scala/fr/acinq/eclair/io/PeerEvents.scala | 2 +- .../fr/acinq/eclair/io/ReconnectionTask.scala | 2 +- .../fr/acinq/eclair/io/Switchboard.scala | 4 +-- .../acinq/eclair/json/JsonSerializers.scala | 10 ++++-- .../acinq/eclair/message/OnionMessages.scala | 2 +- .../fr/acinq/eclair/message/Postman.scala | 4 +-- .../main/scala/fr/acinq/eclair/package.scala | 20 +++++++++--- .../fr/acinq/eclair/payment/Monitoring.scala | 2 +- .../acinq/eclair/payment/PaymentEvents.scala | 4 +-- .../acinq/eclair/payment/PaymentPacket.scala | 4 +-- .../acinq/eclair/payment/PaymentRequest.scala | 32 ++++++++++++------- .../payment/receive/MultiPartHandler.scala | 2 +- .../payment/receive/MultiPartPaymentFSM.scala | 2 +- .../eclair/payment/relay/ChannelRelay.scala | 2 +- .../eclair/payment/relay/ChannelRelayer.scala | 2 +- .../eclair/payment/relay/NodeRelay.scala | 2 +- .../eclair/payment/relay/NodeRelayer.scala | 2 +- .../relay/PostRestartHtlcCleaner.scala | 4 +-- .../acinq/eclair/payment/relay/Relayer.scala | 2 +- .../acinq/eclair/payment/send/Autoprobe.scala | 2 +- .../send/MultiPartPaymentLifecycle.scala | 4 +-- .../payment/send/PaymentInitiator.scala | 4 +-- .../payment/send/PaymentLifecycle.scala | 4 +-- .../remote/EclairInternalsSerializer.scala | 2 +- .../acinq/eclair/router/Announcements.scala | 4 +-- .../scala/fr/acinq/eclair/router/Graph.scala | 4 +-- .../fr/acinq/eclair/router/Monitoring.scala | 2 +- .../acinq/eclair/router/NetworkEvents.scala | 4 +-- .../eclair/router/RouteCalculation.scala | 4 +-- .../scala/fr/acinq/eclair/router/Router.scala | 4 +-- .../scala/fr/acinq/eclair/router/Sync.scala | 4 +-- .../fr/acinq/eclair/router/Validation.scala | 4 +-- .../eclair/transactions/CommitmentSpec.scala | 2 +- .../acinq/eclair/transactions/Scripts.scala | 17 ++++++---- .../eclair/transactions/Transactions.scala | 8 +++-- .../channel/version0/ChannelCodecs0.scala | 12 ++++--- .../channel/version0/ChannelTypes0.scala | 4 +-- .../channel/version1/ChannelCodecs1.scala | 12 ++++--- .../channel/version2/ChannelCodecs2.scala | 12 ++++--- .../channel/version3/ChannelCodecs3.scala | 12 ++++--- .../eclair/wire/protocol/ChannelTlv.scala | 2 +- .../eclair/wire/protocol/CommonCodecs.scala | 4 +-- .../eclair/wire/protocol/FailureMessage.scala | 2 +- .../wire/protocol/LightningMessageTypes.scala | 4 +-- .../eclair/wire/protocol/MessageOnion.scala | 2 +- .../eclair/wire/protocol/OnionRouting.scala | 2 +- .../eclair/wire/protocol/PaymentOnion.scala | 5 +-- .../eclair/wire/protocol/RouteBlinding.scala | 2 +- .../wire/protocol/SetupAndControlTlv.scala | 2 +- .../fr/acinq/eclair/MilliSatoshiTest.java | 2 +- .../fr/acinq/eclair/EclairImplSpec.scala | 4 +-- .../fr/acinq/eclair/MilliSatoshiSpec.scala | 2 +- .../scala/fr/acinq/eclair/PackageSpec.scala | 8 +++-- .../scala/fr/acinq/eclair/StartupSpec.scala | 28 ++++++++-------- .../acinq/eclair/TestBitcoinCoreClient.scala | 2 +- .../scala/fr/acinq/eclair/TestConstants.scala | 2 +- .../eclair/balance/CheckBalanceSpec.scala | 2 +- .../blockchain/DummyOnChainWallet.scala | 7 ++-- .../acinq/eclair/blockchain/WatcherSpec.scala | 11 ++++--- .../bitcoind/BitcoinCoreClientSpec.scala | 18 +++++------ .../blockchain/bitcoind/BitcoindService.scala | 4 +-- .../blockchain/bitcoind/ZmqWatcherSpec.scala | 2 +- .../fee/BitcoinCoreFeeProviderSpec.scala | 2 +- .../blockchain/fee/DbFeeProviderSpec.scala | 2 +- .../fee/FallbackFeeProviderSpec.scala | 2 +- .../blockchain/fee/FeeEstimatorSpec.scala | 2 +- .../blockchain/fee/FeeProviderSpec.scala | 2 +- .../fee/SmoothFeeProviderSpec.scala | 2 +- .../watchdogs/BlockchainWatchdogSpec.scala | 2 +- .../watchdogs/ExplorerApiSpec.scala | 2 +- .../eclair/channel/ChannelDataSpec.scala | 2 +- .../eclair/channel/CommitmentsSpec.scala | 4 +-- .../eclair/channel/DustExposureSpec.scala | 2 +- .../fr/acinq/eclair/channel/FuzzySpec.scala | 4 +-- .../fr/acinq/eclair/channel/HelpersSpec.scala | 2 +- .../acinq/eclair/channel/RegisterSpec.scala | 4 +-- .../fr/acinq/eclair/channel/RestoreSpec.scala | 8 +++-- .../publish/FinalTxPublisherSpec.scala | 2 +- .../publish/MempoolTxMonitorSpec.scala | 4 +-- .../publish/ReplaceableTxPublisherSpec.scala | 2 +- .../channel/publish/TxPublisherSpec.scala | 2 +- .../publish/TxTimeLocksMonitorSpec.scala | 2 +- .../ChannelStateTestsHelperMethods.scala | 5 +-- .../a/WaitForAcceptChannelStateSpec.scala | 2 +- .../a/WaitForOpenChannelStateSpec.scala | 2 +- .../b/WaitForFundingCreatedStateSpec.scala | 2 +- .../b/WaitForFundingInternalStateSpec.scala | 2 +- .../b/WaitForFundingSignedStateSpec.scala | 2 +- .../c/WaitForFundingConfirmedStateSpec.scala | 2 +- .../c/WaitForFundingLockedStateSpec.scala | 2 +- .../channel/states/e/NormalStateSpec.scala | 5 +-- .../channel/states/e/OfflineStateSpec.scala | 5 +-- .../channel/states/f/ShutdownStateSpec.scala | 5 +-- .../states/g/NegotiatingStateSpec.scala | 2 +- .../channel/states/h/ClosingStateSpec.scala | 5 +-- .../acinq/eclair/crypto/GeneratorsSpec.scala | 4 +-- .../fr/acinq/eclair/crypto/MacSpec.scala | 2 +- .../fr/acinq/eclair/crypto/RandomSpec.scala | 2 +- .../fr/acinq/eclair/crypto/ShaChainSpec.scala | 2 +- .../fr/acinq/eclair/crypto/SphinxSpec.scala | 4 +-- .../LocalChannelKeyManagerSpec.scala | 6 ++-- .../keymanager/LocalNodeKeyManagerSpec.scala | 6 ++-- .../fr/acinq/eclair/db/AuditDbSpec.scala | 4 +-- .../fr/acinq/eclair/db/ChannelsDbSpec.scala | 2 +- .../fr/acinq/eclair/db/NetworkDbSpec.scala | 4 +-- .../fr/acinq/eclair/db/PaymentsDbSpec.scala | 4 +-- .../fr/acinq/eclair/db/PeersDbSpec.scala | 2 +- .../eclair/db/PendingCommandsDbSpec.scala | 2 +- .../eclair/db/SqliteFeeratesDbSpec.scala | 2 +- .../integration/ChannelIntegrationSpec.scala | 13 ++++---- .../eclair/integration/IntegrationSpec.scala | 2 +- .../integration/MessageIntegrationSpec.scala | 3 +- .../integration/PaymentIntegrationSpec.scala | 4 +-- .../PerformanceIntegrationSpec.scala | 2 +- .../interop/rustytests/RustyTestsSpec.scala | 2 +- .../rustytests/SynchronizationPipe.scala | 2 +- .../fr/acinq/eclair/io/MessageRelaySpec.scala | 2 +- .../acinq/eclair/io/PeerConnectionSpec.scala | 4 +-- .../scala/fr/acinq/eclair/io/PeerSpec.scala | 4 +-- .../eclair/io/ReconnectionTaskSpec.scala | 2 +- .../fr/acinq/eclair/io/SwitchboardSpec.scala | 4 +-- .../eclair/json/JsonSerializersSpec.scala | 8 ++--- .../eclair/message/OnionMessagesSpec.scala | 4 +-- .../eclair/payment/MultiPartHandlerSpec.scala | 2 +- .../payment/MultiPartPaymentFSMSpec.scala | 2 +- .../MultiPartPaymentLifecycleSpec.scala | 2 +- .../eclair/payment/PaymentInitiatorSpec.scala | 2 +- .../eclair/payment/PaymentLifecycleSpec.scala | 6 ++-- .../eclair/payment/PaymentPacketSpec.scala | 6 ++-- .../eclair/payment/PaymentRequestSpec.scala | 4 +-- .../payment/PostRestartHtlcCleanerSpec.scala | 4 +-- .../payment/relay/ChannelRelayerSpec.scala | 4 +-- .../payment/relay/NodeRelayerSpec.scala | 2 +- .../eclair/payment/relay/RelayerSpec.scala | 2 +- .../AnnouncementsBatchValidationSpec.scala | 4 +-- .../eclair/router/AnnouncementsSpec.scala | 4 +-- .../acinq/eclair/router/BaseRouterSpec.scala | 6 ++-- .../router/ChannelRangeQueriesSpec.scala | 2 +- .../fr/acinq/eclair/router/GraphSpec.scala | 4 +-- .../eclair/router/RouteCalculationSpec.scala | 4 +-- .../fr/acinq/eclair/router/RouterSpec.scala | 6 ++-- .../acinq/eclair/router/RoutingSyncSpec.scala | 4 +-- .../transactions/CommitmentSpecSpec.scala | 2 +- .../eclair/transactions/TestVectorsSpec.scala | 5 +-- .../transactions/TransactionsSpec.scala | 7 ++-- .../internal/channel/ChannelCodecsSpec.scala | 4 +-- .../channel/version0/ChannelCodecs0Spec.scala | 2 +- .../channel/version1/ChannelCodecs1Spec.scala | 6 ++-- .../channel/version2/ChannelCodecs2Spec.scala | 2 +- .../channel/version3/ChannelCodecs3Spec.scala | 2 +- .../wire/protocol/CommonCodecsSpec.scala | 4 +-- .../protocol/ExtendedQueriesCodecsSpec.scala | 2 +- .../protocol/FailureMessageCodecsSpec.scala | 2 +- .../protocol/LightningMessageCodecsSpec.scala | 4 +-- .../protocol/MessageOnionCodecsSpec.scala | 4 +-- .../wire/protocol/PaymentOnionSpec.scala | 4 +-- .../wire/protocol/RouteBlindingSpec.scala | 2 +- .../eclair/wire/protocol/TlvCodecsSpec.scala | 2 +- eclair-front/pom.xml | 2 +- .../scala/fr/acinq/eclair/FrontSetup.scala | 2 +- .../fr/acinq/eclair/router/FrontRouter.scala | 4 +-- .../acinq/eclair/router/FrontRouterSpec.scala | 6 ++-- eclair-node/pom.xml | 2 +- .../api/directives/ExtraDirectives.scala | 4 +-- .../acinq/eclair/api/handlers/Channel.scala | 2 +- .../acinq/eclair/api/handlers/Invoice.scala | 2 +- .../acinq/eclair/api/handlers/Message.scala | 2 +- .../acinq/eclair/api/handlers/OnChain.scala | 2 +- .../eclair/api/handlers/PathFinding.scala | 2 +- .../acinq/eclair/api/handlers/Payment.scala | 4 +-- .../api/serde/FormParamExtractors.scala | 4 +-- .../fr/acinq/eclair/api/ApiServiceSpec.scala | 4 +-- pom.xml | 4 +-- 248 files changed, 552 insertions(+), 455 deletions(-) diff --git a/eclair-core/pom.xml b/eclair-core/pom.xml index 80603e99c3..c160fab719 100644 --- a/eclair-core/pom.xml +++ b/eclair-core/pom.xml @@ -21,7 +21,7 @@ fr.acinq.eclair eclair_2.13 - 0.6.3-SNAPSHOT + 0.6.3-KMP-SNAPSHOT eclair-core_2.13 @@ -163,6 +163,12 @@ com.softwaremill.sttp okhttp-backend_${scala.version.short} ${sttp.version} + + + org.jetbrains.kotlin + kotlin-stdlib + + diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/Eclair.scala b/eclair-core/src/main/scala/fr/acinq/eclair/Eclair.scala index 247401bd57..44d066e49f 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/Eclair.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/Eclair.scala @@ -22,8 +22,8 @@ import akka.actor.typed.scaladsl.adapter.{ClassicActorRefOps, ClassicSchedulerOp import akka.pattern._ import akka.util.Timeout import com.softwaremill.quicklens.ModifyPimp -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, Satoshi} import fr.acinq.eclair.ApiTypes.ChannelNotFound import fr.acinq.eclair.balance.CheckBalance.GlobalBalance import fr.acinq.eclair.balance.{BalanceActor, ChannelsListener} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/Logs.scala b/eclair-core/src/main/scala/fr/acinq/eclair/Logs.scala index 32d4882fd2..abbeba7afd 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/Logs.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/Logs.scala @@ -21,8 +21,8 @@ import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.Behaviors import akka.event.DiagnosticLoggingAdapter import akka.io.Tcp -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.ValidateResult import fr.acinq.eclair.channel.{LocalChannelDown, LocalChannelUpdate} import fr.acinq.eclair.crypto.TransportHandler.HandshakeCompleted diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/MilliSatoshi.scala b/eclair-core/src/main/scala/fr/acinq/eclair/MilliSatoshi.scala index f2e78ce589..b37e9a1020 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/MilliSatoshi.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/MilliSatoshi.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair -import fr.acinq.bitcoin.{Btc, BtcAmount, MilliBtc, Satoshi, btc2satoshi, millibtc2satoshi} +import fr.acinq.bitcoinscala.{Btc, BtcAmount, MilliBtc, Satoshi, btc2satoshi, millibtc2satoshi} /** * Created by t-bast on 22/08/2019. diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/NodeParams.scala b/eclair-core/src/main/scala/fr/acinq/eclair/NodeParams.scala index 8a0d19c34f..4e0a8c2905 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/NodeParams.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/NodeParams.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair import com.typesafe.config.{Config, ConfigFactory, ConfigValueType} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto, Satoshi} import fr.acinq.eclair.Setup.Seeds import fr.acinq.eclair.blockchain.fee._ import fr.acinq.eclair.channel.Channel diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/PluginParams.scala b/eclair-core/src/main/scala/fr/acinq/eclair/PluginParams.scala index 785c54e27d..8be8df7a92 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/PluginParams.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/PluginParams.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair import akka.event.LoggingAdapter -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.channel.Origin import fr.acinq.eclair.payment.relay.PostRestartHtlcCleaner.IncomingHtlc diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala b/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala index f2c56b2e98..b541a2544e 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala @@ -23,7 +23,7 @@ import akka.actor.{ActorRef, ActorSystem, Props, SupervisorStrategy, typed} import akka.pattern.after import akka.util.Timeout import com.softwaremill.sttp.okhttp.OkHttpFutureBackend -import fr.acinq.bitcoin.{Block, ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.{Block, ByteVector32, Satoshi} import fr.acinq.eclair.Setup.Seeds import fr.acinq.eclair.balance.{BalanceActor, ChannelsListener} import fr.acinq.eclair.blockchain._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/balance/BalanceActor.scala b/eclair-core/src/main/scala/fr/acinq/eclair/balance/BalanceActor.scala index b46390d75a..0a4c08444d 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/balance/BalanceActor.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/balance/BalanceActor.scala @@ -3,7 +3,7 @@ package fr.acinq.eclair.balance import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.{ActorContext, Behaviors} import akka.actor.typed.{ActorRef, Behavior} -import fr.acinq.bitcoin.{ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{ByteVector32, SatoshiLong} import fr.acinq.eclair.NotificationsLogger import fr.acinq.eclair.NotificationsLogger.NotifyNodeOperator import fr.acinq.eclair.balance.BalanceActor._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/balance/ChannelsListener.scala b/eclair-core/src/main/scala/fr/acinq/eclair/balance/ChannelsListener.scala index 7e3a9dbd2a..10b5a5a83f 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/balance/ChannelsListener.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/balance/ChannelsListener.scala @@ -6,7 +6,7 @@ import akka.actor.typed.Behavior import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.adapter.ClassicActorRefOps import akka.actor.typed.scaladsl.{ActorContext, Behaviors} -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.balance.ChannelsListener._ import fr.acinq.eclair.channel.Helpers.Closing import fr.acinq.eclair.channel.{ChannelPersisted, ChannelRestored, HasCommitments} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/balance/CheckBalance.scala b/eclair-core/src/main/scala/fr/acinq/eclair/balance/CheckBalance.scala index dd76256f2c..23458c43dd 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/balance/CheckBalance.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/balance/CheckBalance.scala @@ -1,7 +1,7 @@ package fr.acinq.eclair.balance import com.softwaremill.quicklens._ -import fr.acinq.bitcoin.{Btc, ByteVector32, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.{Btc, ByteVector32, Satoshi, SatoshiLong} import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient import fr.acinq.eclair.channel.Helpers.Closing import fr.acinq.eclair.channel.Helpers.Closing.{CurrentRemoteClose, LocalClose, NextRemoteClose, RemoteClose} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/BlockchainEvents.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/BlockchainEvents.scala index e25da3b325..f779ae41bf 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/BlockchainEvents.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/BlockchainEvents.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain -import fr.acinq.bitcoin.{ByteVector32, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, Transaction} import fr.acinq.eclair.blockchain.fee.FeeratesPerKw /** diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/OnChainWallet.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/OnChainWallet.scala index 9a9df7532b..8f3d68c088 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/OnChainWallet.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/OnChainWallet.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.blockchain -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Satoshi, Transaction} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Satoshi, Transaction} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import scodec.bits.ByteVector diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcher.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcher.scala index 829984f391..c14cd72c8d 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcher.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcher.scala @@ -19,7 +19,7 @@ package fr.acinq.eclair.blockchain.bitcoind import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.{ActorContext, Behaviors, TimerScheduler} import akka.actor.typed.{ActorRef, Behavior, SupervisorStrategy} -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.blockchain.Monitoring.Metrics import fr.acinq.eclair.blockchain._ import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BasicBitcoinJsonRPCClient.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BasicBitcoinJsonRPCClient.scala index 8137845375..b67c941b17 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BasicBitcoinJsonRPCClient.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BasicBitcoinJsonRPCClient.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.blockchain.bitcoind.rpc import com.softwaremill.sttp._ import com.softwaremill.sttp.json4s._ -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.KamonExt import fr.acinq.eclair.blockchain.Monitoring.{Metrics, Tags} import org.json4s.JsonAST.{JString, JValue} @@ -40,7 +40,13 @@ class BasicBitcoinJsonRPCClient(rpcAuthMethod: BitcoinJsonRPCAuthMethod, host: S case x: ByteVector32 => JString(x.toHex) })) - implicit val formats = DefaultFormats.withBigDecimal + ByteVector32Serializer + object ByteVector32KmpSerializer extends CustomSerializer[fr.acinq.bitcoin.ByteVector32](_ => ( { + null + }, { + case x: fr.acinq.bitcoin.ByteVector32 => JString(x.toHex) + })) + + implicit val formats = DefaultFormats.withBigDecimal + ByteVector32Serializer + ByteVector32KmpSerializer private val scheme = if (ssl) "https" else "http" private val serviceUri = wallet match { case Some(name) => uri"$scheme://$host:$port/wallet/$name" diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala index 18f2686d5a..0e2c2782ce 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala @@ -16,8 +16,9 @@ package fr.acinq.eclair.blockchain.bitcoind.rpc -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoin.{Bech32, Block} +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.ShortChannelId.coordinates import fr.acinq.eclair.{TimestampSecond, TxCoordinates} import fr.acinq.eclair.blockchain.OnChainWallet @@ -32,6 +33,7 @@ import org.json4s.JsonAST._ import scodec.bits.ByteVector import scala.concurrent.{ExecutionContext, Future} +import scala.jdk.CollectionConverters.ListHasAsScala import scala.util.{Failure, Success, Try} /** @@ -130,18 +132,24 @@ class BitcoinCoreClient(val rpcClient: BitcoinJsonRPCClient) extends OnChainWall * @param outputIndex index of the transaction output that has been spent. * @return the transaction spending the given output. */ - def lookForSpendingTx(blockhash_opt: Option[ByteVector32], txid: ByteVector32, outputIndex: Int)(implicit ec: ExecutionContext): Future[Transaction] = + def lookForSpendingTx(blockhash_opt: Option[ByteVector32], txid: ByteVector32, outputIndex: Int)(implicit ec: ExecutionContext): Future[Transaction] = { + lookForSpendingTx(blockhash_opt.map(KotlinUtils.scala2kmp), KotlinUtils.scala2kmp(txid), outputIndex) + } + + def lookForSpendingTx(blockhash_opt: Option[fr.acinq.bitcoin.ByteVector32], txid: fr.acinq.bitcoin.ByteVector32, outputIndex: Int)(implicit ec: ExecutionContext): Future[Transaction] = for { blockhash <- blockhash_opt match { case Some(b) => Future.successful(b) - case None => rpcClient.invoke("getbestblockhash").collect { case JString(b) => ByteVector32.fromValidHex(b) } + case None => rpcClient.invoke("getbestblockhash").collect { case JString(b) => fr.acinq.bitcoin.ByteVector32.fromValidHex(b) } } // with a verbosity of 0, getblock returns the raw serialized block block <- rpcClient.invoke("getblock", blockhash, 0).collect { case JString(b) => Block.read(b) } - prevblockhash = block.header.hashPreviousBlock.reverse - res <- block.tx.find(tx => tx.txIn.exists(i => i.outPoint.txid == txid && i.outPoint.index == outputIndex)) match { - case None => lookForSpendingTx(Some(prevblockhash), txid, outputIndex) - case Some(tx) => Future.successful(tx) + prevblockhash = block.header.hashPreviousBlock.reversed() + res <- block.tx.asScala.find(tx => tx.txIn.asScala.exists(i => i.outPoint.txid == txid && i.outPoint.index == outputIndex)) match { + case None => { + lookForSpendingTx(Some(prevblockhash), txid, outputIndex) + } + case Some(tx) => Future.successful(KotlinUtils.kmp2scala(tx)) } } yield res @@ -329,7 +337,7 @@ class BitcoinCoreClient(val rpcClient: BitcoinJsonRPCClient) extends OnChainWall def getChangeAddress()(implicit ec: ExecutionContext): Future[ByteVector] = { rpcClient.invoke("getrawchangeaddress", "bech32").collect { case JString(changeAddress) => - val (_, _, pubkeyHash) = Bech32.decodeWitnessAddress(changeAddress) + val pubkeyHash = ByteVector.view(Bech32.decodeWitnessAddress(changeAddress).getThird) pubkeyHash } } diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/zmq/ZMQActor.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/zmq/ZMQActor.scala index cb34b2d74c..c79bc87c2f 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/zmq/ZMQActor.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/zmq/ZMQActor.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.blockchain.bitcoind.zmq import akka.Done import akka.actor.{Actor, ActorLogging} -import fr.acinq.bitcoin.{ByteVector32, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, Transaction} import fr.acinq.eclair.blockchain.{NewBlock, NewTransaction} import org.zeromq.ZMQ.Event import org.zeromq.{SocketType, ZContext, ZMQ, ZMsg} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProvider.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProvider.scala index 409ed49371..da218d7db4 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProvider.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProvider.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinJsonRPCClient import org.json4s.DefaultFormats import org.json4s.JsonAST._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProvider.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProvider.scala index 80b064bd6a..5616977ab8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProvider.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProvider.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import grizzled.slf4j.Logging import scala.concurrent.{ExecutionContext, Future} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeEstimator.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeEstimator.scala index 7dd4ec744b..724a292579 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeEstimator.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeEstimator.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.Satoshi +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.Satoshi import fr.acinq.eclair.blockchain.CurrentFeerates import fr.acinq.eclair.channel.{ChannelTypes, SupportedChannelType} import fr.acinq.eclair.transactions.Transactions diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeProvider.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeProvider.scala index 32e2b2cee5..bc62be51c8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeProvider.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/fee/FeeProvider.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin.{Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.{Satoshi, SatoshiLong} import scala.concurrent.Future diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApi.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApi.scala index 94e0281afd..92f5a10f39 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApi.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApi.scala @@ -23,7 +23,8 @@ import akka.pattern.after import com.softwaremill.sttp.json4s.asJson import com.softwaremill.sttp.okhttp.OkHttpFutureBackend import com.softwaremill.sttp.{StatusCodes, SttpBackend, SttpBackendOptions, Uri, UriContext, sttp} -import fr.acinq.bitcoin.{Block, BlockHeader, ByteVector32} +import fr.acinq.bitcoinscala.{ByteVector32} +import fr.acinq.bitcoin.{Block, BlockHeader} import fr.acinq.eclair.blockchain.watchdogs.BlockchainWatchdog.{BlockHeaderAt, LatestHeaders, SupportsTor} import fr.acinq.eclair.blockchain.watchdogs.Monitoring.{Metrics, Tags} import fr.acinq.eclair.randomBytes @@ -47,12 +48,14 @@ object ExplorerApi { implicit val formats: DefaultFormats = DefaultFormats implicit val serialization: Serialization = Serialization + implicit def scala2kmp(input: ByteVector32): fr.acinq.bitcoin.ByteVector32 = new fr.acinq.bitcoin.ByteVector32(input.toArray) + sealed trait Explorer { // @formatter:off /** Explorer friendly-name. */ def name: String /** Map from chainHash to explorer API URI. */ - def baseUris: Map[ByteVector32, Uri] + def baseUris: Map[fr.acinq.bitcoin.ByteVector32, Uri] /** Fetch latest headers from the explorer. */ def getLatestHeaders(baseUri: Uri, currentBlockCount: Long)(implicit context: ActorContext[Command]): Future[LatestHeaders] // @formatter:on @@ -164,7 +167,7 @@ object ExplorerApi { val JInt(nonce) = block \ "nonce" val previousBlockHash = (block \ "prev_block").extractOpt[String].map(ByteVector32.fromValidHex(_).reverse).getOrElse(ByteVector32.Zeroes) val merkleRoot = (block \ "mrkl_root").extractOpt[String].map(ByteVector32.fromValidHex(_).reverse).getOrElse(ByteVector32.Zeroes) - val header = BlockHeader(version.toLong, previousBlockHash, merkleRoot, OffsetDateTime.parse(time).toEpochSecond, bits.toLong, nonce.toLong) + val header = new BlockHeader(version.toLong, previousBlockHash, merkleRoot, OffsetDateTime.parse(time).toEpochSecond, bits.toLong, nonce.toLong) BlockHeaderAt(height.toLong, header) })) } yield header @@ -193,7 +196,7 @@ object ExplorerApi { val JInt(nonce) = block \ "nonce" val previousBlockHash = (block \ "previousblockhash").extractOpt[String].map(ByteVector32.fromValidHex(_).reverse).getOrElse(ByteVector32.Zeroes) val merkleRoot = (block \ "merkle_root").extractOpt[String].map(ByteVector32.fromValidHex(_).reverse).getOrElse(ByteVector32.Zeroes) - val header = BlockHeader(version.toLong, previousBlockHash, merkleRoot, time.toLong, bits.toLong, nonce.toLong) + val header = new BlockHeader(version.toLong, previousBlockHash, merkleRoot, time.toLong, bits.toLong, nonce.toLong) BlockHeaderAt(height.toLong, header) })) .map(headers => LatestHeaders(currentBlockCount, headers.filter(_.blockCount >= currentBlockCount).toSet, name)) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/HeadersOverDns.scala b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/HeadersOverDns.scala index ca75956de0..bc692a6931 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/HeadersOverDns.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/blockchain/watchdogs/HeadersOverDns.scala @@ -22,7 +22,9 @@ import akka.actor.typed.scaladsl.adapter.TypedActorRefOps import akka.actor.typed.{ActorRef, Behavior} import akka.io.dns.{AAAARecord, DnsProtocol} import akka.io.{Dns, IO} -import fr.acinq.bitcoin.{Block, BlockHeader, ByteVector32} +import fr.acinq.bitcoin +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoin.{Block, BlockHeader} import fr.acinq.eclair.blockchain.watchdogs.BlockchainWatchdog.BlockHeaderAt import fr.acinq.eclair.blockchain.watchdogs.Monitoring.{Metrics, Tags} import org.slf4j.Logger @@ -44,7 +46,9 @@ object HeadersOverDns { private case class WrappedDnsFailed(cause: Throwable) extends Command // @formatter:on - def apply(chainHash: ByteVector32, currentBlockCount: Long): Behavior[Command] = { + def apply(chainHash: ByteVector32, currentBlockCount: Long): Behavior[Command] = apply(new bitcoin.ByteVector32(chainHash.toArray), currentBlockCount) + + def apply(chainHash: fr.acinq.bitcoin.ByteVector32, currentBlockCount: Long): Behavior[Command] = { Behaviors.setup { context => val dnsAdapters = { context.messageAdapter[DnsProtocol.Resolved](WrappedDnsResolved) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Channel.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Channel.scala index 6bed4afef7..8081e727e8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Channel.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Channel.scala @@ -21,8 +21,9 @@ import akka.actor.typed.scaladsl.adapter.{ClassicActorContextOps, TypedActorRefO import akka.actor.{Actor, ActorContext, ActorRef, FSM, OneForOneStrategy, PossiblyHarmful, Props, Status, SupervisorStrategy, typed} import akka.event.Logging.MDC import akka.pattern.pipe -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, OutPoint, Satoshi, SatoshiLong, Script, ScriptFlags, Transaction} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, OutPoint, Satoshi, SatoshiLong, Script, Transaction} +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair.NotificationsLogger.NotifyNodeOperator import fr.acinq.eclair._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelData.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelData.scala index 6f8a56874d..047be943d4 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelData.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelData.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.channel import akka.actor.{ActorRef, PossiblyHarmful} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, DeterministicWallet, OutPoint, Satoshi, Transaction} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, DeterministicWallet, OutPoint, Satoshi, Transaction} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.payment.OutgoingPaymentPacket.Upstream import fr.acinq.eclair.router.Announcements diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelEvents.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelEvents.scala index cd7b107f03..93590b9166 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelEvents.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelEvents.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.channel import akka.actor.ActorRef -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi, Transaction} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi, Transaction} import fr.acinq.eclair.ShortChannelId import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel.Helpers.Closing.ClosingType diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelExceptions.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelExceptions.scala index c935a770d5..b00c7a36cf 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelExceptions.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/ChannelExceptions.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.channel -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi, Transaction} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi, Transaction} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.wire.protocol.{AnnouncementSignatures, Error, UpdateAddHtlc} import fr.acinq.eclair.{CltvExpiry, CltvExpiryDelta, MilliSatoshi, UInt64} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Commitments.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Commitments.scala index 6c128d5fc4..9fcc9971e4 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Commitments.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Commitments.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.channel import akka.event.LoggingAdapter -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey, sha256} -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey, sha256} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, Satoshi, SatoshiLong} import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.fee.{FeeratePerKw, OnChainFeeConf} import fr.acinq.eclair.channel.Helpers.Closing diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/DustExposure.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/DustExposure.scala index 84c68182b3..ede4a2440f 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/DustExposure.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/DustExposure.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.channel -import fr.acinq.bitcoin.{Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.{Satoshi, SatoshiLong} import fr.acinq.eclair.MilliSatoshi import fr.acinq.eclair.blockchain.fee.{FeeratePerByte, FeeratePerKw} import fr.acinq.eclair.transactions.Transactions.CommitmentFormat diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Helpers.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Helpers.scala index 486acf0e9c..600d310d1b 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Helpers.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Helpers.scala @@ -17,9 +17,10 @@ package fr.acinq.eclair.channel import akka.event.{DiagnosticLoggingAdapter, LoggingAdapter} -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey, sha256} -import fr.acinq.bitcoin.Script._ -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey, sha256} +import fr.acinq.bitcoinscala.Script._ +import fr.acinq.bitcoinscala._ +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.OnChainAddressGenerator import fr.acinq.eclair.blockchain.fee.{FeeEstimator, FeeTargets, FeeratePerKw} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Register.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Register.scala index c3b465c840..36cab871c4 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/Register.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/Register.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.channel import akka.actor.{Actor, ActorLogging, ActorRef, Terminated} -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.ShortChannelId import fr.acinq.eclair.channel.Register._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitor.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitor.scala index 7268fa2709..ae2ad64d18 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitor.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitor.scala @@ -19,7 +19,7 @@ package fr.acinq.eclair.channel.publish import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.{ActorContext, Behaviors} import akka.actor.typed.{ActorRef, Behavior} -import fr.acinq.bitcoin.{ByteVector32, OutPoint, Satoshi, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, OutPoint, Satoshi, Transaction} import fr.acinq.eclair.NodeParams import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisher.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisher.scala index 7db9def4b7..8f38e05511 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisher.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisher.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.channel.publish import akka.actor.typed.scaladsl.{ActorContext, Behaviors, TimerScheduler} import akka.actor.typed.{ActorRef, Behavior} -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, OutPoint, Satoshi, Script, Transaction, TxOut} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, OutPoint, Satoshi, Script, Transaction, TxOut} import fr.acinq.eclair.NodeParams import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxPublisher.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxPublisher.scala index 6ae8f23a60..0448460eee 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxPublisher.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxPublisher.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.channel.publish import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.{ActorContext, Behaviors, TimerScheduler} import akka.actor.typed.{ActorRef, Behavior} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, OutPoint, Satoshi, Transaction} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, OutPoint, Satoshi, Transaction} import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitor.scala b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitor.scala index 8b4bf22a1d..99042f79de 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitor.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitor.scala @@ -19,7 +19,7 @@ package fr.acinq.eclair.channel.publish import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.{ActorContext, Behaviors} import akka.actor.typed.{ActorRef, Behavior} -import fr.acinq.bitcoin.{ByteVector32, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, Transaction} import fr.acinq.eclair.NodeParams import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ChaCha20Poly1305.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ChaCha20Poly1305.scala index ecdca6e407..c4dabc6842 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ChaCha20Poly1305.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ChaCha20Poly1305.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.{ByteVector32, Protocol} +import fr.acinq.bitcoinscala.{ByteVector32, Protocol} import fr.acinq.eclair.crypto.ChaCha20Poly1305.{DecryptionError, EncryptionError, InvalidCounter} import grizzled.slf4j.Logging import org.bouncycastle.crypto.engines.ChaCha7539Engine diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Generators.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Generators.scala index ae14fbdabd..bbafef4556 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Generators.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Generators.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, Crypto} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto} import scodec.bits.ByteVector /** diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Mac.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Mac.scala index 011a2b9efc..d01be16df0 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Mac.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Mac.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import org.bouncycastle.crypto.digests.SHA256Digest import org.bouncycastle.crypto.macs.HMac import org.bouncycastle.crypto.params.KeyParameter diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Noise.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Noise.scala index 0539127122..74dd98d5f0 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Noise.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Noise.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{Crypto, Protocol} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Crypto, Protocol} import fr.acinq.eclair.randomBytes import grizzled.slf4j.Logging import org.bouncycastle.crypto.digests.SHA256Digest @@ -64,10 +64,7 @@ object Noise { * @return sha256(publicKey * keyPair.priv in compressed format) */ override def dh(keyPair: KeyPair, publicKey: ByteVector): ByteVector = { - val point = Crypto.curve.getCurve.decodePoint(publicKey.toArray) - val scalar = new BigInteger(1, keyPair.priv.take(32).toArray) - val point1 = point.multiply(scalar).normalize() - Crypto.sha256(ByteVector.view(point1.getEncoded(true))) + Crypto.ecdh(PrivateKey(keyPair.priv), PublicKey(publicKey)) } override def dhLen: Int = 32 diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Random.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Random.scala index 8159d5a10d..2c67b56ad8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Random.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Random.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.Protocol +import fr.acinq.bitcoinscala.Protocol import org.bouncycastle.crypto.digests.SHA256Digest import org.bouncycastle.crypto.engines.ChaCha7539Engine import org.bouncycastle.crypto.params.{KeyParameter, ParametersWithIV} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ShaChain.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ShaChain.scala index 4091c9c08e..6bdd7d8bf1 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ShaChain.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/ShaChain.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.wire.protocol.CommonCodecs import scodec.Codec diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Sphinx.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Sphinx.scala index d017da0647..1bfcdc686d 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Sphinx.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/Sphinx.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, Crypto} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto} import fr.acinq.eclair.crypto.Monitoring.{Metrics, Tags} import fr.acinq.eclair.wire.protocol._ import grizzled.slf4j.Logging @@ -68,7 +68,7 @@ object Sphinx extends Logging { * @return a tuple (ephemeral public keys, shared secrets). */ def computeEphemeralPublicKeysAndSharedSecrets(sessionKey: PrivateKey, publicKeys: Seq[PublicKey]): (Seq[PublicKey], Seq[ByteVector32]) = { - val ephemeralPublicKey0 = blind(PublicKey(Crypto.curve.getG), sessionKey.value) + val ephemeralPublicKey0 = blind(PublicKey(fr.acinq.bitcoin.PublicKey.Generator), sessionKey.value) val secret0 = computeSharedSecret(publicKeys.head, sessionKey) val blindingFactor0 = computeBlindingFactor(ephemeralPublicKey0, secret0) computeEphemeralPublicKeysAndSharedSecrets(sessionKey, publicKeys.tail, Seq(ephemeralPublicKey0), Seq(blindingFactor0), Seq(secret0)) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/TransportHandler.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/TransportHandler.scala index 3380308b65..2a26b65102 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/TransportHandler.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/TransportHandler.scala @@ -21,8 +21,8 @@ import akka.event.Logging.MDC import akka.event._ import akka.io.Tcp import akka.util.ByteString -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.Protocol +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.Protocol import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair.crypto.ChaCha20Poly1305.ChaCha20Poly1305Error import fr.acinq.eclair.crypto.Noise._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/WeakEntropyPool.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/WeakEntropyPool.scala index 69a686ea57..1defce1bdd 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/WeakEntropyPool.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/WeakEntropyPool.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.crypto import akka.actor.typed.Behavior import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.Behaviors -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto} import fr.acinq.eclair.TimestampMilli import fr.acinq.eclair.blockchain.NewBlock import fr.acinq.eclair.channel.ChannelSignatureReceived diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/ChannelKeyManager.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/ChannelKeyManager.scala index b1979d3a19..36eb8dfc36 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/ChannelKeyManager.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/ChannelKeyManager.scala @@ -16,9 +16,9 @@ package fr.acinq.eclair.crypto.keymanager -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.DeterministicWallet.ExtendedPublicKey -import fr.acinq.bitcoin.{ByteVector64, Crypto, DeterministicWallet, Protocol} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.DeterministicWallet.ExtendedPublicKey +import fr.acinq.bitcoinscala.{ByteVector64, Crypto, DeterministicWallet, Protocol} import fr.acinq.eclair.channel.{ChannelConfig, LocalParams} import fr.acinq.eclair.transactions.Transactions.{CommitmentFormat, TransactionWithInputInfo, TxOwner} import scodec.bits.ByteVector diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManager.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManager.scala index 9891884b65..d12d056efb 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManager.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManager.scala @@ -17,9 +17,9 @@ package fr.acinq.eclair.crypto.keymanager import com.google.common.cache.{CacheBuilder, CacheLoader, LoadingCache} -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.DeterministicWallet.{derivePrivateKey, _} -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, Crypto, DeterministicWallet} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.DeterministicWallet.{derivePrivateKey, _} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Crypto, DeterministicWallet} import fr.acinq.eclair.crypto.Generators import fr.acinq.eclair.crypto.Monitoring.{Metrics, Tags} import fr.acinq.eclair.router.Announcements @@ -58,6 +58,8 @@ class LocalChannelKeyManager(seed: ByteVector, chainHash: ByteVector32) extends override def load(keyPath: KeyPath): ExtendedPublicKey = publicKey(privateKeys.get(keyPath)) }) + private implicit def longs2keypath(input: List[Long]): KeyPath = KeyPath(input) + private def internalKeyPath(channelKeyPath: DeterministicWallet.KeyPath, index: Long): List[Long] = (LocalChannelKeyManager.keyBasePath(chainHash) ++ channelKeyPath.path) :+ index private def fundingPrivateKey(channelKeyPath: DeterministicWallet.KeyPath): ExtendedPrivateKey = privateKeys.get(internalKeyPath(channelKeyPath, hardened(0))) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManager.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManager.scala index 41750578b5..d15848e9cc 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManager.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManager.scala @@ -16,9 +16,9 @@ package fr.acinq.eclair.crypto.keymanager -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.DeterministicWallet.ExtendedPrivateKey -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, Crypto, DeterministicWallet} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.DeterministicWallet.ExtendedPrivateKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Crypto, DeterministicWallet} import fr.acinq.eclair.router.Announcements import grizzled.slf4j.Logging import scodec.bits.ByteVector diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/NodeKeyManager.scala b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/NodeKeyManager.scala index 3b478aa09d..ea4ff11baf 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/NodeKeyManager.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/crypto/keymanager/NodeKeyManager.scala @@ -1,7 +1,7 @@ package fr.acinq.eclair.crypto.keymanager -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, DeterministicWallet} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, DeterministicWallet} import scodec.bits.ByteVector trait NodeKeyManager { diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/AuditDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/AuditDb.scala index 6645430e6c..375b5a39b1 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/AuditDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/AuditDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.{TimestampMilli, TimestampSecond} import fr.acinq.eclair.channel._ import fr.acinq.eclair.db.AuditDb.{NetworkFee, Stats} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/ChannelsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/ChannelsDb.scala index b676b71a24..f68973e321 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/ChannelsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/ChannelsDb.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.CltvExpiry import fr.acinq.eclair.channel.HasCommitments import fr.acinq.eclair.db.DbEventHandler.ChannelEvent diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/DbEventHandler.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/DbEventHandler.scala index 13a9c1c8f2..8479d305ef 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/DbEventHandler.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/DbEventHandler.scala @@ -18,8 +18,8 @@ package fr.acinq.eclair.db import akka.actor.{Actor, DiagnosticActorLogging, Props} import akka.event.Logging.MDC -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.channel.Helpers.Closing._ import fr.acinq.eclair.channel.Monitoring.{Metrics => ChannelMetrics, Tags => ChannelTags} import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/DualDatabases.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/DualDatabases.scala index 9ca1a2ed56..c387f698f1 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/DualDatabases.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/DualDatabases.scala @@ -1,7 +1,7 @@ package fr.acinq.eclair.db import com.google.common.util.concurrent.ThreadFactoryBuilder -import fr.acinq.bitcoin.{ByteVector32, Crypto, Satoshi} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto, Satoshi} import fr.acinq.eclair.channel._ import fr.acinq.eclair.db.Databases.{FileBackup, PostgresDatabases, SqliteDatabases} import fr.acinq.eclair.db.DbEventHandler.ChannelEvent diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/NetworkDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/NetworkDb.scala index b50815a024..c166db77ae 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/NetworkDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/NetworkDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.ShortChannelId import fr.acinq.eclair.router.Router.PublicChannel import fr.acinq.eclair.wire.protocol.{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/PaymentsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/PaymentsDb.scala index fca1b86a66..c1e5d8a555 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/PaymentsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/PaymentsDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.payment._ import fr.acinq.eclair.router.Router.{ChannelHop, Hop, NodeHop} import fr.acinq.eclair.{MilliSatoshi, ShortChannelId, TimestampMilli} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/PeersDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/PeersDb.scala index ab979881fa..0ee7e7af88 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/PeersDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/PeersDb.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.payment.relay.Relayer.RelayFees import fr.acinq.eclair.wire.protocol.NodeAddress diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/PendingCommandsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/PendingCommandsDb.scala index 47bf04f163..02d499314c 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/PendingCommandsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/PendingCommandsDb.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.db import akka.actor.ActorRef import akka.event.LoggingAdapter -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.channel._ import fr.acinq.eclair.wire.protocol.{UpdateFailHtlc, UpdateFailMalformedHtlc, UpdateFulfillHtlc, UpdateMessage} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/jdbc/JdbcUtils.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/jdbc/JdbcUtils.scala index dc08381680..d20d4c019d 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/jdbc/JdbcUtils.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/jdbc/JdbcUtils.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db.jdbc -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.MilliSatoshi import grizzled.slf4j.Logger import org.sqlite.SQLiteConnection diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgAuditDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgAuditDb.scala index 0230714b1d..eab1315631 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgAuditDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgAuditDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db.pg -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi, SatoshiLong} import fr.acinq.eclair.channel._ import fr.acinq.eclair.db.AuditDb.{NetworkFee, Stats} import fr.acinq.eclair.db.DbEventHandler.ChannelEvent diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgChannelsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgChannelsDb.scala index 1d6499a9c9..001aedcf72 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgChannelsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgChannelsDb.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.db.pg import com.zaxxer.hikari.util.IsolationLevel -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.CltvExpiry import fr.acinq.eclair.channel.HasCommitments import fr.acinq.eclair.db.ChannelsDb diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgNetworkDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgNetworkDb.scala index 426f6bb1c8..2706c65ed8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgNetworkDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgNetworkDb.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db.pg -import fr.acinq.bitcoin.{ByteVector32, Crypto, Satoshi} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto, Satoshi} import fr.acinq.eclair.ShortChannelId import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPaymentsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPaymentsDb.scala index b50d3656a4..2075e868c8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPaymentsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPaymentsDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db.pg -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends import fr.acinq.eclair.db.PaymentsDb.{decodeFailures, decodeRoute, encodeFailures, encodeRoute} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPeersDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPeersDb.scala index 9fddafb70e..ead7805906 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPeersDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPeersDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db.pg -import fr.acinq.bitcoin.Crypto -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.MilliSatoshi import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPendingCommandsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPendingCommandsDb.scala index 80b9179c42..24c7612faa 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPendingCommandsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/pg/PgPendingCommandsDb.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.db.pg -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.channel.HtlcSettlementCommand import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteAuditDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteAuditDb.scala index 74c01a145e..7bb02bfe97 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteAuditDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteAuditDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db.sqlite -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi, SatoshiLong} import fr.acinq.eclair.channel._ import fr.acinq.eclair.db.AuditDb.{NetworkFee, Stats} import fr.acinq.eclair.db.DbEventHandler.ChannelEvent diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteChannelsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteChannelsDb.scala index b7dfcad1ea..cd946215b7 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteChannelsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteChannelsDb.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db.sqlite -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.{CltvExpiry, TimestampMilli} import fr.acinq.eclair.channel.HasCommitments import fr.acinq.eclair.db.ChannelsDb diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteFeeratesDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteFeeratesDb.scala index 3717fa5bea..4ae41007a8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteFeeratesDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqliteFeeratesDb.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db.sqlite -import fr.acinq.bitcoin.Satoshi +import fr.acinq.bitcoinscala.Satoshi import fr.acinq.eclair.TimestampMilli import fr.acinq.eclair.blockchain.fee.{FeeratePerKB, FeeratesPerKB} import fr.acinq.eclair.db.FeeratesDb 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 a376a4295e..819a50538b 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 @@ -16,7 +16,7 @@ package fr.acinq.eclair.db.sqlite -import fr.acinq.bitcoin.{ByteVector32, Crypto, Satoshi} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto, Satoshi} import fr.acinq.eclair.ShortChannelId import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePaymentsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePaymentsDb.scala index 2dce58d6e1..dbeb3961d6 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePaymentsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePaymentsDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db.sqlite -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends import fr.acinq.eclair.db.PaymentsDb.{decodeFailures, decodeRoute, encodeFailures, encodeRoute} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePeersDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePeersDb.scala index 7b4e0f2f2c..0eea65c0ee 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePeersDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePeersDb.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db.sqlite -import fr.acinq.bitcoin.Crypto -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.MilliSatoshi import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePendingCommandsDb.scala b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePendingCommandsDb.scala index 82ae1111fa..09772a5ea2 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePendingCommandsDb.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/db/sqlite/SqlitePendingCommandsDb.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db.sqlite -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.channel.HtlcSettlementCommand import fr.acinq.eclair.db.Monitoring.Metrics.withMetrics import fr.acinq.eclair.db.Monitoring.Tags.DbBackends diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/Client.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/Client.scala index 6fdc36afdb..ce0ac7013b 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/Client.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/Client.scala @@ -22,7 +22,7 @@ import akka.actor.{Props, _} import akka.event.Logging.MDC import akka.io.Tcp.SO.KeepAlive import akka.io.{IO, Tcp} -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.Logs import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair.crypto.Noise.KeyPair diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/ClientSpawner.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/ClientSpawner.scala index efcb6601d5..0cf4018ee1 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/ClientSpawner.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/ClientSpawner.scala @@ -22,7 +22,7 @@ import akka.actor.{Actor, ActorLogging, ActorRef, DeadLetter, Props} import akka.cluster.Cluster import akka.cluster.pubsub.DistributedPubSub import akka.cluster.pubsub.DistributedPubSubMediator.Put -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.crypto.Noise.KeyPair import fr.acinq.eclair.remote.EclairInternalsSerializer.RemoteTypes import fr.acinq.eclair.tor.Socks5ProxyParams diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/MessageRelay.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/MessageRelay.scala index f263fbe0b6..906bb0b7b8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/MessageRelay.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/MessageRelay.scala @@ -20,8 +20,8 @@ import akka.actor.typed.Behavior import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.scaladsl.adapter.TypedActorRefOps import akka.actor.{ActorRef, typed} -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.io.Peer.{PeerInfo, PeerInfoResponse} import fr.acinq.eclair.io.Switchboard.GetPeerInfo import fr.acinq.eclair.wire.protocol.OnionMessage diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/NodeURI.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/NodeURI.scala index 6e7736fd28..422b1a66db 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/NodeURI.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/NodeURI.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.io import com.google.common.net.HostAndPort -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import scodec.bits.ByteVector import scala.util.{Failure, Success, Try} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/Peer.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/Peer.scala index 2782616f2b..ea7b413d96 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/Peer.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/Peer.scala @@ -22,8 +22,8 @@ import akka.event.Logging.MDC import akka.event.{BusLogging, DiagnosticLoggingAdapter} import akka.util.Timeout import com.google.common.net.HostAndPort -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi, SatoshiLong, Script} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi, SatoshiLong, Script} import fr.acinq.eclair.Features.Wumbo import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair.NotificationsLogger.NotifyNodeOperator diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerConnection.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerConnection.scala index a5c8a3ae30..5c87c80499 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerConnection.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerConnection.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.io import akka.actor.{ActorRef, FSM, OneForOneStrategy, PoisonPill, Props, SupervisorStrategy, Terminated} import akka.event.Logging.MDC import com.google.common.util.concurrent.RateLimiter -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair.crypto.Noise.KeyPair import fr.acinq.eclair.crypto.TransportHandler diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerEvents.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerEvents.scala index de213c5c55..c15a647bc9 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerEvents.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/PeerEvents.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.io import akka.actor.ActorRef -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.wire.protocol import fr.acinq.eclair.wire.protocol.UnknownMessage diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/ReconnectionTask.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/ReconnectionTask.scala index cab7a57f0c..2c7421a8e8 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/ReconnectionTask.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/ReconnectionTask.scala @@ -22,7 +22,7 @@ import akka.cluster.pubsub.DistributedPubSub import akka.cluster.pubsub.DistributedPubSubMediator.Send import akka.event.Logging.MDC import com.google.common.net.HostAndPort -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair.db.{NetworkDb, PeersDb} import fr.acinq.eclair.io.Monitoring.Metrics diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/io/Switchboard.scala b/eclair-core/src/main/scala/fr/acinq/eclair/io/Switchboard.scala index 0c13b46229..f4bcfeec53 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/io/Switchboard.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/io/Switchboard.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.io import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.scaladsl.adapter.{ClassicActorContextOps, ClassicActorRefOps} import akka.actor.{Actor, ActorContext, ActorLogging, ActorRef, OneForOneStrategy, Props, Status, SupervisorStrategy, typed} -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.NodeParams import fr.acinq.eclair.blockchain.OnChainAddressGenerator import fr.acinq.eclair.channel.Helpers.Closing diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/json/JsonSerializers.scala b/eclair-core/src/main/scala/fr/acinq/eclair/json/JsonSerializers.scala index 46f98f1b76..cc504b5a58 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/json/JsonSerializers.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/json/JsonSerializers.scala @@ -17,8 +17,9 @@ package fr.acinq.eclair.json import com.google.common.net.HostAndPort -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Btc, ByteVector32, ByteVector64, OutPoint, Satoshi, Transaction} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.DeterministicWallet.KeyPath +import fr.acinq.bitcoinscala.{Btc, ByteVector32, ByteVector64, OutPoint, Satoshi, Transaction} import fr.acinq.eclair.balance.CheckBalance.{CorrectedOnChainBalance, GlobalBalance, OffChainBalance} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel._ @@ -206,6 +207,10 @@ object TransactionSerializer extends MinimalSerializer({ )) }) +object KeyPathSerializer extends MinimalSerializer({ + case x: KeyPath => JObject(JField("path", JArray(x.path.map(x => JLong(x)).toList))) +}) + object TransactionWithInputInfoSerializer extends MinimalSerializer({ case x: HtlcSuccessTx => JObject(List( JField("txid", JString(x.tx.txid.toHex)), @@ -501,6 +506,7 @@ object JsonSerializers { PrivateKeySerializer + TransactionSerializer + TransactionWithInputInfoSerializer + + KeyPathSerializer + InetSocketAddressSerializer + OutPointSerializer + OutPointKeySerializer + diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/message/OnionMessages.scala b/eclair-core/src/main/scala/fr/acinq/eclair/message/OnionMessages.scala index 0570d42c92..dbf280b838 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/message/OnionMessages.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/message/OnionMessages.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.message -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.io.MessageRelay.RelayPolicy import fr.acinq.eclair.wire.protocol.MessageOnion.{BlindedFinalPayload, BlindedRelayPayload, FinalPayload, RelayPayload} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/message/Postman.scala b/eclair-core/src/main/scala/fr/acinq/eclair/message/Postman.scala index 820d486eea..e013adab51 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/message/Postman.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/message/Postman.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.message import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.{ActorRef, Behavior} -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.io.{MessageRelay, Switchboard} import fr.acinq.eclair.message.OnionMessages.ReceiveMessage import fr.acinq.eclair.randomBytes32 diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/package.scala b/eclair-core/src/main/scala/fr/acinq/eclair/package.scala index 0ff85d1276..ad9a7a80a7 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/package.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/package.scala @@ -16,8 +16,9 @@ package fr.acinq -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin._ +import fr.acinq.bitcoin.{Base58, Base58Check, Bech32} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.crypto.StrongRandom import scodec.Attempt import scodec.bits.{BitVector, ByteVector} @@ -76,14 +77,25 @@ package object eclair { * @return the public key script that matches the input address. */ def addressToPublicKeyScript(address: String, chainHash: ByteVector32): Seq[ScriptElt] = { - Try(Base58Check.decode(address)) match { + + def decodeBase58(input: String): (Byte, ByteVector) = { + val decoded = Base58Check.decode(input) + (decoded.getFirst.byteValue(), ByteVector.view(decoded.getSecond)) + } + + def decodeBech32(input: String): (String, Byte, ByteVector) = { + val decoded = Bech32.decodeWitnessAddress(input) + (decoded.getFirst, decoded.getSecond.byteValue(), ByteVector.view(decoded.getThird)) + } + + Try(decodeBase58(address)) match { case Success((Base58.Prefix.PubkeyAddressTestnet, pubKeyHash)) if chainHash == Block.TestnetGenesisBlock.hash || chainHash == Block.RegtestGenesisBlock.hash => Script.pay2pkh(pubKeyHash) case Success((Base58.Prefix.PubkeyAddress, pubKeyHash)) if chainHash == Block.LivenetGenesisBlock.hash => Script.pay2pkh(pubKeyHash) case Success((Base58.Prefix.ScriptAddressTestnet, scriptHash)) if chainHash == Block.TestnetGenesisBlock.hash || chainHash == Block.RegtestGenesisBlock.hash => OP_HASH160 :: OP_PUSHDATA(scriptHash) :: OP_EQUAL :: Nil case Success((Base58.Prefix.ScriptAddress, scriptHash)) if chainHash == Block.LivenetGenesisBlock.hash => OP_HASH160 :: OP_PUSHDATA(scriptHash) :: OP_EQUAL :: Nil case Success(_) => throw new IllegalArgumentException("base58 address does not match our blockchain") case Failure(base58error) => - Try(Bech32.decodeWitnessAddress(address)) match { + Try(decodeBech32(address)) match { case Success((_, version, _)) if version != 0.toByte => throw new IllegalArgumentException(s"invalid version $version in bech32 address") case Success((_, _, bin)) if bin.length != 20 && bin.length != 32 => throw new IllegalArgumentException("hash length in bech32 address must be either 20 or 32 bytes") case Success(("bc", _, bin)) if chainHash == Block.LivenetGenesisBlock.hash => OP_0 :: OP_PUSHDATA(bin) :: Nil diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/Monitoring.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/Monitoring.scala index 3772216e5e..d186039f2a 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/Monitoring.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/Monitoring.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.payment -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.MilliSatoshi import fr.acinq.eclair.channel.CMD_FAIL_HTLC import kamon.Kamon diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentEvents.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentEvents.scala index 933b4bfbf7..616844b276 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentEvents.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentEvents.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.payment -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.payment.PaymentRequest.ExtraHop import fr.acinq.eclair.payment.send.PaymentInitiator.SendPaymentConfig diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentPacket.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentPacket.scala index 5311473807..637b45de4e 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentPacket.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentPacket.scala @@ -18,8 +18,8 @@ package fr.acinq.eclair.payment import akka.actor.ActorRef import akka.event.LoggingAdapter -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.channel.{CMD_ADD_HTLC, CMD_FAIL_HTLC, CannotExtractSharedSecret, Origin} import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.router.Router.{ChannelHop, Hop, NodeHop} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentRequest.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentRequest.scala index 6557e89433..d81709f62d 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentRequest.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/PaymentRequest.scala @@ -16,8 +16,9 @@ package fr.acinq.eclair.payment -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Base58, Base58Check, Bech32, Block, ByteVector32, ByteVector64, Crypto} +import fr.acinq.bitcoin.{Base58, Base58Check, Bech32} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Crypto} import fr.acinq.eclair.payment.PaymentRequest._ import fr.acinq.eclair.{CltvExpiryDelta, Feature, FeatureSupport, Features, InvoiceFeature, MilliSatoshi, MilliSatoshiLong, NodeParams, ShortChannelId, TimestampSecond, randomBytes32} import scodec.bits.{BitVector, ByteOrdering, ByteVector} @@ -259,7 +260,10 @@ object PaymentRequest { } def fromBase58Address(address: String): FallbackAddress = { - val (prefix, hash) = Base58Check.decode(address) + val (prefix, hash) = { + val decoded = Base58Check.decode(address) + (decoded.getFirst.byteValue(), ByteVector.view(decoded.getSecond)) + } prefix match { case Base58.Prefix.PubkeyAddress => FallbackAddress(17.toByte, hash) case Base58.Prefix.PubkeyAddressTestnet => FallbackAddress(17.toByte, hash) @@ -269,20 +273,23 @@ object PaymentRequest { } def fromBech32Address(address: String): FallbackAddress = { - val (_, version, hash) = Bech32.decodeWitnessAddress(address) + val (_, version, hash) = { + val decoded = Bech32.decodeWitnessAddress(address) + (decoded.getFirst, decoded.getSecond, ByteVector.view(decoded.getThird)) + } FallbackAddress(version, hash) } def toAddress(f: FallbackAddress, prefix: String): String = { import f.data f.version match { - case 17 if prefix == "lnbc" => Base58Check.encode(Base58.Prefix.PubkeyAddress, data) - case 18 if prefix == "lnbc" => Base58Check.encode(Base58.Prefix.ScriptAddress, data) - case 17 if prefix == "lntb" || prefix == "lnbcrt" => Base58Check.encode(Base58.Prefix.PubkeyAddressTestnet, data) - case 18 if prefix == "lntb" || prefix == "lnbcrt" => Base58Check.encode(Base58.Prefix.ScriptAddressTestnet, data) - case version if prefix == "lnbc" => Bech32.encodeWitnessAddress("bc", version, data) - case version if prefix == "lntb" => Bech32.encodeWitnessAddress("tb", version, data) - case version if prefix == "lnbcrt" => Bech32.encodeWitnessAddress("bcrt", version, data) + case 17 if prefix == "lnbc" => Base58Check.encode(Base58.Prefix.PubkeyAddress, data.toArray) + case 18 if prefix == "lnbc" => Base58Check.encode(Base58.Prefix.ScriptAddress, data.toArray) + case 17 if prefix == "lntb" || prefix == "lnbcrt" => Base58Check.encode(Base58.Prefix.PubkeyAddressTestnet, data.toArray) + case 18 if prefix == "lntb" || prefix == "lnbcrt" => Base58Check.encode(Base58.Prefix.ScriptAddressTestnet, data.toArray) + case version if prefix == "lnbc" => Bech32.encodeWitnessAddress("bc", version, data.toArray) + case version if prefix == "lntb" => Bech32.encodeWitnessAddress("tb", version, data.toArray) + case version if prefix == "lnbcrt" => Bech32.encodeWitnessAddress("bcrt", version, data.toArray) } } } @@ -594,6 +601,7 @@ object PaymentRequest { val hrp = s"${pr.prefix}$hramount" val data = Codecs.bolt11DataCodec.encode(Bolt11Data(pr.timestamp, pr.tags, pr.signature)).require val int5s = eight2fiveCodec.decode(data).require.value - Bech32.encode(hrp, int5s.toArray) + fr.acinq.bitcoin.Bech32.encode(hrp, int5s.toArray, fr.acinq.bitcoin.Bech32.Encoding.Bech32m) + Bech32.encode(hrp, int5s.toArray, Bech32.Encoding.Bech32) } } diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartHandler.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartHandler.scala index 896b0fd5df..d62134e461 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartHandler.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartHandler.scala @@ -22,7 +22,7 @@ import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.scaladsl.adapter.ClassicActorContextOps import akka.actor.{ActorContext, ActorRef, PoisonPill, Status} import akka.event.{DiagnosticLoggingAdapter, LoggingAdapter} -import fr.acinq.bitcoin.{ByteVector32, Crypto} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto} import fr.acinq.eclair.channel.{CMD_FAIL_HTLC, CMD_FULFILL_HTLC, RES_SUCCESS} import fr.acinq.eclair.db._ import fr.acinq.eclair.payment.Monitoring.{Metrics, Tags} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartPaymentFSM.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartPaymentFSM.scala index e6babcabfa..b9abed0e8e 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartPaymentFSM.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/receive/MultiPartPaymentFSM.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.payment.receive import akka.actor.{ActorRef, Props} import akka.event.Logging.MDC -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.payment.Monitoring.{Metrics, Tags} import fr.acinq.eclair.wire.protocol import fr.acinq.eclair.wire.protocol.{FailureMessage, IncorrectOrUnknownPaymentDetails, UpdateAddHtlc} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelay.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelay.scala index bcfc83217e..24de824cef 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelay.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelay.scala @@ -23,7 +23,7 @@ import akka.actor.typed.Behavior import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.adapter.TypedActorRefOps import akka.actor.typed.scaladsl.{ActorContext, Behaviors} -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.channel._ import fr.acinq.eclair.db.PendingCommandsDb import fr.acinq.eclair.payment.Monitoring.{Metrics, Tags} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelayer.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelayer.scala index 2ba915549b..d33a3b618e 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelayer.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/ChannelRelayer.scala @@ -22,7 +22,7 @@ import akka.actor.ActorRef import akka.actor.typed.Behavior import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.Behaviors -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.channel._ import fr.acinq.eclair.payment.IncomingPaymentPacket import fr.acinq.eclair.router.Announcements diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelay.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelay.scala index e763758175..509a54a8b2 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelay.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelay.scala @@ -22,7 +22,7 @@ import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.adapter.{TypedActorContextOps, TypedActorRefOps} import akka.actor.typed.scaladsl.{ActorContext, Behaviors} import com.softwaremill.quicklens.ModifyPimp -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.channel.{CMD_FAIL_HTLC, CMD_FULFILL_HTLC} import fr.acinq.eclair.db.PendingCommandsDb import fr.acinq.eclair.payment.IncomingPaymentPacket.NodeRelayPacket diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelayer.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelayer.scala index cecd1cf5cb..7d0947ca76 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelayer.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/NodeRelayer.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.payment.relay import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.{ActorRef, Behavior} -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.payment._ import fr.acinq.eclair.{Logs, NodeParams} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/PostRestartHtlcCleaner.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/PostRestartHtlcCleaner.scala index e26e652db4..626c63578a 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/PostRestartHtlcCleaner.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/PostRestartHtlcCleaner.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.payment.relay import akka.Done import akka.actor.{Actor, ActorLogging, ActorRef, Props} import akka.event.LoggingAdapter -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PrivateKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PrivateKey import fr.acinq.eclair.channel.Helpers.Closing import fr.acinq.eclair.channel._ import fr.acinq.eclair.db._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/Relayer.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/Relayer.scala index c2af6d7f9d..3bdd43f74e 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/Relayer.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/relay/Relayer.scala @@ -23,7 +23,7 @@ import akka.actor.typed.scaladsl.adapter.ClassicActorContextOps import akka.actor.{Actor, ActorRef, DiagnosticActorLogging, Props, typed} import akka.event.Logging.MDC import akka.event.LoggingAdapter -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.channel._ import fr.acinq.eclair.db.PendingCommandsDb import fr.acinq.eclair.payment._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/Autoprobe.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/Autoprobe.scala index ebcdae283f..f0f5802adc 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/Autoprobe.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/Autoprobe.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.payment.send import akka.actor.{Actor, ActorLogging, ActorRef, Props} -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.crypto.Sphinx.DecryptedFailurePacket import fr.acinq.eclair.payment.{PaymentEvent, PaymentFailed, PaymentRequest, RemoteFailure} import fr.acinq.eclair.router.Router diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/MultiPartPaymentLifecycle.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/MultiPartPaymentLifecycle.scala index df978d2d56..dbd4ef3b5d 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/MultiPartPaymentLifecycle.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/MultiPartPaymentLifecycle.scala @@ -18,8 +18,8 @@ package fr.acinq.eclair.payment.send import akka.actor.{ActorRef, FSM, Props, Status} import akka.event.Logging.MDC -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.channel.{HtlcOverriddenByLocalCommit, HtlcsTimedoutDownstream, HtlcsWillTimeoutUpstream} import fr.acinq.eclair.db.{OutgoingPayment, OutgoingPaymentStatus, PaymentType} import fr.acinq.eclair.payment.Monitoring.{Metrics, Tags} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentInitiator.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentInitiator.scala index e6fb861752..9c8325abd6 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentInitiator.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentInitiator.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.payment.send import akka.actor.{Actor, ActorContext, ActorLogging, ActorRef, Props} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Crypto} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Crypto} import fr.acinq.eclair.Features.BasicMultiPartPayment import fr.acinq.eclair.channel.Channel import fr.acinq.eclair.crypto.Sphinx diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentLifecycle.scala b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentLifecycle.scala index c3135fd2c9..7ac15c7388 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentLifecycle.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/payment/send/PaymentLifecycle.scala @@ -18,8 +18,8 @@ package fr.acinq.eclair.payment.send import akka.actor.{ActorRef, FSM, Props, Status} import akka.event.Logging.MDC -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair._ import fr.acinq.eclair.channel._ import fr.acinq.eclair.crypto.{Sphinx, TransportHandler} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/remote/EclairInternalsSerializer.scala b/eclair-core/src/main/scala/fr/acinq/eclair/remote/EclairInternalsSerializer.scala index 7456310286..946c4788b3 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/remote/EclairInternalsSerializer.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/remote/EclairInternalsSerializer.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.remote import akka.actor.{ActorRef, ExtendedActorSystem} import akka.serialization.Serialization -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.crypto.TransportHandler import fr.acinq.eclair.io.Peer.PeerRoutingMessage import fr.acinq.eclair.io.Switchboard.RouterPeerConf diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/Announcements.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/Announcements.scala index d07bd7ccc9..8d36978dc5 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/Announcements.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/Announcements.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.router -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey, sha256, verifySignature} -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, LexicographicalOrdering} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey, sha256, verifySignature} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, LexicographicalOrdering} import fr.acinq.eclair.wire.protocol._ import fr.acinq.eclair.{CltvExpiryDelta, Features, MilliSatoshi, ShortChannelId, TimestampSecond, TimestampSecondLong, serializationResult} import scodec.bits.ByteVector diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/Graph.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/Graph.scala index e974092b9d..a49c334f6d 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/Graph.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/Graph.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.router -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Btc, ByteVector32, MilliBtc, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Btc, ByteVector32, MilliBtc, Satoshi} import fr.acinq.eclair._ import fr.acinq.eclair.payment.relay.Relayer.RelayFees import fr.acinq.eclair.router.Graph.GraphStructure.{DirectedGraph, GraphEdge} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/Monitoring.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/Monitoring.scala index e4c2d2f740..cc162dc501 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/Monitoring.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/Monitoring.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.router -import fr.acinq.bitcoin.{BtcDouble, MilliBtcDouble, SatoshiLong} +import fr.acinq.bitcoinscala.{BtcDouble, MilliBtcDouble, SatoshiLong} import fr.acinq.eclair.router.Router.GossipDecision import fr.acinq.eclair.wire.protocol.ChannelUpdate import fr.acinq.eclair.{MilliSatoshi, getSimpleClassName} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/NetworkEvents.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/NetworkEvents.scala index 50f68cfdff..bd480b609a 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/NetworkEvents.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/NetworkEvents.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.router -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.Satoshi +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.Satoshi import fr.acinq.eclair.ShortChannelId import fr.acinq.eclair.remote.EclairInternalsSerializer.RemoteTypes import fr.acinq.eclair.wire.protocol.{ChannelAnnouncement, ChannelUpdate, NodeAnnouncement} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/RouteCalculation.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/RouteCalculation.scala index 74ef4ae4c5..5161b851ff 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/RouteCalculation.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/RouteCalculation.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.router import akka.actor.{ActorContext, ActorRef, Status} import akka.event.DiagnosticLoggingAdapter import com.softwaremill.quicklens.ModifyPimp -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Satoshi, SatoshiLong} import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair._ import fr.acinq.eclair.payment.PaymentRequest.ExtraHop diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/Router.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/Router.scala index b2696cde2f..3619a9aab2 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/Router.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/Router.scala @@ -21,8 +21,8 @@ import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.actor.{Actor, ActorLogging, ActorRef, Props, Terminated, typed} import akka.event.DiagnosticLoggingAdapter import akka.event.Logging.MDC -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/Sync.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/Sync.scala index 15a0f25b42..d7308d0b31 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/Sync.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/Sync.scala @@ -18,8 +18,8 @@ package fr.acinq.eclair.router import akka.actor.{ActorContext, ActorRef} import akka.event.LoggingAdapter -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.crypto.TransportHandler import fr.acinq.eclair.router.Monitoring.{Metrics, Tags} import fr.acinq.eclair.router.Router._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/router/Validation.scala b/eclair-core/src/main/scala/fr/acinq/eclair/router/Validation.scala index a78c9e9254..d41c5bc940 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/router/Validation.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/router/Validation.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.router import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.actor.{ActorContext, ActorRef, typed} import akka.event.{DiagnosticLoggingAdapter, LoggingAdapter} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.Script.{pay2wsh, write} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.Script.{pay2wsh, write} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{UtxoStatus, ValidateRequest, ValidateResult, WatchExternalChannelSpent} import fr.acinq.eclair.channel.{AvailableBalanceChanged, LocalChannelDown, LocalChannelUpdate} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/transactions/CommitmentSpec.scala b/eclair-core/src/main/scala/fr/acinq/eclair/transactions/CommitmentSpec.scala index 414897a7cd..53a821a3d4 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/transactions/CommitmentSpec.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/transactions/CommitmentSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.transactions -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import fr.acinq.eclair.MilliSatoshi import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.transactions.Transactions.{CommitmentFormat, ZeroFeeHtlcTxAnchorOutputsCommitmentFormat} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Scripts.scala b/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Scripts.scala index 5c8b93dffe..26556ed374 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Scripts.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Scripts.scala @@ -16,9 +16,12 @@ package fr.acinq.eclair.transactions -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.Script._ -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.Script._ +import fr.acinq.bitcoinscala._ +import fr.acinq.bitcoin.SigHash._ +import fr.acinq.bitcoin.TxIn.{SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_TYPE_FLAG, SEQUENCE_LOCKTIME_MASK} +import fr.acinq.bitcoin.Script.LockTimeThreshold import fr.acinq.eclair.transactions.Transactions.{AnchorOutputsCommitmentFormat, CommitmentFormat, DefaultCommitmentFormat} import fr.acinq.eclair.{CltvExpiry, CltvExpiryDelta} import scodec.bits.ByteVector @@ -94,11 +97,13 @@ object Scripts { } private def sequenceToBlockHeight(sequence: Long): Long = { - if ((sequence & TxIn.SEQUENCE_LOCKTIME_DISABLE_FLAG) != 0) { + if ((sequence & SEQUENCE_LOCKTIME_DISABLE_FLAG) != 0) { 0 } else { - require((sequence & TxIn.SEQUENCE_LOCKTIME_TYPE_FLAG) == 0, "CSV timeout must use block heights, not block times") - sequence & TxIn.SEQUENCE_LOCKTIME_MASK + require((sequence & SEQUENCE_LOCKTIME_TYPE_FLAG) == 0 + , "CSV timeout must use block heights, not block times" + ) + sequence & SEQUENCE_LOCKTIME_MASK } } diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Transactions.scala b/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Transactions.scala index 2346c23616..1f6a1d4ce7 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Transactions.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/transactions/Transactions.scala @@ -16,10 +16,12 @@ package fr.acinq.eclair.transactions -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey, ripemd160} -import fr.acinq.bitcoin.Script._ +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey, ripemd160} +import fr.acinq.bitcoinscala.Script._ +import fr.acinq.bitcoinscala._ +import fr.acinq.bitcoin.SigHash._ import fr.acinq.bitcoin.SigVersion._ -import fr.acinq.bitcoin._ +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.transactions.CommitmentOutput._ diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0.scala index e5ce53cd53..850dccddf4 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.internal.channel.version0 -import fr.acinq.bitcoin.DeterministicWallet.{ExtendedPrivateKey, KeyPath} -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, OutPoint, Transaction, TxOut} +import fr.acinq.bitcoinscala.DeterministicWallet.{ExtendedPrivateKey, KeyPath} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, OutPoint, Transaction, TxOut} import fr.acinq.eclair.TimestampSecond import fr.acinq.eclair.channel._ import fr.acinq.eclair.crypto.ShaChain @@ -30,6 +30,7 @@ import fr.acinq.eclair.wire.protocol._ import scodec.Codec import scodec.bits.{BitVector, ByteVector} import scodec.codecs._ +import shapeless.{::, HNil} import java.util.UUID @@ -42,14 +43,17 @@ private[channel] object ChannelCodecs0 { private[version0] object Codecs { - val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => new KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath].decodeOnly + val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath].decodeOnly val extendedPrivateKeyCodec: Codec[ExtendedPrivateKey] = ( ("secretkeybytes" | bytes32) :: ("chaincode" | bytes32) :: ("depth" | uint16) :: ("path" | keyPathCodec) :: - ("parent" | int64)).as[ExtendedPrivateKey].decodeOnly + ("parent" | int64)).xmap( + { case a :: b :: c :: d :: e :: HNil => ExtendedPrivateKey(a, b, c, d, e) }, + { exp: ExtendedPrivateKey => exp.secretkeybytes :: exp.chaincode :: exp.depth :: exp.path :: exp.parent :: HNil } + ).decodeOnly val channelVersionCodec: Codec[ChannelTypes0.ChannelVersion] = discriminatorWithDefault[ChannelTypes0.ChannelVersion]( discriminator = discriminated[ChannelTypes0.ChannelVersion].by(byte) diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelTypes0.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelTypes0.scala index b7d193c053..3cb70247fd 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelTypes0.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelTypes0.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.wire.internal.channel.version0 import com.softwaremill.quicklens._ -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, OP_CHECKMULTISIG, OP_PUSHDATA, OutPoint, Satoshi, Script, ScriptWitness, Transaction, TxOut} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, OP_CHECKMULTISIG, OP_PUSHDATA, OutPoint, Satoshi, Script, ScriptWitness, Transaction, TxOut} import fr.acinq.eclair.channel._ import fr.acinq.eclair.crypto.ShaChain import fr.acinq.eclair.transactions.CommitmentSpec diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1.scala index 42415f02ad..1e3542eb66 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.internal.channel.version1 -import fr.acinq.bitcoin.DeterministicWallet.{ExtendedPrivateKey, KeyPath} -import fr.acinq.bitcoin.{ByteVector32, OutPoint, Transaction, TxOut} +import fr.acinq.bitcoinscala.DeterministicWallet.{ExtendedPrivateKey, KeyPath} +import fr.acinq.bitcoinscala.{ByteVector32, OutPoint, Transaction, TxOut} import fr.acinq.eclair.channel._ import fr.acinq.eclair.crypto.ShaChain import fr.acinq.eclair.transactions.Transactions._ @@ -30,19 +30,23 @@ import fr.acinq.eclair.wire.protocol._ import scodec.bits.ByteVector import scodec.codecs._ import scodec.{Attempt, Codec} +import shapeless.{::, HNil} private[channel] object ChannelCodecs1 { private[version1] object Codecs { - val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => new KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath] + val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath] val extendedPrivateKeyCodec: Codec[ExtendedPrivateKey] = ( ("secretkeybytes" | bytes32) :: ("chaincode" | bytes32) :: ("depth" | uint16) :: ("path" | keyPathCodec) :: - ("parent" | int64)).as[ExtendedPrivateKey] + ("parent" | int64)).xmap( + { case a :: b :: c :: d :: e :: HNil => ExtendedPrivateKey(a, b, c, d, e) }, + { exp: ExtendedPrivateKey => exp.secretkeybytes :: exp.chaincode :: exp.depth :: exp.path :: exp.parent :: HNil } + ) val channelVersionCodec: Codec[ChannelTypes0.ChannelVersion] = bits(ChannelTypes0.ChannelVersion.LENGTH_BITS).as[ChannelTypes0.ChannelVersion] diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2.scala index d83dea764d..8494e7078b 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.internal.channel.version2 -import fr.acinq.bitcoin.DeterministicWallet.{ExtendedPrivateKey, KeyPath} -import fr.acinq.bitcoin.{OutPoint, Transaction, TxOut} +import fr.acinq.bitcoinscala.DeterministicWallet.{ExtendedPrivateKey, KeyPath} +import fr.acinq.bitcoinscala.{OutPoint, Transaction, TxOut} import fr.acinq.eclair.channel._ import fr.acinq.eclair.crypto.ShaChain import fr.acinq.eclair.transactions.Transactions._ @@ -30,19 +30,23 @@ import fr.acinq.eclair.wire.protocol._ import scodec.bits.ByteVector import scodec.codecs._ import scodec.{Attempt, Codec} +import shapeless.{::, HNil} private[channel] object ChannelCodecs2 { private[version2] object Codecs { - val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => new KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath] + val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath] val extendedPrivateKeyCodec: Codec[ExtendedPrivateKey] = ( ("secretkeybytes" | bytes32) :: ("chaincode" | bytes32) :: ("depth" | uint16) :: ("path" | keyPathCodec) :: - ("parent" | int64)).as[ExtendedPrivateKey] + ("parent" | int64)).xmap( + { case a :: b :: c :: d :: e :: HNil => ExtendedPrivateKey(a, b, c, d, e) }, + { exp: ExtendedPrivateKey => exp.secretkeybytes :: exp.chaincode :: exp.depth :: exp.path :: exp.parent :: HNil } + ) val channelVersionCodec: Codec[ChannelTypes0.ChannelVersion] = bits(ChannelTypes0.ChannelVersion.LENGTH_BITS).as[ChannelTypes0.ChannelVersion] diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3.scala index e833daeb01..5861a18e49 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.internal.channel.version3 -import fr.acinq.bitcoin.DeterministicWallet.{ExtendedPrivateKey, KeyPath} -import fr.acinq.bitcoin.{ByteVector32, OutPoint, Transaction, TxOut} +import fr.acinq.bitcoinscala.DeterministicWallet.{ExtendedPrivateKey, KeyPath} +import fr.acinq.bitcoinscala.{ByteVector32, OutPoint, Transaction, TxOut} import fr.acinq.eclair.channel._ import fr.acinq.eclair.crypto.ShaChain import fr.acinq.eclair.transactions.Transactions._ @@ -29,19 +29,23 @@ import fr.acinq.eclair.{FeatureSupport, Features} import scodec.bits.{BitVector, ByteVector} import scodec.codecs._ import scodec.{Attempt, Codec} +import shapeless.{::, HNil} private[channel] object ChannelCodecs3 { private[version3] object Codecs { - val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => new KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath] + val keyPathCodec: Codec[KeyPath] = ("path" | listOfN(uint16, uint32)).xmap[KeyPath](l => KeyPath(l), keyPath => keyPath.path.toList).as[KeyPath] val extendedPrivateKeyCodec: Codec[ExtendedPrivateKey] = ( ("secretkeybytes" | bytes32) :: ("chaincode" | bytes32) :: ("depth" | uint16) :: ("path" | keyPathCodec) :: - ("parent" | int64)).as[ExtendedPrivateKey] + ("parent" | int64)).xmap( + { case a :: b :: c :: d :: e :: HNil => ExtendedPrivateKey(a, b, c, d, e) }, + { exp: ExtendedPrivateKey => exp.secretkeybytes :: exp.chaincode :: exp.depth :: exp.path :: exp.parent :: HNil } + ) val channelConfigCodec: Codec[ChannelConfig] = lengthDelimited(bytes).xmap(b => { val activated: Set[ChannelConfigOption] = b.bits.toIndexedSeq.reverse.zipWithIndex.collect { diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/ChannelTlv.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/ChannelTlv.scala index 56e362350b..243495ce65 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/ChannelTlv.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/ChannelTlv.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.Satoshi +import fr.acinq.bitcoinscala.Satoshi import fr.acinq.eclair.channel.{ChannelType, ChannelTypes} import fr.acinq.eclair.wire.protocol.CommonCodecs._ import fr.acinq.eclair.wire.protocol.TlvCodecs.tlvStream diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/CommonCodecs.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/CommonCodecs.scala index 973367bb92..d267c19e6c 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/CommonCodecs.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/CommonCodecs.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Satoshi} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Satoshi} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.crypto.Mac32 import fr.acinq.eclair.{CltvExpiry, CltvExpiryDelta, MilliSatoshi, ShortChannelId, TimestampSecond, UInt64} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/FailureMessage.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/FailureMessage.scala index 6af9b4b60c..16a9ad8fdc 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/FailureMessage.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/FailureMessage.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.crypto.Mac32 import fr.acinq.eclair.wire.protocol.CommonCodecs._ import fr.acinq.eclair.wire.protocol.FailureMessageCodecs.failureMessageCodec diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/LightningMessageTypes.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/LightningMessageTypes.scala index 3974851076..14a1002edc 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/LightningMessageTypes.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/LightningMessageTypes.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.wire.protocol import com.google.common.base.Charsets -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Satoshi} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Satoshi} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel.ChannelType import fr.acinq.eclair.{CltvExpiry, CltvExpiryDelta, Features, MilliSatoshi, ShortChannelId, TimestampMilli, TimestampSecond, UInt64} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/MessageOnion.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/MessageOnion.scala index 4c09d810f7..1c117cb54f 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/MessageOnion.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/MessageOnion.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.UInt64 import fr.acinq.eclair.crypto.Sphinx.RouteBlinding.{BlindedNode, BlindedRoute} import fr.acinq.eclair.wire.protocol.OnionRoutingCodecs.{ForbiddenTlv, MissingRequiredTlv} diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/OnionRouting.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/OnionRouting.scala index ed40d2f0ca..fab4082c7f 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/OnionRouting.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/OnionRouting.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.UInt64 import fr.acinq.eclair.wire.protocol.CommonCodecs.bytes32 import scodec.bits.ByteVector diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/PaymentOnion.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/PaymentOnion.scala index 93fa55e7a9..c89d7c83cd 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/PaymentOnion.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/PaymentOnion.scala @@ -16,8 +16,9 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.payment.PaymentRequest import fr.acinq.eclair.wire.protocol.CommonCodecs._ import fr.acinq.eclair.wire.protocol.OnionRoutingCodecs.MissingRequiredTlv diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/RouteBlinding.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/RouteBlinding.scala index 546383ea72..1802b4691c 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/RouteBlinding.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/RouteBlinding.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.{ShortChannelId, UInt64} import scodec.bits.ByteVector diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/SetupAndControlTlv.scala b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/SetupAndControlTlv.scala index ebcb8a9252..46498d8729 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/SetupAndControlTlv.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/wire/protocol/SetupAndControlTlv.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.UInt64 import fr.acinq.eclair.wire.protocol.CommonCodecs._ import fr.acinq.eclair.wire.protocol.TlvCodecs.tlvStream diff --git a/eclair-core/src/test/java/fr/acinq/eclair/MilliSatoshiTest.java b/eclair-core/src/test/java/fr/acinq/eclair/MilliSatoshiTest.java index e48c72cf9e..1ddacc5790 100644 --- a/eclair-core/src/test/java/fr/acinq/eclair/MilliSatoshiTest.java +++ b/eclair-core/src/test/java/fr/acinq/eclair/MilliSatoshiTest.java @@ -16,7 +16,7 @@ package fr.acinq.eclair; -import fr.acinq.bitcoin.Satoshi; +import fr.acinq.bitcoinscala.Satoshi; /** * This class is a compile-time check that we are able to compile Java code that uses MilliSatoshi utilities. diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/EclairImplSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/EclairImplSpec.scala index c78a5e1a9f..9d7561e9d1 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/EclairImplSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/EclairImplSpec.scala @@ -20,8 +20,8 @@ import akka.actor.ActorRef import akka.actor.typed.scaladsl.adapter.{ClassicActorRefOps, actorRefAdapter} import akka.testkit.TestProbe import akka.util.Timeout -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, Crypto, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Crypto, SatoshiLong} import fr.acinq.eclair.ApiTypes.ChannelNotFound import fr.acinq.eclair.TestConstants._ import fr.acinq.eclair.blockchain.DummyOnChainWallet diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/MilliSatoshiSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/MilliSatoshiSpec.scala index 89c50e5266..de7c9fde04 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/MilliSatoshiSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/MilliSatoshiSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair -import fr.acinq.bitcoin.{Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.{Satoshi, SatoshiLong} import org.scalatest.funsuite.AnyFunSuite /** diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/PackageSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/PackageSpec.scala index fb5c8960a2..5fecb65e18 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/PackageSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/PackageSpec.scala @@ -16,8 +16,9 @@ package fr.acinq.eclair -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{Base58, Base58Check, Bech32, Block, ByteVector32, Crypto, Script} +import fr.acinq.bitcoin.{Base58, Base58Check, Bech32} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto, Script} import org.scalatest.funsuite.AnyFunSuite import scodec.bits._ @@ -28,6 +29,9 @@ import scala.util.Try */ class PackageSpec extends AnyFunSuite { + implicit def byteVector2array(input: ByteVector): Array[Byte] = input.toArray + + implicit def byteVector322array(input: ByteVector32): Array[Byte] = input.toArray test("compute long channel id") { val data = ((hex"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", 0, hex"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF") :: diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/StartupSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/StartupSpec.scala index 3fa2155fbf..6b5f500237 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/StartupSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/StartupSpec.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair import com.typesafe.config.{Config, ConfigFactory} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Block, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, SatoshiLong} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features._ import fr.acinq.eclair.blockchain.fee.{DustTolerance, FeeratePerByte, FeeratePerKw, FeerateTolerance} @@ -168,7 +168,7 @@ class StartupSpec extends AnyFunSuite { """ | override-features = [ // optional per-node features | { - | nodeid = "02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + | nodeid = "031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f", | features { | var_onion_optin = mandatory | payment_secret = mandatory @@ -181,7 +181,7 @@ class StartupSpec extends AnyFunSuite { ) val nodeParams = makeNodeParamsWithDefaults(perNodeConf.withFallback(defaultConf)) - val perNodeFeatures = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))) + val perNodeFeatures = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f"))) assert(perNodeFeatures === Features(VariableLengthOnion -> Mandatory, PaymentSecret -> Mandatory, BasicMultiPartPayment -> Mandatory, ChannelType -> Optional)) } @@ -190,7 +190,7 @@ class StartupSpec extends AnyFunSuite { """ | override-features = [ // optional per-node features | { - | nodeid = "02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + | nodeid = "031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f", | features { | var_onion_optin = mandatory | payment_secret = mandatory @@ -199,7 +199,7 @@ class StartupSpec extends AnyFunSuite { | } | }, | { - | nodeid = "02bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + | nodeid = "024d4b6cd1361032ca9bd2aeb9d900aa4d45d9ead80ac9423374c451a7254d0766", | features { | var_onion_optin = mandatory | payment_secret = mandatory @@ -212,9 +212,9 @@ class StartupSpec extends AnyFunSuite { ) val nodeParams = makeNodeParamsWithDefaults(perNodeConf.withFallback(defaultConf)) - val perNodeFeaturesA = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))) - val perNodeFeaturesB = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("02bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"))) - val defaultNodeFeatures = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("02cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"))) + val perNodeFeaturesA = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f"))) + val perNodeFeaturesB = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("024d4b6cd1361032ca9bd2aeb9d900aa4d45d9ead80ac9423374c451a7254d0766"))) + val defaultNodeFeatures = nodeParams.initFeaturesFor(PublicKey(ByteVector.fromValidHex("02531fe6068134503d2723133227c867ac8fa6c83c537e9a44c3c5bdbdcb1fe337"))) // Some features should never be sent in init messages. assert(nodeParams.features.hasFeature(PaymentMetadata)) assert(!perNodeFeaturesA.hasFeature(PaymentMetadata)) @@ -227,7 +227,7 @@ class StartupSpec extends AnyFunSuite { """ | on-chain-fees.override-feerate-tolerance = [ | { - | nodeid = "02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + | nodeid = "031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f", | feerate-tolerance { | ratio-low = 0.1 | ratio-high = 15.0 @@ -239,7 +239,7 @@ class StartupSpec extends AnyFunSuite { | } | }, | { - | nodeid = "02bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + | nodeid = "03462779ad4aad39514614751a71085f2f10e1c7a593e4e030efb5b8721ce55b0b", | feerate-tolerance { | ratio-low = 0.75 | ratio-high = 5.0 @@ -255,9 +255,9 @@ class StartupSpec extends AnyFunSuite { ) val nodeParams = makeNodeParamsWithDefaults(perNodeConf.withFallback(defaultConf)) - assert(nodeParams.onChainFeeConf.feerateToleranceFor(PublicKey(hex"02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")) === FeerateTolerance(0.1, 15.0, FeeratePerKw(FeeratePerByte(15 sat)), DustTolerance(25_000 sat, closeOnUpdateFeeOverflow = true))) - assert(nodeParams.onChainFeeConf.feerateToleranceFor(PublicKey(hex"02bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")) === FeerateTolerance(0.75, 5.0, FeeratePerKw(FeeratePerByte(5 sat)), DustTolerance(40_000 sat, closeOnUpdateFeeOverflow = false))) - assert(nodeParams.onChainFeeConf.feerateToleranceFor(PublicKey(hex"02cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc")) === FeerateTolerance(0.5, 10.0, FeeratePerKw(FeeratePerByte(10 sat)), DustTolerance(50_000 sat, closeOnUpdateFeeOverflow = false))) + assert(nodeParams.onChainFeeConf.feerateToleranceFor(PublicKey(hex"031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f")) === FeerateTolerance(0.1, 15.0, FeeratePerKw(FeeratePerByte(15 sat)), DustTolerance(25_000 sat, closeOnUpdateFeeOverflow = true))) + assert(nodeParams.onChainFeeConf.feerateToleranceFor(PublicKey(hex"03462779ad4aad39514614751a71085f2f10e1c7a593e4e030efb5b8721ce55b0b")) === FeerateTolerance(0.75, 5.0, FeeratePerKw(FeeratePerByte(5 sat)), DustTolerance(40_000 sat, closeOnUpdateFeeOverflow = false))) + assert(nodeParams.onChainFeeConf.feerateToleranceFor(PublicKey(hex"0362c0a046dacce86ddd0343c6d3c7c79c2208ba0d9c9cf24a6d046d21d21f90f7")) === FeerateTolerance(0.5, 10.0, FeeratePerKw(FeeratePerByte(10 sat)), DustTolerance(50_000 sat, closeOnUpdateFeeOverflow = false))) } test("NodeParams should fail if htlc-minimum-msat is set to 0") { diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/TestBitcoinCoreClient.scala b/eclair-core/src/test/scala/fr/acinq/eclair/TestBitcoinCoreClient.scala index 53c1548292..41826ac6c6 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/TestBitcoinCoreClient.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/TestBitcoinCoreClient.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair import akka.actor.ActorSystem -import fr.acinq.bitcoin.{ByteVector32, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, Transaction} import fr.acinq.eclair.blockchain._ import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinJsonRPCAuthMethod.UserPassword import fr.acinq.eclair.blockchain.bitcoind.rpc.{BasicBitcoinJsonRPCClient, BitcoinCoreClient} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/TestConstants.scala b/eclair-core/src/test/scala/fr/acinq/eclair/TestConstants.scala index 0dca0ae088..90900c05ac 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/TestConstants.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/TestConstants.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair -import fr.acinq.bitcoin.{Block, ByteVector32, Satoshi, SatoshiLong, Script} +import fr.acinq.bitcoinscala.{Block, ByteVector32, Satoshi, SatoshiLong, Script} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features._ import fr.acinq.eclair.blockchain.fee._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/balance/CheckBalanceSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/balance/CheckBalanceSpec.scala index 3f7dada92b..f9e53c4588 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/balance/CheckBalanceSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/balance/CheckBalanceSpec.scala @@ -2,7 +2,7 @@ package fr.acinq.eclair.balance import akka.pattern.pipe import akka.testkit.TestProbe -import fr.acinq.bitcoin.{ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{ByteVector32, SatoshiLong} import fr.acinq.eclair.balance.CheckBalance.{ClosingBalance, MainAndHtlcBalance, OffChainBalance, PossiblyPublishedMainAndHtlcBalance, PossiblyPublishedMainBalance} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{apply => _, _} import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/DummyOnChainWallet.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/DummyOnChainWallet.scala index 74f4cbef3f..9f9c73bd6f 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/DummyOnChainWallet.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/DummyOnChainWallet.scala @@ -16,8 +16,9 @@ package fr.acinq.eclair.blockchain -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Crypto, OutPoint, Satoshi, SatoshiLong, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Crypto, OutPoint, Satoshi, SatoshiLong, Transaction, TxIn, TxOut} +import fr.acinq.bitcoin.TxIn.SEQUENCE_FINAL import fr.acinq.eclair.blockchain.OnChainWallet.{MakeFundingTxResponse, OnChainBalance} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import scodec.bits._ @@ -80,7 +81,7 @@ object DummyOnChainWallet { def makeDummyFundingTx(pubkeyScript: ByteVector, amount: Satoshi): MakeFundingTxResponse = { val fundingTx = Transaction(version = 2, - txIn = TxIn(OutPoint(ByteVector32(ByteVector.fill(32)(1)), 42), signatureScript = Nil, sequence = TxIn.SEQUENCE_FINAL) :: Nil, + txIn = TxIn(OutPoint(ByteVector32(ByteVector.fill(32)(1)), 42), signatureScript = Nil, sequence = SEQUENCE_FINAL) :: Nil, txOut = TxOut(amount, pubkeyScript) :: Nil, lockTime = 0) MakeFundingTxResponse(fundingTx, 0, 420 sat) diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/WatcherSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/WatcherSpec.scala index e1ae26cb89..99566062ce 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/WatcherSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/WatcherSpec.scala @@ -16,8 +16,11 @@ package fr.acinq.eclair.blockchain -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{OutPoint, SIGHASH_ALL, Satoshi, SatoshiLong, Script, ScriptFlags, ScriptWitness, SigVersion, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{OutPoint, Satoshi, SatoshiLong, Script, ScriptWitness, Transaction, TxIn, TxOut} +import fr.acinq.bitcoin.{SigVersion, ScriptFlags} +import fr.acinq.bitcoin.SigHash.SIGHASH_ALL +import fr.acinq.bitcoin.TxIn.SEQUENCE_FINAL /** * Created by PM on 27/01/2017. @@ -79,9 +82,9 @@ object WatcherSpec { */ def createUnspentTxChain(tx: Transaction, priv: PrivateKey): (Transaction, Transaction) = { // tx1 spends tx - val tx1 = createSpendP2WPKH(tx, priv, priv.publicKey, 10000 sat, TxIn.SEQUENCE_FINAL, 0) + val tx1 = createSpendP2WPKH(tx, priv, priv.publicKey, 10000 sat, SEQUENCE_FINAL, 0) // and tx2 spends tx1 - val tx2 = createSpendP2WPKH(tx1, priv, priv.publicKey, 10000 sat, TxIn.SEQUENCE_FINAL, 0) + val tx2 = createSpendP2WPKH(tx1, priv, priv.publicKey, 10000 sat, SEQUENCE_FINAL, 0) (tx1, tx2) } diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoinCoreClientSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoinCoreClientSpec.scala index fda0503036..8d2a53a587 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoinCoreClientSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoinCoreClientSpec.scala @@ -19,9 +19,9 @@ package fr.acinq.eclair.blockchain.bitcoind import akka.actor.Status.Failure import akka.pattern.pipe import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.SigVersion.SIGVERSION_WITNESS_V0 -import fr.acinq.bitcoin.{Block, BtcDouble, ByteVector32, MilliBtcDouble, OutPoint, SIGHASH_ALL, Satoshi, SatoshiLong, Script, ScriptFlags, ScriptWitness, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, BtcDouble, ByteVector32, MilliBtcDouble, OutPoint, Satoshi, SatoshiLong, Script, ScriptWitness, Transaction, TxIn, TxOut} +import fr.acinq.bitcoin import fr.acinq.eclair.blockchain.OnChainWallet.{MakeFundingTxResponse, OnChainBalance} import fr.acinq.eclair.blockchain.bitcoind.BitcoindService.BitcoinReq import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient._ @@ -84,7 +84,7 @@ class BitcoinCoreClientSpec extends TestKitBaseClass with BitcoindService with A assert(fundTxResponse.amountIn > 0.sat) assert(fundTxResponse.fee > 0.sat) fundTxResponse.tx.txIn.foreach(txIn => assert(txIn.signatureScript.isEmpty && txIn.witness.isNull)) - fundTxResponse.tx.txIn.foreach(txIn => assert(txIn.sequence === TxIn.SEQUENCE_FINAL - 2)) + fundTxResponse.tx.txIn.foreach(txIn => assert(txIn.sequence === bitcoin.TxIn.SEQUENCE_FINAL - 2)) bitcoinClient.signTransaction(fundTxResponse.tx, Nil).pipeTo(sender.ref) val signTxResponse = sender.expectMsgType[SignTransactionResponse] @@ -126,7 +126,7 @@ class BitcoinCoreClientSpec extends TestKitBaseClass with BitcoindService with A assert(fundTxResponse.changePosition === Some(1)) assert(!Set(230000 sat, 410000 sat).contains(fundTxResponse.tx.txOut(1).amount)) assert(Set(230000 sat, 410000 sat) === Set(fundTxResponse.tx.txOut.head.amount, fundTxResponse.tx.txOut.last.amount)) - fundTxResponse.tx.txIn.foreach(txIn => assert(txIn.sequence === TxIn.SEQUENCE_FINAL - 1)) + fundTxResponse.tx.txIn.foreach(txIn => assert(txIn.sequence === bitcoin.TxIn.SEQUENCE_FINAL - 1)) } } @@ -407,13 +407,13 @@ class BitcoinCoreClientSpec extends TestKitBaseClass with BitcoindService with A signTxResponse1.tx.txIn.tail.foreach(walletTxIn => assert(walletTxIn.witness.stack.nonEmpty)) // if the non-wallet inputs are signed, bitcoind signs the remaining wallet inputs. - val nonWalletSig = Transaction.signInput(txWithNonWalletInput, 0, Script.pay2pkh(nonWalletKey.publicKey), SIGHASH_ALL, txToRemote.txOut.head.amount, SIGVERSION_WITNESS_V0, nonWalletKey) + val nonWalletSig = Transaction.signInput(txWithNonWalletInput, 0, Script.pay2pkh(nonWalletKey.publicKey), bitcoin.SigHash.SIGHASH_ALL, txToRemote.txOut.head.amount, bitcoin.SigVersion.SIGVERSION_WITNESS_V0, nonWalletKey) val nonWalletWitness = ScriptWitness(Seq(nonWalletSig, nonWalletKey.publicKey.value)) val txWithSignedNonWalletInput = txWithNonWalletInput.updateWitness(0, nonWalletWitness) bitcoinClient.signTransaction(txWithSignedNonWalletInput, Nil).pipeTo(sender.ref) val signTxResponse2 = sender.expectMsgType[SignTransactionResponse] assert(signTxResponse2.complete) - Transaction.correctlySpends(signTxResponse2.tx, txToRemote +: walletInputTxs, ScriptFlags.STANDARD_SCRIPT_VERIFY_FLAGS) + Transaction.correctlySpends(signTxResponse2.tx, txToRemote +: walletInputTxs, bitcoin.ScriptFlags.STANDARD_SCRIPT_VERIFY_FLAGS) } { // bitcoind does not sign inputs that have already been confirmed. @@ -441,7 +441,7 @@ class BitcoinCoreClientSpec extends TestKitBaseClass with BitcoindService with A bitcoinClient.fundTransaction(Transaction(2, Nil, Seq(TxOut(350000 sat, Script.pay2wpkh(randomKey().publicKey))), 0), opts).pipeTo(sender.ref) val fundTxResponse = sender.expectMsgType[FundTransactionResponse] val txWithUnconfirmedInput = fundTxResponse.tx.copy(txIn = TxIn(OutPoint(unconfirmedTx, 0), ByteVector.empty, 0) +: fundTxResponse.tx.txIn) - val nonWalletSig = Transaction.signInput(txWithUnconfirmedInput, 0, Script.pay2pkh(nonWalletKey.publicKey), SIGHASH_ALL, unconfirmedTx.txOut.head.amount, SIGVERSION_WITNESS_V0, nonWalletKey) + val nonWalletSig = Transaction.signInput(txWithUnconfirmedInput, 0, Script.pay2pkh(nonWalletKey.publicKey), bitcoin.SigHash.SIGHASH_ALL, unconfirmedTx.txOut.head.amount, bitcoin.SigVersion.SIGVERSION_WITNESS_V0, nonWalletKey) val nonWalletWitness = ScriptWitness(Seq(nonWalletSig, nonWalletKey.publicKey.value)) val txWithSignedUnconfirmedInput = txWithUnconfirmedInput.updateWitness(0, nonWalletWitness) val previousTx = PreviousTx(Transactions.InputInfo(OutPoint(unconfirmedTx.txid, 0), unconfirmedTx.txOut.head, Script.pay2pkh(nonWalletKey.publicKey)), nonWalletWitness) @@ -481,7 +481,7 @@ class BitcoinCoreClientSpec extends TestKitBaseClass with BitcoindService with A bitcoinrpcclient.invoke("createrawtransaction", Array(Map("txid" -> tx.txid.toHex, "vout" -> pos)), Map(address -> 5.999)).pipeTo(sender.ref) val JString(unsignedTxStr) = sender.expectMsgType[JValue] val unsignedTx = Transaction.read(unsignedTxStr) - val sig = Transaction.signInput(unsignedTx, 0, Script.pay2pkh(priv.publicKey), SIGHASH_ALL, 6.btc.toSatoshi, SIGVERSION_WITNESS_V0, priv) + val sig = Transaction.signInput(unsignedTx, 0, Script.pay2pkh(priv.publicKey), bitcoin.SigHash.SIGHASH_ALL, 6.btc.toSatoshi, bitcoin.SigVersion.SIGVERSION_WITNESS_V0, priv) unsignedTx.updateWitness(0, Script.witnessPay2wpkh(priv.publicKey, sig)) } bitcoinClient.publishTransaction(spendingTx).pipeTo(sender.ref) diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala index b7c3808bbc..10a9e47cbe 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala @@ -20,8 +20,8 @@ import akka.actor.{Actor, ActorRef, ActorSystem, Props} import akka.pattern.pipe import akka.testkit.{TestKitBase, TestProbe} import com.softwaremill.sttp.okhttp.OkHttpFutureBackend -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{Block, Btc, BtcAmount, ByteVector32, MilliBtc, OutPoint, Satoshi, Transaction, computeP2WpkhAddress} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{Block, Btc, BtcAmount, ByteVector32, MilliBtc, OutPoint, Satoshi, Transaction, computeP2WpkhAddress} import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinJsonRPCAuthMethod.{SafeCookie, UserPassword} import fr.acinq.eclair.blockchain.bitcoind.rpc.{BasicBitcoinJsonRPCClient, BitcoinJsonRPCAuthMethod, BitcoinJsonRPCClient} import fr.acinq.eclair.integration.IntegrationSpec diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcherSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcherSpec.scala index dcc5dc79a6..923687da79 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcherSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/ZmqWatcherSpec.scala @@ -21,7 +21,7 @@ import akka.actor.typed.scaladsl.adapter.{ClassicActorSystemOps, TypedActorRefOp import akka.actor.{ActorRef, Props, typed} import akka.pattern.pipe import akka.testkit.TestProbe -import fr.acinq.bitcoin.{Block, Btc, MilliBtcDouble, OutPoint, SatoshiLong, Script, Transaction, TxOut} +import fr.acinq.bitcoinscala.{Block, Btc, MilliBtcDouble, OutPoint, SatoshiLong, Script, Transaction, TxOut} import fr.acinq.eclair.blockchain.WatcherSpec._ import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProviderSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProviderSpec.scala index 71142a332d..34bfb739f1 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProviderSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProviderSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.blockchain.fee import akka.pattern.pipe import akka.testkit.TestProbe -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.TestKitBaseClass import fr.acinq.eclair.blockchain.bitcoind.BitcoindService import fr.acinq.eclair.blockchain.bitcoind.rpc.BasicBitcoinJsonRPCClient diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/DbFeeProviderSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/DbFeeProviderSpec.scala index 4315b44f59..7168c31f0c 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/DbFeeProviderSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/DbFeeProviderSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.blockchain.fee import akka.util.Timeout -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import fr.acinq.eclair.TestDatabases import fr.acinq.eclair.db.sqlite.SqliteFeeratesDb import org.scalatest.funsuite.AnyFunSuite diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProviderSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProviderSpec.scala index 00cc29c7df..0a1d82e7a8 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProviderSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FallbackFeeProviderSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import org.scalatest.funsuite.AnyFunSuite import scala.concurrent.duration._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeEstimatorSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeEstimatorSpec.scala index 571f262704..cee7cde3f8 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeEstimatorSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeEstimatorSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import fr.acinq.eclair.TestConstants.TestFeeEstimator import fr.acinq.eclair.blockchain.CurrentFeerates import fr.acinq.eclair.channel.ChannelTypes diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeProviderSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeProviderSpec.scala index be9c0e16a8..f3b7180458 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeProviderSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/FeeProviderSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import fr.acinq.eclair.blockchain.fee.FeeratePerKw.MinimumFeeratePerKw import org.scalatest.funsuite.AnyFunSuite diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/SmoothFeeProviderSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/SmoothFeeProviderSpec.scala index 0267b5b747..d3418f1f48 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/SmoothFeeProviderSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/SmoothFeeProviderSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.blockchain.fee -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import org.scalatest.funsuite.AnyFunSuite import scala.concurrent.ExecutionContext.Implicits.global diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/BlockchainWatchdogSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/BlockchainWatchdogSpec.scala index 0082eadf1b..b91591b5a7 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/BlockchainWatchdogSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/BlockchainWatchdogSpec.scala @@ -19,7 +19,7 @@ package fr.acinq.eclair.blockchain.watchdogs import akka.actor.testkit.typed.scaladsl.{ScalaTestWithActorTestKit, TestProbe} import akka.actor.typed.eventstream.EventStream import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.Block +import fr.acinq.bitcoinscala.Block import fr.acinq.eclair.blockchain.watchdogs.BlockchainWatchdog.{DangerousBlocksSkew, WrappedCurrentBlockCount} import fr.acinq.eclair.tor.Socks5ProxyParams import fr.acinq.eclair.{NodeParams, TestConstants, TestTags} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApiSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApiSpec.scala index 91ed5327c6..b83ca87aee 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApiSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/watchdogs/ExplorerApiSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.blockchain.watchdogs import akka.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.Block +import fr.acinq.bitcoinscala.Block import fr.acinq.eclair.TestTags import fr.acinq.eclair.blockchain.watchdogs.BlockchainWatchdog.LatestHeaders import fr.acinq.eclair.blockchain.watchdogs.ExplorerApi.{BlockcypherExplorer, BlockstreamExplorer, CheckLatestHeaders, MempoolSpaceExplorer} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/ChannelDataSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/ChannelDataSpec.scala index 48983db99f..6a8edabf28 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/ChannelDataSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/ChannelDataSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.channel import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{ByteVector32, OutPoint, SatoshiLong, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.{ByteVector32, OutPoint, SatoshiLong, Transaction, TxIn, TxOut} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.WatchFundingSpentTriggered import fr.acinq.eclair.channel.Helpers.Closing import fr.acinq.eclair.channel.states.ChannelStateTestsHelperMethods diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/CommitmentsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/CommitmentsSpec.scala index 781337e2ce..889f4fc2b3 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/CommitmentsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/CommitmentsSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.channel -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector64, DeterministicWallet, Satoshi, SatoshiLong, Transaction} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector64, DeterministicWallet, Satoshi, SatoshiLong, Transaction} import fr.acinq.eclair.TestConstants.TestFeeEstimator import fr.acinq.eclair.blockchain.fee._ import fr.acinq.eclair.channel.Commitments._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/DustExposureSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/DustExposureSpec.scala index 6dbff89b48..34d7c289fc 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/DustExposureSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/DustExposureSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.channel -import fr.acinq.bitcoin.{ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{ByteVector32, SatoshiLong} import fr.acinq.eclair.blockchain.fee.{FeeratePerByte, FeeratePerKw} import fr.acinq.eclair.transactions._ import fr.acinq.eclair.wire.protocol.UpdateAddHtlc diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/FuzzySpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/FuzzySpec.scala index 9d0a501c37..1541e42b35 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/FuzzySpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/FuzzySpec.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.channel import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.actor.{Actor, ActorLogging, ActorRef, Props} import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.DummyOnChainWallet diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/HelpersSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/HelpersSpec.scala index d3da3d6c6f..3405c6797a 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/HelpersSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/HelpersSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.channel import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.TestConstants.Alice.nodeParams import fr.acinq.eclair.TestUtils.NoLoggingDiagnostics import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.WatchFundingSpentTriggered diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/RegisterSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/RegisterSpec.scala index b32ec0d9bd..5e40ce1edf 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/RegisterSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/RegisterSpec.scala @@ -4,8 +4,8 @@ import fr.acinq.eclair._ import akka.actor.{ActorRef, Props} import akka.testkit.TestProbe -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import org.scalatest.funsuite.AnyFunSuiteLike import org.scalatest.ParallelTestExecution diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/RestoreSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/RestoreSpec.scala index 577ea871cd..38c2ada83a 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/RestoreSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/RestoreSpec.scala @@ -5,8 +5,10 @@ import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.testkit import akka.testkit.{TestActor, TestFSMRef, TestProbe} import com.softwaremill.quicklens.ModifyPimp -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala._ +import fr.acinq.bitcoin.ScriptFlags +import fr.acinq.bitcoin import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.WatchFundingSpentTriggered import fr.acinq.eclair.channel.states.ChannelStateTestsBase @@ -116,7 +118,7 @@ class RestoreSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike with Chan // spend our output val tx = Transaction(version = 2, - txIn = TxIn(OutPoint(bobCommitTx, bobCommitTx.txOut.indexOf(ourOutput)), sequence = TxIn.SEQUENCE_FINAL, signatureScript = Nil) :: Nil, + txIn = TxIn(OutPoint(bobCommitTx, bobCommitTx.txOut.indexOf(ourOutput)), sequence = bitcoin.TxIn.SEQUENCE_FINAL, signatureScript = Nil) :: Nil, txOut = TxOut(Satoshi(1000), Script.pay2pkh(fr.acinq.eclair.randomKey().publicKey)) :: Nil, lockTime = 0) diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/FinalTxPublisherSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/FinalTxPublisherSpec.scala index 35a6eb3cab..2b338364c2 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/FinalTxPublisherSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/FinalTxPublisherSpec.scala @@ -20,7 +20,7 @@ import akka.actor.typed.ActorRef import akka.actor.typed.scaladsl.adapter.{ClassicActorSystemOps, TypedActorRefOps, actorRefAdapter} import akka.pattern.pipe import akka.testkit.TestProbe -import fr.acinq.bitcoin.{ByteVector32, SatoshiLong, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, SatoshiLong, Transaction} import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.WatcherSpec.createSpendP2WPKH import fr.acinq.eclair.blockchain.bitcoind.BitcoindService diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitorSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitorSpec.scala index 33cce3ca04..eaf62166f2 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitorSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/MempoolTxMonitorSpec.scala @@ -20,8 +20,8 @@ import akka.actor.typed.ActorRef import akka.actor.typed.scaladsl.adapter.{ClassicActorSystemOps, TypedActorRefOps, actorRefAdapter} import akka.pattern.pipe import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{ByteVector32, OutPoint, SatoshiLong, Transaction, TxIn} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{ByteVector32, OutPoint, SatoshiLong, Transaction, TxIn} import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.WatcherSpec.{createSpendManyP2WPKH, createSpendP2WPKH} import fr.acinq.eclair.blockchain.bitcoind.BitcoindService diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisherSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisherSpec.scala index 5dfacbc476..df941dcac6 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisherSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisherSpec.scala @@ -20,7 +20,7 @@ import akka.actor.typed.ActorRef import akka.actor.typed.scaladsl.adapter.{ClassicActorSystemOps, actorRefAdapter} import akka.pattern.pipe import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{BtcAmount, ByteVector32, MilliBtcDouble, OutPoint, SatoshiLong, Script, ScriptWitness, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.{BtcAmount, ByteVector32, MilliBtcDouble, OutPoint, SatoshiLong, Script, ScriptWitness, Transaction, TxIn, TxOut} import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.bitcoind.BitcoindService import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxPublisherSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxPublisherSpec.scala index c8fb84e816..f11966599b 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxPublisherSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxPublisherSpec.scala @@ -20,7 +20,7 @@ import akka.actor.typed.ActorRef import akka.actor.typed.scaladsl.ActorContext import akka.actor.typed.scaladsl.adapter.{ClassicActorSystemOps, TypedActorRefOps, actorRefAdapter} import akka.testkit.TestProbe -import fr.acinq.bitcoin.{OutPoint, SatoshiLong, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.{OutPoint, SatoshiLong, Transaction, TxIn, TxOut} import fr.acinq.eclair.TestConstants.TestFeeEstimator import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.fee.{FeeratePerKw, FeeratesPerKw} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitorSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitorSpec.scala index 9bf97974e9..1a3c181ab4 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitorSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/TxTimeLocksMonitorSpec.scala @@ -19,7 +19,7 @@ package fr.acinq.eclair.channel.publish import akka.actor.typed.ActorRef import akka.actor.typed.scaladsl.adapter.{ClassicActorSystemOps, TypedActorRefOps, actorRefAdapter} import akka.testkit.TestProbe -import fr.acinq.bitcoin.{OutPoint, SatoshiLong, Script, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.{OutPoint, SatoshiLong, Script, Transaction, TxIn, TxOut} import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{WatchParentTxConfirmed, WatchParentTxConfirmedTriggered} import fr.acinq.eclair.channel.publish.TxPublisher.TxPublishLogContext diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/ChannelStateTestsHelperMethods.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/ChannelStateTestsHelperMethods.scala index 43a8cf889b..05eb910093 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/ChannelStateTestsHelperMethods.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/ChannelStateTestsHelperMethods.scala @@ -20,8 +20,9 @@ import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.actor.{ActorContext, ActorRef} import akka.testkit.{TestFSMRef, TestKitBase, TestProbe} import com.softwaremill.quicklens.ModifyPimp -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Crypto, SatoshiLong, ScriptFlags, Transaction} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Crypto, SatoshiLong, Transaction} +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair.TestConstants.{Alice, Bob, TestFeeEstimator} import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForAcceptChannelStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForAcceptChannelStateSpec.scala index cc5138ac00..50c1c30808 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForAcceptChannelStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForAcceptChannelStateSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.channel.states.a import akka.actor.Status import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{Block, Btc, ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{Block, Btc, ByteVector32, SatoshiLong} import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair.blockchain.NoOpOnChainWallet import fr.acinq.eclair.channel.Channel.TickChannelOpenTimeout diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForOpenChannelStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForOpenChannelStateSpec.scala index caeb6da5a5..111bfd836e 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForOpenChannelStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/a/WaitForOpenChannelStateSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.channel.states.a import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{Block, Btc, ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{Block, Btc, ByteVector32, SatoshiLong} import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingCreatedStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingCreatedStateSpec.scala index 6c2819db0c..24d8cacca6 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingCreatedStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingCreatedStateSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.channel.states.b import akka.actor.ActorRef import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{Btc, ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{Btc, ByteVector32, SatoshiLong} import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingInternalStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingInternalStateSpec.scala index 93e1684c8f..f524af3291 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingInternalStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingInternalStateSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.channel.states.b import akka.actor.Status import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.blockchain.NoOpOnChainWallet import fr.acinq.eclair.channel.Channel.TickChannelOpenTimeout import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingSignedStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingSignedStateSpec.scala index 1a8d538b9d..e0a1770597 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingSignedStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/b/WaitForFundingSignedStateSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.channel.states.b import akka.actor.Status import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{Btc, ByteVector32, ByteVector64, SatoshiLong} +import fr.acinq.bitcoinscala.{Btc, ByteVector32, ByteVector64, SatoshiLong} import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair.blockchain.DummyOnChainWallet import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingConfirmedStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingConfirmedStateSpec.scala index 651c3429fd..5c52fb98f9 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingConfirmedStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingConfirmedStateSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.channel.states.c import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{ByteVector32, SatoshiLong, Script, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, SatoshiLong, Script, Transaction} import fr.acinq.eclair.blockchain.CurrentBlockCount import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.channel.Channel.{BITCOIN_FUNDING_PUBLISH_FAILED, BITCOIN_FUNDING_TIMEOUT} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingLockedStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingLockedStateSpec.scala index c9d69771ec..d687d692d4 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingLockedStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/c/WaitForFundingLockedStateSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.channel.states.c import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{ByteVector32, Transaction} +import fr.acinq.bitcoinscala.{ByteVector32, Transaction} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.channel._ import fr.acinq.eclair.channel.publish.TxPublisher diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/NormalStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/NormalStateSpec.scala index 36d5469768..1b2cd7c3b9 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/NormalStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/NormalStateSpec.scala @@ -18,8 +18,9 @@ package fr.acinq.eclair.channel.states.e import akka.actor.ActorRef import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, SatoshiLong, Script, ScriptFlags, Transaction} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, SatoshiLong, Script, Transaction} +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair.Features.StaticRemoteKey import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair.UInt64.Conversions._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/OfflineStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/OfflineStateSpec.scala index ea8bbe70d5..30764c9a29 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/OfflineStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/OfflineStateSpec.scala @@ -18,8 +18,9 @@ package fr.acinq.eclair.channel.states.e import akka.actor.ActorRef import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, ScriptFlags, Transaction} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, Transaction} +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair.TestConstants.{Alice, Bob, TestFeeEstimator} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.blockchain.fee.FeeratesPerKw diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/f/ShutdownStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/f/ShutdownStateSpec.scala index 066db9c2e6..9f6ca16021 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/f/ShutdownStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/f/ShutdownStateSpec.scala @@ -17,8 +17,9 @@ package fr.acinq.eclair.channel.states.f import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, SatoshiLong, ScriptFlags, Transaction} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, SatoshiLong, Transaction} +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.blockchain.fee.{FeeratePerKw, FeeratesPerKw} import fr.acinq.eclair.blockchain.{CurrentBlockCount, CurrentFeerates} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/g/NegotiatingStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/g/NegotiatingStateSpec.scala index d2a63103d2..3359d9933a 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/g/NegotiatingStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/g/NegotiatingStateSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.channel.states.g import akka.testkit.TestProbe -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Satoshi, SatoshiLong} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.blockchain.fee.{FeeratePerKw, FeeratesPerKw} import fr.acinq.eclair.channel.Helpers.Closing diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/h/ClosingStateSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/h/ClosingStateSpec.scala index 27b680ce0a..ca4d2f50dd 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/h/ClosingStateSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/channel/states/h/ClosingStateSpec.scala @@ -17,8 +17,9 @@ package fr.acinq.eclair.channel.states.h import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{ByteVector32, ByteVector64, Crypto, OutPoint, SatoshiLong, Script, ScriptFlags, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{ByteVector32, ByteVector64, Crypto, OutPoint, SatoshiLong, Script, Transaction, TxIn, TxOut} +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.blockchain.fee.{FeeratePerKw, FeeratesPerKw} import fr.acinq.eclair.channel.Channel.{BITCOIN_FUNDING_PUBLISH_FAILED, BITCOIN_FUNDING_TIMEOUT} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/GeneratorsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/GeneratorsSpec.scala index 0112c5a566..8cc3fddf69 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/GeneratorsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/GeneratorsSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import org.scalatest.funsuite.AnyFunSuite import scodec.bits._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/MacSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/MacSpec.scala index 3daa3dfe90..a972b180c5 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/MacSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/MacSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import org.scalatest.funsuite.AnyFunSuite import scodec.bits.HexStringSyntax diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/RandomSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/RandomSpec.scala index 29c4917c59..4d9a022f79 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/RandomSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/RandomSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.crypto.RandomSpec.entropyScore import org.bouncycastle.crypto.engines.ChaCha7539Engine import org.bouncycastle.crypto.params.{KeyParameter, ParametersWithIV} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/ShaChainSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/ShaChainSpec.scala index 3c16846cc8..56e3e3e763 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/ShaChainSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/ShaChainSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import org.scalatest.funsuite.AnyFunSuite import scodec.bits._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/SphinxSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/SphinxSpec.scala index c423ca0a79..e6b7af759d 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/SphinxSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/SphinxSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.crypto -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.crypto.Sphinx.RouteBlinding.BlindedRoute import fr.acinq.eclair.wire.protocol import fr.acinq.eclair.wire.protocol._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManagerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManagerSpec.scala index a3b51a684e..45c587bc70 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManagerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalChannelKeyManagerSpec.scala @@ -18,9 +18,9 @@ package fr.acinq.eclair.crypto.keymanager import java.io.File import java.nio.file.Files -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.DeterministicWallet.KeyPath -import fr.acinq.bitcoin.{Block, ByteVector32, DeterministicWallet} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.DeterministicWallet.KeyPath +import fr.acinq.bitcoinscala.{Block, ByteVector32, DeterministicWallet} import fr.acinq.eclair.Setup.Seeds import fr.acinq.eclair.channel.ChannelConfig import fr.acinq.eclair.crypto.ShaChain diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManagerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManagerSpec.scala index f6d810324e..859850ee26 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManagerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/crypto/keymanager/LocalNodeKeyManagerSpec.scala @@ -19,9 +19,9 @@ package fr.acinq.eclair.crypto.keymanager import java.io.File import java.nio.file.Files -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.DeterministicWallet.KeyPath -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.DeterministicWallet.KeyPath +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto} import fr.acinq.eclair.Setup.Seeds import fr.acinq.eclair.{NodeParams, TestUtils} import org.scalatest.funsuite.AnyFunSuite diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/AuditDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/AuditDbSpec.scala index d61f98d641..0c4241edc6 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/AuditDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/AuditDbSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{ByteVector32, SatoshiLong, Script, Transaction, TxOut} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{ByteVector32, SatoshiLong, Script, Transaction, TxOut} import fr.acinq.eclair.TestDatabases.{TestPgDatabases, TestSqliteDatabases, migrationCheck} import fr.acinq.eclair._ import fr.acinq.eclair.channel.Helpers.Closing.MutualClose diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/ChannelsDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/ChannelsDbSpec.scala index 111c1e417d..a1a5c60aec 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/ChannelsDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/ChannelsDbSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.db import com.softwaremill.quicklens._ -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.TestDatabases.{TestPgDatabases, TestSqliteDatabases, migrationCheck} import fr.acinq.eclair.db.ChannelsDbSpec.{getPgTimestamp, getTimestamp, testCases} import fr.acinq.eclair.db.DbEventHandler.ChannelEvent diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/NetworkDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/NetworkDbSpec.scala index 6a32942112..02a6e920c3 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/NetworkDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/NetworkDbSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, Crypto, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Crypto, Satoshi, SatoshiLong} import fr.acinq.eclair.FeatureSupport.Optional import fr.acinq.eclair.Features.VariableLengthOnion import fr.acinq.eclair.TestDatabases._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/PaymentsDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/PaymentsDbSpec.scala index e48e245af7..a4a7b17c8b 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/PaymentsDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/PaymentsDbSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto} import fr.acinq.eclair.TestDatabases.{TestPgDatabases, TestSqliteDatabases, forAllDbs, migrationCheck} import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.db.jdbc.JdbcUtils.{setVersion, using} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/PeersDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/PeersDbSpec.scala index b1865e3431..54a3e0b716 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/PeersDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/PeersDbSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.TestDatabases.{TestPgDatabases, TestSqliteDatabases} import fr.acinq.eclair.db.pg.PgPeersDb import fr.acinq.eclair.db.sqlite.SqlitePeersDb diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/PendingCommandsDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/PendingCommandsDbSpec.scala index b0b7d4530f..c88f788f24 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/PendingCommandsDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/PendingCommandsDbSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.TestDatabases.{TestPgDatabases, TestSqliteDatabases} import fr.acinq.eclair.channel.{CMD_FAIL_HTLC, CMD_FAIL_MALFORMED_HTLC, CMD_FULFILL_HTLC, HtlcSettlementCommand} import fr.acinq.eclair.db.pg.PgPendingCommandsDb diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteFeeratesDbSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteFeeratesDbSpec.scala index e280b622c4..1081b0f91d 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteFeeratesDbSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/db/SqliteFeeratesDbSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.db -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.fee.{FeeratePerKB, FeeratesPerKB} import fr.acinq.eclair.db.pg.PgUtils.setVersion diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/ChannelIntegrationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/ChannelIntegrationSpec.scala index 4b343da235..d1b04a56ab 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/ChannelIntegrationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/ChannelIntegrationSpec.scala @@ -21,8 +21,9 @@ import akka.pattern.pipe import akka.testkit.TestProbe import com.google.common.net.HostAndPort import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Base58, Base58Check, Bech32, Block, BtcDouble, ByteVector32, Crypto, OP_0, OP_CHECKSIG, OP_DUP, OP_EQUAL, OP_EQUALVERIFY, OP_HASH160, OP_PUSHDATA, OutPoint, SatoshiLong, Script, ScriptFlags, Transaction} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, BtcDouble, ByteVector32, Crypto, OP_0, OP_CHECKSIG, OP_DUP, OP_EQUAL, OP_EQUALVERIFY, OP_HASH160, OP_PUSHDATA, OutPoint, SatoshiLong, Script, Transaction} +import fr.acinq.bitcoin.{Base58, Base58Check, Bech32, ScriptFlags} import fr.acinq.eclair.blockchain.bitcoind.BitcoindService.BitcoinReq import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient import fr.acinq.eclair.channel._ @@ -69,11 +70,11 @@ abstract class ChannelIntegrationSpec extends IntegrationSpec { */ def scriptPubKeyToAddress(scriptPubKey: ByteVector): String = Script.parse(scriptPubKey) match { case OP_DUP :: OP_HASH160 :: OP_PUSHDATA(pubKeyHash, _) :: OP_EQUALVERIFY :: OP_CHECKSIG :: Nil => - Base58Check.encode(Base58.Prefix.PubkeyAddressTestnet, pubKeyHash) + Base58Check.encode(Base58.Prefix.PubkeyAddressTestnet, pubKeyHash.toArray) case OP_HASH160 :: OP_PUSHDATA(scriptHash, _) :: OP_EQUAL :: Nil => - Base58Check.encode(Base58.Prefix.ScriptAddressTestnet, scriptHash) - case OP_0 :: OP_PUSHDATA(pubKeyHash, _) :: Nil if pubKeyHash.length == 20 => Bech32.encodeWitnessAddress("bcrt", 0, pubKeyHash) - case OP_0 :: OP_PUSHDATA(scriptHash, _) :: Nil if scriptHash.length == 32 => Bech32.encodeWitnessAddress("bcrt", 0, scriptHash) + Base58Check.encode(Base58.Prefix.ScriptAddressTestnet, scriptHash.toArray) + case OP_0 :: OP_PUSHDATA(pubKeyHash, _) :: Nil if pubKeyHash.length == 20 => Bech32.encodeWitnessAddress("bcrt", 0, pubKeyHash.toArray) + case OP_0 :: OP_PUSHDATA(scriptHash, _) :: Nil if scriptHash.length == 32 => Bech32.encodeWitnessAddress("bcrt", 0, scriptHash.toArray) case _ => ??? } diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/IntegrationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/IntegrationSpec.scala index 582f1bf331..0f87331911 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/IntegrationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/IntegrationSpec.scala @@ -20,7 +20,7 @@ import akka.actor.ActorSystem import akka.testkit.{TestKit, TestProbe} import com.google.common.net.HostAndPort import com.typesafe.config.{Config, ConfigFactory} -import fr.acinq.bitcoin.Satoshi +import fr.acinq.bitcoinscala.Satoshi import fr.acinq.eclair.Features._ import fr.acinq.eclair.blockchain.bitcoind.BitcoindService import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/MessageIntegrationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/MessageIntegrationSpec.scala index 17b029d431..bdcc60dd2e 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/MessageIntegrationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/MessageIntegrationSpec.scala @@ -22,7 +22,8 @@ import akka.pattern.pipe import akka.testkit.TestProbe import akka.util.Timeout import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.{ByteVector32, Satoshi, Transaction} +import fr.acinq.bitcoin.Transaction +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{Watch, WatchFundingConfirmed} import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinCoreClient diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/PaymentIntegrationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/PaymentIntegrationSpec.scala index a5f944d07a..ae45ee7e62 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/PaymentIntegrationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/PaymentIntegrationSpec.scala @@ -20,8 +20,8 @@ import akka.actor.ActorRef import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.testkit.TestProbe import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto, SatoshiLong} import fr.acinq.eclair.blockchain.bitcoind.BitcoindService.BitcoinReq import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{Watch, WatchFundingConfirmed} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/integration/PerformanceIntegrationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/integration/PerformanceIntegrationSpec.scala index 9097df797c..aa8db58f25 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/integration/PerformanceIntegrationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/integration/PerformanceIntegrationSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.integration import akka.testkit.TestProbe import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.SatoshiLong import fr.acinq.eclair.{MilliSatoshiLong, TimestampMilli} import fr.acinq.eclair.channel._ import fr.acinq.eclair.payment._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/RustyTestsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/RustyTestsSpec.scala index 0865e8f048..957395583b 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/RustyTestsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/RustyTestsSpec.scala @@ -19,7 +19,7 @@ package fr.acinq.eclair.interop.rustytests import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.actor.{ActorRef, Props} import akka.testkit.{TestFSMRef, TestKit, TestProbe} -import fr.acinq.bitcoin.{ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{ByteVector32, SatoshiLong} import fr.acinq.eclair.TestConstants.{Alice, Bob, TestFeeEstimator} import fr.acinq.eclair.blockchain.DummyOnChainWallet import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/SynchronizationPipe.scala b/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/SynchronizationPipe.scala index 6056097a9f..2e5ced6567 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/SynchronizationPipe.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/interop/rustytests/SynchronizationPipe.scala @@ -21,7 +21,7 @@ import java.util.UUID import java.util.concurrent.CountDownLatch import akka.actor.{Actor, ActorLogging, ActorRef, Stash} -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.channel._ import fr.acinq.eclair.transactions.{IncomingHtlc, OutgoingHtlc} import fr.acinq.eclair.{CltvExpiry, MilliSatoshi, TestConstants, TestUtils} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/io/MessageRelaySpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/io/MessageRelaySpec.scala index 349fb80649..fe0de61fb6 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/io/MessageRelaySpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/io/MessageRelaySpec.scala @@ -21,7 +21,7 @@ import akka.actor.typed.ActorRef import akka.actor.typed.scaladsl.adapter.TypedActorRefOps import akka.testkit.TestProbe import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair.io.MessageRelay._ import fr.acinq.eclair.io.Peer.{PeerInfo, PeerNotFound} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerConnectionSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerConnectionSpec.scala index 07a1ce48be..7c95a28b92 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerConnectionSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerConnectionSpec.scala @@ -18,8 +18,8 @@ package fr.acinq.eclair.io import akka.actor.PoisonPill import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{Block, ByteVector32} -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features.{BasicMultiPartPayment, ChannelRangeQueries, PaymentSecret, VariableLengthOnion} import fr.acinq.eclair.TestConstants._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerSpec.scala index 6c6dcb1b94..2f9d5eded2 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/io/PeerSpec.scala @@ -21,8 +21,8 @@ import akka.actor.typed.scaladsl.adapter.ClassicActorRefOps import akka.actor.{ActorContext, ActorRef, FSM, PoisonPill, Status} import akka.testkit.{TestFSMRef, TestProbe} import com.google.common.net.HostAndPort -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Block, Btc, SatoshiLong, Script} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, Btc, ByteVector32, SatoshiLong, Script} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features._ import fr.acinq.eclair.TestConstants._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/io/ReconnectionTaskSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/io/ReconnectionTaskSpec.scala index f722da9802..d20a255de0 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/io/ReconnectionTaskSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/io/ReconnectionTaskSpec.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.io import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair._ import fr.acinq.eclair.io.Peer.ChannelId import fr.acinq.eclair.io.ReconnectionTask.WaitingData diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/io/SwitchboardSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/io/SwitchboardSpec.scala index 3ec6f4a285..16584b903b 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/io/SwitchboardSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/io/SwitchboardSpec.scala @@ -3,8 +3,8 @@ package fr.acinq.eclair.io import akka.actor.typed.scaladsl.adapter.ClassicActorRefOps import akka.actor.{Actor, ActorContext, ActorRef, Props, Status} import akka.testkit.{TestActorRef, TestProbe} -import fr.acinq.bitcoin.ByteVector64 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector64 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.TestConstants._ import fr.acinq.eclair.channel.ChannelIdAssigned import fr.acinq.eclair.io.Switchboard._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/json/JsonSerializersSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/json/JsonSerializersSpec.scala index 10c546249f..eabc595567 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/json/JsonSerializersSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/json/JsonSerializersSpec.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.json import akka.actor.ActorRef -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Btc, ByteVector32, OutPoint, Satoshi, SatoshiLong, Transaction, TxOut} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Btc, ByteVector32, OutPoint, Satoshi, SatoshiLong, Transaction, TxOut} import fr.acinq.eclair._ import fr.acinq.eclair.balance.CheckBalance import fr.acinq.eclair.balance.CheckBalance.{ClosingBalance, GlobalBalance, MainAndHtlcBalance, PossiblyPublishedMainAndHtlcBalance, PossiblyPublishedMainBalance} @@ -51,7 +51,7 @@ class JsonSerializersSpec extends AnyFunSuite with Matchers { val error = intercept[org.json4s.MappingException] { JsonSerializers.serialization.write(map)(org.json4s.DefaultFormats) } - assert(error.msg.contains("Do not know how to serialize key of type class fr.acinq.bitcoin.OutPoint.")) + assert(error.msg.contains("Do not know how to serialize key of type class fr.acinq.bitcoinscala.OutPoint. Consider implementing a CustomKeySerializer.")) // but it works with our custom key serializer val json = JsonSerializers.serialization.write(map)(org.json4s.DefaultFormats + ByteVectorSerializer + OutPointKeySerializer) @@ -70,7 +70,7 @@ class JsonSerializersSpec extends AnyFunSuite with Matchers { val error = intercept[org.json4s.MappingException] { JsonSerializers.serialization.write(map)(org.json4s.DefaultFormats) } - assert(error.msg.contains("Do not know how to serialize key of type class fr.acinq.bitcoin.OutPoint.")) + assert(error.msg.contains("Do not know how to serialize key of type class fr.acinq.bitcoinscala.OutPoint. Consider implementing a CustomKeySerializer.")) // but it works with our custom key serializer val json = JsonSerializers.serialization.write(map)(org.json4s.DefaultFormats + TransactionSerializer + OutPointKeySerializer) diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/message/OnionMessagesSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/message/OnionMessagesSpec.scala index 7ec79bb8c0..0d08b05cda 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/message/OnionMessagesSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/message/OnionMessagesSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.message -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, Crypto} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto} import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.crypto.Sphinx.PacketAndSecrets import fr.acinq.eclair.message.OnionMessages._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartHandlerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartHandlerSpec.scala index 697d2789d9..7625614e02 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartHandlerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartHandlerSpec.scala @@ -19,7 +19,7 @@ package fr.acinq.eclair.payment import akka.actor.ActorRef import akka.actor.Status.Failure import akka.testkit.{TestActorRef, TestProbe} -import fr.acinq.bitcoin.{ByteVector32, Crypto} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features._ import fr.acinq.eclair.TestConstants.Alice diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentFSMSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentFSMSpec.scala index f42ef970d5..62e5c20c1b 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentFSMSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentFSMSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.payment import akka.actor.FSM.{CurrentState, SubscribeTransitionCallBack, Transition} import akka.testkit.{TestActorRef, TestProbe} -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.payment.receive.MultiPartPaymentFSM import fr.acinq.eclair.payment.receive.MultiPartPaymentFSM._ import fr.acinq.eclair.wire.protocol diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentLifecycleSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentLifecycleSpec.scala index b31abd0fe8..05e618cb66 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentLifecycleSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/MultiPartPaymentLifecycleSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.payment import akka.actor.{ActorContext, ActorRef, Status} import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto, SatoshiLong} +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto, SatoshiLong} import fr.acinq.eclair._ import fr.acinq.eclair.channel.{ChannelUnavailable, HtlcsTimedoutDownstream, RemoteCannotAffordFeesForNewHtlc} import fr.acinq.eclair.crypto.Sphinx diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentInitiatorSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentInitiatorSpec.scala index e604404eb7..3e28f7923f 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentInitiatorSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentInitiatorSpec.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.payment import akka.actor.{ActorContext, ActorRef} import akka.testkit.{TestActorRef, TestProbe} -import fr.acinq.bitcoin.Block +import fr.acinq.bitcoinscala.Block import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features._ import fr.acinq.eclair.UInt64.Conversions._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentLifecycleSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentLifecycleSpec.scala index 30a3d5a09d..cc37bd6588 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentLifecycleSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentLifecycleSpec.scala @@ -19,9 +19,9 @@ package fr.acinq.eclair.payment import akka.actor.ActorRef import akka.actor.FSM.{CurrentState, SubscribeTransitionCallBack, Transition} import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.Script.{pay2wsh, write} -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto, SatoshiLong, Transaction, TxOut} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.Script.{pay2wsh, write} +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto, SatoshiLong, Transaction, TxOut} import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{UtxoStatus, ValidateRequest, ValidateResult, WatchExternalChannelSpent} import fr.acinq.eclair.channel.Register.{ForwardShortId, ForwardShortIdFailure} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentPacketSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentPacketSpec.scala index 3ed63b572a..b6c0a2f76c 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentPacketSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentPacketSpec.scala @@ -17,9 +17,9 @@ package fr.acinq.eclair.payment import akka.actor.ActorRef -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.DeterministicWallet.ExtendedPrivateKey -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto, DeterministicWallet, OutPoint, Satoshi, SatoshiLong, TxOut} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.DeterministicWallet.ExtendedPrivateKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto, DeterministicWallet, OutPoint, Satoshi, SatoshiLong, TxOut} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features._ import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentRequestSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentRequestSpec.scala index 7da8dcbe96..7ad5dad6a3 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentRequestSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PaymentRequestSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.payment -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Block, BtcDouble, ByteVector32, Crypto, MilliBtcDouble, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, BtcDouble, ByteVector32, Crypto, MilliBtcDouble, SatoshiLong} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features.{PaymentMetadata, PaymentSecret, _} import fr.acinq.eclair.payment.PaymentRequest._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PostRestartHtlcCleanerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PostRestartHtlcCleanerSpec.scala index 496c3c92cb..78f27f8971 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/PostRestartHtlcCleanerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/PostRestartHtlcCleanerSpec.scala @@ -20,8 +20,8 @@ import akka.Done import akka.actor.ActorRef import akka.event.LoggingAdapter import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto, Satoshi, SatoshiLong} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.WatchTxConfirmedTriggered import fr.acinq.eclair.channel._ import fr.acinq.eclair.channel.states.ChannelStateTestsHelperMethods diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/ChannelRelayerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/ChannelRelayerSpec.scala index eb1108fa5b..6e17904cac 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/ChannelRelayerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/ChannelRelayerSpec.scala @@ -21,8 +21,8 @@ import akka.actor.typed import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.adapter.TypedActorRefOps import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, Crypto, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Crypto, Satoshi, SatoshiLong} import fr.acinq.eclair.TestConstants.emptyOnionPacket import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/NodeRelayerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/NodeRelayerSpec.scala index b80b16f0b7..ac8ab4a1db 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/NodeRelayerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/NodeRelayerSpec.scala @@ -23,7 +23,7 @@ import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.ActorContext import akka.actor.typed.scaladsl.adapter._ import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.{Block, ByteVector32, Crypto} +import fr.acinq.bitcoinscala.{Block, ByteVector32, Crypto} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features.{BasicMultiPartPayment, PaymentSecret, VariableLengthOnion} import fr.acinq.eclair.channel.{CMD_FAIL_HTLC, CMD_FULFILL_HTLC, Register} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/RelayerSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/RelayerSpec.scala index 890fa0bb39..20564fc5d5 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/RelayerSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/RelayerSpec.scala @@ -22,7 +22,7 @@ import akka.actor.typed.eventstream.EventStream import akka.actor.typed.scaladsl.Behaviors import akka.actor.typed.scaladsl.adapter.{TypedActorContextOps, TypedActorRefOps} import com.typesafe.config.ConfigFactory -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.channel._ import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.payment.IncomingPaymentPacket.FinalPacket diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsBatchValidationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsBatchValidationSpec.scala index 802be23982..f4fc3ceaab 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsBatchValidationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsBatchValidationSpec.scala @@ -20,8 +20,8 @@ import akka.actor.ActorSystem import akka.pattern.pipe import akka.testkit.TestProbe import com.softwaremill.sttp.okhttp.OkHttpFutureBackend -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{Block, Satoshi, SatoshiLong, Script, Transaction} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{Block, Satoshi, SatoshiLong, Script, Transaction} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.ValidateResult import fr.acinq.eclair.blockchain.bitcoind.rpc.BitcoinJsonRPCAuthMethod.UserPassword import fr.acinq.eclair.blockchain.bitcoind.rpc.{BasicBitcoinJsonRPCClient, BitcoinCoreClient} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsSpec.scala index c9fc22c085..7717770ef7 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/AnnouncementsSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.router -import fr.acinq.bitcoin.Block -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.Block +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.TestConstants.Alice import fr.acinq.eclair._ import fr.acinq.eclair.router.Announcements._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/BaseRouterSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/BaseRouterSpec.scala index 7cafc35b27..a07b7aeb37 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/BaseRouterSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/BaseRouterSpec.scala @@ -19,9 +19,9 @@ package fr.acinq.eclair.router import akka.actor.ActorRef import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.Script.{pay2wsh, write} -import fr.acinq.bitcoin.{Block, ByteVector32, SatoshiLong, Transaction, TxOut} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.Script.{pay2wsh, write} +import fr.acinq.bitcoinscala.{Block, ByteVector32, SatoshiLong, Transaction, TxOut} import fr.acinq.eclair.TestConstants.Alice import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{UtxoStatus, ValidateRequest, ValidateResult, WatchExternalChannelSpent} import fr.acinq.eclair.channel.{CommitmentsSpec, LocalChannelUpdate} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/ChannelRangeQueriesSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/ChannelRangeQueriesSpec.scala index 9bd6348636..8108378536 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/ChannelRangeQueriesSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/ChannelRangeQueriesSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.router -import fr.acinq.bitcoin.{Block, ByteVector32, SatoshiLong} +import fr.acinq.bitcoinscala.{Block, ByteVector32, SatoshiLong} import fr.acinq.eclair.router.Router.{ChannelMeta, PublicChannel} import fr.acinq.eclair.router.Sync._ import fr.acinq.eclair.wire.protocol.QueryChannelRangeTlv.QueryFlags diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/GraphSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/GraphSpec.scala index c64e19589e..d5f7d981e7 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/GraphSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/GraphSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.router -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.SatoshiLong +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.SatoshiLong import fr.acinq.eclair.payment.relay.Relayer.RelayFees import fr.acinq.eclair.router.Graph.GraphStructure.{DirectedGraph, GraphEdge} import fr.acinq.eclair.router.Graph.{HeuristicsConstants, yenKshortestPaths} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/RouteCalculationSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/RouteCalculationSpec.scala index 089856e7be..18f2d25772 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/RouteCalculationSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/RouteCalculationSpec.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.router import com.softwaremill.quicklens.ModifyPimp -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, Satoshi, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Satoshi, SatoshiLong} import fr.acinq.eclair.payment.PaymentRequest.ExtraHop import fr.acinq.eclair.payment.relay.Relayer.RelayFees import fr.acinq.eclair.router.Graph.GraphStructure.DirectedGraph.graphEdgeToHop diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/RouterSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/RouterSpec.scala index e484966e09..d388a34248 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/RouterSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/RouterSpec.scala @@ -19,9 +19,9 @@ package fr.acinq.eclair.router import akka.actor.Status import akka.actor.Status.Failure import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.Script.{pay2wsh, write} -import fr.acinq.bitcoin.{Block, SatoshiLong, Transaction, TxOut} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.Script.{pay2wsh, write} +import fr.acinq.bitcoinscala.{Block, SatoshiLong, Transaction, TxOut} import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher._ import fr.acinq.eclair.channel.{AvailableBalanceChanged, CommitmentsSpec, LocalChannelUpdate} import fr.acinq.eclair.crypto.TransportHandler diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/router/RoutingSyncSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/router/RoutingSyncSpec.scala index f3fccd4a46..3ae61ea68e 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/router/RoutingSyncSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/router/RoutingSyncSpec.scala @@ -19,8 +19,8 @@ package fr.acinq.eclair.router import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.actor.{Actor, Props} import akka.testkit.{TestFSMRef, TestProbe} -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Block, ByteVector32, Satoshi, Script, Transaction, TxIn, TxOut} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32, Satoshi, Script, Transaction, TxIn, TxOut} import fr.acinq.eclair.TestConstants.{Alice, Bob} import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{UtxoStatus, ValidateRequest, ValidateResult} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/transactions/CommitmentSpecSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/transactions/CommitmentSpecSpec.scala index de93b261c0..093b40c880 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/transactions/CommitmentSpecSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/transactions/CommitmentSpecSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.transactions -import fr.acinq.bitcoin.{ByteVector32, Crypto, SatoshiLong} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto, SatoshiLong} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.wire.protocol.{UpdateAddHtlc, UpdateFailHtlc, UpdateFulfillHtlc} import fr.acinq.eclair.{CltvExpiry, MilliSatoshi, MilliSatoshiLong, TestConstants, randomBytes32} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TestVectorsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TestVectorsSpec.scala index 67e7fe4242..36672901b5 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TestVectorsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TestVectorsSpec.scala @@ -16,8 +16,9 @@ package fr.acinq.eclair.transactions -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{ByteVector32, Crypto, SatoshiLong, Script, ScriptFlags, Transaction} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{ByteVector32, Crypto, SatoshiLong, Script, Transaction} +import fr.acinq.bitcoin.ScriptFlags import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel.ChannelFeatures import fr.acinq.eclair.channel.Helpers.Funding diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TransactionsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TransactionsSpec.scala index 59b747503a..793a9e8c16 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TransactionsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/transactions/TransactionsSpec.scala @@ -16,9 +16,10 @@ package fr.acinq.eclair.transactions -import fr.acinq.bitcoin.Crypto.{PrivateKey, ripemd160, sha256} -import fr.acinq.bitcoin.Script.{pay2wpkh, pay2wsh, write} -import fr.acinq.bitcoin.{Btc, ByteVector32, Crypto, MilliBtc, MilliBtcDouble, OutPoint, Protocol, SIGHASH_ALL, SIGHASH_ANYONECANPAY, SIGHASH_NONE, SIGHASH_SINGLE, Satoshi, SatoshiLong, Script, ScriptWitness, Transaction, TxIn, TxOut, millibtc2satoshi} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, ripemd160, sha256} +import fr.acinq.bitcoinscala.Script.{pay2wpkh, pay2wsh, write} +import fr.acinq.bitcoinscala.{Btc, ByteVector32, Crypto, MilliBtc, MilliBtcDouble, OutPoint, Protocol, Satoshi, SatoshiLong, Script, ScriptWitness, Transaction, TxIn, TxOut, millibtc2satoshi} +import fr.acinq.bitcoin.SigHash._ import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel.Helpers.Funding diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/ChannelCodecsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/ChannelCodecsSpec.scala index fdd1b7953b..9f610e44b2 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/ChannelCodecsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/ChannelCodecsSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.internal.channel -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, Crypto, DeterministicWallet, Satoshi, SatoshiLong, Transaction, TxIn} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, Crypto, DeterministicWallet, Satoshi, SatoshiLong, Transaction, TxIn} import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel.Helpers.Funding diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0Spec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0Spec.scala index c488ee882b..fe97a0abf6 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0Spec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version0/ChannelCodecs0Spec.scala @@ -1,6 +1,6 @@ package fr.acinq.eclair.wire.internal.channel.version0 -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.transactions.{IncomingHtlc, OutgoingHtlc} import fr.acinq.eclair.wire.internal.channel.version0.ChannelCodecs0.Codecs._ import fr.acinq.eclair.wire.internal.channel.version0.ChannelTypes0.ChannelVersion diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1Spec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1Spec.scala index bcd1c32adc..5f9172dc67 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1Spec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version1/ChannelCodecs1Spec.scala @@ -2,9 +2,9 @@ package fr.acinq.eclair.wire.internal.channel.version1 import akka.actor.ActorSystem import akka.testkit.TestProbe -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.DeterministicWallet.KeyPath -import fr.acinq.bitcoin.{DeterministicWallet, OutPoint, Satoshi, SatoshiLong, Script} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.DeterministicWallet.KeyPath +import fr.acinq.bitcoinscala.{DeterministicWallet, OutPoint, Satoshi, SatoshiLong, Script} import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel.{LocalParams, Origin, RemoteParams} import fr.acinq.eclair.transactions.{CommitmentSpec, DirectedHtlc, IncomingHtlc, OutgoingHtlc} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2Spec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2Spec.scala index 4fddb6e55c..cf379c4de6 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2Spec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version2/ChannelCodecs2Spec.scala @@ -1,6 +1,6 @@ package fr.acinq.eclair.wire.internal.channel.version2 -import fr.acinq.bitcoin.{ByteVector64, OutPoint, Transaction} +import fr.acinq.bitcoinscala.{ByteVector64, OutPoint, Transaction} import fr.acinq.eclair.channel.{ChannelConfig, ChannelFeatures, HtlcTxAndRemoteSig} import fr.acinq.eclair.wire.internal.channel.version2.ChannelCodecs2.Codecs._ import fr.acinq.eclair.wire.internal.channel.version2.ChannelCodecs2.stateDataCodec diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3Spec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3Spec.scala index 0355694819..aac66923c9 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3Spec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/internal/channel/version3/ChannelCodecs3Spec.scala @@ -15,7 +15,7 @@ */ package fr.acinq.eclair.wire.internal.channel.version3 -import fr.acinq.bitcoin.{ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features.{ChannelRangeQueries, PaymentSecret, VariableLengthOnion} import fr.acinq.eclair.channel._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/CommonCodecsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/CommonCodecsSpec.scala index 05fa6eb687..d4244c436f 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/CommonCodecsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/CommonCodecsSpec.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.wire.protocol import com.google.common.net.InetAddresses -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin._ +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala._ import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.crypto.Hmac256 import fr.acinq.eclair.wire.protocol.CommonCodecs._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/ExtendedQueriesCodecsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/ExtendedQueriesCodecsSpec.scala index bec1abf9bd..ed71d10421 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/ExtendedQueriesCodecsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/ExtendedQueriesCodecsSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64} import fr.acinq.eclair.router.Sync import fr.acinq.eclair.wire.protocol.LightningMessageCodecs._ import fr.acinq.eclair.wire.protocol.ReplyChannelRangeTlv._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/FailureMessageCodecsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/FailureMessageCodecsSpec.scala index 2d7acc1dbb..d24ab67e11 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/FailureMessageCodecsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/FailureMessageCodecsSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64} import fr.acinq.eclair.crypto.Hmac256 import fr.acinq.eclair.wire.protocol.FailureMessageCodecs._ import fr.acinq.eclair.{CltvExpiry, CltvExpiryDelta, MilliSatoshi, MilliSatoshiLong, ShortChannelId, TimestampSecond, TimestampSecondLong, UInt64, randomBytes32, randomBytes64} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/LightningMessageCodecsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/LightningMessageCodecsSpec.scala index 8fcbca9e59..c642dca8e1 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/LightningMessageCodecsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/LightningMessageCodecsSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, SatoshiLong} import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.fee.FeeratePerKw import fr.acinq.eclair.channel.ChannelTypes diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/MessageOnionCodecsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/MessageOnionCodecsSpec.scala index 3c88f2adda..85a370dd65 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/MessageOnionCodecsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/MessageOnionCodecsSpec.scala @@ -1,7 +1,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.crypto.Sphinx.RouteBlinding import fr.acinq.eclair.wire.protocol.MessageOnion._ import fr.acinq.eclair.wire.protocol.MessageOnionCodecs._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/PaymentOnionSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/PaymentOnionSpec.scala index 98cbb4b660..5a8b6707a5 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/PaymentOnionSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/PaymentOnionSpec.scala @@ -16,8 +16,8 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.UInt64.Conversions._ import fr.acinq.eclair.payment.PaymentRequest.ExtraHop import fr.acinq.eclair.wire.protocol.OnionPaymentPayloadTlv._ diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/RouteBlindingSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/RouteBlindingSpec.scala index 67eaea0dd7..f8c073ad51 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/RouteBlindingSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/RouteBlindingSpec.scala @@ -1,6 +1,6 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.crypto.Sphinx import fr.acinq.eclair.wire.protocol.RouteBlindingEncryptedDataTlv._ import fr.acinq.eclair.{ShortChannelId, UInt64, randomKey} diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/TlvCodecsSpec.scala b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/TlvCodecsSpec.scala index df4b75264a..39d815bb97 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/TlvCodecsSpec.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/wire/protocol/TlvCodecsSpec.scala @@ -16,7 +16,7 @@ package fr.acinq.eclair.wire.protocol -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.UInt64.Conversions._ import fr.acinq.eclair.wire.protocol.CommonCodecs.{publicKey, shortchannelid, uint64, varint} import fr.acinq.eclair.wire.protocol.TlvCodecs._ diff --git a/eclair-front/pom.xml b/eclair-front/pom.xml index 5f92d0f0c2..2d22f2bf4f 100644 --- a/eclair-front/pom.xml +++ b/eclair-front/pom.xml @@ -21,7 +21,7 @@ fr.acinq.eclair eclair_2.13 - 0.6.3-SNAPSHOT + 0.6.3-KMP-SNAPSHOT eclair-front_2.13 diff --git a/eclair-front/src/main/scala/fr/acinq/eclair/FrontSetup.scala b/eclair-front/src/main/scala/fr/acinq/eclair/FrontSetup.scala index 23736eddd2..fed21e48c1 100644 --- a/eclair-front/src/main/scala/fr/acinq/eclair/FrontSetup.scala +++ b/eclair-front/src/main/scala/fr/acinq/eclair/FrontSetup.scala @@ -24,7 +24,7 @@ import akka.pattern.ask import akka.util.Timeout import com.amazonaws.services.secretsmanager.AWSSecretsManagerClient import com.amazonaws.services.secretsmanager.model.GetSecretValueRequest -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} import fr.acinq.eclair.crypto.Noise.KeyPair import fr.acinq.eclair.crypto.keymanager.LocalNodeKeyManager import fr.acinq.eclair.io.Switchboard.{GetRouterPeerConf, RouterPeerConf} diff --git a/eclair-front/src/main/scala/fr/acinq/eclair/router/FrontRouter.scala b/eclair-front/src/main/scala/fr/acinq/eclair/router/FrontRouter.scala index a3a7ea1d5b..e9acd54f52 100644 --- a/eclair-front/src/main/scala/fr/acinq/eclair/router/FrontRouter.scala +++ b/eclair-front/src/main/scala/fr/acinq/eclair/router/FrontRouter.scala @@ -20,8 +20,8 @@ import akka.Done import akka.actor.{ActorRef, Props} import akka.event.Logging.MDC import akka.event.LoggingAdapter -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.Logs.LogCategory import fr.acinq.eclair.crypto.TransportHandler import fr.acinq.eclair.io.Peer.PeerRoutingMessage diff --git a/eclair-front/src/test/scala/fr/acinq/eclair/router/FrontRouterSpec.scala b/eclair-front/src/test/scala/fr/acinq/eclair/router/FrontRouterSpec.scala index e2005616cf..22c99f54c0 100644 --- a/eclair-front/src/test/scala/fr/acinq/eclair/router/FrontRouterSpec.scala +++ b/eclair-front/src/test/scala/fr/acinq/eclair/router/FrontRouterSpec.scala @@ -19,9 +19,9 @@ package fr.acinq.eclair.router import akka.actor.typed.scaladsl.adapter.actorRefAdapter import akka.actor.ActorSystem import akka.testkit.{TestKit, TestProbe} -import fr.acinq.bitcoin.Crypto.PrivateKey -import fr.acinq.bitcoin.Script.{pay2wsh, write} -import fr.acinq.bitcoin.{Block, SatoshiLong, Transaction, TxOut} +import fr.acinq.bitcoinscala.Crypto.PrivateKey +import fr.acinq.bitcoinscala.Script.{pay2wsh, write} +import fr.acinq.bitcoinscala.{Block, SatoshiLong, Transaction, TxOut} import fr.acinq.eclair.TestConstants.Alice import fr.acinq.eclair._ import fr.acinq.eclair.blockchain.bitcoind.ZmqWatcher.{UtxoStatus, ValidateRequest, ValidateResult} diff --git a/eclair-node/pom.xml b/eclair-node/pom.xml index a46b4adbd5..98af849928 100644 --- a/eclair-node/pom.xml +++ b/eclair-node/pom.xml @@ -21,7 +21,7 @@ fr.acinq.eclair eclair_2.13 - 0.6.3-SNAPSHOT + 0.6.3-KMP-SNAPSHOT eclair-node_2.13 diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/directives/ExtraDirectives.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/directives/ExtraDirectives.scala index 4af2e3c6f8..1f60aa0e8e 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/directives/ExtraDirectives.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/directives/ExtraDirectives.scala @@ -21,8 +21,8 @@ import akka.http.scaladsl.marshalling.ToResponseMarshaller import akka.http.scaladsl.model.StatusCodes.NotFound import akka.http.scaladsl.model.{ContentTypes, HttpResponse} import akka.http.scaladsl.server.{Directive1, Directives, MalformedFormFieldRejection, Route} -import fr.acinq.bitcoin.ByteVector32 -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.ByteVector32 +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.ApiTypes.ChannelIdentifier import fr.acinq.eclair.api.serde.FormParamExtractors._ import fr.acinq.eclair.api.serde.JsonSupport._ diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Channel.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Channel.scala index 4ac5155d04..6ac9fe2173 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Channel.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Channel.scala @@ -18,7 +18,7 @@ package fr.acinq.eclair.api.handlers import akka.http.scaladsl.server.{MalformedFormFieldRejection, Route} import akka.util.Timeout -import fr.acinq.bitcoin.{Satoshi, Script} +import fr.acinq.bitcoinscala.{Satoshi, Script} import fr.acinq.eclair.MilliSatoshi import fr.acinq.eclair.api.Service import fr.acinq.eclair.api.directives.EclairDirectives diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Invoice.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Invoice.scala index 94dd48e31c..b3066ec1e8 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Invoice.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Invoice.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.api.handlers import akka.http.scaladsl.server.Route -import fr.acinq.bitcoin.ByteVector32 +import fr.acinq.bitcoinscala.ByteVector32 import fr.acinq.eclair.api.Service import fr.acinq.eclair.api.directives.EclairDirectives import fr.acinq.eclair.api.serde.FormParamExtractors._ diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Message.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Message.scala index 975a882608..b01237beb4 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Message.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Message.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.api.handlers import akka.http.scaladsl.server.{MalformedFormFieldRejection, Route} -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.api.Service import fr.acinq.eclair.api.directives.EclairDirectives import fr.acinq.eclair.api.serde.FormParamExtractors._ diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/OnChain.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/OnChain.scala index ee6fad9487..649a98fc80 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/OnChain.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/OnChain.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.api.handlers import akka.http.scaladsl.server.Route -import fr.acinq.bitcoin.Satoshi +import fr.acinq.bitcoinscala.Satoshi import fr.acinq.eclair.api.Service import fr.acinq.eclair.api.directives.EclairDirectives import fr.acinq.eclair.api.serde.FormParamExtractors._ diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/PathFinding.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/PathFinding.scala index 48cc596681..1dfa72485c 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/PathFinding.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/PathFinding.scala @@ -17,7 +17,7 @@ package fr.acinq.eclair.api.handlers import akka.http.scaladsl.server.{MalformedFormFieldRejection, Route} -import fr.acinq.bitcoin.Crypto.PublicKey +import fr.acinq.bitcoinscala.Crypto.PublicKey import fr.acinq.eclair.api.Service import fr.acinq.eclair.api.directives.{EclairDirectives, RouteFormat} import fr.acinq.eclair.api.serde.FormParamExtractors._ diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Payment.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Payment.scala index 67f341ec71..4cd620ed98 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Payment.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/handlers/Payment.scala @@ -17,8 +17,8 @@ package fr.acinq.eclair.api.handlers import akka.http.scaladsl.server.{MalformedFormFieldRejection, Route} -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.api.Service import fr.acinq.eclair.api.directives.EclairDirectives import fr.acinq.eclair.api.serde.FormParamExtractors.{pubkeyListUnmarshaller, _} diff --git a/eclair-node/src/main/scala/fr/acinq/eclair/api/serde/FormParamExtractors.scala b/eclair-node/src/main/scala/fr/acinq/eclair/api/serde/FormParamExtractors.scala index 7606a92277..e6514cc44f 100644 --- a/eclair-node/src/main/scala/fr/acinq/eclair/api/serde/FormParamExtractors.scala +++ b/eclair-node/src/main/scala/fr/acinq/eclair/api/serde/FormParamExtractors.scala @@ -18,8 +18,8 @@ package fr.acinq.eclair.api.serde import akka.http.scaladsl.unmarshalling.Unmarshaller import akka.util.Timeout -import fr.acinq.bitcoin.Crypto.PublicKey -import fr.acinq.bitcoin.{ByteVector32, Satoshi} +import fr.acinq.bitcoinscala.Crypto.PublicKey +import fr.acinq.bitcoinscala.{ByteVector32, Satoshi} import fr.acinq.eclair.api.directives.RouteFormat import fr.acinq.eclair.api.serde.JsonSupport._ import fr.acinq.eclair.blockchain.fee.FeeratePerByte diff --git a/eclair-node/src/test/scala/fr/acinq/eclair/api/ApiServiceSpec.scala b/eclair-node/src/test/scala/fr/acinq/eclair/api/ApiServiceSpec.scala index e6fc7f14b5..65063c3b6e 100644 --- a/eclair-node/src/test/scala/fr/acinq/eclair/api/ApiServiceSpec.scala +++ b/eclair-node/src/test/scala/fr/acinq/eclair/api/ApiServiceSpec.scala @@ -24,8 +24,8 @@ import akka.http.scaladsl.server.Route import akka.http.scaladsl.testkit.{RouteTestTimeout, ScalatestRouteTest, WSProbe} import akka.util.Timeout import de.heikoseeberger.akkahttpjson4s.Json4sSupport -import fr.acinq.bitcoin.Crypto.{PrivateKey, PublicKey} -import fr.acinq.bitcoin.{Block, ByteVector32, ByteVector64, SatoshiLong} +import fr.acinq.bitcoinscala.Crypto.{PrivateKey, PublicKey} +import fr.acinq.bitcoinscala.{Block, ByteVector32, ByteVector64, SatoshiLong} import fr.acinq.eclair.ApiTypes.ChannelIdentifier import fr.acinq.eclair.FeatureSupport.{Mandatory, Optional} import fr.acinq.eclair.Features.{ChannelRangeQueriesExtended, OptionDataLossProtect} diff --git a/pom.xml b/pom.xml index cf6eb02664..2d6269adfe 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ fr.acinq.eclair eclair_2.13 - 0.6.3-SNAPSHOT + 0.6.3-KMP-SNAPSHOT pom @@ -72,7 +72,7 @@ 2.6.15 10.2.4 1.7.2 - 0.19 + 0.20-KMP 24.0-android 2.2.2