From 2f77dc997dfd2ca082636b64a16b10c22e83318c Mon Sep 17 00:00:00 2001
From: Xi Zhang <xizhang@oasislabs.com>
Date: Tue, 19 Nov 2024 18:11:33 -0600
Subject: [PATCH] feat: Add Oasis Sapphire Mainnet and Testnet

---
 app/images/oasis.svg        | 19 +++++++++++++++++++
 shared/constants/network.ts | 15 +++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 app/images/oasis.svg

diff --git a/app/images/oasis.svg b/app/images/oasis.svg
new file mode 100644
index 00000000000..4cccc9ff11b
--- /dev/null
+++ b/app/images/oasis.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="Layer_2" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 782.63 782.63">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #0500e2;
+        stroke-width: 0px;
+      }
+      @media (prefers-color-scheme: dark) {
+        .cls-1 {
+          fill: white;
+        }
+      }
+    </style>
+  </defs>
+  <g id="Layer_1-2" data-name="Layer 1">
+    <path class="cls-1" d="M670.61,117.6c-32.86-33.52-71.73-61.06-114.78-81.11-1.75-.9-3.53-1.72-5.37-2.49-8.46-3.78-17.01-7.38-25.77-10.56-24.51-8.91-50.16-15.41-76.66-19.28-18.53-2.7-37.46-4.16-56.72-4.16C175.54,0,0,175.54,0,391.32c0,168.1,106.56,311.76,255.67,367.04,17.54,6.5,35.67,11.76,54.28,15.71,26.26,5.58,53.47,8.57,81.36,8.57,148.63,0,278.16-83.31,344.39-205.68,29.91-55.27,46.93-118.5,46.93-185.64,0-106.47-42.79-203.09-112.02-273.72ZM116.72,600.67c-46.24-60.99-70.68-133.75-70.68-210.42,0-130.92,72.58-245.19,179.61-304.7,2.83-1.58,5.63,2.18,3.27,4.4-9.78,9.21-19.16,19.05-28.13,29.53-62.03,72.55-97.77,171.21-98.08,270.77,0,129.26,86.46,268.77,226.15,268.77,124.66,0,226.07-120.57,226.07-268.77,0-69.63-23.34-136.49-63.2-186.11-1.41-1.75.26-4.23,2.41-3.6,67.38,19.93,117.77,97.42,117.77,189.71,0,81.48-29.56,162.59-81.11,222.56-53.43,62.15-125.15,96.4-201.94,96.43-80.87,0-158.26-39.65-212.15-108.56ZM672.12,180.03c46.2,60.84,70.58,133.49,70.51,210.14,0,130.91-72.58,245.19-179.62,304.7-2.83,1.58-5.63-2.18-3.27-4.4,9.78-9.21,19.16-19.06,28.13-29.53,62.03-72.54,97.77-171.21,98.08-270.77,0-129.26-86.46-268.77-226.15-268.77-124.66,0-226.07,120.57-226.07,268.77,0,69.63,23.35,136.5,63.21,186.12,1.4,1.75-.26,4.23-2.41,3.6-67.39-19.92-117.78-97.39-117.78-189.64,0-81.46,29.56-162.56,81.12-222.51,53.45-62.16,125.19-96.4,202.01-96.4,80.81,0,158.17,39.62,212.25,108.69ZM514.03,390.25c0,92.31-44.84,171.97-109.11,207.74-7.96,4.43-17.77,3.88-25.14-1.49l-13.75-10.03c-56.37-41.13-91.39-116.35-91.39-196.29,0-92.3,44.84-171.96,109.12-207.73,7.97-4.43,17.78-3.88,25.14,1.49l13.74,10.03c56.37,41.13,91.39,116.34,91.39,196.29Z"/>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/shared/constants/network.ts b/shared/constants/network.ts
index 4844e7c2e98..eb1227a16f3 100644
--- a/shared/constants/network.ts
+++ b/shared/constants/network.ts
@@ -155,6 +155,8 @@ export const CHAIN_IDS = {
   NEAR_TESTNET: '0x18e',
   GRAVITY_ALPHA_MAINNET: '0x659',
   GRAVITY_ALPHA_TESTNET_SEPOLIA: '0x34c1',
+  OASIS_SAPPHIRE: '0x5afe',
+  OASIS_SAPPHIRE_TESTNET: '0x5aff',
 } as const;
 
 export const CHAINLIST_CHAIN_IDS_MAP = {
@@ -195,6 +197,8 @@ export const CHAINLIST_CHAIN_IDS_MAP = {
   NEAR_AURORA_MAINNET: '0x4e454152',
   NEBULA_MAINNET: '0x585eb4b1',
   OASYS_MAINNET: '0xf8',
+  OASIS_SAPPHIRE: '0x5afe',
+  OASIS_SAPPHIRE_TESTNET: '0x5aff',
   OKXCHAIN_MAINNET: '0x42',
   PGN_PUBLIC_GOODS_NETWORK: '0x1a8',
   PULSECHAIN_MAINNET: '0x171',
@@ -373,6 +377,8 @@ const CHAINLIST_CURRENCY_SYMBOLS_MAP = {
   TELOS_EVM_MAINNET: 'TLOS',
   TENET: 'TENET',
   DOGECHAIN_MAINNET: 'DOGE',
+  OASIS_SAPPHIRE: 'ROSE',
+  OASIS_SAPPHIRE_TESTNET: 'TEST',
   OASYS_MAINNET: 'OAS',
   HUOBI_ECO_CHAIN_MAINNET: 'HT',
   ACALA_NETWORK: 'ACA',
@@ -460,6 +466,7 @@ export const NEAR_IMAGE_URL = './images/near.svg';
 export const APE_IMAGE_URL = './images/ape.svg';
 export const GRAVITY_ALPHA_MAINNET_IMAGE_URL = './images/gravity.svg';
 export const GRAVITY_ALPHA_TESTNET_SEPOLIA_IMAGE_URL = './images/gravity.svg';
+export const OASIS_IMAGE_URL = './images/oasis.svg';
 
 export const INFURA_PROVIDER_TYPES = [
   NETWORK_TYPES.MAINNET,
@@ -681,6 +688,10 @@ export const CHAIN_ID_TO_CURRENCY_SYMBOL_MAP = {
     CHAINLIST_CURRENCY_SYMBOLS_MAP.DOGECHAIN_MAINNET,
   [CHAINLIST_CHAIN_IDS_MAP.OASYS_MAINNET]:
     CHAINLIST_CURRENCY_SYMBOLS_MAP.OASYS_MAINNET,
+  [CHAINLIST_CHAIN_IDS_MAP.OASIS_SAPPHIRE]:
+    CHAINLIST_CURRENCY_SYMBOLS_MAP.OASIS_SAPPHIRE,
+  [CHAINLIST_CHAIN_IDS_MAP.OASIS_SAPPHIRE_TESTNET]:
+    CHAINLIST_CURRENCY_SYMBOLS_MAP.OASIS_SAPPHIRE_TESTNET,
   [CHAINLIST_CHAIN_IDS_MAP.HUOBI_ECO_CHAIN_MAINNET]:
     CHAINLIST_CURRENCY_SYMBOLS_MAP.HUOBI_ECO_CHAIN_MAINNET,
   [CHAINLIST_CHAIN_IDS_MAP.ACALA_NETWORK]:
@@ -778,6 +789,8 @@ export const CHAIN_ID_TO_NETWORK_IMAGE_URL_MAP = {
   [CHAINLIST_CHAIN_IDS_MAP.NEAR_AURORA_MAINNET]: NEAR_AURORA_MAINNET_IMAGE_URL,
   [CHAINLIST_CHAIN_IDS_MAP.NEBULA_MAINNET]: NEBULA_MAINNET_IMAGE_URL,
   [CHAINLIST_CHAIN_IDS_MAP.OASYS_MAINNET]: OASYS_MAINNET_IMAGE_URL,
+  [CHAINLIST_CHAIN_IDS_MAP.OASIS_SAPPHIRE]: OASIS_IMAGE_URL,
+  [CHAINLIST_CHAIN_IDS_MAP.OASIS_SAPPHIRE_TESTNET]: OASIS_IMAGE_URL,
   [CHAINLIST_CHAIN_IDS_MAP.OKXCHAIN_MAINNET]: OKXCHAIN_MAINNET_IMAGE_URL,
   [CHAINLIST_CHAIN_IDS_MAP.PGN_PUBLIC_GOODS_NETWORK]: PGN_MAINNET_IMAGE_URL,
   [CHAINLIST_CHAIN_IDS_MAP.POLYGON_ZKEVM]: ZKEVM_MAINNET_IMAGE_URL,
@@ -837,6 +850,8 @@ export const CHAIN_ID_TOKEN_IMAGE_MAP = {
   [CHAIN_IDS.GRAVITY_ALPHA_MAINNET]: GRAVITY_ALPHA_MAINNET_IMAGE_URL,
   [CHAIN_IDS.GRAVITY_ALPHA_TESTNET_SEPOLIA]:
     GRAVITY_ALPHA_TESTNET_SEPOLIA_IMAGE_URL,
+  [CHAIN_IDS.OASIS_SAPPHIRE]: OASIS_IMAGE_URL,
+  [CHAIN_IDS.OASIS_SAPPHIRE_TESTNET]: OASIS_IMAGE_URL,
 } as const;
 
 export const INFURA_BLOCKED_KEY = 'countryBlocked';