internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: rotki/rotki

Issue:
Better handle etherscan response without a result
## Problem Definition

Today etherscan does not seem to feel well. At random points calls to their `proxy` endpoint returned this:

`{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"execution aborted (timeout = 5s)"}`

Notably this does not contain a `result` key and seems to be a direct response from an ethereum node. It's a fatal error but we can handle it a bit better.

## Task

Rotki handles it well as a missing key entry and aborts the query, but we can probably provide more information and expect the error too.


Discussion:

Resolving patch:
diff --git a/rotkehlchen/externalapis/etherscan.py b/rotkehlchen/externalapis/etherscan.py
--- a/rotkehlchen/externalapis/etherscan.py
+++ b/rotkehlchen/externalapis/etherscan.py
@@ -200,7 +200,13 @@ def _query(  # noqa: F811
                 raise RemoteError(f'Etherscan returned invalid JSON response: {response.text}')
 
             try:
-                result = json_ret['result']
+                result = json_ret.get('result', None)
+                if result is None:
+                    raise RemoteError(
+                        f'Unexpected format of Etherscan response for request {response.url}. '
+                        f'Missing a result in response. Response was: {response.text}',
+                    )
+
                 if 'status' not in json_ret:
                     # sucessful proxy calls do not include a status
                     status = 1
@@ -239,7 +245,8 @@ def _query(  # noqa: F811
                     raise RemoteError(f'Etherscan returned error response: {json_ret}')
             except KeyError as e:
                 raise RemoteError(
-                    f'Unexpected format of Etherscan response. Missing key entry for {str(e)}',
+                    f'Unexpected format of Etherscan response for request {response.url}. '
+                    f'Missing key entry for {str(e)}. Response was: {response.text}',
                 )
 
             # success, break out of the loop and return result


Test patch:
Repository: rotki/rotki

Issue:
Differentiate Luna Coin and Luna Terra in cryptocompare queries
## Problem Definition

Luna Coin (`LUNA`) in Rotki and Luna Terra (`LUNA-2`) in Rotki are not differentiated when querying cryptocompare.

Reported by @greekcc Monis
## Task

Fix it



Discussion:

Resolving patch:
diff --git a/rotkehlchen/constants/cryptocompare.py b/rotkehlchen/constants/cryptocompare.py
--- a/rotkehlchen/constants/cryptocompare.py
+++ b/rotkehlchen/constants/cryptocompare.py
@@ -47,8 +47,10 @@
     # In Rotkehlchen KNC is KyberNetwork and KNC-2 is KingN coin. In cryptocompare
     # KNGN is KingN coin
     'KNC-2': 'KNGN',
-    # Liquidity network is LQD in Rotkehlchen but LQDN in Cryptocompare
+    # Liquidity network is LQD in Rotki but LQDN in Cryptocompare
     'LQD': 'LQDN',
+    # LUNA Terra is LUNA-2 in Rotki but LUNA in Cryptocompare
+    'LUNA-2': 'LUNA',
     # Monetaverde is as MNV in cryptocompare while it should be MCN
     # https://www.cryptocompare.com/coins/mnv/overview
     'MCN': 'MNV',
@@ -553,9 +555,9 @@
     # Locus Chain (https://etherscan.io/address/0xC64500DD7B0f1794807e67802F8Abbf5F8Ffb054)
     # is not in cryptocompare but is in paprika
     'LOCUS',
-    # LUNA Terra (https://coinmarketcap.com/currencies/terra/)
+    # LUNA Coin (https://coinmarketcap.com/currencies/luna-coin/markets/)
     # is not in cryptocompare but is in paprika
-    'LUNA-2',
+    'LUNA',
     # Midas Protocol (https://coinmarketcap.com/currencies/midasprotocol/)
     # is not in cryptocompare but is in paprika
     'MAS',


Test patch:
Repository: rotki/rotki

Issue:
Add MimbleWimbleCoin (MWC)
## Motivation

The user should be able to track their MimbleWimbleCoin with Rotki

## Specification

https://www.cryptocompare.com/coins/mwc/overview


Discussion:

Resolving patch:
diff --git a/rotkehlchen/externalapis/cryptocompare.py b/rotkehlchen/externalapis/cryptocompare.py
--- a/rotkehlchen/externalapis/cryptocompare.py
+++ b/rotkehlchen/externalapis/cryptocompare.py
@@ -56,6 +56,8 @@
     Asset('ETHUP'): Asset('USDT'),
     Asset('LINKDOWN'): Asset('USDT'),
     Asset('LINKUP'): Asset('USDT'),
+    Asset('STAKE'): Asset('USDT'),
+    Asset('YFI'): Asset('USDT'),
 }
 CRYPTOCOMPARE_SPECIAL_CASES = CRYPTOCOMPARE_SPECIAL_CASES_MAPPING.keys()
 


Test patch:
Repository: rotki/rotki

Issue:
Update Usage Guide to reflect new rotki data dir (PR #1135)
## Problem Definition

The usage guide should be updated to reflect the new default directory for rotki data as per #1135.

Also include the logs directory somewhere.


Discussion:

Resolving patch:
diff --git a/docs/conf.py b/docs/conf.py
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -24,9 +24,9 @@
 author = 'Lefteris Karapetsas'
 
 # The short X.Y version
-version = '1.5.0'
+version = '1.6.0'
 # The full version, including alpha/beta/rc tags
-release = '1.5.0'
+release = '1.6.0'
 
 
 # -- General configuration ---------------------------------------------------
diff --git a/rotkehlchen/chain/ethereum/manager.py b/rotkehlchen/chain/ethereum/manager.py
--- a/rotkehlchen/chain/ethereum/manager.py
+++ b/rotkehlchen/chain/ethereum/manager.py
@@ -204,7 +204,7 @@ def query_eth_highest_block(self) -> BlockNumber:
         eth_resp: Optional[Dict[str, str]]
         try:
             eth_resp = request_get_dict(url)
-        except (RemoteError, UnableToDecryptRemoteData):
+        except (RemoteError, UnableToDecryptRemoteData, requests.exceptions.ReadTimeout):
             eth_resp = None
 
         block_number: Optional[int]
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -21,7 +21,7 @@ def read(fname):
     if not requirement.lstrip().startswith('#')
 ))
 
-version = '1.5.0'  # Do not edit: this is maintained by bumpversion (see .bumpversion.cfg)
+version = '1.6.0'  # Do not edit: this is maintained by bumpversion (see .bumpversion.cfg)
 
 setup(
     name='rotkehlchen',


Test patch:
Repository: rotki/rotki

Issue:
In Accounts & Balances selected tab's name is covered by background color
## Problem Definition

In the accounts & balances page each time a tab is selected the name seems to be covered by the background color

![Peek 2020-07-23 17-33](https://user-images.githubusercontent.com/1658405/88306295-d9765780-cd0a-11ea-832c-3cb4e9c16d9f.gif)

Seen in v1.6.0 binary for Linux.

## Task

Fix it


Discussion:
Also tested with the windows binary and the problem is also there. As @isidorosp mentioned it probably is not on develop but only on the packaged version. We need to figure out why.

Resolving patch:
diff --git a/docs/conf.py b/docs/conf.py
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -24,9 +24,9 @@
 author = 'Lefteris Karapetsas'
 
 # The short X.Y version
-version = '1.6.0'
+version = '1.6.1'
 # The full version, including alpha/beta/rc tags
-release = '1.6.0'
+release = '1.6.1'
 
 
 # -- General configuration ---------------------------------------------------
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -21,7 +21,7 @@ def read(fname):
     if not requirement.lstrip().startswith('#')
 ))
 
-version = '1.6.0'  # Do not edit: this is maintained by bumpversion (see .bumpversion.cfg)
+version = '1.6.1'  # Do not edit: this is maintained by bumpversion (see .bumpversion.cfg)
 
 setup(
     name='rotkehlchen',


Test patch:
Repository: rotki/rotki

Issue:
How to remove OCEAN from unsupported Bittrex assets?
OCEAN token is currently on rotki's [`UNSUPPORTED_BITTREX_ASSETS`](https://github.com/rotki/rotki/blob/a37d9556d3efbcaf785499febf6b7ad6979da126/rotkehlchen/assets/converters.py#L349-L352). In #1237, I've added it to `data/all_assets.json `.

May I simply remove its entry from `UNSUPPORTED_BITTREX_ASSETS`? Since 02/05/2019, lots of new information has been added to the token. The project is still alive:

- https://coinmarketcap.com/currencies/ocean-protocol/
- https://www.coingecko.com/de/munze/ocean-protocol
- https://oceanprotocol.com/
- https://blog.oceanprotocol.com




Discussion:
Yes you can definitely remove it. Cryptocompare supports it and has historical price data.

Should go through those unsupported assets for each exchange at some point and see what else we can find data for. If only we had more resources :smile: 

Resolving patch:
diff --git a/rotkehlchen/assets/converters.py b/rotkehlchen/assets/converters.py
--- a/rotkehlchen/assets/converters.py
+++ b/rotkehlchen/assets/converters.py
@@ -348,10 +348,6 @@
     # Only exists in bittrex. Perhaps it will soon be added to other APIs.
     # https://international.bittrex.com/Market/Index?MarketName=BTC-PTON
     'PTON',
-    # Ocean IEO. As of 02/05/2019 no data found.
-    # Only exists in bittrex. Perhaps it will soon be added to other APIs.
-    # https://international.bittrex.com/Market/Index?MarketName=BTC-OCEAN
-    'OCEAN',
     # VDX IEO. As of 16/05/2019 no data found.
     # Only exists in bittrex. Perhaps it will soon be added to other APIs.
     # https://international.bittrex.com/Market/Index?MarketName=BTC-VDX


Test patch:
Repository: rotki/rotki

Issue:
Point to the migrated Synthetix Token
## Problem Definition

A user in Telegram reported missing `SNX` balances. Rotki was pointing to the address of the synthetix proxy before the migration. We should point to the new addresses:https://blog.synthetix.io/proxy-contract-cutover-on-may-10/

## Task

Point to the new addresses


Discussion:

Resolving patch:
diff --git a/rotkehlchen/chain/ethereum/aave.py b/rotkehlchen/chain/ethereum/aave.py
--- a/rotkehlchen/chain/ethereum/aave.py
+++ b/rotkehlchen/chain/ethereum/aave.py
@@ -113,6 +113,13 @@ def _get_reserve_address_decimals(symbol: str) -> Tuple[ChecksumEthAddress, int]
     return reserve_address, decimals
 
 
+def _atoken_to_reserve_asset(atoken: EthereumToken) -> Asset:
+    reserve_symbol = atoken.identifier[1:]
+    if reserve_symbol == 'SUSD':
+        reserve_symbol = 'sUSD'
+    return Asset(reserve_symbol)
+
+
 class Aave(EthereumModule):
     """Aave integration module
 
@@ -366,7 +373,7 @@ def get_events_for_atoken_and_address(
                 event['logIndex'], 'aave log index',
             )
 
-        reserve_asset = Asset(atoken.identifier[1:])
+        reserve_asset = _atoken_to_reserve_asset(atoken)
         reserve_address, decimals = _get_reserve_address_decimals(reserve_asset.identifier)
         aave_events = []
         for event in deposit_events:
diff --git a/rotkehlchen/constants/cryptocompare.py b/rotkehlchen/constants/cryptocompare.py
--- a/rotkehlchen/constants/cryptocompare.py
+++ b/rotkehlchen/constants/cryptocompare.py
@@ -13,7 +13,7 @@
     'aMKR': 'MKR',
     'aREP': 'REP',
     'aSNX': 'SNX',
-    'aSUSD': 'SUSD',
+    'aSUSD': 'sUSD',
     'aTUSD': 'TUSD',
     'aUSDC': 'USDC',
     'aUSDT': 'USDT',


Test patch:
Repository: rotki/rotki

Issue:
[Add Crypto Support]: SRM
## Abstract

SRM not supported. 
SRM is an ERC20 token. cf https://etherscan.io/token/0x476c5e26a75bd202a9683ffd34359c0cc15be0ff

## Motivation

SRM hodlers and traders would strongly appreciate this



Discussion:

Resolving patch:
diff --git a/rotkehlchen/externalapis/coinpaprika.py b/rotkehlchen/externalapis/coinpaprika.py
--- a/rotkehlchen/externalapis/coinpaprika.py
+++ b/rotkehlchen/externalapis/coinpaprika.py
@@ -100,6 +100,7 @@
     'RZR',
     'SPA',
     'SQL',
+    'SRM',
     'SSD',
     'STMX',
     'SUKU',
diff --git a/tools/asset_aggregator/typeinfo_check.py b/tools/asset_aggregator/typeinfo_check.py
--- a/tools/asset_aggregator/typeinfo_check.py
+++ b/tools/asset_aggregator/typeinfo_check.py
@@ -115,6 +115,7 @@
     'SPICE': 'ethereum token',
     'STMX': 'ethereum token',
     'SS': 'ethereum token',
+    'SRM': 'ethereum token',
     'SSH': 'ethereum token',
     'STP': 'ethereum token',
     'SUTER': 'ethereum token',


Test patch:
Repository: rotki/rotki

Issue:
Improve notifications 
## Problem Definition

Currently, notifications are only displayed in the notification area which makes them really easy to miss. We should implement and add a mechanism that shows the notifications for a short period of time to the user. This will make it easier for the user to not miss important notification such as errors.

We need to add [popup notifications](https://en.wikipedia.org/wiki/Pop-up_notification).

We can use the https://vuetifyjs.com/en/components/snackbars/ for the popup notification.

By default, the snackbars are not stacking so we need to evaluate if it makes sense to implement a queue of the messages, or maybe create a summary and show one notification.



Discussion:
This issue should be prioritized as the current notifications system is suboptimal and people have complained.

Is this the actionable part of https://github.com/rotki/rotki/issues/751? If yes and if they are related it would be nice to keep only one issue open.

> By default, the snackbars are not stacking so we need to evaluate if it makes sense to implement a queue of the messages, or maybe create a summary and show one notification.

Looking at the example snackbar in your link, I think I have seen vue/react apps with multiple snackbars being thrown at me if some background task errored. Wouldn't that be fine?

On the other hand perhaps we should also rethink the classification of errors shown by the backend. We could have some categories shown to the user via snackbar and some via other less direct means.

Cause we have warnings even if some trade is let's say not processed due to some exchange misbehaving or having an entry we dont' understand. These are problems the user should know (since let's be honest, logs would only be read for debugging a problem), but does not need to worry much or do an immediate action.

Resolving patch:
diff --git a/rotkehlchen/chain/ethereum/zerion.py b/rotkehlchen/chain/ethereum/zerion.py
--- a/rotkehlchen/chain/ethereum/zerion.py
+++ b/rotkehlchen/chain/ethereum/zerion.py
@@ -154,7 +154,7 @@ def _get_single_balance(self, entry: Tuple[Tuple[str, str, str, int], int]) -> D
             usd_price = Inquirer().find_usd_price(asset)
         except (UnknownAsset, UnsupportedAsset):
             if not _is_symbol_non_standard(token_symbol):
-                self.msg_aggregator.add_error(
+                self.msg_aggregator.add_warning(
                     f'Unsupported asset {token_symbol} encountered during DeFi protocol queries',
                 )
             usd_price = Price(ZERO)


Test patch:
Repository: rotki/rotki

Issue:
[Add Coin Support]: DIA
## Abstract

Please add support for DIA token

## Specification

Contract Address https://etherscan.io/address/0x84cA8bc7997272c7CfB4D0Cd3D55cd942B3c9419



Discussion:

Resolving patch:
diff --git a/rotkehlchen/assets/asset.py b/rotkehlchen/assets/asset.py
--- a/rotkehlchen/assets/asset.py
+++ b/rotkehlchen/assets/asset.py
@@ -73,6 +73,7 @@
     'AUD': 'ZAUD',
     'BAT': 'BAT',
     'COMP': 'COMP',
+    'DOT': 'DOT',
     'KAVA': 'KAVA',
     'KNC': 'KNC',
     'LINK': 'LINK',
diff --git a/rotkehlchen/exchanges/kraken.py b/rotkehlchen/exchanges/kraken.py
--- a/rotkehlchen/exchanges/kraken.py
+++ b/rotkehlchen/exchanges/kraken.py
@@ -543,7 +543,13 @@ def query_balances(self) -> Tuple[Optional[dict], str]:
                     continue
                 entry['usd_value'] = FVal(v * usd_price)
 
-            balances[our_asset] = entry
+            if our_asset not in balances:
+                balances[our_asset] = entry
+            else:  # Some assets may appear twice in kraken balance query for different locations
+                # Spot/staking for example
+                balances[our_asset]['amount'] += entry['amount']
+                balances[our_asset]['usd_value'] += entry['usd_value']
+
             log.debug(
                 'kraken balance query result',
                 sensitive_log=True,


Test patch:
diff --git a/rotkehlchen/tests/unit/test_assets.py b/rotkehlchen/tests/unit/test_assets.py
--- a/rotkehlchen/tests/unit/test_assets.py
+++ b/rotkehlchen/tests/unit/test_assets.py
@@ -113,7 +113,7 @@ def test_coingecko_identifiers_are_reachable():
 def test_assets_json_meta():
     """Test that all_assets.json md5 matches and that if md5 changes since last
     time then version is also bumped"""
-    last_meta = {'md5': 'd2076264e370ce731fa3d0b08f54f376', 'version': 1}
+    last_meta = {'md5': '2deb4e99e47a6fcf91da4fcaca50564a', 'version': 2}
     data_dir = Path(__file__).resolve().parent.parent.parent / 'data'
     data_md5 = file_md5(data_dir / 'all_assets.json')
Repository: rotki/rotki

Issue:
Install roboto mono
## Abstract

We should install the mono version of our main font in order to increase legibility and proper alignment of content in certain scenarios.

## Specification

https://www.npmjs.com/package/typeface-roboto-mono install, require it where we require roboto, use it in classes where a mono font is required to line things up properly in data tables / cards / etc.


Discussion:
Is that something we can do for 1.6.0 or should we just push further?
Can leave it for later.
Taking this out of milestones as it's not a requirement.

Resolving patch:
diff --git a/rotkehlchen/chain/ethereum/transactions.py b/rotkehlchen/chain/ethereum/transactions.py
--- a/rotkehlchen/chain/ethereum/transactions.py
+++ b/rotkehlchen/chain/ethereum/transactions.py
@@ -72,6 +72,15 @@ def _single_address_query_transactions(
         # add new transactions to the DB
         if new_transactions != []:
             self.database.add_ethereum_transactions(new_transactions, from_etherscan=True)
+            # And since at least for now the increasingly negative nonce for the internal
+            # transactions happens only in the DB writing, requery the entire batch from
+            # the DB to get the updated transactions
+            transactions = self.database.get_ethereum_transactions(
+                from_ts=start_ts,
+                to_ts=end_ts,
+                address=address,
+            )
+
         # and also set the last queried timestamps for the address
         ranges.update_used_query_range(
             location_string=f'ethtxs_{address}',
@@ -79,8 +88,6 @@ def _single_address_query_transactions(
             end_ts=end_ts,
             ranges_to_query=ranges_to_query,
         )
-        # finally append them to the already returned DB transactions
-        transactions.extend(new_transactions)
 
         if with_limit:
             transactions_queried_so_far = sum(x for _, x in self.tx_per_address.items())


Test patch:
Repository: rotki/rotki

Issue:
Save Indicator should display that last sync date (if premium sync is enabled)
## Abstract

In the case that a user has premium and premium sync is enabled, the save indicator should display the last sync date in addition to the last save date. Currently sync failure is in the logs but does not clearly show up in the app anywhere (e.g. alert/notification/etc), so this would be a good way to help users identify that there may be a sync issue.


Discussion:
@LefterisJP does this also require changes in the backend?
Last sync date here would mean when we pushed a new copy of the DB to the server? Or when the server's copy was last modified? We would definitely need some small change to add this but should not be hard.
I would say last time we pushed on the server
I agree. This is the `last_data_upload_ts` in the settings then. It's already there.
> I agree. This is the `last_data_upload_ts` in the settings then. It's already there.

Great I will have a look
@LefterisJP would it make sense for this field to also be in the periodic change data?
I don't see why. It would only change once at start
> I don't see why. It would only change once at start

That was the crucial information I was missing, that why I asked that :) thank you

Resolving patch:
diff --git a/rotkehlchen/rotkehlchen.py b/rotkehlchen/rotkehlchen.py
--- a/rotkehlchen/rotkehlchen.py
+++ b/rotkehlchen/rotkehlchen.py
@@ -857,6 +857,7 @@ def query_periodic_data(self) -> Dict[str, Union[bool, Timestamp]]:
             result['eth_node_connection'] = self.chain_manager.ethereum.web3_mapping.get(NodeName.OWN, None) is not None  # noqa : E501
             result['history_process_start_ts'] = self.accountant.started_processing_timestamp
             result['history_process_current_ts'] = self.accountant.currently_processing_timestamp
+            result['last_data_upload_ts'] = Timestamp(self.premium_sync_manager.last_data_upload_ts)  # noqa : E501
         return result
 
     def shutdown(self) -> None:


Test patch:
diff --git a/rotkehlchen/tests/api/test_periodic.py b/rotkehlchen/tests/api/test_periodic.py
--- a/rotkehlchen/tests/api/test_periodic.py
+++ b/rotkehlchen/tests/api/test_periodic.py
@@ -30,9 +30,10 @@ def test_query_periodic(rotkehlchen_api_server_with_exchanges):
     assert_proper_response(response)
     data = response.json()
     assert data['message'] == ''
-    assert len(data['result']) == 4
+    assert len(data['result']) == 5
     assert data['result']['last_balance_save'] >= start_ts
     assert data['result']['eth_node_connection'] is False
     # Non -1 value tests for these exist in test_history.py::test_query_history_timerange
     assert data['result']['history_process_start_ts'] == -1
     assert data['result']['history_process_current_ts'] == -1
+    assert data['result']['last_data_upload_ts'] == 0
Repository: rotki/rotki

Issue:
Add JRT balance
## Abstract

Support for tracking JRT.

## Motivation

Add the tracking of JRT.

## Specification

Display the balance of the asset (JRT) that the address holds.


Discussion:

Resolving patch:
diff --git a/rotkehlchen/assets/asset.py b/rotkehlchen/assets/asset.py
--- a/rotkehlchen/assets/asset.py
+++ b/rotkehlchen/assets/asset.py
@@ -121,6 +121,9 @@
     'KSM': 'KSM',
     'CRV': 'CRV',
     'SNX': 'SNX',
+    'FIL': 'FIL',
+    'UNI': 'UNI',
+    'YFI': 'YFI',
 }
 
 WORLD_TO_BINANCE = {
diff --git a/rotkehlchen/assets/converters.py b/rotkehlchen/assets/converters.py
--- a/rotkehlchen/assets/converters.py
+++ b/rotkehlchen/assets/converters.py
@@ -425,6 +425,8 @@
     'SPARTA',  # no cryptocompare data
     'UNIDOWN',  # no cryptocompare/coingecko data
     'UNIUP',  # no cryptocompare/coingecko data
+    'SXPDOWN',  # no cryptocompare/coingecko data
+    'SXPUP',  # no cryptocompare/coingecko data
 )
 
 
diff --git a/rotkehlchen/externalapis/cryptocompare.py b/rotkehlchen/externalapis/cryptocompare.py
--- a/rotkehlchen/externalapis/cryptocompare.py
+++ b/rotkehlchen/externalapis/cryptocompare.py
@@ -120,6 +120,8 @@
     Asset('RARI'): Asset('USDT'),
     Asset('VALUE'): Asset('USDT'),
     Asset('$BASED'): Asset('WETH'),
+    Asset('DPI'): Asset('WETH'),
+    Asset('JRT'): Asset('USDT'),
 }
 CRYPTOCOMPARE_SPECIAL_CASES = CRYPTOCOMPARE_SPECIAL_CASES_MAPPING.keys()
 


Test patch:
diff --git a/rotkehlchen/tests/unit/test_assets.py b/rotkehlchen/tests/unit/test_assets.py
--- a/rotkehlchen/tests/unit/test_assets.py
+++ b/rotkehlchen/tests/unit/test_assets.py
@@ -112,6 +112,11 @@ def test_coingecko_identifiers_are_reachable():
         'SHP',
         'WDC',
         'BOST',
+        'FND',
+        'LDC',
+        'ORI',
+        'RIPT',
+        'SGR',
     ]
     coingecko = Coingecko()
     all_coins = coingecko.all_coins()
@@ -155,7 +160,7 @@ def test_coingecko_identifiers_are_reachable():
 def test_assets_json_meta():
     """Test that all_assets.json md5 matches and that if md5 changes since last
     time then version is also bumped"""
-    last_meta = {'md5': 'c8f2fcb6adb07a2614113cc2ae65ec00', 'version': 18}
+    last_meta = {'md5': '7172111d5f9d93c18da0d22a5d72c22a', 'version': 19}
     data_dir = Path(__file__).resolve().parent.parent.parent / 'data'
     data_md5 = file_md5(data_dir / 'all_assets.json')