diff --git a/notifications.go b/notifications.go index f00683a6..e399b30b 100644 --- a/notifications.go +++ b/notifications.go @@ -22,6 +22,14 @@ const ( // accountbalance notification. AccountBalanceNtfnMethod = "accountbalance" + // AllTxNtfnMethod is the method of the btcd alltx + // notification + AllTxNtfnMethod = "alltx" + + // AllVerboseTxNtfnMethod is the method of the btcd + // allverbosetx notifications. + AllVerboseTxNtfnMethod = "allverbosetx" + // BlockConnectedNtfnMethod is the method of the btcd // blockconnected notification. BlockConnectedNtfnMethod = "blockconnected" @@ -34,29 +42,16 @@ const ( // btcdconnected notification. BtcdConnectedNtfnMethod = "btcdconnected" - // ProcessedTxNtfnMethod is the method of the btcd - // processedtx notification. - ProcessedTxNtfnMethod = "processedtx" - - // AllTxNtfnMethod is the method of the btcd alltx - // notification - AllTxNtfnMethod = "alltx" - - // AllVerboseTxNtfnMethod is the method of the btcd - // allverbosetx notifications. - AllVerboseTxNtfnMethod = "allverbosetx" - - // TxMinedNtfnMethod is the method of the btcd txmined - // notification. - TxMinedNtfnMethod = "txmined" + // RecvTxNtfnMethod is the method of the btcd recvtx notification. + RecvTxNtfnMethod = "recvtx" // TxNtfnMethod is the method of the btcwallet newtx // notification. TxNtfnMethod = "newtx" - // TxSpentNtfnMethod is the method of the btcd txspent + // RedeemingTxNtfnMethod is the method of the btcd redeemingtx // notification. - TxSpentNtfnMethod = "txspent" + RedeemingTxNtfnMethod = "redeemingtx" // WalletLockStateNtfnMethod is the method of the btcwallet // walletlockstate notification. @@ -73,11 +68,9 @@ func init() { parseBlockDisconnectedNtfn, `TODO(jrick) fillmein`) btcjson.RegisterCustomCmd(BtcdConnectedNtfnMethod, parseBtcdConnectedNtfn, `TODO(jrick) fillmein`) - btcjson.RegisterCustomCmd(ProcessedTxNtfnMethod, - parseProcessedTxNtfn, `TODO(jrick) fillmein`) - btcjson.RegisterCustomCmd(TxMinedNtfnMethod, parseTxMinedNtfn, - `TODO(jrick) fillmein`) - btcjson.RegisterCustomCmd(TxSpentNtfnMethod, parseTxSpentNtfn, + btcjson.RegisterCustomCmd(RecvTxNtfnMethod, + parseRecvTxNtfn, `TODO(jrick) fillmein`) + btcjson.RegisterCustomCmd(RedeemingTxNtfnMethod, parseRedeemingTxNtfn, `TODO(jrick) fillmein`) btcjson.RegisterCustomCmd(TxNtfnMethod, parseTxNtfn, `TODO(jrick) fillmein`) @@ -89,6 +82,14 @@ func init() { generateAllVerboseTxNtfn) } +// BlockDetails describes details of a tx in a block. +type BlockDetails struct { + Height int32 + Hash string + Index int + Time int64 +} + // AccountBalanceNtfn is a type handling custom marshaling and // unmarshaling of accountbalance JSON websocket notifications. type AccountBalanceNtfn struct { @@ -453,7 +454,7 @@ func (n *BtcdConnectedNtfn) UnmarshalJSON(b []byte) error { return err } - newNtfn, err := parseTxMinedNtfn(&r) + newNtfn, err := parseBtcdConnectedNtfn(&r) if err != nil { return err } @@ -466,150 +467,136 @@ func (n *BtcdConnectedNtfn) UnmarshalJSON(b []byte) error { return nil } -// ProcessedTxNtfn is a type handling custom marshaling and unmarshaling -// of processedtx JSON websocket notifications. -type ProcessedTxNtfn struct { - Receiver string - Amount int64 - TxID string - TxOutIndex uint32 - PkScript string - BlockHash string - BlockHeight int32 - BlockIndex int - BlockTime int64 - Spent bool +// RecvTxNtfn is a type handling custom marshaling and unmarshaling +// of recvtx JSON websocket notifications. +type RecvTxNtfn struct { + HexTx string + Block *BlockDetails } -// Enforce that ProcessedTxNtfn satisifies the btcjson.Cmd interface. -var _ btcjson.Cmd = &ProcessedTxNtfn{} +// Enforce that RecvTxNtfn satisifies the btcjson.Cmd interface. +var _ btcjson.Cmd = &RecvTxNtfn{} -// parseProcessedTxNtfn parses a RawCmd into a concrete type satisifying -// the btcjson.Cmd interface. This is used when registering the notification -// with the btcjson parser. -func parseProcessedTxNtfn(r *btcjson.RawCmd) (btcjson.Cmd, error) { +// NewRecvTxNtfn creates a new RecvTxNtfn. +func NewRecvTxNtfn(hextx string, block *BlockDetails) *RecvTxNtfn { + return &RecvTxNtfn{ + HexTx: hextx, + Block: block, + } +} + +// parsRecvTxNtfn parses a RawCmd into a concrete type satisifying the +// btcjson.Cmd interface. This is used when registering the notification with +// the btcjson parser. +func parseRecvTxNtfn(r *btcjson.RawCmd) (btcjson.Cmd, error) { if r.Id != nil { return nil, ErrNotANtfn } - if len(r.Params) != 10 { + // Must have one or two parameters. + if len(r.Params) == 0 || len(r.Params) > 2 { return nil, btcjson.ErrWrongNumberOfParams } - receiver, ok := r.Params[0].(string) + hextx, ok := r.Params[0].(string) if !ok { - return nil, errors.New("first parameter receiver must be a string") - } - famount, ok := r.Params[1].(float64) - if !ok { - return nil, errors.New("second parameter amount must be a number") - } - amount := int64(famount) - txid, ok := r.Params[2].(string) - if !ok { - return nil, errors.New("third parameter txid must be a string") - } - fTxOutIdx, ok := r.Params[3].(float64) - if !ok { - return nil, errors.New("fourth parameter txoutidx must be a number") - } - txOutIdx := uint32(fTxOutIdx) - pkScript, ok := r.Params[4].(string) - if !ok { - return nil, errors.New("fifth parameter pkScript must be a string") - } - blockHash := r.Params[5].(string) - if !ok { - return nil, errors.New("sixth parameter blockHash must be a string") - } - fBlockHeight, ok := r.Params[6].(float64) - if !ok { - return nil, errors.New("seventh parameter blockHeight must be a number") - } - blockHeight := int32(fBlockHeight) - fBlockIndex, ok := r.Params[7].(float64) - if !ok { - return nil, errors.New("eighth parameter blockIndex must be a number") - } - blockIndex := int(fBlockIndex) - fBlockTime, ok := r.Params[8].(float64) - if !ok { - return nil, errors.New("ninth parameter blockTime must be a number") - } - blockTime := int64(fBlockTime) - spent, ok := r.Params[9].(bool) - if !ok { - return nil, errors.New("tenth parameter spent must be a bool") + return nil, errors.New("first parameter hextx must be a string") } - cmd := &ProcessedTxNtfn{ - Receiver: receiver, - Amount: amount, - TxID: txid, - TxOutIndex: txOutIdx, - PkScript: pkScript, - BlockHash: blockHash, - BlockHeight: blockHeight, - BlockIndex: blockIndex, - BlockTime: blockTime, - Spent: spent, + ntfn := &RecvTxNtfn{HexTx: hextx} + + if len(r.Params) > 1 { + details, ok := r.Params[1].(map[string]interface{}) + if !ok { + return nil, errors.New("second parameter must be a JSON object") + } + + height, ok := details["height"].(float64) + if !ok { + return nil, errors.New("unspecified block height") + } + + hash, ok := details["hash"].(string) + if !ok { + return nil, errors.New("unspecified block hash") + } + + index, ok := details["index"].(float64) + if !ok { + return nil, errors.New("unspecified block index") + } + + time, ok := details["time"].(float64) + if !ok { + return nil, errors.New("unspecified block time") + } + + ntfn.Block = &BlockDetails{ + Height: int32(height), + Hash: hash, + Index: int(index), + Time: int64(time), + } } - return cmd, nil + + return ntfn, nil } // Id satisifies the btcjson.Cmd interface by returning nil for a // notification ID. -func (n *ProcessedTxNtfn) Id() interface{} { +func (n *RecvTxNtfn) Id() interface{} { return nil } // SetId is implemented to satisify the btcjson.Cmd interface. The // notification id is not modified. -func (n *ProcessedTxNtfn) SetId(id interface{}) {} +func (n *RecvTxNtfn) SetId(id interface{}) {} // Method satisifies the btcjson.Cmd interface by returning the method // of the notification. -func (n *ProcessedTxNtfn) Method() string { - return ProcessedTxNtfnMethod +func (n *RecvTxNtfn) Method() string { + return RecvTxNtfnMethod } // MarshalJSON returns the JSON encoding of n. Part of the btcjson.Cmd // interface. -func (n *ProcessedTxNtfn) MarshalJSON() ([]byte, error) { +func (n *RecvTxNtfn) MarshalJSON() ([]byte, error) { + params := []interface{}{n.HexTx} + + if n.Block != nil { + details := map[string]interface{}{ + "height": float64(n.Block.Height), + "hash": n.Block.Hash, + "index": float64(n.Block.Index), + "time": float64(n.Block.Time), + } + params = append(params, details) + } + ntfn := btcjson.Message{ Jsonrpc: "1.0", Method: n.Method(), - Params: []interface{}{ - n.Receiver, - n.Amount, - n.TxID, - n.TxOutIndex, - n.PkScript, - n.BlockHash, - n.BlockHeight, - n.BlockIndex, - n.BlockTime, - n.Spent, - }, + Params: params, } + return json.Marshal(ntfn) } // UnmarshalJSON unmarshals the JSON encoding of n into n. Part of // the btcjson.Cmd interface. -func (n *ProcessedTxNtfn) UnmarshalJSON(b []byte) error { +func (n *RecvTxNtfn) UnmarshalJSON(b []byte) error { // Unmarshal into a RawCmd. var r btcjson.RawCmd if err := json.Unmarshal(b, &r); err != nil { return err } - newNtfn, err := parseProcessedTxNtfn(&r) + newNtfn, err := parseRecvTxNtfn(&r) if err != nil { return err } - concreteNtfn, ok := newNtfn.(*ProcessedTxNtfn) + concreteNtfn, ok := newNtfn.(*RecvTxNtfn) if !ok { return btcjson.ErrInternal } @@ -617,117 +604,136 @@ func (n *ProcessedTxNtfn) UnmarshalJSON(b []byte) error { return nil } -// TxMinedNtfn is a type handling custom marshaling and -// unmarshaling of txmined JSON websocket notifications. -type TxMinedNtfn struct { - TxID string - BlockHash string - BlockHeight int32 - BlockTime int64 - Index int +// RedeemingTxNtfn is a type handling custom marshaling and unmarshaling +// of redeemingtx JSON websocket notifications. +type RedeemingTxNtfn struct { + HexTx string + Block *BlockDetails } -// Enforce that TxMinedNtfn satisifies the btcjson.Cmd interface. -var _ btcjson.Cmd = &TxMinedNtfn{} +// Enforce that RedeemingTxNtfn satisifies the btcjson.Cmd interface. +var _ btcjson.Cmd = &RedeemingTxNtfn{} -// NewTxMinedNtfn creates a new TxMinedNtfn. -func NewTxMinedNtfn(txid, blockhash string, blockheight int32, - blocktime int64, index int) *TxMinedNtfn { - - return &TxMinedNtfn{ - TxID: txid, - BlockHash: blockhash, - BlockHeight: blockheight, - BlockTime: blocktime, - Index: index, +// NewRedeemingTxNtfn creates a new RedeemingTxNtfn. +func NewRedeemingTxNtfn(hextx string, block *BlockDetails) *RedeemingTxNtfn { + return &RedeemingTxNtfn{ + HexTx: hextx, + Block: block, } } -// parseTxMinedNtfn parses a RawCmd into a concrete type satisifying -// the btcjson.Cmd interface. This is used when registering the notification -// with the btcjson parser. -func parseTxMinedNtfn(r *btcjson.RawCmd) (btcjson.Cmd, error) { +// parseRedeemingTxNtfn parses a RawCmd into a concrete type satisifying the +// btcjson.Cmd interface. This is used when registering the notification with +// the btcjson parser. +func parseRedeemingTxNtfn(r *btcjson.RawCmd) (btcjson.Cmd, error) { if r.Id != nil { return nil, ErrNotANtfn } - if len(r.Params) != 5 { + // Must have one or two parameters. + if len(r.Params) == 0 || len(r.Params) > 2 { return nil, btcjson.ErrWrongNumberOfParams } - txid, ok := r.Params[0].(string) + hextx, ok := r.Params[0].(string) if !ok { - return nil, errors.New("first parameter txid must be a string") - } - blockhash, ok := r.Params[1].(string) - if !ok { - return nil, errors.New("second parameter blockhash must be a string") - } - fblockheight, ok := r.Params[2].(float64) - if !ok { - return nil, errors.New("third parameter blockheight must be a number") - } - fblocktime, ok := r.Params[3].(float64) - if !ok { - return nil, errors.New("fourth parameter blocktime must be a number") - } - findex, ok := r.Params[4].(float64) - if !ok { - return nil, errors.New("fifth parameter index must be a number") + return nil, errors.New("first parameter hextx must be a string") } - return NewTxMinedNtfn(txid, blockhash, int32(fblockheight), - int64(fblocktime), int(findex)), nil + ntfn := &RedeemingTxNtfn{HexTx: hextx} + + if len(r.Params) > 1 { + details, ok := r.Params[1].(map[string]interface{}) + if !ok { + return nil, errors.New("second parameter must be a JSON object") + } + + height, ok := details["height"].(float64) + if !ok { + return nil, errors.New("unspecified block height") + } + + hash, ok := details["hash"].(string) + if !ok { + return nil, errors.New("unspecified block hash") + } + + index, ok := details["index"].(float64) + if !ok { + return nil, errors.New("unspecified block index") + } + + time, ok := details["time"].(float64) + if !ok { + return nil, errors.New("unspecified block time") + } + + ntfn.Block = &BlockDetails{ + Height: int32(height), + Hash: hash, + Index: int(index), + Time: int64(time), + } + } + + return ntfn, nil } // Id satisifies the btcjson.Cmd interface by returning nil for a // notification ID. -func (n *TxMinedNtfn) Id() interface{} { +func (n *RedeemingTxNtfn) Id() interface{} { return nil } // SetId is implemented to satisify the btcjson.Cmd interface. The // notification id is not modified. -func (n *TxMinedNtfn) SetId(id interface{}) {} +func (n *RedeemingTxNtfn) SetId(id interface{}) {} // Method satisifies the btcjson.Cmd interface by returning the method // of the notification. -func (n *TxMinedNtfn) Method() string { - return TxMinedNtfnMethod +func (n *RedeemingTxNtfn) Method() string { + return RedeemingTxNtfnMethod } // MarshalJSON returns the JSON encoding of n. Part of the btcjson.Cmd // interface. -func (n *TxMinedNtfn) MarshalJSON() ([]byte, error) { +func (n *RedeemingTxNtfn) MarshalJSON() ([]byte, error) { + params := []interface{}{n.HexTx} + + if n.Block != nil { + details := map[string]interface{}{ + "height": float64(n.Block.Height), + "hash": n.Block.Hash, + "index": float64(n.Block.Index), + "time": float64(n.Block.Time), + } + params = append(params, details) + } + ntfn := btcjson.Message{ Jsonrpc: "1.0", Method: n.Method(), - Params: []interface{}{ - n.TxID, - n.BlockHash, - n.BlockHeight, - n.BlockTime, - n.Index, - }, + Params: params, } + return json.Marshal(ntfn) } // UnmarshalJSON unmarshals the JSON encoding of n into n. Part of // the btcjson.Cmd interface. -func (n *TxMinedNtfn) UnmarshalJSON(b []byte) error { +func (n *RedeemingTxNtfn) UnmarshalJSON(b []byte) error { // Unmarshal into a RawCmd. var r btcjson.RawCmd if err := json.Unmarshal(b, &r); err != nil { return err } - newNtfn, err := parseTxMinedNtfn(&r) + newNtfn, err := parseRedeemingTxNtfn(&r) if err != nil { return err } - concreteNtfn, ok := newNtfn.(*TxMinedNtfn) + concreteNtfn, ok := newNtfn.(*RedeemingTxNtfn) if !ok { return btcjson.ErrInternal } @@ -742,108 +748,6 @@ type TxNtfn struct { Details map[string]interface{} } -// TxSpentNtfn is a type handling custom marshaling and -// unmarshaling of txspent JSON websocket notifications. -type TxSpentNtfn struct { - SpentTxId string - SpentTxOutIndex int - SpendingTx string -} - -// Enforce that TxSpentNtfn satisifies the btcjson.Cmd interface. -var _ btcjson.Cmd = &TxSpentNtfn{} - -// NewTxSpentNtfn creates a new TxSpentNtfn. -func NewTxSpentNtfn(txid string, txOutIndex int, spendingTx string) *TxSpentNtfn { - return &TxSpentNtfn{ - SpentTxId: txid, - SpentTxOutIndex: txOutIndex, - SpendingTx: spendingTx, - } -} - -// parseTxSpentNtfn parses a RawCmd into a concrete type satisifying -// the btcjson.Cmd interface. This is used when registering the notification -// with the btcjson parser. -func parseTxSpentNtfn(r *btcjson.RawCmd) (btcjson.Cmd, error) { - if r.Id != nil { - return nil, ErrNotANtfn - } - - if len(r.Params) != 3 { - return nil, btcjson.ErrWrongNumberOfParams - } - - txid, ok := r.Params[0].(string) - if !ok { - return nil, errors.New("first parameter txid must be a string") - } - findex, ok := r.Params[1].(float64) - if !ok { - return nil, errors.New("second parameter index must be a number") - } - index := int(findex) - spendingTx, ok := r.Params[2].(string) - if !ok { - return nil, errors.New("third parameter spendingTx must be a string") - } - - return NewTxSpentNtfn(txid, index, spendingTx), nil -} - -// Id satisifies the btcjson.Cmd interface by returning nil for a -// notification ID. -func (n *TxSpentNtfn) Id() interface{} { - return nil -} - -// SetId is implemented to satisify the btcjson.Cmd interface. The -// notification id is not modified. -func (n *TxSpentNtfn) SetId(id interface{}) {} - -// Method satisifies the btcjson.Cmd interface by returning the method -// of the notification. -func (n *TxSpentNtfn) Method() string { - return TxSpentNtfnMethod -} - -// MarshalJSON returns the JSON encoding of n. Part of the btcjson.Cmd -// interface. -func (n *TxSpentNtfn) MarshalJSON() ([]byte, error) { - ntfn := btcjson.Message{ - Jsonrpc: "1.0", - Method: n.Method(), - Params: []interface{}{ - n.SpentTxId, - n.SpentTxOutIndex, - n.SpendingTx, - }, - } - return json.Marshal(ntfn) -} - -// UnmarshalJSON unmarshals the JSON encoding of n into n. Part of -// the btcjson.Cmd interface. -func (n *TxSpentNtfn) UnmarshalJSON(b []byte) error { - // Unmarshal into a RawCmd. - var r btcjson.RawCmd - if err := json.Unmarshal(b, &r); err != nil { - return err - } - - newNtfn, err := parseTxSpentNtfn(&r) - if err != nil { - return err - } - - concreteNtfn, ok := newNtfn.(*TxSpentNtfn) - if !ok { - return btcjson.ErrInternal - } - *n = *concreteNtfn - return nil -} - // Enforce that TxNtfn satisifies the btcjson.Cmd interface. var _ btcjson.Cmd = &TxNtfn{} diff --git a/notifications_test.go b/notifications_test.go index d70abee3..b099bd0a 100644 --- a/notifications_test.go +++ b/notifications_test.go @@ -62,65 +62,65 @@ var ntfntests = []struct { }, }, { - name: "processedtx", + name: "recvtx no block", f: func() btcjson.Cmd { - cmd := &btcws.ProcessedTxNtfn{ - Receiver: "miFxiuApPo3KBqtMnPUjasZmHoVnoH3Eoc", - Amount: 200000000, - TxID: "851f5c0652e785c5ed80aafaf2d918e5cbe5c307dbba3680808ada1d01f36886", - TxOutIndex: 1, - PkScript: "76a9141e127eda7cd71b9724085f588840a3e9d697ae9888ac", - BlockHash: "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", - BlockHeight: 153469, - BlockIndex: 1, - BlockTime: 1386944019, - Spent: true, + return btcws.NewRecvTxNtfn("lalala the hex tx", nil) + }, + result: &btcws.RecvTxNtfn{ + HexTx: "lalala the hex tx", + Block: nil, + }, + }, + { + name: "recvtx with block", + f: func() btcjson.Cmd { + block := &btcws.BlockDetails{ + Height: 153469, + Hash: "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", + Index: 1, + Time: 1386944019, } - return cmd + return btcws.NewRecvTxNtfn("lalala the hex tx", block) }, - result: &btcws.ProcessedTxNtfn{ - Receiver: "miFxiuApPo3KBqtMnPUjasZmHoVnoH3Eoc", - Amount: 200000000, - TxID: "851f5c0652e785c5ed80aafaf2d918e5cbe5c307dbba3680808ada1d01f36886", - TxOutIndex: 1, - PkScript: "76a9141e127eda7cd71b9724085f588840a3e9d697ae9888ac", - BlockHash: "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", - BlockHeight: 153469, - BlockIndex: 1, - BlockTime: 1386944019, - Spent: true, + result: &btcws.RecvTxNtfn{ + HexTx: "lalala the hex tx", + Block: &btcws.BlockDetails{ + Height: 153469, + Hash: "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", + Index: 1, + Time: 1386944019, + }, }, }, { - name: "txmined", + name: "redeemingtx", f: func() btcjson.Cmd { - return btcws.NewTxMinedNtfn( - "062f2b5f7d28c787e0f3aee382132241cd590efb7b83bd2c7f506de5aa4ef275", - "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", - 153469, - 1386944019, - 0) + return btcws.NewRedeemingTxNtfn("lalala the hex tx", nil) }, - result: &btcws.TxMinedNtfn{ - TxID: "062f2b5f7d28c787e0f3aee382132241cd590efb7b83bd2c7f506de5aa4ef275", - BlockHash: "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", - BlockHeight: 153469, - BlockTime: 1386944019, - Index: 0, + result: &btcws.RedeemingTxNtfn{ + HexTx: "lalala the hex tx", + Block: nil, }, }, { - name: "txspent", + name: "redeemingtx with block", f: func() btcjson.Cmd { - return btcws.NewTxSpentNtfn( - "b22eb08001da1d57aec3131ccb46ea61820c46c71695a802585fbd56e93625a9", - 1, - "0100000001a92536e956bd5f5802a89516c7460c8261ea46cb1c13c3ae571dda0180b02eb2010000006a4730440220240e3ad18a0393e9894120eb87ded8545222df4890cf98a55b5d36042c966898022031bbd795453fcd01b2a9eb30a8cbbe0ea043b7e4e85ff17ba2b44c243d14aafc0121028031f92546ff86436802fdfe07dc9e1876b70c8b8fa29ca9e9c90664d7022717ffffffff0200ab9041000000001976a91401f65945e042b5e09ecf0a9d9115adecb4caee8588ac703fbc0d040000001976a914c31a4d3e819598e55ff80601e4b2c662454385ca88ac00000000") + block := &btcws.BlockDetails{ + Height: 153469, + Hash: "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", + Index: 1, + Time: 1386944019, + } + return btcws.NewRedeemingTxNtfn("lalala the hex tx", block) }, - result: &btcws.TxSpentNtfn{ - SpentTxId: "b22eb08001da1d57aec3131ccb46ea61820c46c71695a802585fbd56e93625a9", - SpentTxOutIndex: 1, - SpendingTx: "0100000001a92536e956bd5f5802a89516c7460c8261ea46cb1c13c3ae571dda0180b02eb2010000006a4730440220240e3ad18a0393e9894120eb87ded8545222df4890cf98a55b5d36042c966898022031bbd795453fcd01b2a9eb30a8cbbe0ea043b7e4e85ff17ba2b44c243d14aafc0121028031f92546ff86436802fdfe07dc9e1876b70c8b8fa29ca9e9c90664d7022717ffffffff0200ab9041000000001976a91401f65945e042b5e09ecf0a9d9115adecb4caee8588ac703fbc0d040000001976a914c31a4d3e819598e55ff80601e4b2c662454385ca88ac00000000", + result: &btcws.RedeemingTxNtfn{ + HexTx: "lalala the hex tx", + Block: &btcws.BlockDetails{ + Height: 153469, + Hash: "000000004811dda1c320ad5d0ea184a20a53acd92292c5f1cb926c3ee82abf70", + Index: 1, + Time: 1386944019, + }, }, }, { diff --git a/test_coverage.txt b/test_coverage.txt index 03911e44..e8d23d5b 100644 --- a/test_coverage.txt +++ b/test_coverage.txt @@ -1,80 +1,91 @@ -github.com/conformal/btcws/cmds.go init 100.00% (11/11) -github.com/conformal/btcws/notifications.go init 100.00% (9/9) -github.com/conformal/btcws/cmds.go RescanCmd.MarshalJSON 100.00% (4/4) +github.com/conformal/btcws/cmds.go init 100.00% (16/16) +github.com/conformal/btcws/notifications.go init 100.00% (10/10) +github.com/conformal/btcws/notifications.go RedeemingTxNtfn.MarshalJSON 100.00% (6/6) +github.com/conformal/btcws/notifications.go RecvTxNtfn.MarshalJSON 100.00% (6/6) +github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.MarshalJSON 100.00% (4/4) github.com/conformal/btcws/cmds.go ListAllTransactionsCmd.MarshalJSON 100.00% (4/4) +github.com/conformal/btcws/cmds.go RescanCmd.MarshalJSON 100.00% (4/4) +github.com/conformal/btcws/cmds.go WalletIsLockedCmd.MarshalJSON 100.00% (4/4) github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.MarshalJSON 100.00% (4/4) github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.MarshalJSON 100.00% (4/4) -github.com/conformal/btcws/cmds.go WalletIsLockedCmd.MarshalJSON 100.00% (4/4) -github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.MarshalJSON 100.00% (4/4) -github.com/conformal/btcws/notifications.go ProcessedTxNtfn.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/notifications.go TxSpentNtfn.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/cmds.go GetBestBlockCmd.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/notifications.go TxMinedNtfn.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/notifications.go TxNtfn.MarshalJSON 100.00% (2/2) github.com/conformal/btcws/notifications.go BlockConnectedNtfn.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/cmds.go NotifySpentCmd.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/cmds.go GetCurrentNetCmd.MarshalJSON 100.00% (2/2) github.com/conformal/btcws/notifications.go WalletLockStateNtfn.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/cmds.go NotifySpentCmd.MarshalJSON 100.00% (2/2) github.com/conformal/btcws/notifications.go AccountBalanceNtfn.MarshalJSON 100.00% (2/2) -github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetBestBlockCmd.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/notifications.go AllTxNtfn.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/cmds.go GetCurrentNetCmd.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/notifications.go TxNtfn.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/notifications.go AllVerboseTxNtfn.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/cmds.go GetBestBlockCmd.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/cmds.go NotifyAllNewTXsCmd.MarshalJSON 100.00% (2/2) +github.com/conformal/btcws/notifications.go NewRedeemingTxNtfn 100.00% (1/1) +github.com/conformal/btcws/notifications.go RecvTxNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go RecvTxNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewRecvTxNtfn 100.00% (1/1) +github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.Method 100.00% (1/1) github.com/conformal/btcws/notifications.go NewBtcdConnectedNtfn 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetBestBlockCmd.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go RescanCmd.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go RescanCmd.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewBlockDisconnectedNtfn 100.00% (1/1) +github.com/conformal/btcws/notifications.go BlockConnectedNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go BlockConnectedNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewBlockConnectedNtfn 100.00% (1/1) +github.com/conformal/btcws/notifications.go AccountBalanceNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go AccountBalanceNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go NewNotifyNewTXsCmd 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewAccountBalanceNtfn 100.00% (1/1) +github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go NotifyAllNewTXsCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go NotifyAllNewTXsCmd.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.Id 100.00% (1/1) github.com/conformal/btcws/cmds.go NewNotifySpentCmd 100.00% (1/1) github.com/conformal/btcws/cmds.go NotifySpentCmd.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go NotifySpentCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go NewCreateEncryptedWalletCmd 100.00% (1/1) -github.com/conformal/btcws/notifications.go TxSpentNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go TxNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetCurrentNetCmd.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go NewGetCurrentNetCmd 100.00% (1/1) -github.com/conformal/btcws/cmds.go WalletIsLockedCmd.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go NewBlockDisconnectedNtfn 100.00% (1/1) -github.com/conformal/btcws/cmds.go WalletIsLockedCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go NewBlockConnectedNtfn 100.00% (1/1) -github.com/conformal/btcws/notifications.go BlockConnectedNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go TxNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go BlockConnectedNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go ListAllTransactionsCmd.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go NewTxNtfn 100.00% (1/1) github.com/conformal/btcws/cmds.go ListAllTransactionsCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go TxSpentNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetCurrentNetCmd.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go ProcessedTxNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go AccountBalanceNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go NewAccountBalanceNtfn 100.00% (1/1) -github.com/conformal/btcws/notifications.go AccountBalanceNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go TxMinedNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go WalletLockStateNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go TxMinedNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go NewGetBestBlockCmd 100.00% (1/1) -github.com/conformal/btcws/notifications.go WalletLockStateNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetBestBlockCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go ProcessedTxNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go NewTxMinedNtfn 100.00% (1/1) -github.com/conformal/btcws/cmds.go RescanCmd.Id 100.00% (1/1) -github.com/conformal/btcws/notifications.go NewWalletLockStateNtfn 100.00% (1/1) -github.com/conformal/btcws/cmds.go RescanCmd.Method 100.00% (1/1) -github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.Method 100.00% (1/1) -github.com/conformal/btcws/cmds.go NewNotifyNewTXsCmd 100.00% (1/1) -github.com/conformal/btcws/notifications.go NewTxSpentNtfn 100.00% (1/1) -github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go NotifySpentCmd.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go ListAllTransactionsCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go NewCreateEncryptedWalletCmd 100.00% (1/1) +github.com/conformal/btcws/cmds.go WalletIsLockedCmd.Id 100.00% (1/1) github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.Id 100.00% (1/1) -github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go WalletIsLockedCmd.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go AllVerboseTxNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewAllVerboseTxNtfn 100.00% (1/1) +github.com/conformal/btcws/notifications.go AllTxNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go NewGetCurrentNetCmd 100.00% (1/1) +github.com/conformal/btcws/notifications.go AllTxNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetCurrentNetCmd.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewAllTxNtfn 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetCurrentNetCmd.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go WalletLockStateNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go WalletLockStateNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewWalletLockStateNtfn 100.00% (1/1) +github.com/conformal/btcws/notifications.go TxNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go TxNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/notifications.go NewTxNtfn 100.00% (1/1) +github.com/conformal/btcws/notifications.go generateAllVerboseTxNtfn 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go RedeemingTxNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go NewGetBestBlockCmd 100.00% (1/1) +github.com/conformal/btcws/notifications.go RedeemingTxNtfn.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go GetBestBlockCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.Method 100.00% (1/1) +github.com/conformal/btcws/notifications.go AllVerboseTxNtfn.Method 100.00% (1/1) +github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.Id 100.00% (1/1) +github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.Method 100.00% (1/1) github.com/conformal/btcws/cmds.go parseListAllTransactionsCmd 87.50% (7/8) +github.com/conformal/btcws/cmds.go NewNotifyAllNewTXsCmd 85.71% (6/7) +github.com/conformal/btcws/cmds.go parseNotifyAllNewTXsCmd 85.71% (6/7) github.com/conformal/btcws/cmds.go NewListAddressTransactionsCmd 83.33% (5/6) github.com/conformal/btcws/cmds.go NewGetUnconfirmedBalanceCmd 83.33% (5/6) github.com/conformal/btcws/cmds.go NewRescanCmd 83.33% (5/6) @@ -86,59 +97,91 @@ github.com/conformal/btcws/cmds.go parseListAddressTransactionsCmd 76.47% (1 github.com/conformal/btcws/cmds.go parseNotifyNewTXsCmd 75.00% (9/12) github.com/conformal/btcws/cmds.go parseGetUnconfirmedBalanceCmd 75.00% (6/8) github.com/conformal/btcws/cmds.go parseWalletIsLockedCmd 75.00% (6/8) -github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/notifications.go WalletLockStateNtfn.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go WalletIsLockedCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go RedeemingTxNtfn.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go NotifyAllNewTXsCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go NotifySpentCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go TxNtfn.UnmarshalJSON 72.73% (8/11) github.com/conformal/btcws/notifications.go BlockConnectedNtfn.UnmarshalJSON 72.73% (8/11) github.com/conformal/btcws/cmds.go ListAllTransactionsCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go NotifySpentCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/notifications.go TxNtfn.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go RescanCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/notifications.go ProcessedTxNtfn.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go GetCurrentNetCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/notifications.go TxSpentNtfn.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/notifications.go AccountBalanceNtfn.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/cmds.go parseGetAddressBalanceCmd 72.73% (8/11) -github.com/conformal/btcws/notifications.go TxMinedNtfn.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go RecvTxNtfn.UnmarshalJSON 72.73% (8/11) github.com/conformal/btcws/cmds.go GetBestBlockCmd.UnmarshalJSON 72.73% (8/11) -github.com/conformal/btcws/notifications.go parseProcessedTxNtfn 70.73% (29/41) -github.com/conformal/btcws/notifications.go parseTxMinedNtfn 70.00% (14/20) -github.com/conformal/btcws/cmds.go parseCreateEncryptedWalletCmd 69.23% (9/13) +github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go WalletLockStateNtfn.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go AccountBalanceNtfn.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go parseGetAddressBalanceCmd 72.73% (8/11) +github.com/conformal/btcws/cmds.go RescanCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go GetCurrentNetCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/cmds.go WalletIsLockedCmd.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go AllTxNtfn.UnmarshalJSON 72.73% (8/11) +github.com/conformal/btcws/notifications.go parseRedeemingTxNtfn 69.23% (18/26) +github.com/conformal/btcws/notifications.go parseRecvTxNtfn 69.23% (18/26) github.com/conformal/btcws/cmds.go parseNotifySpentCmd 66.67% (10/15) -github.com/conformal/btcws/notifications.go parseTxSpentNtfn 66.67% (10/15) -github.com/conformal/btcws/cmds.go parseGetBestBlockCmd 66.67% (2/3) +github.com/conformal/btcws/notifications.go AllVerboseTxNtfn.UnmarshalJSON 66.67% (8/12) +github.com/conformal/btcws/cmds.go parseCreateEncryptedWalletCmd 66.67% (4/6) github.com/conformal/btcws/cmds.go parseGetCurrentNetCmd 66.67% (2/3) +github.com/conformal/btcws/cmds.go parseGetBestBlockCmd 66.67% (2/3) github.com/conformal/btcws/notifications.go parseAccountBalanceNtfn 64.29% (9/14) -github.com/conformal/btcws/notifications.go parseBlockConnectedNtfn 63.64% (7/11) github.com/conformal/btcws/notifications.go parseBlockDisconnectedNtfn 63.64% (7/11) +github.com/conformal/btcws/notifications.go parseBlockConnectedNtfn 63.64% (7/11) +github.com/conformal/btcws/notifications.go parseAllTxNtfn 63.64% (7/11) github.com/conformal/btcws/notifications.go parseTxNtfn 63.64% (7/11) github.com/conformal/btcws/notifications.go parseWalletLockStateNtfn 63.64% (7/11) github.com/conformal/btcws/notifications.go parseBtcdConnectedNtfn 62.50% (5/8) -github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.UnmarshalJSON 45.45% (5/11) -github.com/conformal/btcws/cmds.go RescanCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go NewExportWatchingWalletCmd 0.00% (0/15) +github.com/conformal/btcws/cmds.go RecoverAddressesCmd.UnmarshalJSON 0.00% (0/11) +github.com/conformal/btcws/cmds.go NotifyBlocksCmd.UnmarshalJSON 0.00% (0/11) +github.com/conformal/btcws/cmds.go ExportWatchingWalletCmd.UnmarshalJSON 0.00% (0/11) +github.com/conformal/btcws/cmds.go AuthenticateCmd.UnmarshalJSON 0.00% (0/11) +github.com/conformal/btcws/cmds.go parseAuthenticateCmd 0.00% (0/9) +github.com/conformal/btcws/cmds.go parseRecoverAddressesCmd 0.00% (0/9) +github.com/conformal/btcws/cmds.go ExportWatchingWalletCmd.MarshalJSON 0.00% (0/6) +github.com/conformal/btcws/cmds.go parseNotifyBlocksCmd 0.00% (0/3) +github.com/conformal/btcws/cmds.go NotifyBlocksCmd.MarshalJSON 0.00% (0/2) +github.com/conformal/btcws/cmds.go RecoverAddressesCmd.MarshalJSON 0.00% (0/2) +github.com/conformal/btcws/cmds.go AuthenticateCmd.MarshalJSON 0.00% (0/2) github.com/conformal/btcws/cmds.go GetBestBlockCmd.SetId 0.00% (0/1) -github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.SetId 0.00% (0/1) -github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.SetId 0.00% (0/1) -github.com/conformal/btcws/cmds.go ListAllTransactionsCmd.SetId 0.00% (0/1) -github.com/conformal/btcws/cmds.go GetCurrentNetCmd.SetId 0.00% (0/1) github.com/conformal/btcws/cmds.go ListAddressTransactionsCmd.SetId 0.00% (0/1) -github.com/conformal/btcws/cmds.go WalletIsLockedCmd.SetId 0.00% (0/1) github.com/conformal/btcws/cmds.go CreateEncryptedWalletCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go NewAuthenticateCmd 0.00% (0/1) +github.com/conformal/btcws/cmds.go ListAllTransactionsCmd.SetId 0.00% (0/1) github.com/conformal/btcws/cmds.go NotifySpentCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go GetAddressBalanceCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go NotifyAllNewTXsCmd.SetId 0.00% (0/1) github.com/conformal/btcws/cmds.go NotifyNewTXsCmd.SetId 0.00% (0/1) -github.com/conformal/btcws/notifications.go TxSpentNtfn.SetId 0.00% (0/0) +github.com/conformal/btcws/cmds.go NotifyBlocksCmd.Method 0.00% (0/1) +github.com/conformal/btcws/cmds.go NotifyBlocksCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go NotifyBlocksCmd.Id 0.00% (0/1) +github.com/conformal/btcws/cmds.go NewNotifyBlocksCmd 0.00% (0/1) +github.com/conformal/btcws/cmds.go RescanCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go RecoverAddressesCmd.Method 0.00% (0/1) +github.com/conformal/btcws/cmds.go RecoverAddressesCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go RecoverAddressesCmd.Id 0.00% (0/1) +github.com/conformal/btcws/cmds.go NewRecoverAddressesCmd 0.00% (0/1) +github.com/conformal/btcws/cmds.go GetUnconfirmedBalanceCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go ExportWatchingWalletCmd.Method 0.00% (0/1) +github.com/conformal/btcws/cmds.go ExportWatchingWalletCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go ExportWatchingWalletCmd.Id 0.00% (0/1) +github.com/conformal/btcws/cmds.go parseExportWatchingWalletCmd 0.00% (0/1) +github.com/conformal/btcws/cmds.go GetCurrentNetCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go AuthenticateCmd.Method 0.00% (0/1) +github.com/conformal/btcws/cmds.go AuthenticateCmd.SetId 0.00% (0/1) +github.com/conformal/btcws/cmds.go AuthenticateCmd.Id 0.00% (0/1) +github.com/conformal/btcws/cmds.go WalletIsLockedCmd.SetId 0.00% (0/1) github.com/conformal/btcws/notifications.go BtcdConnectedNtfn.SetId 0.00% (0/0) +github.com/conformal/btcws/notifications.go RecvTxNtfn.SetId 0.00% (0/0) github.com/conformal/btcws/notifications.go BlockDisconnectedNtfn.SetId 0.00% (0/0) -github.com/conformal/btcws/notifications.go BlockConnectedNtfn.SetId 0.00% (0/0) github.com/conformal/btcws/notifications.go AccountBalanceNtfn.SetId 0.00% (0/0) -github.com/conformal/btcws/notifications.go TxNtfn.SetId 0.00% (0/0) +github.com/conformal/btcws/notifications.go BlockConnectedNtfn.SetId 0.00% (0/0) github.com/conformal/btcws/notifications.go WalletLockStateNtfn.SetId 0.00% (0/0) -github.com/conformal/btcws/notifications.go TxMinedNtfn.SetId 0.00% (0/0) -github.com/conformal/btcws/notifications.go ProcessedTxNtfn.SetId 0.00% (0/0) -github.com/conformal/btcws ---------------------------------------- 75.85% (493/650) +github.com/conformal/btcws/notifications.go AllVerboseTxNtfn.SetId 0.00% (0/0) +github.com/conformal/btcws/notifications.go TxNtfn.SetId 0.00% (0/0) +github.com/conformal/btcws/notifications.go RedeemingTxNtfn.SetId 0.00% (0/0) +github.com/conformal/btcws/notifications.go AllTxNtfn.SetId 0.00% (0/0) +github.com/conformal/btcws ---------------------------------------- 66.67% (534/801)