def FindUnspentCoinsByAssetAndTotal(self, asset_id, amount, from_addr=None, use_standard=False, watch_only_val=0, reverse=False):
        """
        Finds unspent coin objects totalling a requested value in the wallet limited to those of a certain asset type.

        Args:
            asset_id (UInt256): a bytearray (len 32) representing an asset on the blockchain.
            amount (int): the amount of unspent coins that are being requested.
            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.Coin`` in the wallet that are not spent. this list is empty if there are not enough coins to satisfy the request.
        """
        coins = self.FindUnspentCoinsByAsset(asset_id, from_addr=from_addr,
                                             use_standard=use_standard, watch_only_val=watch_only_val)

        sum = Fixed8(0)

        for coin in coins:
            sum = sum + coin.Output.Value

        if sum < amount:
            return None

        coins = sorted(coins, key=lambda coin: coin.Output.Value.value)

        if reverse:
            coins.reverse()

        total = Fixed8(0)

        # go through all coins, see if one is an exact match. then we'll use that
        for coin in coins:
            if coin.Output.Value == amount:
                return [coin]

        to_ret = []
        for coin in coins:
            total = total + coin.Output.Value
            to_ret.append(coin)
            if total >= amount:
                break

        return to_ret
Finds unspent coin objects totalling a requested value in the wallet limited to those of a certain asset type.

        Args:
            asset_id (UInt256): a bytearray (len 32) representing an asset on the blockchain.
            amount (int): the amount of unspent coins that are being requested.
            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.Coin`` in the wallet that are not spent. this list is empty if there are not enough coins to satisfy the request.