X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=federation%2Fapi%2Fhandler.go;h=feca2fef8ef06eca0523a2b816fe66ce74531e68;hp=01c9c0d822dc8da41530b0391cbecc28c0a75c56;hb=bdeea460d33cb2041c1e04f059431a42e6695de3;hpb=a177b8b4f2828248c5bf34561b877c2578b77dd1 diff --git a/federation/api/handler.go b/federation/api/handler.go index 01c9c0d8..feca2fef 100644 --- a/federation/api/handler.go +++ b/federation/api/handler.go @@ -41,6 +41,14 @@ func (s *Server) ListCrosschainTxs(c *gin.Context, listTxsReq *listCrosschainTxs if sourceChainName, err := listTxsReq.GetFilterString("source_chain_name"); err == nil && sourceChainName != "" { txQuery = txQuery.Joins("join chains on chains.id = cross_transactions.chain_id").Where("chains.name = ?", sourceChainName) } + + // filter address + if address, err := listTxsReq.GetFilterString("address"); err == nil && address != "" { + txQuery = txQuery.Joins("join cross_transaction_reqs on cross_transaction_reqs.cross_transaction_id = cross_transactions.id"). + Where("cross_transaction_reqs.from_address = ? or cross_transaction_reqs.to_address = ?", address, address) + } + + // sorter order txQuery = txQuery.Order(fmt.Sprintf("cross_transactions.source_block_height %s", listTxsReq.Sorter.Order)) txQuery = txQuery.Order(fmt.Sprintf("cross_transactions.source_tx_index %s", listTxsReq.Sorter.Order)) if err := txQuery.Offset(query.Start).Limit(query.Limit).Find(&ormTxs).Error; err != nil {