diff --git a/VERSION b/VERSION index 280a1e3..7ec1d6d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.12 +2.1.0 diff --git a/assets/btcb-0/info.json b/assets/btcb-0/info.json index e2e1eb2..10a03cd 100644 --- a/assets/btcb-0/info.json +++ b/assets/btcb-0/info.json @@ -1,5 +1,15 @@ { "contracts": [ + { + "address": "0x7A6888c85eDBA8E38F6C7E0485212da602761C08", + "decimals": 18, + "name": "BTCB", + "network": "evm-1116", + "symbol": "BTCB", + "tags": [ + "mainnet" + ] + }, { "address": "0xd267F821F1b8344B5A63626c8c824697194A173E", "decimals": 18, diff --git a/assets/btcusd-0/info.json b/assets/btcusd-0/info.json index b1cc41d..b45a273 100644 --- a/assets/btcusd-0/info.json +++ b/assets/btcusd-0/info.json @@ -1,5 +1,15 @@ { "contracts": [ + { + "address": "0xad0c524Ce19ceA03654Dc377da7Bac52C56eDd10", + "decimals": 18, + "name": "Bitcoin USD", + "network": "evm-1116", + "symbol": "BtcUSD", + "tags": [ + "mainnet" + ] + }, { "address": "0x6906Ccda405926FC3f04240187dd4fAd5DF6d555", "decimals": 18, diff --git a/assets/core-0/image-128.png b/assets/core-0/image-128.png new file mode 100644 index 0000000..3a25143 Binary files /dev/null and b/assets/core-0/image-128.png differ diff --git a/assets/core-0/image-256.png b/assets/core-0/image-256.png new file mode 100644 index 0000000..f73264d Binary files /dev/null and b/assets/core-0/image-256.png differ diff --git a/assets/core-0/image-32.png b/assets/core-0/image-32.png new file mode 100644 index 0000000..02ab739 Binary files /dev/null and b/assets/core-0/image-32.png differ diff --git a/assets/core-0/image-64.png b/assets/core-0/image-64.png new file mode 100644 index 0000000..047170c Binary files /dev/null and b/assets/core-0/image-64.png differ diff --git a/assets/core-0/image.svg b/assets/core-0/image.svg new file mode 100644 index 0000000..61788f4 --- /dev/null +++ b/assets/core-0/image.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/assets/core-0/info.json b/assets/core-0/info.json new file mode 100644 index 0000000..b6f79e2 --- /dev/null +++ b/assets/core-0/info.json @@ -0,0 +1,56 @@ +{ + "contracts": [ + { + "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", + "decimals": 18, + "name": "Core Blockchain Testnet Native Token", + "network": "evm-1115", + "symbol": "tCORE", + "tags": [ + "native-coin", + "testnet" + ] + }, + { + "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", + "decimals": 18, + "name": "Core Blockchain Native Token", + "network": "evm-1116", + "symbol": "CORE", + "tags": [ + "mainnet", + "native-coin" + ] + }, + { + "address": "0xA8079B9F389F0E1e6d2Deb2E434209eC6a52e6c6", + "decimals": 18, + "name": "Unified CORE", + "network": "evm-3068", + "symbol": "CORE", + "tags": [ + "mainnet" + ] + } + ], + "id": "core-0", + "images": { + "png128": true, + "png256": true, + "png32": true, + "png64": true, + "svg": true + }, + "name": "Core Blockchain Native Token", + "references": [ + { + "id": "coingecko", + "url": "https://www.coingecko.com/en/coins/core" + }, + { + "id": "coinmarketcap", + "url": "https://coinmarketcap.com/currencies/core-dao" + } + ], + "tags": [] +} diff --git a/assets/unknown-core/image-128.png b/assets/unknown-core/image-128.png new file mode 100644 index 0000000..8e1536a Binary files /dev/null and b/assets/unknown-core/image-128.png differ diff --git a/assets/unknown-core/image-256.png b/assets/unknown-core/image-256.png new file mode 100644 index 0000000..b69cbdf Binary files /dev/null and b/assets/unknown-core/image-256.png differ diff --git a/assets/unknown-core/image-32.png b/assets/unknown-core/image-32.png new file mode 100644 index 0000000..7213f31 Binary files /dev/null and b/assets/unknown-core/image-32.png differ diff --git a/assets/unknown-core/image-64.png b/assets/unknown-core/image-64.png new file mode 100644 index 0000000..8a11a58 Binary files /dev/null and b/assets/unknown-core/image-64.png differ diff --git a/assets/unknown-core/image.svg b/assets/unknown-core/image.svg new file mode 100644 index 0000000..2ece83d --- /dev/null +++ b/assets/unknown-core/image.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/assets/unknown-core/info.json b/assets/unknown-core/info.json new file mode 100644 index 0000000..8012c14 --- /dev/null +++ b/assets/unknown-core/info.json @@ -0,0 +1,37 @@ +{ + "contracts": [ + { + "address": "0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF", + "decimals": 0, + "name": "Unknown Core Asset", + "network": "evm-1115", + "symbol": "UNKNOWN", + "tags": [ + "testnet" + ] + }, + { + "address": "0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF", + "decimals": 0, + "name": "Unknown Core Asset", + "network": "evm-1116", + "symbol": "UNKNOWN", + "tags": [ + "mainnet" + ] + } + ], + "id": "unknown-core", + "images": { + "png128": true, + "png256": true, + "png32": true, + "png64": true, + "svg": true + }, + "name": "Unknown Core Asset", + "references": [], + "tags": [ + "core" + ] +} diff --git a/assets/wbtc-0/info.json b/assets/wbtc-0/info.json index 3e29b7a..59b367f 100644 --- a/assets/wbtc-0/info.json +++ b/assets/wbtc-0/info.json @@ -30,6 +30,16 @@ "testnet" ] }, + { + "address": "0x5832f53d147b3d6Cd4578B9CBD62425C7ea9d0Bd", + "decimals": 8, + "name": "WBTC", + "network": "evm-1116", + "symbol": "WBTC", + "tags": [ + "mainnet" + ] + }, { "address": "0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6", "decimals": 8, diff --git a/enums/ids/asset.json b/enums/ids/asset.json index b79f46d..8d6c32c 100644 --- a/enums/ids/asset.json +++ b/enums/ids/asset.json @@ -355,6 +355,10 @@ "description": "Compound Coin", "value": "comp-0" }, + { + "description": "Core Blockchain Native Token", + "value": "core-0" + }, { "description": "CorgiAI", "value": "corgiai-0" @@ -1255,6 +1259,10 @@ "description": "Unknown BNB Asset", "value": "unknown-bnb" }, + { + "description": "Unknown Core Asset", + "value": "unknown-core" + }, { "description": "Unknown Ethereum Asset", "value": "unknown-ethereum" diff --git a/enums/ids/network.explorer.json b/enums/ids/network.explorer.json index f11a68f..961347a 100644 --- a/enums/ids/network.explorer.json +++ b/enums/ids/network.explorer.json @@ -3,6 +3,10 @@ "value": "blockscout", "description": "Explorer powered by Blockscout" }, + { + "value": "corescan", + "description": "Explorer powered by Core" + }, { "value": "dexguru", "description": "Explorer powered by DexGuru" diff --git a/enums/ids/network.json b/enums/ids/network.json index 597cfa1..c1fe23e 100644 --- a/enums/ids/network.json +++ b/enums/ids/network.json @@ -19,6 +19,10 @@ "description": "Klaytn Testnet Baobab", "value": "evm-1001" }, + { + "description": "Core Blockchain Testnet", + "value": "evm-1115" + }, { "description": "Ethereum Testnet Sepolia", "value": "evm-11155111" @@ -27,6 +31,10 @@ "description": "OP Sepolia Testnet", "value": "evm-11155420" }, + { + "description": "Core Blockchain Mainnet", + "value": "evm-1116" + }, { "description": "Polygon Mainnet", "value": "evm-137" diff --git a/enums/tags/asset.json b/enums/tags/asset.json index a8ffc8d..3959130 100644 --- a/enums/tags/asset.json +++ b/enums/tags/asset.json @@ -23,6 +23,10 @@ "value": "bnb", "description": "Main network of asset is BNB chain" }, + { + "value": "core", + "description": "Main network of asset is Core" + }, { "value": "ethereum", "description": "Main network of asset is Ethereum" diff --git a/enums/tags/network.json b/enums/tags/network.json index 334dd2d..046db79 100644 --- a/enums/tags/network.json +++ b/enums/tags/network.json @@ -23,6 +23,10 @@ "value": "bnb", "description": "BNB networks" }, + { + "value": "core", + "description": "Core networks" + }, { "value": "ethereum", "description": "Ethereum networks" diff --git a/libraries/constants/rpc.json b/libraries/constants/rpc.json index 076ed4b..5621892 100644 --- a/libraries/constants/rpc.json +++ b/libraries/constants/rpc.json @@ -11,6 +11,10 @@ "id": "evm-1001", "url": "https://public-rpc.thebifrost.io/test/kaia" }, + { + "id": "evm-1115", + "url": null + }, { "id": "evm-11155111", "url": "https://public-rpc.thebifrost.io/test/eth" @@ -19,6 +23,10 @@ "id": "evm-11155420", "url": "https://public-rpc.thebifrost.io/test/op" }, + { + "id": "evm-1116", + "url": "https://public-rpc.thebifrost.io/main/core" + }, { "id": "evm-137", "url": "https://public-rpc.thebifrost.io/main/polygon" diff --git a/networks/evm-1115/image-128.png b/networks/evm-1115/image-128.png new file mode 100644 index 0000000..1566318 Binary files /dev/null and b/networks/evm-1115/image-128.png differ diff --git a/networks/evm-1115/image-256.png b/networks/evm-1115/image-256.png new file mode 100644 index 0000000..2e76e7b Binary files /dev/null and b/networks/evm-1115/image-256.png differ diff --git a/networks/evm-1115/image-32.png b/networks/evm-1115/image-32.png new file mode 100644 index 0000000..2b09bd4 Binary files /dev/null and b/networks/evm-1115/image-32.png differ diff --git a/networks/evm-1115/image-64.png b/networks/evm-1115/image-64.png new file mode 100644 index 0000000..0412d5b Binary files /dev/null and b/networks/evm-1115/image-64.png differ diff --git a/networks/evm-1115/image.svg b/networks/evm-1115/image.svg new file mode 100644 index 0000000..f3ce3e4 --- /dev/null +++ b/networks/evm-1115/image.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/networks/evm-1115/info.json b/networks/evm-1115/info.json new file mode 100644 index 0000000..ecfed10 --- /dev/null +++ b/networks/evm-1115/info.json @@ -0,0 +1,30 @@ +{ + "currency": { + "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", + "decimals": 18, + "id": "core-0", + "name": "Core Blockchain Testnet Native Token", + "symbol": "tCORE" + }, + "engine": "evm", + "explorers": [ + { + "id": "corescan", + "url": "https://scan.test.btcs.network/" + } + ], + "id": "evm-1115", + "images": { + "png128": true, + "png256": true, + "png32": true, + "png64": true, + "svg": true + }, + "name": "Core Blockchain Testnet", + "network": "testnet", + "tags": [ + "core" + ], + "unknownAssetId": "unknown-core" +} diff --git a/networks/evm-1116/image-128.png b/networks/evm-1116/image-128.png new file mode 100644 index 0000000..c5c54f1 Binary files /dev/null and b/networks/evm-1116/image-128.png differ diff --git a/networks/evm-1116/image-256.png b/networks/evm-1116/image-256.png new file mode 100644 index 0000000..0ee4131 Binary files /dev/null and b/networks/evm-1116/image-256.png differ diff --git a/networks/evm-1116/image-32.png b/networks/evm-1116/image-32.png new file mode 100644 index 0000000..f8569be Binary files /dev/null and b/networks/evm-1116/image-32.png differ diff --git a/networks/evm-1116/image-64.png b/networks/evm-1116/image-64.png new file mode 100644 index 0000000..146d107 Binary files /dev/null and b/networks/evm-1116/image-64.png differ diff --git a/networks/evm-1116/image.svg b/networks/evm-1116/image.svg new file mode 100644 index 0000000..82588e1 --- /dev/null +++ b/networks/evm-1116/image.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/networks/evm-1116/info.json b/networks/evm-1116/info.json new file mode 100644 index 0000000..0b78500 --- /dev/null +++ b/networks/evm-1116/info.json @@ -0,0 +1,30 @@ +{ + "currency": { + "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", + "decimals": 18, + "id": "core-0", + "name": "Core Blockchain Native Token", + "symbol": "CORE" + }, + "engine": "evm", + "explorers": [ + { + "id": "corescan", + "url": "https://scan.coredao.org/" + } + ], + "id": "evm-1116", + "images": { + "png128": true, + "png256": true, + "png32": true, + "png64": true, + "svg": true + }, + "name": "Core Blockchain Mainnet", + "network": "mainnet", + "tags": [ + "core" + ], + "unknownAssetId": "unknown-core" +} diff --git a/tests/additional/test_rpc.py b/tests/additional/test_rpc.py index 97b21ec..c18c7a3 100644 --- a/tests/additional/test_rpc.py +++ b/tests/additional/test_rpc.py @@ -1,6 +1,8 @@ from asyncio import gather from copy import deepcopy from pathlib import Path +from re import search +from subprocess import run, PIPE import pytest from pydantic import HttpUrl @@ -71,7 +73,7 @@ async def __test_rpc_url(self, network: Network): @pytest.mark.asyncio async def test_all_contracts_info_valid(self): """All contracts in asset information are valid.""" - for asset, _ in self.asset_list: + for asset in self.__filter_modified_assets(): await gather(*[self.__test_all_contract_info_valid(asset)]) async def __test_all_contract_info_valid(self, asset: Asset): @@ -102,3 +104,31 @@ async def __test_all_contract_info_valid(self, asset: Asset): assert contract == expected else: pass + + def __filter_modified_assets(self) -> list[Asset]: + """Filter the modified assets.""" + # Get recent tag + recent_tag_result = run( + ["git", "describe", "--tags", "--abbrev=0", "HEAD^"], + stdout=PIPE, + stderr=PIPE, + text=True, + check=True, + ) + recent_tag = recent_tag_result.stdout.strip() + # Get modified files + diff_result = run( + ["git", "diff", "--name-only", recent_tag], + stdout=PIPE, + stderr=PIPE, + text=True, + check=True, + ) + changed_files = [ + file for file in diff_result.stdout.strip().split("\n") if file + ] + asset_matches = [ + search(r"assets/([^/]+)/info.json", file) for file in changed_files + ] + asset_ids = [match.group(1) for match in asset_matches if match] + return [asset for asset, _ in self.asset_list if asset.id in asset_ids]