mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-03-03 02:39:18 +01:00
parent
cbd038b514
commit
af70acb03b
10 changed files with 37 additions and 10 deletions
|
@ -5,7 +5,7 @@ import java.nio.file.Files
|
|||
|
||||
import akka.actor.ActorSystem
|
||||
import org.bitcoins.chain.config.ChainAppConfig
|
||||
import org.bitcoins.core.node.NodeApi
|
||||
import org.bitcoins.core.api.NodeApi
|
||||
import org.bitcoins.node.config.NodeAppConfig
|
||||
import org.bitcoins.node.models.Peer
|
||||
import org.bitcoins.node.networking.peer.DataMessageHandler
|
||||
|
|
|
@ -5,6 +5,7 @@ import org.bitcoins.chain.models.{
|
|||
CompactFilterDb,
|
||||
CompactFilterHeaderDb
|
||||
}
|
||||
import org.bitcoins.core.api.ChainQueryApi
|
||||
import org.bitcoins.core.crypto.{DoubleSha256Digest, DoubleSha256DigestBE}
|
||||
import org.bitcoins.core.gcs.FilterHeader
|
||||
import org.bitcoins.core.p2p.CompactFilterMessage
|
||||
|
@ -17,7 +18,7 @@ import scala.concurrent.{ExecutionContext, Future}
|
|||
/**
|
||||
* Entry api to the chain project for adding new things to our blockchain
|
||||
*/
|
||||
trait ChainApi {
|
||||
trait ChainApi extends ChainQueryApi {
|
||||
|
||||
/**
|
||||
* Adds a block header to our chain project
|
||||
|
@ -50,7 +51,7 @@ trait ChainApi {
|
|||
def getBlockCount(implicit ec: ExecutionContext): Future[Int]
|
||||
|
||||
/** Gets the hash of the block that is what we consider "best" */
|
||||
def getBestBlockHash(
|
||||
override def getBestBlockHash(
|
||||
implicit ec: ExecutionContext): Future[DoubleSha256DigestBE]
|
||||
|
||||
/** Gets the best block header we have */
|
||||
|
@ -186,4 +187,10 @@ trait ChainApi {
|
|||
/** Returns the block height of the given block stamp */
|
||||
def getHeightByBlockStamp(blockStamp: BlockStamp)(
|
||||
implicit ec: ExecutionContext): Future[Int]
|
||||
|
||||
/** @inheritdoc */
|
||||
override def getBlockHeight(blockHash: DoubleSha256DigestBE)(
|
||||
implicit ec: ExecutionContext): Future[Option[Int]] =
|
||||
getHeader(blockHash).map(_.map(_.height))
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package org.bitcoins.core.api
|
||||
|
||||
import org.bitcoins.core.crypto.DoubleSha256DigestBE
|
||||
|
||||
import scala.concurrent.{ExecutionContext, Future}
|
||||
|
||||
/**
|
||||
* This trait provides methods to query various types of blockchain data.
|
||||
*/
|
||||
trait ChainQueryApi {
|
||||
|
||||
/** Gets the height of the given block */
|
||||
def getBlockHeight(blockHash: DoubleSha256DigestBE)(
|
||||
implicit ec: ExecutionContext): Future[Option[Int]]
|
||||
|
||||
/** Gets the hash of the block that is what we consider "best" */
|
||||
def getBestBlockHash(
|
||||
implicit ec: ExecutionContext): Future[DoubleSha256DigestBE]
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.bitcoins.core.node
|
||||
package org.bitcoins.core.api
|
||||
|
||||
import org.bitcoins.core.crypto.DoubleSha256Digest
|
||||
import org.bitcoins.core.util.FutureUtil
|
|
@ -100,7 +100,7 @@ val syncF: Future[ChainApi] = configF.flatMap { _ =>
|
|||
import org.bitcoins.wallet.api.LockedWalletApi
|
||||
import org.bitcoins.wallet.api.InitializeWalletSuccess
|
||||
import org.bitcoins.wallet.Wallet
|
||||
import org.bitcoins.core.node.NodeApi
|
||||
import org.bitcoins.core.api.NodeApi
|
||||
val walletF: Future[LockedWalletApi] = configF.flatMap { _ =>
|
||||
Wallet.initialize(NodeApi.NoOp).collect {
|
||||
case InitializeWalletSuccess(wallet) => wallet
|
||||
|
|
|
@ -8,8 +8,8 @@ import org.bitcoins.chain.models.{
|
|||
CompactFilterDAO,
|
||||
CompactFilterHeaderDAO
|
||||
}
|
||||
import org.bitcoins.core.api.NodeApi
|
||||
import org.bitcoins.core.crypto.DoubleSha256Digest
|
||||
import org.bitcoins.core.node.NodeApi
|
||||
import org.bitcoins.core.p2p.{NetworkPayload, TypeIdentifier}
|
||||
import org.bitcoins.core.protocol.BlockStamp
|
||||
import org.bitcoins.core.protocol.script.ScriptPubKey
|
||||
|
|
|
@ -2,9 +2,9 @@ package org.bitcoins.testkit.wallet
|
|||
|
||||
import akka.actor.ActorSystem
|
||||
import com.typesafe.config.{Config, ConfigFactory}
|
||||
import org.bitcoins.core.api.NodeApi
|
||||
import org.bitcoins.core.crypto.DoubleSha256Digest
|
||||
import org.bitcoins.core.currency._
|
||||
import org.bitcoins.core.node.NodeApi
|
||||
import org.bitcoins.core.util.FutureUtil
|
||||
import org.bitcoins.db.AppConfig
|
||||
import org.bitcoins.rpc.client.common.{BitcoindRpcClient, BitcoindVersion}
|
||||
|
|
|
@ -38,7 +38,7 @@ import org.bitcoins.core.hd.HDChainType.External
|
|||
import org.bitcoins.wallet.models.AddressDb
|
||||
import org.bitcoins.wallet.models.AccountDb
|
||||
import _root_.akka.actor.Address
|
||||
import org.bitcoins.core.node.NodeApi
|
||||
import org.bitcoins.core.api.NodeApi
|
||||
import org.scalatest.compatible.Assertion
|
||||
|
||||
import scala.concurrent.ExecutionContext
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
package org.bitcoins.wallet
|
||||
|
||||
import org.bitcoins.core.api.NodeApi
|
||||
import org.bitcoins.core.compat._
|
||||
import org.bitcoins.core.config.BitcoinNetwork
|
||||
import org.bitcoins.core.crypto._
|
||||
import org.bitcoins.core.currency._
|
||||
import org.bitcoins.core.hd._
|
||||
import org.bitcoins.core.node.NodeApi
|
||||
import org.bitcoins.core.protocol.BitcoinAddress
|
||||
import org.bitcoins.core.protocol.transaction._
|
||||
import org.bitcoins.core.wallet.builder.BitcoinTxBuilder
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package org.bitcoins.wallet.api
|
||||
|
||||
import org.bitcoins.core.api.NodeApi
|
||||
import org.bitcoins.core.bloom.BloomFilter
|
||||
import org.bitcoins.core.config.NetworkParameters
|
||||
import org.bitcoins.core.crypto._
|
||||
import org.bitcoins.core.currency.CurrencyUnit
|
||||
import org.bitcoins.core.gcs.{GolombFilter, SimpleFilterMatcher}
|
||||
import org.bitcoins.core.hd.{AddressType, HDPurpose}
|
||||
import org.bitcoins.core.node.NodeApi
|
||||
import org.bitcoins.core.protocol.BitcoinAddress
|
||||
import org.bitcoins.core.protocol.blockchain.{Block, ChainParams}
|
||||
import org.bitcoins.core.protocol.transaction.Transaction
|
||||
|
|
Loading…
Add table
Reference in a new issue