mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-02-23 22:56:52 +01:00
Cleanup and type fixes
This commit is contained in:
parent
260f554ced
commit
c24d61c41a
3 changed files with 106 additions and 12 deletions
|
@ -5,8 +5,10 @@ import java.net.InetAddress
|
|||
import org.bitcoins.core.crypto.{DoubleSha256Digest, ECPublicKey, Sha256Hash160Digest}
|
||||
import org.bitcoins.core.currency.Bitcoins
|
||||
import org.bitcoins.core.number.{Int32, UInt32}
|
||||
import org.bitcoins.core.protocol.Address
|
||||
import org.bitcoins.core.protocol.blockchain.Block
|
||||
import org.bitcoins.core.protocol.{Address, BitcoinAddress}
|
||||
import org.bitcoins.core.protocol.script.ScriptPubKey
|
||||
import org.bitcoins.core.protocol.transaction.TransactionInput
|
||||
|
||||
sealed abstract class NetworkResult
|
||||
|
||||
|
@ -54,7 +56,7 @@ case class GetBlockHeaderResult(
|
|||
mediantime: UInt32,
|
||||
nonce: UInt32,
|
||||
bits: UInt32,
|
||||
difficulty: Double,
|
||||
difficulty: BigDecimal,
|
||||
chainwork: String,
|
||||
previousblockhash: Option[DoubleSha256Digest],
|
||||
nextblockhash: Option[DoubleSha256Digest]) extends NetworkResult
|
||||
|
@ -94,15 +96,14 @@ case class NodeAddress(
|
|||
connected: String
|
||||
) extends NetworkResult
|
||||
|
||||
// Is Double the correct type for priorities? PRIORITY
|
||||
case class GetMemPoolEntryResult(
|
||||
size: Int,
|
||||
fee: Bitcoins,
|
||||
modifiedfee: Bitcoins,
|
||||
time: UInt32,
|
||||
height: Int,
|
||||
startingpriority: Double,
|
||||
currentpriority: Double,
|
||||
startingpriority: BigDecimal,
|
||||
currentpriority: BigDecimal,
|
||||
descendantcount: Int,
|
||||
descendantsize: Int,
|
||||
descendantfees: Int,
|
||||
|
@ -129,4 +130,72 @@ case class GetTxOutSetInfoResult(
|
|||
bytes_serialized: Int,
|
||||
hash_serialized: DoubleSha256Digest,
|
||||
total_amount: Bitcoins
|
||||
) extends NetworkResult
|
||||
) extends NetworkResult
|
||||
|
||||
case class GetBlockResult(
|
||||
hash: DoubleSha256Digest,
|
||||
confirmations: Int,
|
||||
strippedsize: Int,
|
||||
size: Int,
|
||||
weight: Int,
|
||||
height: Int,
|
||||
version: Int,
|
||||
versionHex: Int32,
|
||||
merkleroot: DoubleSha256Digest,
|
||||
tx: Vector[DoubleSha256Digest],
|
||||
time: UInt32,
|
||||
mediantime: UInt32,
|
||||
nonce: UInt32,
|
||||
bits: UInt32,
|
||||
difficulty: BigDecimal,
|
||||
chainwork: String,
|
||||
previousblockhash: Option[DoubleSha256Digest],
|
||||
nextblockhash: Option[DoubleSha256Digest]
|
||||
) extends NetworkResult
|
||||
|
||||
case class GetBlockWithTransactionsResult(
|
||||
hash: DoubleSha256Digest,
|
||||
confirmations: Int,
|
||||
strippedsize: Int,
|
||||
size: Int,
|
||||
weight: Int,
|
||||
height: Int,
|
||||
version: Int,
|
||||
versionHex: Int32,
|
||||
merkleroot: DoubleSha256Digest,
|
||||
tx: Vector[RpcTransaction],
|
||||
time: UInt32,
|
||||
mediantime: UInt32,
|
||||
nonce: UInt32,
|
||||
bits: UInt32,
|
||||
difficulty: BigDecimal,
|
||||
chainwork: String,
|
||||
previousblockhash: Option[DoubleSha256Digest],
|
||||
nextblockhash: Option[DoubleSha256Digest]
|
||||
) extends NetworkResult
|
||||
|
||||
case class RpcTransaction(
|
||||
txid: DoubleSha256Digest,
|
||||
hash: DoubleSha256Digest,
|
||||
version: Int,
|
||||
size: Int,
|
||||
vsize: Int,
|
||||
locktime: UInt32,
|
||||
vin: Vector[TransactionInput],
|
||||
vout: Vector[RpcTransactionOutput],
|
||||
hex: Block
|
||||
) extends NetworkResult
|
||||
|
||||
case class RpcTransactionOutput(
|
||||
value: Bitcoins,
|
||||
n: Int,
|
||||
scriptPubKey: RpcScriptPubKey
|
||||
) extends NetworkResult
|
||||
|
||||
case class RpcScriptPubKey(
|
||||
asm: String,
|
||||
hex: String,
|
||||
reqSigs: Int,
|
||||
scriptType: String,
|
||||
addresses: Vector[BitcoinAddress]
|
||||
) extends NetworkResult
|
|
@ -3,7 +3,7 @@ package org.bitcoins.rpc.jsonmodels
|
|||
import org.bitcoins.core.crypto.{DoubleSha256Digest, Sha256Hash160Digest}
|
||||
import org.bitcoins.core.currency.Bitcoins
|
||||
import org.bitcoins.core.number.UInt32
|
||||
import org.bitcoins.core.protocol.Address
|
||||
import org.bitcoins.core.protocol.{Address, P2PKHAddress, P2SHAddress}
|
||||
import org.bitcoins.core.protocol.script.ScriptPubKey
|
||||
|
||||
sealed abstract class WalletResult
|
||||
|
@ -29,4 +29,12 @@ case class BumpFeeResult(
|
|||
warnings: String
|
||||
) extends WalletResult
|
||||
|
||||
case class CreateMultiSigResult(address: Address, redeemScript: ScriptPubKey) extends WalletResult
|
||||
case class CreateMultiSigResult(address: Address, redeemScript: ScriptPubKey) extends WalletResult
|
||||
|
||||
case class DecodeScriptResult(
|
||||
asm: String,
|
||||
typeOfScript: Option[String],
|
||||
reqSigs: Option[Int],
|
||||
addresses: Option[Vector[P2PKHAddress]],
|
||||
p2sh: P2SHAddress
|
||||
) extends WalletResult
|
|
@ -5,13 +5,14 @@ import java.net.InetAddress
|
|||
import org.bitcoins.core.crypto.{DoubleSha256Digest, ECPublicKey, Sha256Hash160Digest}
|
||||
import org.bitcoins.core.currency.Bitcoins
|
||||
import org.bitcoins.core.number.{Int32, UInt32}
|
||||
import org.bitcoins.core.protocol.{Address, P2PKHAddress, P2SHAddress}
|
||||
import org.bitcoins.core.protocol.blockchain.{Block, BlockHeader}
|
||||
import org.bitcoins.core.protocol.{Address, BitcoinAddress, P2PKHAddress, P2SHAddress}
|
||||
import org.bitcoins.core.protocol.blockchain.{Block, BlockHeader, MerkleBlock}
|
||||
import org.bitcoins.core.protocol.script.ScriptPubKey
|
||||
import org.bitcoins.core.protocol.transaction.{TransactionInput, TransactionOutput}
|
||||
import org.bitcoins.rpc.jsonmodels._
|
||||
import org.bitcoins.rpc.serializers.JsonReaders._
|
||||
import play.api.libs.json.{Json, Reads}
|
||||
import play.api.libs.json.{Json, Reads, __}
|
||||
import play.api.libs.functional.syntax._
|
||||
|
||||
object JsonSerializers {
|
||||
// Internal Types
|
||||
|
@ -30,7 +31,8 @@ object JsonSerializers {
|
|||
implicit val p2PKHAddressReads: Reads[P2PKHAddress] = P2PKHAddressReads
|
||||
implicit val p2SHAddressReads: Reads[P2SHAddress] = P2SHAddressReads
|
||||
implicit val transactionInputReads: Reads[TransactionInput] = TransactionInputReads
|
||||
implicit val transactionOutputReads: Reads[TransactionOutput] = TransactionOutputReads
|
||||
implicit val bitcoinAddressReads: Reads[BitcoinAddress] = BitcoinAddressReads
|
||||
implicit val merkleBlockReads: Reads[MerkleBlock] = MerkleBlockReads
|
||||
|
||||
// Network Models
|
||||
implicit val networkReads: Reads[Network] = Json.reads[Network]
|
||||
|
@ -54,6 +56,13 @@ object JsonSerializers {
|
|||
|
||||
implicit val getTxOutSetInfoResultReads: Reads[GetTxOutSetInfoResult] = Json.reads[GetTxOutSetInfoResult]
|
||||
|
||||
implicit val getBlockResultReads: Reads[GetBlockResult] = Json.reads[GetBlockResult]
|
||||
|
||||
implicit val rpcScriptPubKeyReads: Reads[RpcScriptPubKey] = Json.reads[RpcScriptPubKey]
|
||||
implicit val rpcTransactionOutputReads: Reads[RpcTransactionOutput] = Json.reads[RpcTransactionOutput]
|
||||
implicit val rpcTransactionReads: Reads[RpcTransaction] = Json.reads[RpcTransaction]
|
||||
implicit val getBlockWithTransactionsResultReads: Reads[GetBlockWithTransactionsResult] = Json.reads[GetBlockWithTransactionsResult]
|
||||
|
||||
// Mining Models
|
||||
implicit val miningInfoReads: Reads[GetMiningInfoResult] = Json.reads[GetMiningInfoResult]
|
||||
|
||||
|
@ -63,4 +72,12 @@ object JsonSerializers {
|
|||
implicit val bumpFeeReads: Reads[BumpFeeResult] = Json.reads[BumpFeeResult]
|
||||
|
||||
implicit val createMultiSigReads: Reads[CreateMultiSigResult] = Json.reads[CreateMultiSigResult]
|
||||
|
||||
implicit val decodeScriptResultReads: Reads[DecodeScriptResult] = (
|
||||
(__ \ "asm").read[String] and
|
||||
(__ \ "type").readNullable[String] and
|
||||
(__ \ "reqSigs").readNullable[Int] and
|
||||
(__ \ "addresses").readNullable[Vector[P2PKHAddress]] and
|
||||
(__ \ "p2sh").read[P2SHAddress]
|
||||
)(DecodeScriptResult)
|
||||
}
|
Loading…
Add table
Reference in a new issue