func filtertransaction(trans fct.ITransaction, addresses [][]byte) bool { if addresses == nil || len(addresses) == 0 { return true } if len(trans.GetInputs()) == 0 && len(trans.GetOutputs()) == 0 { return false } if len(addresses) == 1 && bytes.Equal(addresses[0], trans.GetSigHash().Bytes()) { return true } Search: for _, adr := range addresses { for _, in := range trans.GetInputs() { if bytes.Equal(adr, in.GetAddress().Bytes()) { continue Search } } for _, out := range trans.GetOutputs() { if bytes.Equal(adr, out.GetAddress().Bytes()) { continue Search } } for _, ec := range trans.GetECOutputs() { if bytes.Equal(adr, ec.GetAddress().Bytes()) { continue Search } } return false } return true }