diff --git a/package.json b/package.json index 6ed584a4143..11a362957f8 100644 --- a/package.json +++ b/package.json @@ -176,6 +176,7 @@ "copy-to-clipboard": "^3.2.0", "d3": "^7.6.1", "ethers": "^5.1.4", + "ethf-smart-order-router": "^2.14.3", "firebase": "^9.1.3", "focus-visible": "^5.2.0", "get-graphql-schema": "^2.1.2", diff --git a/public/favicon.png b/public/favicon.png index 47c6e1fa490..b4ac588fc92 100644 Binary files a/public/favicon.png and b/public/favicon.png differ diff --git a/public/index.html b/public/index.html index 1974dddfd54..7b2b3fcb0ec 100644 --- a/public/index.html +++ b/public/index.html @@ -3,16 +3,16 @@ - Uniswap Interface + Ethereum Fair Dex - - - + + + diff --git a/src/assets/images/etf-logo.png b/src/assets/images/etf-logo.png new file mode 100644 index 00000000000..18960830aa1 Binary files /dev/null and b/src/assets/images/etf-logo.png differ diff --git a/src/assets/svg/logo.svg b/src/assets/svg/logo.svg index d93197e48b7..c0de1be3165 100644 --- a/src/assets/svg/logo.svg +++ b/src/assets/svg/logo.svg @@ -1,13 +1,17 @@ - - - - - - - - - - - - - + + + ETHF + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/AccountDetails/TransactionSummary.tsx b/src/components/AccountDetails/TransactionSummary.tsx index 1839b7acd94..ae2bb4fa843 100644 --- a/src/components/AccountDetails/TransactionSummary.tsx +++ b/src/components/AccountDetails/TransactionSummary.tsx @@ -152,11 +152,11 @@ function WrapSummary({ info: { chainId, currencyAmountRaw, unwrapped } }: { info Unwrap{' '} {' '} - to {native?.symbol ?? 'ETH'} + to {native?.symbol ?? 'ETF'} ) } else { @@ -165,11 +165,11 @@ function WrapSummary({ info: { chainId, currencyAmountRaw, unwrapped } }: { info Wrap{' '} {' '} - to {native?.wrapped?.symbol ?? 'WETH'} + to {native?.wrapped?.symbol ?? 'WETF'} ) } diff --git a/src/components/AccountDetailsV2/LogoView.tsx b/src/components/AccountDetailsV2/LogoView.tsx index 8fafd06af18..57b4b1b2e51 100644 --- a/src/components/AccountDetailsV2/LogoView.tsx +++ b/src/components/AccountDetailsV2/LogoView.tsx @@ -48,8 +48,8 @@ const getCurrency = ({ info, chainId }: { info: TransactionInfo; chainId: number case TransactionType.WRAP: const { unwrapped } = info const native = info.chainId ? nativeOnChain(info.chainId) : undefined - const base = 'ETH' - const wrappedCurrency = native?.wrapped.address ?? 'WETH' + const base = 'ETF' + const wrappedCurrency = native?.wrapped.address ?? 'WETF' return { currencyId0: unwrapped ? wrappedCurrency : base, currencyId1: unwrapped ? base : wrappedCurrency } case TransactionType.COLLECT_FEES: const { currencyId0, currencyId1 } = info diff --git a/src/components/AccountDetailsV2/TransactionBody.tsx b/src/components/AccountDetailsV2/TransactionBody.tsx index 809687d59d3..bdffc0a4dc5 100644 --- a/src/components/AccountDetailsV2/TransactionBody.tsx +++ b/src/components/AccountDetailsV2/TransactionBody.tsx @@ -280,8 +280,8 @@ const WrapSummary = ({ transactionState: TransactionState }) => { const native = chainId ? nativeOnChain(chainId) : undefined - const from = unwrapped ? native?.wrapped.symbol ?? 'WETH' : native?.symbol ?? 'ETH' - const to = unwrapped ? native?.symbol ?? 'ETH' : native?.wrapped.symbol ?? 'WETH' + const from = unwrapped ? native?.wrapped.symbol ?? 'WETF' : native?.symbol ?? 'ETF' + const to = unwrapped ? native?.symbol ?? 'ETF' : native?.wrapped.symbol ?? 'WETF' const amount = formatAmount(currencyAmountRaw, 18, 6) const actionProps = unwrapped diff --git a/src/components/Header/NetworkSelector.tsx b/src/components/Header/NetworkSelector.tsx index aa0108a9ad2..bd20acc9c33 100644 --- a/src/components/Header/NetworkSelector.tsx +++ b/src/components/Header/NetworkSelector.tsx @@ -205,7 +205,7 @@ const ExplorerLabel = ({ chainId }: { chainId: SupportedChainId }) => { case SupportedChainId.CELO_ALFAJORES: return Blockscout default: - return Etherscan + return Blockscout } } @@ -273,10 +273,10 @@ function Row({ const NETWORK_SELECTOR_CHAINS = [ SupportedChainId.MAINNET, - SupportedChainId.POLYGON, - SupportedChainId.OPTIMISM, - SupportedChainId.ARBITRUM_ONE, - SupportedChainId.CELO, + // SupportedChainId.POLYGON, + // SupportedChainId.OPTIMISM, + // SupportedChainId.ARBITRUM_ONE, + // SupportedChainId.CELO, ] export default function NetworkSelector() { diff --git a/src/components/Header/Polling.tsx b/src/components/Header/Polling.tsx index 30041d89120..dfd6e86e2e7 100644 --- a/src/components/Header/Polling.tsx +++ b/src/components/Header/Polling.tsx @@ -147,7 +147,7 @@ export default function Polling() { text={ The current fast gas amount for sending a transaction on L1. Gas fees are paid in - Ethereum's native currency Ether (ETH) and denominated in GWEI. + Ethereum's native currency Ether (ETF) and denominated in GWEI. } > diff --git a/src/components/Menu/index.tsx b/src/components/Menu/index.tsx index 1d01c8c11ef..729616e39d6 100644 --- a/src/components/Menu/index.tsx +++ b/src/components/Menu/index.tsx @@ -9,15 +9,15 @@ import { useActiveLocale } from 'hooks/useActiveLocale' import { useLocationLinkProps } from 'hooks/useLocationLinkProps' import { FunctionComponent, PropsWithChildren, useEffect, useRef, useState } from 'react' import { - BookOpen, + // BookOpen, Check, ChevronLeft, - Coffee, - FileText, + // Coffee, + // FileText, Flag, Globe, - HelpCircle, - Info, + // HelpCircle, + // Info, MessageCircle, Moon, Sun, @@ -246,25 +246,25 @@ export default function Menu() { default: return ( - -
- About -
- -
- -
- Help Center -
- -
- -
- Request Features -
- -
- + {/**/} + {/*
*/} + {/* About*/} + {/*
*/} + {/* */} + {/*
*/} + {/**/} + {/*
*/} + {/* Help Center*/} + {/*
*/} + {/* */} + {/*
*/} + {/**/} + {/*
*/} + {/* Request Features*/} + {/*
*/} + {/* */} + {/*
*/} +
Discord
@@ -280,34 +280,34 @@ export default function Menu() {
{darkMode ? Light Theme : Dark Theme}
{darkMode ? : } - -
- Docs -
- -
- togglePrivacyPolicy()}> -
- Legal & Privacy -
- -
+ {/**/} + {/*
*/} + {/* Docs*/} + {/*
*/} + {/* */} + {/*
*/} + {/* togglePrivacyPolicy()}>*/} + {/*
*/} + {/* Legal & Privacy*/} + {/*
*/} + {/* */} + {/*
*/} {(isDevelopmentEnv() || isStagingEnv()) && ( Feature Flags )} - {showUNIClaimOption && ( - - Claim UNI - - )} + {/*{showUNIClaimOption && (*/} + {/* */} + {/* Claim UNI*/} + {/* */} + {/*)}*/}
) } diff --git a/src/components/NavBar/SuggestionRow.tsx b/src/components/NavBar/SuggestionRow.tsx index d92acb7e7ee..db32e80e4c7 100644 --- a/src/components/NavBar/SuggestionRow.tsx +++ b/src/components/NavBar/SuggestionRow.tsx @@ -81,7 +81,7 @@ export const CollectionRow = ({ collection, isHovered, setHoveredIndex, toggleOp {collection.floorPrice ? ( - {ethNumberStandardFormatter(collection.floorPrice)} ETH + {ethNumberStandardFormatter(collection.floorPrice)} ETF Floor diff --git a/src/constants/chainInfo.ts b/src/constants/chainInfo.ts index a6d26472418..6629ca2f7b2 100644 --- a/src/constants/chainInfo.ts +++ b/src/constants/chainInfo.ts @@ -1,5 +1,5 @@ import celoCircleLogoUrl from 'assets/images/celoCircle.png' -import ethereumLogoUrl from 'assets/images/ethereum-logo.png' +import ethereumLogoUrl from 'assets/images/etf-logo.png' import optimismCircleLogoUrl from 'assets/images/optimismCircle.png' import polygonCircleLogoUrl from 'assets/images/polygonCircle.png' import { default as arbitrumCircleLogoUrl, default as arbitrumLogoUrl } from 'assets/svg/arbitrum_logo.svg' @@ -58,17 +58,17 @@ const CHAIN_INFO: ChainInfoMap = { networkType: NetworkType.L1, docs: 'https://docs.uniswap.org/', explorer: 'https://explorer.etherfair.org/', - infoLink: 'https://info.uniswap.org/#/', + infoLink: 'https://dexscreener.com/ethereumfair', label: 'EthereumFair', logoUrl: ethereumLogoUrl, - nativeCurrency: { name: 'ETF', symbol: 'ETF', decimals: 18 }, + nativeCurrency: { name: 'Ethereum Fair', symbol: 'ETF', decimals: 18 }, color: colorsDark.chain_1, }, [SupportedChainId.RINKEBY]: { networkType: NetworkType.L1, docs: 'https://docs.uniswap.org/', explorer: 'https://rinkeby.etherscan.io/', - infoLink: 'https://info.uniswap.org/#/', + infoLink: 'https://dexscreener.com/ethereumfair', label: 'Rinkeby', logoUrl: ethereumLogoUrl, nativeCurrency: { name: 'Rinkeby Ether', symbol: 'rETH', decimals: 18 }, @@ -78,7 +78,7 @@ const CHAIN_INFO: ChainInfoMap = { networkType: NetworkType.L1, docs: 'https://docs.uniswap.org/', explorer: 'https://ropsten.etherscan.io/', - infoLink: 'https://info.uniswap.org/#/', + infoLink: 'https://dexscreener.com/ethereumfair', label: 'Ropsten', logoUrl: ethereumLogoUrl, nativeCurrency: { name: 'Ropsten Ether', symbol: 'ropETH', decimals: 18 }, @@ -88,7 +88,7 @@ const CHAIN_INFO: ChainInfoMap = { networkType: NetworkType.L1, docs: 'https://docs.uniswap.org/', explorer: 'https://kovan.etherscan.io/', - infoLink: 'https://info.uniswap.org/#/', + infoLink: 'https://dexscreener.com/ethereumfair', label: 'Kovan', logoUrl: ethereumLogoUrl, nativeCurrency: { name: 'Kovan Ether', symbol: 'kovETH', decimals: 18 }, @@ -98,7 +98,7 @@ const CHAIN_INFO: ChainInfoMap = { networkType: NetworkType.L1, docs: 'https://docs.uniswap.org/', explorer: 'https://goerli.etherscan.io/', - infoLink: 'https://info.uniswap.org/#/', + infoLink: 'https://dexscreener.com/ethereumfair', label: 'Görli', logoUrl: ethereumLogoUrl, nativeCurrency: { name: 'Görli Ether', symbol: 'görETH', decimals: 18 }, @@ -111,7 +111,7 @@ const CHAIN_INFO: ChainInfoMap = { defaultListUrl: OPTIMISM_LIST, docs: 'https://optimism.io/', explorer: 'https://optimistic.etherscan.io/', - infoLink: 'https://info.uniswap.org/#/optimism/', + infoLink: 'https://dexscreener.com/optimism', label: 'Optimism', logoUrl: optimismLogoUrl, circleLogoUrl: optimismCircleLogoUrl, @@ -128,7 +128,7 @@ const CHAIN_INFO: ChainInfoMap = { defaultListUrl: OPTIMISM_LIST, docs: 'https://optimism.io/', explorer: 'https://optimistic.etherscan.io/', - infoLink: 'https://info.uniswap.org/#/optimism/', + infoLink: 'https://dexscreener.com/optimism', label: 'Optimistic Kovan', logoUrl: optimismLogoUrl, statusPage: 'https://optimism.io/status', @@ -142,7 +142,7 @@ const CHAIN_INFO: ChainInfoMap = { bridge: 'https://bridge.arbitrum.io/', docs: 'https://offchainlabs.com/', explorer: 'https://arbiscan.io/', - infoLink: 'https://info.uniswap.org/#/arbitrum', + infoLink: 'https://dexscreener.com/arbitrum', label: 'Arbitrum', logoUrl: arbitrumLogoUrl, circleLogoUrl: arbitrumCircleLogoUrl, @@ -158,7 +158,7 @@ const CHAIN_INFO: ChainInfoMap = { bridge: 'https://bridge.arbitrum.io/', docs: 'https://offchainlabs.com/', explorer: 'https://rinkeby-explorer.arbitrum.io/', - infoLink: 'https://info.uniswap.org/#/arbitrum/', + infoLink: 'https://dexscreener.com/arbitrum', label: 'Arbitrum Rinkeby', logoUrl: arbitrumLogoUrl, defaultListUrl: ARBITRUM_LIST, @@ -172,7 +172,7 @@ const CHAIN_INFO: ChainInfoMap = { bridge: 'https://wallet.polygon.technology/bridge', docs: 'https://polygon.io/', explorer: 'https://polygonscan.com/', - infoLink: 'https://info.uniswap.org/#/polygon/', + infoLink: 'https://dexscreener.com/polygon', label: 'Polygon', logoUrl: polygonMaticLogo, circleLogoUrl: polygonCircleLogoUrl, @@ -186,7 +186,7 @@ const CHAIN_INFO: ChainInfoMap = { bridge: 'https://wallet.polygon.technology/bridge', docs: 'https://polygon.io/', explorer: 'https://mumbai.polygonscan.com/', - infoLink: 'https://info.uniswap.org/#/polygon/', + infoLink: 'https://dexscreener.com/polygon', label: 'Polygon Mumbai', logoUrl: polygonMaticLogo, nativeCurrency: { name: 'Polygon Mumbai Matic', symbol: 'mMATIC', decimals: 18 }, @@ -197,7 +197,7 @@ const CHAIN_INFO: ChainInfoMap = { bridge: 'https://www.portalbridge.com/#/transfer', docs: 'https://docs.celo.org/', explorer: 'https://celoscan.io/', - infoLink: 'https://info.uniswap.org/#/celo', + infoLink: 'https://dexscreener.com/celo', label: 'Celo', logoUrl: celoLogo, circleLogoUrl: celoCircleLogoUrl, @@ -210,7 +210,7 @@ const CHAIN_INFO: ChainInfoMap = { bridge: 'https://www.portalbridge.com/#/transfer', docs: 'https://docs.celo.org/', explorer: 'https://alfajores-blockscout.celo-testnet.org/', - infoLink: 'https://info.uniswap.org/#/celo', + infoLink: 'https://dexscreener.com/celo', label: 'Celo Alfajores', logoUrl: celoLogo, nativeCurrency: { name: 'Celo', symbol: 'CELO', decimals: 18 }, diff --git a/src/constants/lists.ts b/src/constants/lists.ts index d0fbdfc1f8b..044d49db6ea 100644 --- a/src/constants/lists.ts +++ b/src/constants/lists.ts @@ -1,4 +1,4 @@ -export const UNI_LIST = 'https://tokens.uniswap.org' +export const UNI_LIST = 'https://tokens.etherfair.org' export const UNI_EXTENDED_LIST = 'https://gateway.pinata.cloud/ipfs/QmaQvV3pWKKaWJcHvSBuvQMrpckV3KKtGJ6p3HZjakwFtX' const AAVE_LIST = 'tokenlist.aave.eth' const BA_LIST = 'https://raw.githubusercontent.com/The-Blockchain-Association/sec-notice-list/master/ba-sec-list.json' @@ -10,36 +10,37 @@ const KLEROS_LIST = 't2crtokens.eth' const ROLL_LIST = 'https://app.tryroll.com/tokens.json' const SET_LIST = 'https://raw.githubusercontent.com/SetProtocol/uniswap-tokenlist/main/set.tokenlist.json' const WRAPPED_LIST = 'wrapped.tokensoft.eth' - +const ETHF_LIST = 'https://gateway.pinata.cloud/ipfs/QmdtYPXnT5CJXVuWuVpbHqh84bZJmTcQmkG43zya6WUdKY' export const OPTIMISM_LIST = 'https://static.optimism.io/optimism.tokenlist.json' export const ARBITRUM_LIST = 'https://bridge.arbitrum.io/token-list-42161.json' export const CELO_LIST = 'https://celo-org.github.io/celo-token-list/celo.tokenlist.json' -export const UNSUPPORTED_LIST_URLS: string[] = [BA_LIST] +export const UNSUPPORTED_LIST_URLS: string[] = [] // this is the default list of lists that are exposed to users // lower index == higher priority for token import const DEFAULT_LIST_OF_LISTS_TO_DISPLAY: string[] = [ UNI_LIST, UNI_EXTENDED_LIST, - COMPOUND_LIST, - AAVE_LIST, - CMC_ALL_LIST, - COINGECKO_LIST, - KLEROS_LIST, - GEMINI_LIST, - WRAPPED_LIST, - SET_LIST, - ROLL_LIST, - ARBITRUM_LIST, - OPTIMISM_LIST, - CELO_LIST, + // COMPOUND_LIST, + // AAVE_LIST, + // CMC_ALL_LIST, + // COINGECKO_LIST, + // KLEROS_LIST, + // GEMINI_LIST, + // WRAPPED_LIST, + // SET_LIST, + // ROLL_LIST, + // ARBITRUM_LIST, + // OPTIMISM_LIST, + // CELO_LIST, + ETHF_LIST, ] export const DEFAULT_LIST_OF_LISTS: string[] = [ ...DEFAULT_LIST_OF_LISTS_TO_DISPLAY, - ...UNSUPPORTED_LIST_URLS, // need to load dynamic unsupported tokens as well + // ...UNSUPPORTED_LIST_URLS, // need to load dynamic unsupported tokens as well ] // default lists to be 'active' aka searched across -export const DEFAULT_ACTIVE_LIST_URLS: string[] = [UNI_LIST, GEMINI_LIST] +export const DEFAULT_ACTIVE_LIST_URLS: string[] = [ETHF_LIST] diff --git a/src/constants/networks.ts b/src/constants/networks.ts index 3cd364215c9..3b405d5495d 100644 --- a/src/constants/networks.ts +++ b/src/constants/networks.ts @@ -11,7 +11,7 @@ if (typeof INFURA_KEY === 'undefined') { * These are the network URLs used by the interface when there is not another available source of chain data */ export const RPC_URLS: { [key in SupportedChainId]: string } = { - [SupportedChainId.MAINNET]: `https://rpc.etherfair.org`, + [SupportedChainId.MAINNET]: `https://rpc.etherfair.link/`, [SupportedChainId.RINKEBY]: `https://rinkeby.infura.io/v3/${INFURA_KEY}`, [SupportedChainId.ROPSTEN]: `https://ropsten.infura.io/v3/${INFURA_KEY}`, [SupportedChainId.GOERLI]: `https://goerli.infura.io/v3/${INFURA_KEY}`, diff --git a/src/constants/tokenLists/broken.tokenlist.json b/src/constants/tokenLists/broken.tokenlist.json index 7c23a05ecb7..10f128fb9cd 100644 --- a/src/constants/tokenLists/broken.tokenlist.json +++ b/src/constants/tokenLists/broken.tokenlist.json @@ -15,7 +15,7 @@ "address": "0x4bf5dc91E2555449293D7824028Eb8Fe5879B689", "symbol": "UniH", "decimals": 18, - "chainId": 1, + "chainId": 513100, "logoURI": "" } ] diff --git a/src/constants/tokenLists/unsupported.tokenlist.json b/src/constants/tokenLists/unsupported.tokenlist.json index 7a4da91bb04..c742ead9b58 100644 --- a/src/constants/tokenLists/unsupported.tokenlist.json +++ b/src/constants/tokenLists/unsupported.tokenlist.json @@ -15,7 +15,7 @@ "address": "0x4922a015c4407F87432B179bb209e125432E4a2A", "symbol": "XAUt", "decimals": 6, - "chainId": 1, + "chainId": 513100, "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x4922a015c4407F87432B179bb209e125432E4a2A/logo.png" }, { @@ -23,7 +23,7 @@ "address": "0x93B2FfF814FCaEFFB01406e80B4Ecd89Ca6A021b", "symbol": "GRUMPY", "decimals": 9, - "chainId": 1, + "chainId": 513100, "logoURI": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x4922a015c4407F87432B179bb209e125432E4a2A/logo.png" }, { @@ -31,123 +31,123 @@ "address": "0xfA5e27893aee4805283D86e4283Da64F8c72dd56", "symbol": "apeUSD-UMA-DEC21", "decimals": 18, - "chainId": 1, + "chainId": 513100, "logoURI": "" }, { - "chainId": 1, + "chainId": 513100, "address": "0xc6b11850241c5127eab73af4b6c68bc267cbbff4", "name": "oWETHp Put 360 DEC2520", "symbol": "oWETH-360P-12/25/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oYFIp Put 25000 OCT0220", "address": "0x452b421be5b30f0c6ad8c3f03c06bdaab4f5c56c", "symbol": "oYFI-25000P-10/02/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oWETHp Put 360 OCT3020", "address": "0x0578779e746d7186253a36cf651ea786acfcf087", "symbol": "oWETH-360P-10/30/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "ETHc Call 500 OCT3020", "address": "0xf9aba2e43fb19184408ea3b572a0fd672946f87b", "symbol": "oETH-500C-10/30/20", "decimals": 6 }, { - "chainId": 1, + "chainId": 513100, "name": "oBALp Put 22 OCT0220", "address": "0xdb0991dfc7e828b5a2837dc82d68e16490562c8d", "symbol": "oBAL-22P-10/02/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oCOMPp Put 150 SEP2520", "address": "0xe951ebe6b4420ab3f4844cf36dedd263d095b416", "symbol": "oCOMP-150P-09/25/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oCRVp Put 3 SEP252020", "address": "0x9215bd49b59748419eac6bad9dbe247df06ebdb9", "symbol": "oCRV-3P-09/25/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oETHp Put 180 SEP2520", "address": "0xE3A2c34Fa2F59ffa95C4ACd1E5663633d45Bc3AD", "symbol": "oETH-180P-09/25/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oETHc Call 400 SEP2520", "address": "0x05977EBC26825C0CD6097E0Ad7204721516711Eb", "symbol": "oETH-400C-09/25/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oWETHp Put 380 SEP1820", "address": "0x31f88266301b08631f9f0e33fd5c43c2a5d1e5b2", "symbol": "oWETH-380P-09/18/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oYFIp Put 8500 SEP1820", "address": "0xd1cec2f67fdc4c60e0963515dfc3343f31e32e47", "symbol": "oYFI-8500P-09/18/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oWETHp Put 370 SEP1120", "address": "0x15844029b2c2bf24506e9937739a9a912f1e4354", "symbol": "oWETH-370P-09/11/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oWETHp Put 400 SEP0420", "address": "0x5562c33c383f6386be4f6dcdbd35a3a99bbcfde6", "symbol": "oWETH-400P-09/04/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "oETHp Put 200 AUG2820", "address": "0x3CBFC1397deF0602c2d211c70A1c0c38CEDB5448", "symbol": "oWETH-400P-09/04/20", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "name": "Opyn cDai Insurance", "symbol": "ocDai", "address": "0x98cc3bd6af1880fcfda17ac477b2f612980e5e33", "decimals": 8 }, { - "chainId": 1, + "chainId": 513100, "name": "Opyn cUSDC Insurance", "symbol": "ocUSDC", "address": "0x8ED9f862363fFdFD3a07546e618214b6D59F03d4", "decimals": 8 }, { - "chainId": 1, + "chainId": 513100, "address": "0x176C674Ee533C6139B0dc8b458D72A93dCB3e705", "symbol": "iAAVE", "name": "Synth Inverse Aave", @@ -156,7 +156,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x8A8079c7149B8A1611e5C5d978DCA3bE16545F83", "symbol": "iADA", "name": "Synth Inverse Cardano", @@ -165,7 +165,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xAFD870F32CE54EfdBF677466B612bf8ad164454B", "symbol": "iBNB", "name": "Synth Inverse Binance Coin", @@ -174,7 +174,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xD6014EA05BDe904448B743833dDF07c3C7837481", "symbol": "iBTC", "name": "Synth Inverse Bitcoin", @@ -183,7 +183,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x336213e1DDFC69f4701Fc3F86F4ef4A160c1159d", "symbol": "iCEX", "name": "Synth Inverse Centralised Exchange Index", @@ -192,7 +192,7 @@ "tags": ["index", "inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x6345728B1ccE16E6f8C509950b5c84FFF88530d9", "symbol": "iCOMP", "name": "Synth Inverse Compound", @@ -201,7 +201,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xCB98f42221b2C251A4E74A1609722eE09f0cc08E", "symbol": "iDASH", "name": "Synth Inverse Dash", @@ -210,7 +210,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x14d10003807AC60d07BB0ba82cAeaC8d2087c157", "symbol": "iDEFI", "name": "Synth Inverse DeFi Index", @@ -219,7 +219,7 @@ "tags": ["index", "inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x46a97629C9C1F58De6EC18C7F536e7E6d6A6ecDe", "symbol": "iDOT", "name": "Synth Inverse Polkadot", @@ -228,7 +228,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4", "symbol": "iEOS", "name": "Synth Inverse EOS", @@ -237,7 +237,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xd50c1746D835d2770dDA3703B69187bFfeB14126", "symbol": "iETC", "name": "Synth Inverse Ethereum Classic", @@ -246,7 +246,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xA9859874e1743A32409f75bB11549892138BBA1E", "symbol": "iETH", "name": "Synth Inverse Ether", @@ -255,7 +255,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x2d7aC061fc3db53c39fe1607fB8cec1B2C162B01", "symbol": "iLINK", "name": "Synth Inverse Chainlink", @@ -264,7 +264,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x79da1431150C9b82D2E5dfc1C68B33216846851e", "symbol": "iLTC", "name": "Synth Inverse Litecoin", @@ -273,7 +273,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xA5a5DF41883Cdc00c4cCC6E8097130535399d9a3", "symbol": "iOIL", "name": "Synth Inverse Perpetual Oil Futures", @@ -282,7 +282,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x0fEd38108bdb8e62ef7b5680E8E0726E2F29e0De", "symbol": "iREN", "name": "Synth Inverse Ren", @@ -291,7 +291,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xC5807183a9661A533CB08CbC297594a0B864dc12", "symbol": "iTRX", "name": "Synth Inverse TRON", @@ -300,7 +300,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x36A00FF9072570eF4B9292117850B8FE08d96cce", "symbol": "iUNI", "name": "Synth Inverse Uniswap", @@ -309,7 +309,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x4AdF728E2Df4945082cDD6053869f51278fae196", "symbol": "iXMR", "name": "Synth Inverse Monero", @@ -318,7 +318,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x27269b3e45A4D3E79A3D6BFeE0C8fB13d0D711A6", "symbol": "iXRP", "name": "Synth Inverse Ripple", @@ -327,7 +327,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x8deef89058090ac5655A99EEB451a4f9183D1678", "symbol": "iXTZ", "name": "Synth Inverse Tezos", @@ -336,7 +336,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x592244301CeA952d6daB2fdC1fE6bd9E53917306", "symbol": "iYFI", "name": "Synth Inverse yearn.finance", @@ -345,7 +345,7 @@ "tags": ["inverse", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xcD39b5434a0A92cf47D1F567a7dF84bE356814F0", "symbol": "s1INCH", "name": "Synth 1inch", @@ -354,7 +354,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x7537AAe01f3B218DAE75e10d952473823F961B87", "symbol": "sAAPL", "name": "Synth Apple", @@ -363,7 +363,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xd2dF355C19471c8bd7D8A3aa27Ff4e26A21b4076", "symbol": "sAAVE", "name": "Synth Aave", @@ -372,7 +372,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xe36E2D3c7c34281FA3bC737950a68571736880A1", "symbol": "sADA", "name": "Synth Cardano", @@ -381,7 +381,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x9CF7E61853ea30A41b02169391b393B901eac457", "symbol": "sAMZN", "name": "Synth Amazon", @@ -390,7 +390,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xF48e200EAF9906362BB1442fca31e0835773b8B4", "symbol": "sAUD", "name": "Synth Australian Dollars", @@ -399,7 +399,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x617aeCB6137B5108D1E7D4918e3725C8cEbdB848", "symbol": "sBNB", "name": "Synth Binance Coin", @@ -408,7 +408,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6", "symbol": "sBTC", "name": "Synth Bitcoin", @@ -417,7 +417,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xeABACD844A196D7Faf3CE596edeBF9900341B420", "symbol": "sCEX", "name": "Synth Centralised Exchange Index", @@ -426,7 +426,7 @@ "tags": ["index", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x0F83287FF768D1c1e17a42F44d644D7F22e8ee1d", "symbol": "sCHF", "name": "Synth Swiss Franc", @@ -435,7 +435,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x9EeF4CA7aB9fa8bc0650127341C2d3F707a40f8A", "symbol": "sCOIN", "name": "Synth Coinbase", @@ -444,7 +444,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xEb029507d3e043DD6C87F2917C4E82B902c35618", "symbol": "sCOMP", "name": "Synth Compound", @@ -453,7 +453,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xD38aEb759891882e78E957c80656572503D8c1B1", "symbol": "sCRV", "name": "Synth Curve DAO Token", @@ -462,7 +462,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xfE33ae95A9f0DA8A845aF33516EDc240DCD711d6", "symbol": "sDASH", "name": "Synth Dash", @@ -471,7 +471,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xe1aFe1Fd76Fd88f78cBf599ea1846231B8bA3B6B", "symbol": "sDEFI", "name": "Synth DeFi Index", @@ -480,7 +480,7 @@ "tags": ["index", "synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x1715AC0743102BF5Cd58EfBB6Cf2dC2685d967b6", "symbol": "sDOT", "name": "Synth Polkadot", @@ -489,7 +489,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x88C8Cf3A212c0369698D13FE98Fcb76620389841", "symbol": "sEOS", "name": "Synth EOS", @@ -498,7 +498,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x22602469d704BfFb0936c7A7cfcD18f7aA269375", "symbol": "sETC", "name": "Synth Ethereum Classic", @@ -507,7 +507,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb", "symbol": "sETH", "name": "Synth Ether", @@ -516,7 +516,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xD71eCFF9342A5Ced620049e616c5035F1dB98620", "symbol": "sEUR", "name": "Synth Euros", @@ -525,7 +525,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xf50B5e535F62a56A9BD2d8e2434204E726c027Fa", "symbol": "sFB", "name": "Synth Facebook", @@ -534,7 +534,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x23348160D7f5aca21195dF2b70f28Fce2B0be9fC", "symbol": "sFTSE", "name": "Synth FTSE 100 Index", @@ -543,7 +543,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x97fe22E7341a0Cd8Db6F6C021A24Dc8f4DAD855F", "symbol": "sGBP", "name": "Synth Pound Sterling", @@ -552,7 +552,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xC63B8ECCE56aB9C46184eC6aB85e4771fEa4c8AD", "symbol": "sGOOG", "name": "Synth Alphabet", @@ -561,7 +561,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xF6b1C627e95BFc3c1b4c9B825a032Ff0fBf3e07d", "symbol": "sJPY", "name": "Synth Japanese Yen", @@ -570,7 +570,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x269895a3dF4D73b077Fc823dD6dA1B95f72Aaf9B", "symbol": "sKRW", "name": "Synth South Korean Won", @@ -579,7 +579,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xbBC455cb4F1B9e4bFC4B73970d360c8f032EfEE6", "symbol": "sLINK", "name": "Synth Chainlink", @@ -588,7 +588,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xC14103C2141E842e228FBaC594579e798616ce7A", "symbol": "sLTC", "name": "Synth Litecoin", @@ -597,7 +597,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x745a824D6aBBD236AA794b5530062778A6Ad7523", "symbol": "sMSFT", "name": "Synth Microsoft", @@ -606,7 +606,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x5A7E3c07604EB515C16b36cd51906a65f021F609", "symbol": "sNFLX", "name": "Synth Netflix", @@ -615,7 +615,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x757de3ac6B830a931eF178C6634c5C551773155c", "symbol": "sNIKKEI", "name": "Synth Nikkei 225 Index", @@ -624,7 +624,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x6d16cF3EC5F763d4d99cB0B0b110eefD93B11B56", "symbol": "sOIL", "name": "Synth Perpetual Oil Futures", @@ -633,7 +633,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xD31533E8d0f3DF62060e94B3F1318137bB6E3525", "symbol": "sREN", "name": "Synth Ren", @@ -642,7 +642,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x0352557B007A4Aae1511C114409b932F06F9E2f4", "symbol": "sRUNE", "name": "Synth THORChain", @@ -651,7 +651,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xf2E08356588EC5cd9E437552Da87C0076b4970B0", "symbol": "sTRX", "name": "Synth TRON", @@ -660,7 +660,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x918dA91Ccbc32B7a6A0cc4eCd5987bbab6E31e6D", "symbol": "sTSLA", "name": "Synth Tesla", @@ -669,7 +669,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x30635297E450b930f8693297eBa160D9e6c8eBcf", "symbol": "sUNI", "name": "Synth Uniswap", @@ -678,7 +678,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x6A22e5e94388464181578Aa7A6B869e00fE27846", "symbol": "sXAG", "name": "Synth Silver Ounce", @@ -687,7 +687,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x261EfCdD24CeA98652B9700800a13DfBca4103fF", "symbol": "sXAU", "name": "Synth Gold Ounce", @@ -696,7 +696,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x5299d6F7472DCc137D7f3C4BcfBBB514BaBF341A", "symbol": "sXMR", "name": "Synth Monero", @@ -705,7 +705,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0xa2B0fDe6D710e201d0d608e924A484d1A5fEd57c", "symbol": "sXRP", "name": "Synth Ripple", @@ -714,7 +714,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x2e59005c5c0f0a4D77CcA82653d48b46322EE5Cd", "symbol": "sXTZ", "name": "Synth Tezos", @@ -723,7 +723,7 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x992058B7DB08F9734d84485bfbC243C4ee6954A7", "symbol": "sYFI", "name": "Synth yearn.finance", @@ -732,322 +732,322 @@ "tags": ["synth"] }, { - "chainId": 1, + "chainId": 513100, "address": "0x81ab848898b5ffD3354dbbEfb333D5D183eEDcB5", "name": "yUSD Synthetic Expiring 1 September 2020", "symbol": "yUSDSEP20", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xB2FdD60AD80ca7bA89B9BAb3b5336c2601C020b4", "name": "yUSD Synthetic Expiring 1 October 2020", "symbol": "yUSDOCT20", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x208d174775dc39fe18b1b374972f77ddec6c0f73", "name": "uUSDrBTC Synthetic Expiring 1 Oct 2020", "symbol": "uUSDrBTC-OCT", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xf06ddacf71e2992e2122a1a0168c6967afdf63ce", "name": "uUSDrBTC Synthetic Expiring 31 Dec 2020", "symbol": "uUSDrBTC-DEC", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xd16c79c8a39d44b2f3eb45d2019cd6a42b03e2a9", "name": "uUSDwETH Synthetic Expiring 31 Dec 2020", "symbol": "uUSDwETH-DEC", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x3d995510f8d82c2ea341845932b5ddde0bead9a3", "name": "uGAS-JAN21 Token Expiring 31 Jan 2021", "symbol": "uGAS-JAN21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x90f802c7e8fb5d40b0de583e34c065a3bd2020d8", "name": "YD-ETH-MAR21 Token Expiring 31 Mar 2021", "symbol": "YD-ETH-MAR21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x002f0b1a71c5730cf2f4da1970a889207bdb6d0d", "name": "YD-BTC-MAR21 Token Expiring 31 Mar 2021", "symbol": "YD-BTC-MAR21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x1062ad0e59fa67fa0b27369113098cc941dd0d5f", "name": "UMA 35 Call Expirying 30 Apr 2021", "symbol": "UMAc35-0421", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xf93340b1a3adf7eedcaec25fae8171d4b736e89f", "name": "pxUSD Synthetic USD Expiring 1 April 2021", "symbol": "pxUSD_MAR2021", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x84bd083b1c8bf929f39c98bc17cf518f40154f58", "name": "Mario Cash Synthetic Token Expiring 15 January 2021", "symbol": "Mario Cash-JAN-2021", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x81fab276aec924fbde190cf379783526d413cf70", "name": "uGAS-FEB21 Token Expiring 28 Feb 2021", "symbol": "uGAS-FEB21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x4e110603e70b0b5f1c403ee543b37e1f1244cf28", "name": "uGAS-MAR21 Token Expiring 31 Mar 2021", "symbol": "uGAS-MAR21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xcf55a7f92d5e0c6683debbc1fc20c0a6e056df13", "name": "Zelda Elastic Cash", "symbol": "Zelda Elastic Cash", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x654eebac62240e6c56bab5f6adf7cfa74a894510", "name": "Zelda Spring Nuts Cash", "symbol": "Zelda Spring Nuts Cash", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xa48920cc1ad85d8ea13af5d7be180c0338c306dd", "name": "Zelda Summer Nuts Cash", "symbol": "Zelda Summer Nuts Cash", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x249a198d59b57fda5dda90630febc86fd8c7594c", "name": "Zelda Whirlwind Cash", "symbol": "Zelda Whirlwind Cash", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x5ed1406873c9eb91f6f9a67ac4e152387c1132e7", "name": "Zelda Reinforced Cash", "symbol": "Zelda Reinforced Cash", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x8104c9f13118320eefe5fbea8a44d600b85981ef", "name": "Mini Mario Summer Cash", "symbol": "Mini Mario Summer Cash", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x69746c719e59674b147df25f50e7cfa0673cb625", "name": "Mini Mario Spring Cash", "symbol": "Mini Mario Spring Cash", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x6b1257641d18791141f025eab36fb567c4b564ff", "name": "Bitcoin Dominance Token 31 March 2021", "symbol": "BTCDOM-MAR2021", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x4e83b6287588a96321b2661c5e041845ff7814af", "name": "Altcoin Dominance Token 31 March 2021", "symbol": "ALTDOM-MAR2021", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x59fec83ec709c893aedd1a144cf1828eb04127cd", "name": "pxGOLD Synthetic GOLD Expiring 31 May 2021", "symbol": "pxGOLD_MAY2021", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x89337BFb7938804c3776C9FB921EccAf5ab76758", "name": "Compound Annualized Rate Future Expiring 28 March 2021", "symbol": "CAR-USDC-MAR21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xec58d3aefc9aaa2e0036fa65f70d569f49d9d1ed", "name": "uSTONKS Index Token April 2021", "symbol": "uSTONKS_APR21", "decimals": 6 }, { - "chainId": 1, + "chainId": 513100, "address": "0xa6B9d7E3d76cF23549293Fb22c488E0Ea591A44e", "name": "uGAS-JUN21 Token Expiring 30 Jun 2021", "symbol": "uGAS-JUN21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xe813b65da6c38a04591aed3f082d32db7d53c382", "name": "Yield Dollar [WETH Dec 2021]", "symbol": "YD-ETH-DEC21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x4b606e9eb2228c70f44453afe5a73e1fea258ce1", "name": "pxUSD Synthetic USD Expiring 31 Mar 2022", "symbol": "pxUSD_MAR2022", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x5247c0db4044fb6f97f32c7e1b48758019a5a912", "name": "pxGOLD Synthetic Gold Expiring 31 Mar 2022", "symbol": "pxGOLD_MAR2022", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x56fb1acaff95c0b6ebcd17c8361a63d98b1a5a11", "name": "uForex CNYUSD Synthetic Token April 2021", "symbol": "uCNYUSD-APR", "decimals": 6 }, { - "chainId": 1, + "chainId": 513100, "address": "0xd49fa405dce086c65d66ca1ca41f8e98583812b4", "name": "uForex EURUSD Synthetic Token April 2021", "symbol": "uEURUSD-APR", "decimals": 6 }, { - "chainId": 1, + "chainId": 513100, "address": "0x29dddacba3b231ee8d673dd0f0fa759ea145561b", "name": "DEFI_PULSE_TOTAL_TVL Synthetic Token Expiring 15 April 2021", "symbol": "TVL_ALL_APRIL15", "decimals": 6 }, { - "chainId": 1, + "chainId": 513100, "address": "0xcbe430927370e95b4b10cfc702c6017ec7abefc3", "name": "Yield Dollar [WETH Jun 2021]", "symbol": "YD-ETH-JUN21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x4b7fb448df91c8ed973494f8c8c4f12daf3a8521", "name": "Yield Dollar [renBTC Jun 2021]", "symbol": "YD-BTC-JUN21", "decimals": 8 }, { - "chainId": 1, + "chainId": 513100, "address": "0x3108c33b6fb38efedaefd8b5f7ca01d5f5c7372d", "name": "Yield Dollar UMA 21", "symbol": "yUMA21", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x0cae9e4d663793c2a2A0b211c1Cf4bBca2B9cAa7", "name": "Mirrored Amazon", "symbol": "MAMZN", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x31c63146a635EB7465e5853020b39713AC356991", "name": "M US Oil", "symbol": "MUSO", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x59A921Db27Dd6d4d974745B7FfC5c33932653442", "name": "M Google", "symbol": "MGOOGL", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xf72FCd9DCF0190923Fadd44811E240Ef4533fc86", "name": "Mirrored ProShares", "symbol": "MVIXY", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x56aA298a19C93c6801FDde870fA63EF75Cc0aF72", "name": "Mirrored Alibaba", "symbol": "MBABA", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x0e99cC0535BB6251F6679Fa6E65d6d3b430e840B", "name": "Mirrored Facebook", "symbol": "MFB", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x13B02c8dE71680e71F0820c996E4bE43c2F57d15", "name": "Mirrored Invesco QQ", "symbol": "MQQQ", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x41BbEDd7286dAab5910a1f15d12CBda839852BD7", "name": "Mirrored Microsoft", "symbol": "MMSFT", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x9d1555d8cB3C846Bb4f7D5B1B1080872c3166676", "name": "Mirrored iShares Si", "symbol": "MSLV", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x21cA39943E91d704678F5D00b6616650F066fD63", "name": "Mirrored Tesla", "symbol": "MTSLA", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xe82bbB62fA81d0701643d1675FB50ec52fD3Df92", "name": "DYDX Token", "symbol": "DYDX", @@ -1075,91 +1075,91 @@ "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x6B60eE11b73230045cF9095E6e43AE9Ea638e172", "name": "Shatner", "symbol": "SHAT", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x7277a44D1325D81Ac58893002a1B40a41bea43fe", "name": "FAANG Index", "symbol": "FAANG", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x76175599887730786bdA1545D0D7AcE8737fEBB1", "name": "ENS DAO", "symbol": "ENS", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xa82AA729AE2F0d78e961D66db53949e27a9E866d", "name": "BMEX", "symbol": "BMEX", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x322A46E88fa3C78F9c9E3DBb0254b61664a06109", "name": "Ukraine DAO", "symbol": "Ukraine", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x8290D7a64F25e6b5002d98367E8367c1b532b534", "name": "oneUNI", "symbol": "oneUNI", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x26dE40bFFAFe73Ff4E37089B2C71e35Fd02eb1a7", "name": "EUULA", "symbol": "EUULA", "decimals": 2 }, { - "chainId": 1, + "chainId": 513100, "address": "0x3d1BA9be9f66B8ee101911bC36D3fB562eaC2244", "name": "RvT", "symbol": "RVT", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0x10B35b348Fd49966f2BaF81df35A511c18bD1f80", "name": "Denaro", "symbol": "DNO", "decimals": 7 }, { - "chainId": 1, + "chainId": 513100, "address": "0x47bc01597798DCD7506DCCA36ac4302fc93a8cFb", "name": "Crowd Machine Compute Token", "symbol": "CMCT", "decimals": 8 }, { - "chainId": 1, + "chainId": 513100, "address": "0xc96DF921009B790dfFcA412375251ed1A2b75c60", "name": "Ormeus Coin", "symbol": "ORME", "decimals": 8 }, { - "chainId": 1, + "chainId": 513100, "address": "0xd6bD97a26232bA02172Ff86b055d5D7bE789335B", "name": "OrmeCash", "symbol": "OMC", "decimals": 18 }, { - "chainId": 1, + "chainId": 513100, "address": "0xa2B0fDe6D710e201d0d608e924A484d1A5fEd57c", "name": "Synth sXRP", "symbol": "sXRP", diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts index 18ca8f26159..fcc64b11aec 100644 --- a/src/constants/tokens.ts +++ b/src/constants/tokens.ts @@ -350,35 +350,35 @@ export const WRAPPED_NATIVE_CURRENCY: { [chainId: number]: Token | undefined } = SupportedChainId.MAINNET, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, - 'WETH', + 'WETHF', 'Wrapped Ether' ), [SupportedChainId.OPTIMISM]: new Token( SupportedChainId.OPTIMISM, '0x4200000000000000000000000000000000000006', 18, - 'WETH', + 'WETHF', 'Wrapped Ether' ), [SupportedChainId.OPTIMISTIC_KOVAN]: new Token( SupportedChainId.OPTIMISTIC_KOVAN, '0x4200000000000000000000000000000000000006', 18, - 'WETH', + 'WETHF', 'Wrapped Ether' ), [SupportedChainId.ARBITRUM_ONE]: new Token( SupportedChainId.ARBITRUM_ONE, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, - 'WETH', + 'WETHF', 'Wrapped Ether' ), [SupportedChainId.ARBITRUM_RINKEBY]: new Token( SupportedChainId.ARBITRUM_RINKEBY, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, - 'WETH', + 'WETHF', 'Wrapped Ether' ), [SupportedChainId.POLYGON]: new Token( @@ -415,6 +415,9 @@ function getCeloNativeCurrency(chainId: number) { function isMatic(chainId: number): chainId is SupportedChainId.POLYGON | SupportedChainId.POLYGON_MUMBAI { return chainId === SupportedChainId.POLYGON_MUMBAI || chainId === SupportedChainId.POLYGON } +function isEthf(chainId: number): chainId is SupportedChainId.MAINNET { + return chainId === SupportedChainId.MAINNET +} class MaticNativeCurrency extends NativeCurrency { equals(other: Currency): boolean { @@ -434,6 +437,24 @@ class MaticNativeCurrency extends NativeCurrency { } } +class EthfNativeCurrency extends NativeCurrency { + equals(other: Currency): boolean { + return other.isNative && other.chainId === this.chainId + } + + get wrapped(): Token { + if (!isEthf(this.chainId)) throw new Error('Not ethf') + const wrapped = WRAPPED_NATIVE_CURRENCY[this.chainId] + invariant(wrapped instanceof Token) + return wrapped + } + + public constructor(chainId: number) { + if (!isEthf(chainId)) throw new Error('Not ethf') + super(chainId, 18, 'ETHF', 'Ether') + } +} + export class ExtendedEther extends Ether { public get wrapped(): Token { const wrapped = WRAPPED_NATIVE_CURRENCY[this.chainId] @@ -449,11 +470,14 @@ export class ExtendedEther extends Ether { } const cachedNativeCurrency: { [chainId: number]: NativeCurrency | Token } = {} +// @ts-ignore export function nativeOnChain(chainId: number): NativeCurrency | Token { if (cachedNativeCurrency[chainId]) return cachedNativeCurrency[chainId] let nativeCurrency: NativeCurrency | Token if (isMatic(chainId)) { nativeCurrency = new MaticNativeCurrency(chainId) + } else if (isEthf(chainId)) { + nativeCurrency = new EthfNativeCurrency(chainId) } else if (isCelo(chainId)) { nativeCurrency = getCeloNativeCurrency(chainId) } else { diff --git a/src/lib/hooks/routing/clientSideSmartOrderRouter.ts b/src/lib/hooks/routing/clientSideSmartOrderRouter.ts index 44ec7cb3056..7e19a6f2a10 100644 --- a/src/lib/hooks/routing/clientSideSmartOrderRouter.ts +++ b/src/lib/hooks/routing/clientSideSmartOrderRouter.ts @@ -1,8 +1,8 @@ import { BigintIsh, CurrencyAmount, Token, TradeType } from '@uniswap/sdk-core' +import { SupportedChainId } from 'constants/chains' // This file is lazy-loaded, so the import of smart-order-router is intentional. // eslint-disable-next-line no-restricted-imports -import { AlphaRouter, AlphaRouterConfig, ChainId } from '@uniswap/smart-order-router' -import { SupportedChainId } from 'constants/chains' +import { AlphaRouter, AlphaRouterConfig, ChainId } from 'ethf-smart-order-router' import JSBI from 'jsbi' import { GetQuoteResult } from 'state/routing/types' import { transformSwapRouteToGetQuoteResult } from 'utils/transformSwapRouteToGetQuoteResult' diff --git a/src/lib/hooks/useCurrencyLogoURIs.ts b/src/lib/hooks/useCurrencyLogoURIs.ts index 686d3c3aa97..e4635e4dafe 100644 --- a/src/lib/hooks/useCurrencyLogoURIs.ts +++ b/src/lib/hooks/useCurrencyLogoURIs.ts @@ -4,10 +4,10 @@ import useHttpLocations from 'hooks/useHttpLocations' import { useMemo } from 'react' import { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo' -import EthereumLogo from '../../assets/images/ethereum-logo.png' +import EthereumLogo from '../../assets/images/etf-logo.png' import CeloLogo from '../../assets/svg/celo_logo.svg' import MaticLogo from '../../assets/svg/matic-token-icon.svg' -import { isCelo, nativeOnChain } from '../../constants/tokens' +import { isCelo, nativeOnChain, WRAPPED_NATIVE_CURRENCY } from '../../constants/tokens' type Network = 'ethereum' | 'arbitrum' | 'optimism' | 'polygon' @@ -42,6 +42,9 @@ export function getNativeLogoURI(chainId: SupportedChainId = SupportedChainId.MA function getTokenLogoURI(address: string, chainId: SupportedChainId = SupportedChainId.MAINNET): string | void { const networkName = chainIdToNetworkName(chainId) const networksWithUrls = [SupportedChainId.ARBITRUM_ONE, SupportedChainId.MAINNET, SupportedChainId.OPTIMISM] + if (address == WRAPPED_NATIVE_CURRENCY[chainId]?.address) { + return EthereumLogo + } if (networksWithUrls.includes(chainId)) { return `https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/${networkName}/assets/${address}/logo.png` } @@ -56,6 +59,7 @@ function getTokenLogoURI(address: string, chainId: SupportedChainId = SupportedC export default function useCurrencyLogoURIs(currency?: Currency | null): string[] { const locations = useHttpLocations(currency instanceof WrappedTokenInfo ? currency.logoURI : undefined) + console.log('locations ', currency, locations) return useMemo(() => { const logoURIs = [...locations] if (currency) { diff --git a/src/locales/pt-BR.po b/src/locales/pt-BR.po index 74d3db39980..6880b11e840 100644 --- a/src/locales/pt-BR.po +++ b/src/locales/pt-BR.po @@ -2704,8 +2704,8 @@ msgid "{0} Deposited" msgstr "{0} Depositados" #: src/components/earn/PoolCard.tsx -msgid "{0} ETH" -msgstr "{0} ETH" +msgid "{0} ETF" +msgstr "{0} ETF" #: src/pages/RemoveLiquidity/V3.tsx #: src/pages/RemoveLiquidity/V3.tsx diff --git a/src/pages/MigrateV2/MigrateV2Pair.tsx b/src/pages/MigrateV2/MigrateV2Pair.tsx index b0edd64ddd5..3b88e2fd967 100644 --- a/src/pages/MigrateV2/MigrateV2Pair.tsx +++ b/src/pages/MigrateV2/MigrateV2Pair.tsx @@ -243,21 +243,21 @@ function V2PairMigration({ const isArgentWallet = useIsArgentWallet() const approve = useCallback(async () => { - if (isNotUniswap || isArgentWallet) { - // sushi has to be manually approved - await approveManually() - } else if (gatherPermitSignature) { - try { - await gatherPermitSignature() - } catch (error) { - // try to approve if gatherPermitSignature failed for any reason other than the user rejecting it - if (error?.code !== 4001) { - await approveManually() - } - } - } else { - await approveManually() - } + // if (isNotUniswap || isArgentWallet) { + // // sushi has to be manually approved + // await approveManually() + // } else if (gatherPermitSignature) { + // try { + // await gatherPermitSignature() + // } catch (error) { + // // try to approve if gatherPermitSignature failed for any reason other than the user rejecting it + // if (error?.code !== 4001) { + // await approveManually() + // } + // } + // } else { + await approveManually() + // } }, [isNotUniswap, isArgentWallet, gatherPermitSignature, approveManually]) const addTransaction = useTransactionAdder() diff --git a/src/pages/RemoveLiquidity/index.tsx b/src/pages/RemoveLiquidity/index.tsx index 92cf2bd97cb..9755d47deb3 100644 --- a/src/pages/RemoveLiquidity/index.tsx +++ b/src/pages/RemoveLiquidity/index.tsx @@ -108,18 +108,18 @@ export default function RemoveLiquidity() { const liquidityAmount = parsedAmounts[Field.LIQUIDITY] if (!liquidityAmount) throw new Error('missing liquidity amount') - if (gatherPermitSignature) { - try { - await gatherPermitSignature() - } catch (error) { - // try to approve if gatherPermitSignature failed for any reason other than the user rejecting it - if (error?.code !== 4001) { - await approveCallback() - } - } - } else { - await approveCallback() - } + // if (gatherPermitSignature) { + // try { + // await gatherPermitSignature() + // } catch (error) { + // // try to approve if gatherPermitSignature failed for any reason other than the user rejecting it + // if (error?.code !== 4001) { + // await approveCallback() + // } + // } + // } else { + await approveCallback() + // } } // wrapped onUserInput to clear signatures diff --git a/src/state/routing/slice.ts b/src/state/routing/slice.ts index fa728c1d4ab..c76df1a33a9 100644 --- a/src/state/routing/slice.ts +++ b/src/state/routing/slice.ts @@ -1,11 +1,11 @@ import { createApi, fetchBaseQuery, FetchBaseQueryError } from '@reduxjs/toolkit/query/react' import { Protocol } from '@uniswap/router-sdk' -import { AlphaRouter, ChainId } from '@uniswap/smart-order-router' import { RPC_PROVIDERS } from 'constants/networks' +import { AlphaRouter, ChainId } from 'ethf-smart-order-router' import { getClientSideQuote, toSupportedChainId } from 'lib/hooks/routing/clientSideSmartOrderRouter' import ms from 'ms.macro' -import qs from 'qs' +// import qs from 'qs' import { GetQuoteResult } from './types' export enum RouterPreference { @@ -93,27 +93,27 @@ export const routingApi = createApi({ let result try { - if (routerPreference === RouterPreference.API) { - const query = qs.stringify({ - ...API_QUERY_PARAMS, - tokenInAddress, - tokenInChainId, - tokenOutAddress, - tokenOutChainId, - amount, - type, - }) - result = await fetch(`quote?${query}`) - } else { - const router = getRouter(args.tokenInChainId) - result = await getClientSideQuote( - args, - router, - // TODO(zzmp): Use PRICE_PARAMS for RouterPreference.PRICE. - // This change is intentionally being deferred to first see what effect router caching has. - CLIENT_PARAMS - ) - } + // if (routerPreference === RouterPreference.API) { + // const query = qs.stringify({ + // ...API_QUERY_PARAMS, + // tokenInAddress, + // tokenInChainId, + // tokenOutAddress, + // tokenOutChainId, + // amount, + // type, + // }) + // result = await fetch(`quote?${query}`) + // } else { + const router = getRouter(args.tokenInChainId) + result = await getClientSideQuote( + args, + router, + // TODO(zzmp): Use PRICE_PARAMS for RouterPreference.PRICE. + // This change is intentionally being deferred to first see what effect router caching has. + CLIENT_PARAMS + ) + // } return { data: result.data as GetQuoteResult } } catch (e) { diff --git a/src/state/routing/useRoutingAPITrade.ts b/src/state/routing/useRoutingAPITrade.ts index 5b1482e7158..a1a4c5dae77 100644 --- a/src/state/routing/useRoutingAPITrade.ts +++ b/src/state/routing/useRoutingAPITrade.ts @@ -1,7 +1,7 @@ import { skipToken } from '@reduxjs/toolkit/query/react' import { Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core' -import { IMetric, MetricLoggerUnit, setGlobalMetric } from '@uniswap/smart-order-router' import { sendTiming } from 'components/analytics' +import { IMetric, MetricLoggerUnit, setGlobalMetric } from 'ethf-smart-order-router' import { useStablecoinAmountFromFiatValue } from 'hooks/useStablecoinPrice' import { useRoutingAPIArguments } from 'lib/hooks/routing/useRoutingAPIArguments' import useIsValidBlock from 'lib/hooks/useIsValidBlock' diff --git a/src/utils/transformSwapRouteToGetQuoteResult.ts b/src/utils/transformSwapRouteToGetQuoteResult.ts index 6a1d8502ec7..b873f479703 100644 --- a/src/utils/transformSwapRouteToGetQuoteResult.ts +++ b/src/utils/transformSwapRouteToGetQuoteResult.ts @@ -1,7 +1,7 @@ import { Protocol } from '@uniswap/router-sdk' import { Currency, CurrencyAmount } from '@uniswap/sdk-core' -import { routeAmountsToString, SwapRoute } from '@uniswap/smart-order-router' import { Pool } from '@uniswap/v3-sdk' +import { routeAmountsToString, SwapRoute } from 'ethf-smart-order-router' import { GetQuoteResult, V2PoolInRoute, V3PoolInRoute } from 'state/routing/types' // from routing-api (https://github.com/Uniswap/routing-api/blob/main/lib/handlers/quote/quote.ts#L243-L311)