code: def FindUnspentCoins(self, from_addr=None, use_standard=False, watch_only_val=0):
          
          ret = []
          for coin in self.GetCoins():
              if coin.State & CoinState.Confirmed > 0 and \
                      coin.State & CoinState.Spent == 0 and \
                      coin.State & CoinState.Locked == 0 and \
                      coin.State & CoinState.Frozen == 0 and \
                      coin.State & CoinState.WatchOnly == watch_only_val:
  
                  do_exclude = False
                  if self._vin_exclude:
                      for to_exclude in self._vin_exclude:
  
                          if coin.Reference.PrevIndex == to_exclude.PrevIndex and \
                                  coin.Reference.PrevHash == to_exclude.PrevHash:
                              do_exclude = True
  
                  if do_exclude:
                      continue
  
                  if from_addr is not None:
                      if coin.Output.ScriptHash == from_addr:
                          ret.append(coin)
                  elif use_standard:
  
                      contract = self._contracts[coin.Output.ScriptHash.ToBytes()]
                      if contract.IsStandard:
                          ret.append(coin)
                  else:
                      ret.append(coin)
  
          return ret
docs: Finds unspent coin objects in the wallet.
  
          Args:
              from_addr (UInt160): a bytearray (len 20) representing an address.
              use_standard (bool): whether or not to only include standard contracts ( i.e not a smart contract addr ).
              watch_only_val (int): a flag ( 0 or 64 ) indicating whether or not to find coins that are in 'watch only' addresses.
  
          Returns:
              list: a list of ``neo.Wallet.Coins`` in the wallet that are not spent.