// GetAddressTransactions returns the Transactions whose unspents give coins to a cipher.Address. // This includes unconfirmed txns' predicted unspents. func (vs *Visor) GetAddressTransactions(a cipher.Address) []Transaction { var txns []Transaction // Look in the blockchain uxs := vs.Blockchain.GetUnspent().AllForAddress(a) mxSeq := vs.HeadBkSeq() var bk *coin.Block for _, ux := range uxs { if bk = vs.GetBlockBySeq(ux.Head.BkSeq); bk == nil { return txns } tx, ok := bk.GetTransaction(ux.Body.SrcTransaction) if ok { h := mxSeq - bk.Head.BkSeq + 1 txns = append(txns, Transaction{ Txn: tx, Status: NewConfirmedTransactionStatus(h), Time: bk.Time(), }) } } // Look in the unconfirmed pool uxs = vs.Unconfirmed.Unspent.AllForAddress(a) for _, ux := range uxs { tx, ok := vs.Unconfirmed.Txns[ux.Body.SrcTransaction] if !ok { logger.Critical("Unconfirmed unspent missing unconfirmed txn") continue } txns = append(txns, Transaction{ Txn: tx.Txn, Status: NewUnconfirmedTransactionStatus(), Time: uint64(tx.Received.Unix()), }) } return txns }