mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-01-19 05:45:21 +01:00
Merge pull request #5854 from LN-Zap/upstream/RPCTransaction
Adds helper function lnrpc.RPCTransaction to create a single lnrpc.Transaction and refactors lnrpc.RPCTransactionDetails
This commit is contained in:
commit
66a669d8e9
@ -40,9 +40,13 @@
|
||||
exposed](https://github.com/lightningnetwork/lnd/pull/5971) inside
|
||||
WaitingCloseResp from calling `PendingChannels`.
|
||||
|
||||
* [Fix missing label on streamed
|
||||
transactions](https://github.com/lightningnetwork/lnd/pull/5854).
|
||||
|
||||
# Contributors (Alphabetical Order)
|
||||
|
||||
* Andras Banki-Horvath
|
||||
* Bjarne Magnussen
|
||||
* Harsha Goli
|
||||
* Martin Habovštiak
|
||||
* Naveen Srinivasan
|
||||
|
@ -16,6 +16,33 @@ const (
|
||||
RegisterRPCMiddlewareURI = "/lnrpc.Lightning/RegisterRPCMiddleware"
|
||||
)
|
||||
|
||||
// RPCTransaction returns a rpc transaction.
|
||||
func RPCTransaction(tx *lnwallet.TransactionDetail) *Transaction {
|
||||
var destAddresses []string
|
||||
for _, destAddress := range tx.DestAddresses {
|
||||
destAddresses = append(destAddresses, destAddress.EncodeAddress())
|
||||
}
|
||||
|
||||
// We also get unconfirmed transactions, so BlockHash can be nil.
|
||||
blockHash := ""
|
||||
if tx.BlockHash != nil {
|
||||
blockHash = tx.BlockHash.String()
|
||||
}
|
||||
|
||||
return &Transaction{
|
||||
TxHash: tx.Hash.String(),
|
||||
Amount: int64(tx.Value),
|
||||
NumConfirmations: tx.NumConfirmations,
|
||||
BlockHash: blockHash,
|
||||
BlockHeight: tx.BlockHeight,
|
||||
TimeStamp: tx.Timestamp,
|
||||
TotalFees: tx.TotalFees,
|
||||
DestAddresses: destAddresses,
|
||||
RawTxHex: hex.EncodeToString(tx.RawTx),
|
||||
Label: tx.Label,
|
||||
}
|
||||
}
|
||||
|
||||
// RPCTransactionDetails returns a set of rpc transaction details.
|
||||
func RPCTransactionDetails(txns []*lnwallet.TransactionDetail) *TransactionDetails {
|
||||
txDetails := &TransactionDetails{
|
||||
@ -23,30 +50,7 @@ func RPCTransactionDetails(txns []*lnwallet.TransactionDetail) *TransactionDetai
|
||||
}
|
||||
|
||||
for i, tx := range txns {
|
||||
var destAddresses []string
|
||||
for _, destAddress := range tx.DestAddresses {
|
||||
destAddresses = append(destAddresses, destAddress.EncodeAddress())
|
||||
}
|
||||
|
||||
// We also get unconfirmed transactions, so BlockHash can be
|
||||
// nil.
|
||||
blockHash := ""
|
||||
if tx.BlockHash != nil {
|
||||
blockHash = tx.BlockHash.String()
|
||||
}
|
||||
|
||||
txDetails.Transactions[i] = &Transaction{
|
||||
TxHash: tx.Hash.String(),
|
||||
Amount: int64(tx.Value),
|
||||
NumConfirmations: tx.NumConfirmations,
|
||||
BlockHash: blockHash,
|
||||
BlockHeight: tx.BlockHeight,
|
||||
TimeStamp: tx.Timestamp,
|
||||
TotalFees: tx.TotalFees,
|
||||
DestAddresses: destAddresses,
|
||||
RawTxHex: hex.EncodeToString(tx.RawTx),
|
||||
Label: tx.Label,
|
||||
}
|
||||
txDetails.Transactions[i] = RPCTransaction(tx)
|
||||
}
|
||||
|
||||
// Sort transactions by number of confirmations rather than height so
|
||||
|
29
rpcserver.go
29
rpcserver.go
@ -5314,38 +5314,13 @@ func (r *rpcServer) SubscribeTransactions(req *lnrpc.GetTransactionsRequest,
|
||||
for {
|
||||
select {
|
||||
case tx := <-txClient.ConfirmedTransactions():
|
||||
destAddresses := make([]string, 0, len(tx.DestAddresses))
|
||||
for _, destAddress := range tx.DestAddresses {
|
||||
destAddresses = append(destAddresses, destAddress.EncodeAddress())
|
||||
}
|
||||
detail := &lnrpc.Transaction{
|
||||
TxHash: tx.Hash.String(),
|
||||
Amount: int64(tx.Value),
|
||||
NumConfirmations: tx.NumConfirmations,
|
||||
BlockHash: tx.BlockHash.String(),
|
||||
BlockHeight: tx.BlockHeight,
|
||||
TimeStamp: tx.Timestamp,
|
||||
TotalFees: tx.TotalFees,
|
||||
DestAddresses: destAddresses,
|
||||
RawTxHex: hex.EncodeToString(tx.RawTx),
|
||||
}
|
||||
detail := lnrpc.RPCTransaction(tx)
|
||||
if err := updateStream.Send(detail); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
case tx := <-txClient.UnconfirmedTransactions():
|
||||
var destAddresses []string
|
||||
for _, destAddress := range tx.DestAddresses {
|
||||
destAddresses = append(destAddresses, destAddress.EncodeAddress())
|
||||
}
|
||||
detail := &lnrpc.Transaction{
|
||||
TxHash: tx.Hash.String(),
|
||||
Amount: int64(tx.Value),
|
||||
TimeStamp: tx.Timestamp,
|
||||
TotalFees: tx.TotalFees,
|
||||
DestAddresses: destAddresses,
|
||||
RawTxHex: hex.EncodeToString(tx.RawTx),
|
||||
}
|
||||
detail := lnrpc.RPCTransaction(tx)
|
||||
if err := updateStream.Send(detail); err != nil {
|
||||
return err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user