mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-02-24 06:57:51 +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.protocol.{Address, P2PKHAddress, P2SHAddress}
|
||||
import org.bitcoins.core.protocol.script.ScriptPubKey
|
||||
import org.bitcoins.core.protocol.transaction.Transaction
|
||||
|
||||
sealed abstract class WalletResult
|
||||
|
||||
|
@ -38,3 +39,9 @@ case class DecodeScriptResult(
|
|||
addresses: Option[Vector[P2PKHAddress]],
|
||||
p2sh: P2SHAddress
|
||||
) 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.blockchain.{Block, BlockHeader, MerkleBlock}
|
||||
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.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._
|
||||
|
||||
object JsonSerializers {
|
||||
|
@ -33,6 +34,10 @@ object JsonSerializers {
|
|||
implicit val transactionInputReads: Reads[TransactionInput] = TransactionInputReads
|
||||
implicit val bitcoinAddressReads: Reads[BitcoinAddress] = BitcoinAddressReads
|
||||
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
|
||||
implicit val networkReads: Reads[Network] = Json.reads[Network]
|
||||
|
@ -80,4 +85,6 @@ object JsonSerializers {
|
|||
(__ \ "addresses").readNullable[Vector[P2PKHAddress]] and
|
||||
(__ \ "p2sh").read[P2SHAddress]
|
||||
)(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