Added tests for fundRawTransaction, sendFrom, sendToAddress, sendMany, abandonTransaction, getRawTransaction, getTxOut, getTxOutProof, verifyTxOutProof, and getAddressesByAccount

This commit is contained in:
nkohen 2018-06-15 11:01:59 -05:00
parent 00c2abcd48
commit 6938a882f7
3 changed files with 50 additions and 2 deletions

View file

@ -7,7 +7,7 @@ import org.bitcoins.core.currency.Bitcoins
import org.bitcoins.core.number.{Int32, UInt32, UInt64}
import org.bitcoins.core.protocol.{Address, BitcoinAddress}
import org.bitcoins.core.protocol.script.ScriptPubKey
import org.bitcoins.core.protocol.transaction.{Transaction, TransactionInput}
import org.bitcoins.core.protocol.transaction.{Transaction, TransactionInput, TransactionWitness}
import org.bitcoins.core.wallet.fee.BitcoinFeeUnit
sealed abstract class NetworkResult
@ -429,4 +429,39 @@ case class PeerNetworkInfo(
timeoffset: Int,
pingtime: Option[BigDecimal],
minping: Option[BigDecimal],
pingwait: Option[BigDecimal]) extends NetworkResult
pingwait: Option[BigDecimal]) extends NetworkResult
case class GetRawTransactionResult(
in_active_blockchain: Option[Boolean],
hex: Transaction,
txid: DoubleSha256Digest,
hash: DoubleSha256Digest,
size: Int,
vsize: Int,
version: Int,
locktime: UInt32,
vin: Vector[GetRawTransactionVin],
vout: Vector[RpcTransactionOutput],
blockhash: DoubleSha256Digest,
confirmations: Int,
time: UInt32,
blocktime: UInt32
) extends NetworkResult
case class GetRawTransactionVin(
txid: Option[DoubleSha256Digest],
vout: Option[Int],
scriptSig: Option[GetRawTransactionScriptSig],
sequence: Option[BigDecimal],
txinwitness: Option[Vector[String]] // Should be TransactionWitness?
)
case class GetRawTransactionScriptSig(asm: String, hex: ScriptPubKey) // Right???
case class GetTxOutResult(
bestblock: DoubleSha256Digest,
confirmations: Int,
value: Bitcoins,
scriptPubKey: RpcScriptPubKey,
coinbase: Boolean) extends NetworkResult

View file

@ -223,6 +223,13 @@ object JsonSerializers {
(__ \ "bytesrecv_per_msg").read[Map[String, Int]]
) (Peer)
implicit val getRawTransactionScriptSigReads: Reads[GetRawTransactionScriptSig] = Json.reads[GetRawTransactionScriptSig]
implicit val getRawTransactionVinReads: Reads[GetRawTransactionVin] = Json.reads[GetRawTransactionVin]
implicit val getRawTransactionResultReads: Reads[GetRawTransactionResult] = Json.reads[GetRawTransactionResult]
implicit val getTxOutResultReads: Reads[GetTxOutResult] =
Json.reads[GetTxOutResult]
// Mining Models
implicit val miningInfoReads: Reads[GetMiningInfoResult] =
Json.reads[GetMiningInfoResult]

View file

@ -36,4 +36,10 @@ object JsonWriters {
implicit object UInt32Writes extends Writes[UInt32] {
override def writes(o: UInt32): JsValue = JsNumber(o.toLong)
}
implicit def mapWrites[K,V](keyString: K => String)(implicit vWrites: Writes[V]): Writes[Map[K,V]] = new Writes[Map[K,V]] {
override def writes(o: Map[K, V]): JsValue = {
Json.toJson(o.map{case (k, v) => (keyString(k), v)})
}
}
}