module Network.Bitcoin.Api.Types.UnspentTransaction where
import Control.Applicative ((<$>), (<*>))
import Control.Lens.TH (makeLenses)
import Control.Monad (mzero)
import qualified Data.Base58String as B58S
import Data.Word (Word64)
import Data.Aeson
import Data.Aeson.Types
import qualified Data.Bitcoin.Types as BT
import qualified Data.Text as T
data UnspentTransaction = UnspentTransaction {
_amount :: BT.Btc,
_transactionId :: BT.TransactionId,
_vout :: Integer,
_spendable :: Bool,
_address :: Maybe B58S.Base58String,
_account :: Maybe T.Text,
_confirmations :: Integer,
_scriptPubKey :: T.Text,
_redeemScript :: Maybe T.Text
} deriving ( Show )
makeLenses ''UnspentTransaction
instance FromJSON UnspentTransaction where
parseJSON (Object o) =
UnspentTransaction
<$> o .: "amount"
<*> o .: "txid"
<*> o .: "vout"
<*> o .: "spendable"
<*> o .:? "address"
<*> o .:? "account"
<*> o .: "confirmations"
<*> o .: "scriptPubKey"
<*> o .:? "redeemScript"
parseJSON _ = mzero