Skip to content

Commit

Permalink
Fix (Asset): With identifier mismatch
Browse files Browse the repository at this point in the history
Signed-off-by: OjusWiZard <[email protected]>
  • Loading branch information
OjusWiZard committed May 8, 2024
1 parent cb3d4fd commit c01d4fb
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 5 deletions.
2 changes: 1 addition & 1 deletion updates/18/updates.sql
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ INSERT INTO assets(identifier, name, type) VALUES("eip155:1/erc20:0x66eFF5221ca9
UPDATE common_asset_details SET cryptocompare="GRAIL" WHERE identifier="eip155:42161/erc20:0x3d9907F9a368ad0a51Be60f7Da3b97cf940982D8";
INSERT INTO assets(identifier, name, type) VALUES("eip155:42161/erc20:0x3d9907F9a368ad0a51Be60f7Da3b97cf940982D8", "Camelot token", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:42161/erc20:0x3d9907F9a368ad0a51Be60f7Da3b97cf940982D8", "A", 42161, "0x3d9907F9a368ad0a51Be60f7Da3b97cf940982D8", 18, NULL); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:42161/erc20:0x3d9907F9a368ad0a51Be60f7Da3b97cf940982D8", "GRAIL", "camelot-token", "GRAIL", NULL, 1668866817, NULL);
UPDATE common_asset_details SET cryptocompare="IGU" WHERE identifier="eip155:1/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943";
INSERT INTO assets(identifier, name, type) VALUES("eip155:1/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "IGU Token", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "A", 56, "0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", 18, NULL); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "IGU", "iguverse-igu", "IGU", NULL, 1667125109, NULL);
INSERT INTO assets(identifier, name, type) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "IGU Token", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "A", 56, "0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", 18, NULL); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "IGU", "iguverse-igu", "IGU", NULL, 1667125109, NULL);
UPDATE common_asset_details SET cryptocompare="SUDO" WHERE identifier="eip155:1/erc20:0x3446Dd70B2D52A6Bf4a5a192D9b0A161295aB7F9";
INSERT INTO assets(identifier, name, type) VALUES("eip155:1/erc20:0x3446Dd70B2D52A6Bf4a5a192D9b0A161295aB7F9", "SUDO", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:1/erc20:0x3446Dd70B2D52A6Bf4a5a192D9b0A161295aB7F9", "A", 1, "0x3446Dd70B2D52A6Bf4a5a192D9b0A161295aB7F9", 18, NULL); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:1/erc20:0x3446Dd70B2D52A6Bf4a5a192D9b0A161295aB7F9", "SUDO", "sudoswap", "SUDO", NULL, 1675101587, NULL);
UPDATE common_asset_details SET coingecko="reth" WHERE identifier="eip155:1/erc20:0x9559Aaa82d9649C7A7b220E7c461d2E74c9a3593";
Expand Down
2 changes: 1 addition & 1 deletion updates/24/updates.sql
Original file line number Diff line number Diff line change
Expand Up @@ -990,7 +990,7 @@ INSERT INTO assets(identifier, name, type) VALUES("eip155:534352/erc20:0xB2f97c1
*
INSERT INTO assets(identifier, name, type) VALUES("eip155:10/erc20:0x2e44e174f7D53F0212823acC11C01A11d58c5bCB", "Compound USDC", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:10/erc20:0x2e44e174f7D53F0212823acC11C01A11d58c5bCB", "A", 10, "0x2e44e174f7D53F0212823acC11C01A11d58c5bCB", 6, "compound-v3"); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:10/erc20:0x2e44e174f7D53F0212823acC11C01A11d58c5bCB", "cUSDCv3", "", "", NULL, 1714487855, NULL); INSERT INTO underlying_tokens_list(identifier, weight, parent_token_entry) VALUES("eip155:10/erc20:0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85", "1", "eip155:10/erc20:0x2e44e174f7D53F0212823acC11C01A11d58c5bCB");
*
INSERT INTO assets(identifier, name, type) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "Safe", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "A", 534352, "0x4d18815D14fe5c3304e87B3FA18318baa5c23820", 18, ""); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "SAFE", "safe", "safe", NULL, 1697181885, NULL);
INSERT INTO assets(identifier, name, type) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "Safe", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "A", 100, "0x4d18815D14fe5c3304e87B3FA18318baa5c23820", 18, ""); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "SAFE", "safe", "safe", NULL, 1697181885, NULL);
*
INSERT INTO assets(identifier, name, type) VALUES("eip155:534352/erc20:0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df", "Tether USD", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:534352/erc20:0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df", "A", 534352, "0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df", 6, ""); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:534352/erc20:0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df", "USDT", "tether", "usdt", NULL, 1696952284, NULL);
*
Expand Down
4 changes: 4 additions & 0 deletions updates/25/updates.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
UPDATE assets SET identifier="eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943" WHERE identifier="eip155:1/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943";
INSERT INTO assets(identifier, name, type) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "IGU Token", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "A", 56, "0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", 18, NULL); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:56/erc20:0x201bC9F242f74C47Bbd898a5DC99cDCD81A21943", "IGU", "iguverse-igu", "IGU", NULL, 1667125109, NULL);
UPDATE evm_tokens SET chain=100 WHERE identifier="eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820";
INSERT INTO assets(identifier, name, type) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "Safe", "C"); INSERT INTO evm_tokens(identifier, token_kind, chain, address, decimals, protocol) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "A", 100, "0x4d18815D14fe5c3304e87B3FA18318baa5c23820", 18, ""); INSERT INTO common_asset_details(identifier, symbol, coingecko, cryptocompare, forked, started, swapped_for) VALUES("eip155:100/erc20:0x4d18815D14fe5c3304e87B3FA18318baa5c23820", "SAFE", "safe", "safe", NULL, 1697181885, NULL);
2 changes: 1 addition & 1 deletion updates/info.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"latest": 24, "updates": {"1": {"changes": 249, "max_schema_version": 2, "min_schema_version": 2}, "10": {"changes": 30, "max_schema_version": 2, "min_schema_version": 2}, "11": {"changes": 71, "max_schema_version": 2, "min_schema_version": 2}, "12": {"changes": 174, "max_schema_version": 2, "min_schema_version": 2}, "13": {"changes": 311, "max_schema_version": 2, "min_schema_version": 2}, "14": {"changes": 94, "max_schema_version": 2, "min_schema_version": 2}, "15": {"changes": 116, "max_schema_version": 4, "min_schema_version": 3}, "16": {"changes": 153, "max_schema_version": 7, "min_schema_version": 4}, "17": {"changes": 137, "max_schema_version": 7, "min_schema_version": 4}, "18": {"changes": 189, "max_schema_version": 7, "min_schema_version": 4}, "19": {"changes": 183, "max_schema_version": 7, "min_schema_version": 4}, "2": {"changes": 27, "max_schema_version": 2, "min_schema_version": 2}, "20": {"changes": 105, "max_schema_version": 7, "min_schema_version": 4}, "21": {"changes": 46, "max_schema_version": 7, "min_schema_version": 6}, "22": {"changes": 145, "max_schema_version": 7, "min_schema_version": 6}, "23": {"changes": 4, "max_schema_version": 7, "min_schema_version": 6}, "24": {"changes": 526, "max_schema_version": 7, "min_schema_version": 6}, "3": {"changes": 64, "max_schema_version": 2, "min_schema_version": 2}, "4": {"changes": 23, "max_schema_version": 2, "min_schema_version": 2}, "5": {"changes": 25, "max_schema_version": 2, "min_schema_version": 2}, "6": {"changes": 239, "max_schema_version": 2, "min_schema_version": 2}, "7": {"changes": 34, "max_schema_version": 2, "min_schema_version": 2}, "8": {"changes": 81, "max_schema_version": 2, "min_schema_version": 2}, "9": {"changes": 59, "max_schema_version": 2, "min_schema_version": 2}}}
{"latest": 25, "updates": {"1": {"changes": 249, "max_schema_version": 2, "min_schema_version": 2}, "10": {"changes": 30, "max_schema_version": 2, "min_schema_version": 2}, "11": {"changes": 71, "max_schema_version": 2, "min_schema_version": 2}, "12": {"changes": 174, "max_schema_version": 2, "min_schema_version": 2}, "13": {"changes": 311, "max_schema_version": 2, "min_schema_version": 2}, "14": {"changes": 94, "max_schema_version": 2, "min_schema_version": 2}, "15": {"changes": 116, "max_schema_version": 4, "min_schema_version": 3}, "16": {"changes": 153, "max_schema_version": 7, "min_schema_version": 4}, "17": {"changes": 137, "max_schema_version": 7, "min_schema_version": 4}, "18": {"changes": 189, "max_schema_version": 7, "min_schema_version": 4}, "19": {"changes": 183, "max_schema_version": 7, "min_schema_version": 4}, "2": {"changes": 27, "max_schema_version": 2, "min_schema_version": 2}, "20": {"changes": 105, "max_schema_version": 7, "min_schema_version": 4}, "21": {"changes": 46, "max_schema_version": 7, "min_schema_version": 6}, "22": {"changes": 145, "max_schema_version": 7, "min_schema_version": 6}, "23": {"changes": 4, "max_schema_version": 7, "min_schema_version": 6}, "24": {"changes": 526, "max_schema_version": 7, "min_schema_version": 6}, "25": {"changes": 2, "max_schema_version": 7, "min_schema_version": 6}, "3": {"changes": 64, "max_schema_version": 2, "min_schema_version": 2}, "4": {"changes": 23, "max_schema_version": 2, "min_schema_version": 2}, "5": {"changes": 25, "max_schema_version": 2, "min_schema_version": 2}, "6": {"changes": 239, "max_schema_version": 2, "min_schema_version": 2}, "7": {"changes": 34, "max_schema_version": 2, "min_schema_version": 2}, "8": {"changes": 81, "max_schema_version": 2, "min_schema_version": 2}, "9": {"changes": 59, "max_schema_version": 2, "min_schema_version": 2}}}
7 changes: 6 additions & 1 deletion updates/pretty_info.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"latest": 24,
"latest": 25,
"updates": {
"1": {
"changes": 249,
Expand Down Expand Up @@ -86,6 +86,11 @@
"max_schema_version": 7,
"min_schema_version": 6
},
"25": {
"changes": 2,
"max_schema_version": 7,
"min_schema_version": 6
},
"3": {
"changes": 64,
"max_schema_version": 2,
Expand Down
9 changes: 8 additions & 1 deletion validator/checker.py
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ def _parse_evm_token_data(self, insert_text: str, schema_version: int) -> Tuple[
)

return {
'identifier': self._parse_str(match.group(1), 'identifier', insert_text),
'token_kind': self._parse_str(match.group(2), 'token_kind', insert_text),
'chain': self._parse_optional_int(match.group(3), 'chain', insert_text),
'address': self._parse_str(match.group(4), 'address', insert_text),
Expand All @@ -255,6 +256,7 @@ def _parse_full_insert(self, insert_text: str, schema_version: int) -> AssetData
"""
asset_data = self._parse_asset_data(insert_text, schema_version)
evm_data = {
'identifier': None,
'forked': None,
'address': None,
'decimals': None,
Expand Down Expand Up @@ -290,6 +292,9 @@ def _parse_full_insert(self, insert_text: str, schema_version: int) -> AssetData
f'At asset DB update could not parse common asset '
f'details data out of {insert_text}',
)
assert self._parse_str(match.group(1), 'identifier', insert_text) == asset_data['identifier'], f'Identifiers of assets {asset_data["identifier"]} and common_asset_details {match.group(1)} are not same'
if asset_data['asset_type'] == 'C':
assert evm_data['identifier'] == asset_data['identifier'], f'Identifiers of assets {asset_data["identifier"]} and evm_token {evm_data["identifier"]} are not same'
common_details = {
'symbol': self._parse_optional_str(match.group(2), 'symbol', insert_text),
'coingecko': self._parse_optional_str(match.group(3), 'coingecko', insert_text),
Expand Down Expand Up @@ -338,8 +343,10 @@ def check_single_version_update(
assert asset_data.cryptocompare is not None or asset_data.coingecko is not None
assert len(asset_data.name) != 0, f'Empty name in {asset_data}'
assert len(asset_data.symbol) != 0
if asset_data.asset_type == 'C' and schema_version > 2:
assert asset_data.identifier == f'eip155:{asset_data.chain}/erc20:{asset_data.ethereum_address}', f'Mismatch in identifier, chain id, and/or address for {asset_data.identifier}'

# Check agains duplicate information. Before schema version 3 we couldn't have duplicates
# Check againts duplicate information. Before schema version 3 we couldn't have duplicates
if insert and schema_version == 2:
assert asset_data.cryptocompare not in seen_elements, f'Duplicate cryptocompare {asset_data.cryptocompare}'
assert asset_data.coingecko not in seen_elements, f'Duplicate coingecko {asset_data.coingecko}'
Expand Down

0 comments on commit c01d4fb

Please sign in to comment.