mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-02-24 15:02:17 +01:00
Added fundrawtransaction functionality
This commit is contained in:
parent
c24d61c41a
commit
344c6fc47b
3 changed files with 32 additions and 3 deletions
|
@ -5,6 +5,7 @@ import org.bitcoins.core.currency.Bitcoins
|
||||||
import org.bitcoins.core.number.UInt32
|
import org.bitcoins.core.number.UInt32
|
||||||
import org.bitcoins.core.protocol.{Address, P2PKHAddress, P2SHAddress}
|
import org.bitcoins.core.protocol.{Address, P2PKHAddress, P2SHAddress}
|
||||||
import org.bitcoins.core.protocol.script.ScriptPubKey
|
import org.bitcoins.core.protocol.script.ScriptPubKey
|
||||||
|
import org.bitcoins.core.protocol.transaction.Transaction
|
||||||
|
|
||||||
sealed abstract class WalletResult
|
sealed abstract class WalletResult
|
||||||
|
|
||||||
|
@ -38,3 +39,9 @@ case class DecodeScriptResult(
|
||||||
addresses: Option[Vector[P2PKHAddress]],
|
addresses: Option[Vector[P2PKHAddress]],
|
||||||
p2sh: P2SHAddress
|
p2sh: P2SHAddress
|
||||||
) extends WalletResult
|
) extends WalletResult
|
||||||
|
|
||||||
|
case class FundRawTransactionResult(
|
||||||
|
hex: Transaction,
|
||||||
|
fee: Bitcoins,
|
||||||
|
changepos: Int
|
||||||
|
) extends WalletResult
|
|
@ -8,10 +8,11 @@ import org.bitcoins.core.number.{Int32, UInt32}
|
||||||
import org.bitcoins.core.protocol.{Address, BitcoinAddress, P2PKHAddress, P2SHAddress}
|
import org.bitcoins.core.protocol.{Address, BitcoinAddress, P2PKHAddress, P2SHAddress}
|
||||||
import org.bitcoins.core.protocol.blockchain.{Block, BlockHeader, MerkleBlock}
|
import org.bitcoins.core.protocol.blockchain.{Block, BlockHeader, MerkleBlock}
|
||||||
import org.bitcoins.core.protocol.script.ScriptPubKey
|
import org.bitcoins.core.protocol.script.ScriptPubKey
|
||||||
import org.bitcoins.core.protocol.transaction.{TransactionInput, TransactionOutput}
|
import org.bitcoins.core.protocol.transaction.{Transaction, TransactionInput, TransactionOutput}
|
||||||
import org.bitcoins.rpc.jsonmodels._
|
import org.bitcoins.rpc.jsonmodels._
|
||||||
import org.bitcoins.rpc.serializers.JsonReaders._
|
import org.bitcoins.rpc.serializers.JsonReaders._
|
||||||
import play.api.libs.json.{Json, Reads, __}
|
import org.bitcoins.rpc.serializers.JsonWriters._
|
||||||
|
import play.api.libs.json.{Json, Reads, Writes, __}
|
||||||
import play.api.libs.functional.syntax._
|
import play.api.libs.functional.syntax._
|
||||||
|
|
||||||
object JsonSerializers {
|
object JsonSerializers {
|
||||||
|
@ -33,6 +34,10 @@ object JsonSerializers {
|
||||||
implicit val transactionInputReads: Reads[TransactionInput] = TransactionInputReads
|
implicit val transactionInputReads: Reads[TransactionInput] = TransactionInputReads
|
||||||
implicit val bitcoinAddressReads: Reads[BitcoinAddress] = BitcoinAddressReads
|
implicit val bitcoinAddressReads: Reads[BitcoinAddress] = BitcoinAddressReads
|
||||||
implicit val merkleBlockReads: Reads[MerkleBlock] = MerkleBlockReads
|
implicit val merkleBlockReads: Reads[MerkleBlock] = MerkleBlockReads
|
||||||
|
implicit val transactionReads: Reads[Transaction] = TransactionReads
|
||||||
|
|
||||||
|
implicit val bitcoinsWrites: Writes[Bitcoins] = BitcoinsWrites
|
||||||
|
implicit val bitcoinAddressWrites: Writes[BitcoinAddress] = BitcoinAddressWrites
|
||||||
|
|
||||||
// Network Models
|
// Network Models
|
||||||
implicit val networkReads: Reads[Network] = Json.reads[Network]
|
implicit val networkReads: Reads[Network] = Json.reads[Network]
|
||||||
|
@ -80,4 +85,6 @@ object JsonSerializers {
|
||||||
(__ \ "addresses").readNullable[Vector[P2PKHAddress]] and
|
(__ \ "addresses").readNullable[Vector[P2PKHAddress]] and
|
||||||
(__ \ "p2sh").read[P2SHAddress]
|
(__ \ "p2sh").read[P2SHAddress]
|
||||||
)(DecodeScriptResult)
|
)(DecodeScriptResult)
|
||||||
|
|
||||||
|
implicit val fundRawTransactionResultReads: Reads[FundRawTransactionResult] = Json.reads[FundRawTransactionResult]
|
||||||
}
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package org.bitcoins.rpc.serializers
|
||||||
|
|
||||||
|
import org.bitcoins.core.currency.Bitcoins
|
||||||
|
import org.bitcoins.core.protocol.BitcoinAddress
|
||||||
|
import play.api.libs.json._
|
||||||
|
|
||||||
|
object JsonWriters {
|
||||||
|
implicit object BitcoinsWrites extends Writes[Bitcoins] {
|
||||||
|
def writes(o: Bitcoins) = JsNumber(o.toBigDecimal)
|
||||||
|
}
|
||||||
|
|
||||||
|
implicit object BitcoinAddressWrites extends Writes[BitcoinAddress] {
|
||||||
|
def writes(o: BitcoinAddress) = JsString(o.value)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue