diff --git a/cspell.json b/cspell.json index e4212a7b6756..16fb37fd5caf 100644 --- a/cspell.json +++ b/cspell.json @@ -24,10 +24,14 @@ "apikey", "arbitrum", "areth", + "arrayified", + "arrayify", + "arrayish", "artblocks", "arweave", "avalanche", "avax", + "bech", "betanet", "bgcolor", "bignumber", @@ -57,6 +61,7 @@ "clearfix", "clonable", "codegen", + "codingsh", "commentid", "composertitlebar", "consolas", @@ -70,6 +75,7 @@ "cyberlab", "datas", "debank", + "defikingdoms", "denorm", "dfyn", "dhedge", @@ -102,6 +108,7 @@ "goodghosting", "gundb", "hashmasks", + "hexable", "hexlify", "holoflows", "iconbar", @@ -118,6 +125,7 @@ "ipfsurl", "ittr", "jailbroken", + "jellyswap", "jsbi", "jsonml", "juicebox", @@ -169,6 +177,8 @@ "nowallet", "nums", "opensea", + "openswap", + "openx", "overridable", "overscan", "pageable", @@ -214,6 +224,7 @@ "sashimiswap", "scroller", "secp", + "seeswap", "serializers", "shink", "signup", @@ -248,6 +259,7 @@ "typechain", "typehash", "typeson", + "underflowed", "unencrypted", "unreviewed", "unstake", @@ -256,8 +268,10 @@ "urlcat", "usermenu", "vcent", + "venomswap", "viet", "viewbox", + "viperswap", "visualcompletion", "walletconnect", "wannaswap", diff --git a/docs/evm-integration.md b/docs/evm-integration.md index d4377758bc26..5a7d0a22ba42 100644 --- a/docs/evm-integration.md +++ b/docs/evm-integration.md @@ -119,3 +119,4 @@ Here is the chain abilities checklist. If you are working on a bounty task, plea | xDai | | | Arbitrum | | | Avalanche | | +| Harmony | | diff --git a/packages/mask/shared-ui/locales/en-US.json b/packages/mask/shared-ui/locales/en-US.json index c1e032da924c..cbdff5494776 100644 --- a/packages/mask/shared-ui/locales/en-US.json +++ b/packages/mask/shared-ui/locales/en-US.json @@ -484,6 +484,7 @@ "plugin_trader_gas_setting_fast": "Fast", "plugin_trader_gas_setting_custom": "Custom", "plugin_trader_tx_cost_usd": "(~${{usd}})", + "plugin_trader_tx_cost_very_small": "({{usd}})", "plugin_trader_gas_option": "{{option}} ({{value}}) Gwei", "plugin_trader_no_enough_liquidity": "No enough liquidity", "plugin_trader_no_trade": "Please select a trade", diff --git a/packages/mask/shared-ui/locales/ko-KR.json b/packages/mask/shared-ui/locales/ko-KR.json index 09f707ec80b8..8303c5ede2a2 100644 --- a/packages/mask/shared-ui/locales/ko-KR.json +++ b/packages/mask/shared-ui/locales/ko-KR.json @@ -349,6 +349,7 @@ "plugin_trader_gas_setting_fast": "빠름", "plugin_trader_gas_setting_custom": "커스텀", "plugin_trader_tx_cost_usd": "(~${{usd}})", + "plugin_trader_tx_cost_very_small": "({{usd}})", "plugin_trader_gas_option": "{{option}} ({{value}}) Gwei", "plugin_trader_no_enough_liquidity": "유동성 부족", "plugin_trader_no_trade": "거래를 선택하세요", diff --git a/packages/mask/shared-ui/locales/qya-AA.json b/packages/mask/shared-ui/locales/qya-AA.json index d7eb8ae5d7cf..0b643533873a 100644 --- a/packages/mask/shared-ui/locales/qya-AA.json +++ b/packages/mask/shared-ui/locales/qya-AA.json @@ -484,6 +484,7 @@ "plugin_trader_gas_setting_fast": "crwdns10473:0crwdne10473:0", "plugin_trader_gas_setting_custom": "crwdns10475:0crwdne10475:0", "plugin_trader_tx_cost_usd": "crwdns10477:0{{usd}}crwdne10477:0", + "plugin_trader_tx_cost_very_small": "crwdns10477:0{{usd}}crwdne10477:0", "plugin_trader_gas_option": "crwdns10479:0{{option}}crwdnd10479:0{{value}}crwdne10479:0", "plugin_trader_no_enough_liquidity": "crwdns10481:0crwdne10481:0", "plugin_trader_no_trade": "crwdns10483:0crwdne10483:0", diff --git a/packages/mask/shared-ui/locales/zh-CN.json b/packages/mask/shared-ui/locales/zh-CN.json index 8a338efd388f..cf311dd58b9a 100644 --- a/packages/mask/shared-ui/locales/zh-CN.json +++ b/packages/mask/shared-ui/locales/zh-CN.json @@ -467,7 +467,8 @@ "plugin_trader_gas_setting_standard": "标准", "plugin_trader_gas_setting_fast": "快速", "plugin_trader_gas_setting_custom": "自定义", - "plugin_trader_tx_cost_usd": "(~{{usd}} 美元)", + "plugin_trader_tx_cost_usd": "(~${{usd}} 美元)", + "plugin_trader_tx_cost_very_small": "({{usd}} 美元)", "plugin_trader_gas_option": "{{option}} ({{value}}) Gwei", "plugin_trader_no_enough_liquidity": "流动性不足", "plugin_trader_no_trade": "请选择一个交易", diff --git a/packages/mask/shared/flags.ts b/packages/mask/shared/flags.ts index 9a51168b9496..a92a11370e38 100644 --- a/packages/mask/shared/flags.ts +++ b/packages/mask/shared/flags.ts @@ -37,6 +37,7 @@ export const Flags = { fantom_enabled: true, celo_enabled: true, aurora_enabled: true, + harmony_enabled: true, nft_airdrop_enabled: false, post_actions_enabled: true, next_id_tip_enabled: true, diff --git a/packages/mask/src/plugins/Collectible/pipes/index.ts b/packages/mask/src/plugins/Collectible/pipes/index.ts index 5f91ab391b21..1ea89c4e626f 100644 --- a/packages/mask/src/plugins/Collectible/pipes/index.ts +++ b/packages/mask/src/plugins/Collectible/pipes/index.ts @@ -63,7 +63,8 @@ export const resolveCollectibleProviderName = createLookupTableResolver( +type RaribleSupportedChainId = ChainId.Mainnet | ChainId.Ropsten | ChainId.Rinkeby +export const resolveRaribleUserNetwork = createLookupTableResolver( { [ChainId.Mainnet]: RaribleUserURL, [ChainId.Ropsten]: RaribleRopstenUserURL, @@ -72,7 +73,8 @@ export const resolveRaribleUserNetwork = createLookupTableResolver( +type OpenSeaSupportedChainId = ChainId.Mainnet | ChainId.Rinkeby +export const resolveLinkOnOpenSea = createLookupTableResolver( { [ChainId.Mainnet]: OpenSeaMainnetURL, [ChainId.Rinkeby]: OpenSeaTestnetURL, @@ -80,7 +82,7 @@ export const resolveLinkOnOpenSea = createLookupTableResolver( OpenSeaMainnetURL, ) -export const resolveLinkOnRarible = createLookupTableResolver( +export const resolveLinkOnRarible = createLookupTableResolver( { [ChainId.Mainnet]: 'https://rarible.com', [ChainId.Rinkeby]: 'https://rinkeby.rarible.com', @@ -89,7 +91,8 @@ export const resolveLinkOnRarible = createLookupTableResolver( 'https://rarible.com', ) -export const resolveLinkOnZora = createLookupTableResolver( +type ZoraSupportedChainId = ChainId.Mainnet +export const resolveLinkOnZora = createLookupTableResolver( { [ChainId.Mainnet]: 'https://zora.co', }, @@ -112,13 +115,22 @@ export function resolveAssetLinkOnCurrentProvider( ) { switch (provider) { case NonFungibleAssetProvider.OPENSEA: - return urlcat(resolveLinkOnOpenSea(chainId), '/assets/:address/:id', { address, id }) + return urlcat(resolveLinkOnOpenSea(chainId as OpenSeaSupportedChainId), '/assets/:address/:id', { + address, + id, + }) case NonFungibleAssetProvider.RARIBLE: - return urlcat(resolveLinkOnRarible(chainId), '/token/:address/:id', { address, id }) + return urlcat(resolveLinkOnRarible(chainId as RaribleSupportedChainId), '/token/:address/:id', { + address, + id, + }) case NonFungibleAssetProvider.NFTSCAN: return '' case NonFungibleAssetProvider.ZORA: - return urlcat(resolveLinkOnZora(chainId), '/collections/:address/:id', { address, id }) + return urlcat(resolveLinkOnZora(chainId as ZoraSupportedChainId), '/collections/:address/:id', { + address, + id, + }) default: return '' } @@ -132,13 +144,13 @@ export function resolveUserUrlOnCurrentProvider( ) { switch (provider) { case NonFungibleAssetProvider.RARIBLE: - return urlcat(resolveRaribleUserNetwork(chainId), `/${address}`) + return urlcat(resolveRaribleUserNetwork(chainId as RaribleSupportedChainId), `/${address}`) case NonFungibleAssetProvider.OPENSEA: - return urlcat(resolveLinkOnOpenSea(chainId), `/${username ?? ''}`) + return urlcat(resolveLinkOnOpenSea(chainId as OpenSeaSupportedChainId), `/${username ?? ''}`) case NonFungibleAssetProvider.NFTSCAN: return '' case NonFungibleAssetProvider.ZORA: - return urlcat(resolveLinkOnZora(chainId), `/${address}`) + return urlcat(resolveLinkOnZora(chainId as ZoraSupportedChainId), `/${address}`) default: return '' } @@ -147,9 +159,12 @@ export function resolveUserUrlOnCurrentProvider( export function resolveAvatarLinkOnCurrentProvider(chainId: ChainId, asset: any, provider: NonFungibleAssetProvider) { switch (provider) { case NonFungibleAssetProvider.OPENSEA: - return urlcat(resolveLinkOnOpenSea(chainId), `/collection/${asset.slug ?? ''}`) + return urlcat(resolveLinkOnOpenSea(chainId as OpenSeaSupportedChainId), `/collection/${asset.slug ?? ''}`) case NonFungibleAssetProvider.RARIBLE: - return urlcat(resolveLinkOnRarible(chainId), `/collection/${asset.token_address ?? ''}`) + return urlcat( + resolveLinkOnRarible(chainId as RaribleSupportedChainId), + `/collection/${asset.token_address ?? ''}`, + ) case NonFungibleAssetProvider.NFTSCAN: return '' case NonFungibleAssetProvider.ZORA: diff --git a/packages/mask/src/plugins/EVM/assets/harmony.png b/packages/mask/src/plugins/EVM/assets/harmony.png new file mode 100644 index 000000000000..253faa6665cb Binary files /dev/null and b/packages/mask/src/plugins/EVM/assets/harmony.png differ diff --git a/packages/mask/src/plugins/EVM/constants.ts b/packages/mask/src/plugins/EVM/constants.ts index 791f19849232..69a6e0b9523c 100644 --- a/packages/mask/src/plugins/EVM/constants.ts +++ b/packages/mask/src/plugins/EVM/constants.ts @@ -165,6 +165,16 @@ export const PLUGIN_NETWORKS: Web3Plugin.NetworkDescriptor[] = [ iconColor: 'rgb(112, 212, 74)', isMainnet: true, }, + { + ID: `${PLUGIN_ID}_harmony`, + networkSupporterPluginID: PLUGIN_ID, + chainId: ChainId.Harmony, + type: NetworkType.Harmony, + name: 'Harmony', + icon: new URL('./assets/harmony.png', import.meta.url), + iconColor: 'rgb(40, 201, 213)', + isMainnet: true, + }, { ID: `${PLUGIN_ID}_conflux`, networkSupporterPluginID: PLUGIN_ID, diff --git a/packages/mask/src/plugins/FindTruman/base.ts b/packages/mask/src/plugins/FindTruman/base.ts index b5b340c83f6d..ad23830b6f09 100644 --- a/packages/mask/src/plugins/FindTruman/base.ts +++ b/packages/mask/src/plugins/FindTruman/base.ts @@ -26,6 +26,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Avalanche, ChainId.Aurora, ChainId.Conflux, + ChainId.Harmony, ], }, [NetworkPluginID.PLUGIN_FLOW]: { supportedChainIds: [] }, diff --git a/packages/mask/src/plugins/ITO/base.ts b/packages/mask/src/plugins/ITO/base.ts index cb3556541e59..84fc5cbb4949 100644 --- a/packages/mask/src/plugins/ITO/base.ts +++ b/packages/mask/src/plugins/ITO/base.ts @@ -28,6 +28,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Aurora, ChainId.Avalanche, ChainId.Fantom, + ChainId.Harmony, ], }, [NetworkPluginID.PLUGIN_FLOW]: { supportedChainIds: [] }, diff --git a/packages/mask/src/plugins/NextID/base.ts b/packages/mask/src/plugins/NextID/base.ts index cafbe251789a..ad143c0d6227 100644 --- a/packages/mask/src/plugins/NextID/base.ts +++ b/packages/mask/src/plugins/NextID/base.ts @@ -29,6 +29,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Aurora, ChainId.Avalanche, ChainId.Fantom, + ChainId.Harmony, ChainId.Conflux, ], }, diff --git a/packages/mask/src/plugins/RedPacket/base.ts b/packages/mask/src/plugins/RedPacket/base.ts index 6895af863cc4..42cc70a2d840 100644 --- a/packages/mask/src/plugins/RedPacket/base.ts +++ b/packages/mask/src/plugins/RedPacket/base.ts @@ -29,6 +29,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Fantom, ChainId.Avalanche, ChainId.Aurora, + ChainId.Harmony, ChainId.Conflux, ], }, diff --git a/packages/mask/src/plugins/Savings/base.ts b/packages/mask/src/plugins/Savings/base.ts index 5bf0aa30c04d..617e7809ef65 100644 --- a/packages/mask/src/plugins/Savings/base.ts +++ b/packages/mask/src/plugins/Savings/base.ts @@ -28,6 +28,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Aurora, ChainId.Avalanche, ChainId.Fantom, + ChainId.Harmony, ], }, [NetworkPluginID.PLUGIN_FLOW]: { supportedChainIds: [] }, diff --git a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/ConfirmDialog.tsx b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/ConfirmDialog.tsx index b66e38e1452c..b0073a1ae351 100644 --- a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/ConfirmDialog.tsx +++ b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/ConfirmDialog.tsx @@ -1,31 +1,33 @@ -import { useCallback, useEffect, useMemo, useState } from 'react' -import { ExternalLink } from 'react-feather' -import BigNumber from 'bignumber.js' -import { Alert, Box, Button, DialogActions, DialogContent, Link, Typography } from '@mui/material' -import { makeStyles, MaskColorVar, useStylesExtends } from '@masknet/theme' +import { CramIcon, InfoIcon, RetweetIcon } from '@masknet/icons' +import { FormattedAddress, FormattedBalance, InjectedDialog, TokenIcon } from '@masknet/shared' +import { isDashboardPage } from '@masknet/shared-base' import { useValueRef } from '@masknet/shared-base-ui' -import { InjectedDialog, FormattedAddress, FormattedBalance, TokenIcon } from '@masknet/shared' -import type { TradeComputed } from '../../types' -import type { FungibleTokenDetailed, Wallet } from '@masknet/web3-shared-evm' +import { makeStyles, MaskColorVar, useStylesExtends } from '@masknet/theme' +import { isZero, multipliedBy } from '@masknet/web3-shared-base' import { createNativeToken, formatBalance, formatEthereumAddress, formatPercentage, + formatUSD, formatWeiToEther, + FungibleTokenDetailed, resolveAddressLinkOnExplorer, + Wallet, } from '@masknet/web3-shared-evm' +import { Alert, Box, Button, DialogActions, DialogContent, Link, Typography } from '@mui/material' +import BigNumber from 'bignumber.js' +import { useCallback, useEffect, useMemo, useState } from 'react' +import { ExternalLink } from 'react-feather' +import { useUpdateEffect } from 'react-use' import { useI18N } from '../../../../utils' -import { InfoIcon, RetweetIcon, CramIcon } from '@masknet/icons' -import { isZero, multipliedBy } from '@masknet/web3-shared-base' -import { isDashboardPage } from '@masknet/shared-base' -import { TargetChainIdContext } from '../../trader/useTargetChainIdContext' -import { currentSlippageSettings } from '../../settings' import { useNativeTokenPrice } from '../../../Wallet/hooks/useTokenPrice' -import { useUpdateEffect } from 'react-use' import { ONE_BIPS } from '../../constants' -import { useGreatThanSlippageSetting } from './hooks/useGreatThanSlippageSetting' +import { currentSlippageSettings } from '../../settings' import { AllProviderTradeContext } from '../../trader/useAllProviderTradeContext' +import { TargetChainIdContext } from '../../trader/useTargetChainIdContext' +import type { TradeComputed } from '../../types' +import { useGreatThanSlippageSetting } from './hooks/useGreatThanSlippageSetting' const useStyles = makeStyles<{ isDashboard: boolean }>()((theme, { isDashboard }) => ({ section: { @@ -156,10 +158,10 @@ export function ConfirmDialogUI(props: ConfirmDialogUIProps) { return gas && gasPrice ? multipliedBy(gasPrice, gas).integerValue().toFixed() : '0' }, [gas, gasPrice]) - const feeValueUSD = useMemo( - () => (gasFee ? new BigNumber(formatWeiToEther(gasFee).times(tokenPrice).toFixed(2)) : '0'), - [gasFee, tokenPrice], - ) + const feeValueUSD = useMemo(() => { + if (!gasFee) return '0' + return formatUSD(formatWeiToEther(gasFee).times(tokenPrice)) + }, [gasFee, tokenPrice]) // #endregion const staled = !!(executionPrice && !executionPrice.isEqualTo(cacheTrade?.executionPrice ?? 0)) @@ -354,7 +356,9 @@ export function ConfirmDialogUI(props: ConfirmDialogUIProps) { formatter={formatBalance} /> - {t('plugin_trader_tx_cost_usd', { usd: feeValueUSD })} + {feeValueUSD === '<$0.01' + ? t('plugin_trader_tx_cost_very_small', { usd: feeValueUSD }) + : t('plugin_trader_tx_cost_usd', { usd: feeValueUSD })} diff --git a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TraderInfo.tsx b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TraderInfo.tsx index de8a35058e61..475a1a910c56 100644 --- a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TraderInfo.tsx +++ b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TraderInfo.tsx @@ -1,7 +1,13 @@ import { memo, useMemo } from 'react' import type { TradeInfo } from '../../types' import { makeStyles, MaskColorVar } from '@masknet/theme' -import { createNativeToken, formatBalance, formatPercentage, formatWeiToEther } from '@masknet/web3-shared-evm' +import { + createNativeToken, + formatBalance, + formatPercentage, + formatUSD, + formatWeiToEther, +} from '@masknet/web3-shared-evm' import { Box, CircularProgress, TextField, Typography } from '@mui/material' import { resolveTradeProviderName } from '../../pipes' import { FormattedBalance } from '@masknet/shared' @@ -13,7 +19,6 @@ import { BestTradeIcon, TriangleWarning } from '@masknet/icons' import { useAsyncRetry } from 'react-use' import { PluginTraderRPC } from '../../messages' import { TradeProvider } from '@masknet/public-api' -import BigNumber from 'bignumber.js' import { useNativeTokenPrice } from '../../../Wallet/hooks/useTokenPrice' import { TargetChainIdContext } from '../../trader/useTargetChainIdContext' import { useGreatThanSlippageSetting } from './hooks/useGreatThanSlippageSetting' @@ -106,10 +111,10 @@ export const TraderInfo = memo(({ trade, gasPrice, isBest, onCl return trade.gas.value && gasPrice ? multipliedBy(gasPrice, trade.gas.value).integerValue().toFixed() : 0 }, [trade.gas?.value, gasPrice]) - const feeValueUSD = useMemo( - () => (gasFee ? new BigNumber(formatWeiToEther(gasFee).times(tokenPrice).toFixed(2)) : '0'), - [gasFee, tokenPrice], - ) + const feeValueUSD = useMemo(() => { + if (!gasFee) return '0' + return formatUSD(formatWeiToEther(gasFee).times(tokenPrice)) + }, [gasFee, tokenPrice]) const isGreatThanSlippageSetting = useGreatThanSlippageSetting(trade.value?.priceImpact) @@ -162,7 +167,9 @@ export const TraderInfo = memo(({ trade, gasPrice, isBest, onCl /> - {t('plugin_trader_tx_cost_usd', { usd: feeValueUSD })} + {feeValueUSD === '<$0.01' + ? t('plugin_trader_tx_cost_very_small', { usd: feeValueUSD }) + : t('plugin_trader_tx_cost_usd', { usd: feeValueUSD })} ) : null} diff --git a/packages/mask/src/plugins/Trader/apis/trader/index.ts b/packages/mask/src/plugins/Trader/apis/trader/index.ts index 8b1c44229c17..c36a2ebde6f3 100644 --- a/packages/mask/src/plugins/Trader/apis/trader/index.ts +++ b/packages/mask/src/plugins/Trader/apis/trader/index.ts @@ -52,6 +52,13 @@ export async function getAvailableTraderProviders(chainId: ChainId) { return [TradeProvider.SUSHISWAP] case NetworkType.Aurora: return [TradeProvider.DODO, TradeProvider.WANNASWAP, TradeProvider.TRISOLARIS] + case NetworkType.Harmony: + return [ + TradeProvider.SUSHISWAP, + TradeProvider.VENOMSWAP, + TradeProvider.OPENSWAP, + TradeProvider.DEFIKINGDOMS, + ] case NetworkType.Boba: case NetworkType.Fuse: case NetworkType.Metis: diff --git a/packages/mask/src/plugins/Trader/base.ts b/packages/mask/src/plugins/Trader/base.ts index 0406e75311fd..2bb1969f0c29 100644 --- a/packages/mask/src/plugins/Trader/base.ts +++ b/packages/mask/src/plugins/Trader/base.ts @@ -23,6 +23,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Aurora, ChainId.Avalanche, ChainId.Fantom, + ChainId.Harmony, ], }, [NetworkPluginID.PLUGIN_FLOW]: { supportedChainIds: [] }, diff --git a/packages/mask/src/plugins/Trader/constants/0x.ts b/packages/mask/src/plugins/Trader/constants/0x.ts index c1e3a34a1da7..9edc0eec1c8f 100644 --- a/packages/mask/src/plugins/Trader/constants/0x.ts +++ b/packages/mask/src/plugins/Trader/constants/0x.ts @@ -14,6 +14,7 @@ export const ZRX_BASE_URL: Record = { [NetworkType.Fuse]: '', [NetworkType.Metis]: '', [NetworkType.Optimistic]: '', + [NetworkType.Harmony]: '', [NetworkType.Conflux]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/defikingdoms.ts b/packages/mask/src/plugins/Trader/constants/defikingdoms.ts new file mode 100644 index 000000000000..a2661c980a5d --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/defikingdoms.ts @@ -0,0 +1,14 @@ +import { ChainId, DAI, USDC, USDT, WBTC, JEWEL, WNATIVE, WNATIVE_ONLY } from '@masknet/web3-shared-evm' + +import type { ERC20AgainstToken, ERC20TokenCustomizedBase } from './types' + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ +export const DEFIKINGDOMS_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const DEFIKINGDOMS_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Harmony]: [WNATIVE, DAI, USDC, WBTC, USDT, JEWEL].map((x) => x[ChainId.Harmony]), +} diff --git a/packages/mask/src/plugins/Trader/constants/dodo.ts b/packages/mask/src/plugins/Trader/constants/dodo.ts index 912c4af0615d..05a4d2ea4c55 100644 --- a/packages/mask/src/plugins/Trader/constants/dodo.ts +++ b/packages/mask/src/plugins/Trader/constants/dodo.ts @@ -16,5 +16,6 @@ export const networkNames: Record = { [NetworkType.Fuse]: '', [NetworkType.Metis]: '', [NetworkType.Optimistic]: '', + [NetworkType.Harmony]: 'harmony', [NetworkType.Conflux]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/index.ts b/packages/mask/src/plugins/Trader/constants/index.ts index 9f89799a8a2d..8b2ec0bf672c 100644 --- a/packages/mask/src/plugins/Trader/constants/index.ts +++ b/packages/mask/src/plugins/Trader/constants/index.ts @@ -13,5 +13,8 @@ export * from './traderjoe' export * from './pangolindex' export * from './wannaswap' export * from './trisolaris' +export * from './venomswap' +export * from './openswap' export * from './mdex' +export * from './defikingdoms' export type { ERC20TokenCustomizedBase, ERC20AgainstToken } from './types' diff --git a/packages/mask/src/plugins/Trader/constants/openocean.ts b/packages/mask/src/plugins/Trader/constants/openocean.ts index 5749ad41b6e6..c7c970c5dd4d 100644 --- a/packages/mask/src/plugins/Trader/constants/openocean.ts +++ b/packages/mask/src/plugins/Trader/constants/openocean.ts @@ -16,5 +16,6 @@ export const networkNames: Record = { [NetworkType.Fuse]: '', [NetworkType.Metis]: '', [NetworkType.Optimistic]: '', + [NetworkType.Harmony]: '', [NetworkType.Conflux]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/openswap.ts b/packages/mask/src/plugins/Trader/constants/openswap.ts new file mode 100644 index 000000000000..8cfd2850a991 --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/openswap.ts @@ -0,0 +1,14 @@ +import { ChainId, DAI, USDC, USDT, WBTC, WNATIVE, OPENX, WNATIVE_ONLY } from '@masknet/web3-shared-evm' + +import type { ERC20AgainstToken, ERC20TokenCustomizedBase } from './types' + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ +export const OPENSWAP_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const OPENSWAP_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Harmony]: [WNATIVE, DAI, OPENX, USDC, WBTC, USDT].map((x) => x[ChainId.Harmony]), +} diff --git a/packages/mask/src/plugins/Trader/constants/sushiswap.ts b/packages/mask/src/plugins/Trader/constants/sushiswap.ts index 9c245496daff..5f5e7931a4c6 100644 --- a/packages/mask/src/plugins/Trader/constants/sushiswap.ts +++ b/packages/mask/src/plugins/Trader/constants/sushiswap.ts @@ -33,4 +33,5 @@ export const SUSHISWAP_BASE_AGAINST_TOKENS: ERC20AgainstToken = { [ChainId.Celo]: [WNATIVE, CUSD, CEUR].map((x) => x[ChainId.Celo]), [ChainId.Fantom]: [WNATIVE, DAI, USDC, fUSDT, WBTC].map((x) => x[ChainId.Fantom]), [ChainId.Avalanche]: [WNATIVE, DAI, USDC, WBTC, USDT].map((x) => x[ChainId.Avalanche]), + [ChainId.Harmony]: [WNATIVE, DAI, USDC, WBTC, USDT].map((x) => x[ChainId.Harmony]), } diff --git a/packages/mask/src/plugins/Trader/constants/venomswap.ts b/packages/mask/src/plugins/Trader/constants/venomswap.ts new file mode 100644 index 000000000000..25501e3d2044 --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/venomswap.ts @@ -0,0 +1,14 @@ +import { ChainId, DAI, USDC, USDT, WBTC, WNATIVE, VIPER, WNATIVE_ONLY } from '@masknet/web3-shared-evm' + +import type { ERC20AgainstToken, ERC20TokenCustomizedBase } from './types' + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ +export const VENOMSWAP_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const VENOMSWAP_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Harmony]: [WNATIVE, DAI, VIPER, USDC, WBTC, USDT].map((x) => x[ChainId.Harmony]), +} diff --git a/packages/mask/src/plugins/Trader/pipes.ts b/packages/mask/src/plugins/Trader/pipes.ts index d04f1b973f57..314831b4388d 100644 --- a/packages/mask/src/plugins/Trader/pipes.ts +++ b/packages/mask/src/plugins/Trader/pipes.ts @@ -40,7 +40,10 @@ export const resolveTradeProviderName = createLookupTableResolver { throw new Error(`Unknown provider type: ${tradeProvider}`) diff --git a/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts b/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts index d401ce7f1ae1..84c7e8c513d2 100644 --- a/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts +++ b/packages/mask/src/plugins/Trader/trader/0x/useTrade.ts @@ -34,6 +34,7 @@ export function getNativeTokenLabel(networkType: NetworkType) { case NetworkType.Metis: case NetworkType.Avalanche: case NetworkType.Optimistic: + case NetworkType.Harmony: case NetworkType.Conflux: return NATIVE_TOKEN_ADDRESS default: diff --git a/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts b/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts index e8f998637286..852cb59ba64d 100644 --- a/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts +++ b/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts @@ -199,6 +199,27 @@ export function useAllTradeComputed( traderEstimateGas: wannaSwapEstimateGas, } = useUniswapV2Like(tradeProviders, TradeProvider.WANNASWAP, inputAmount_, inputToken, outputToken) + // Venom Swap + const { + trader_: venomswap_, + trader: venomswap, + traderEstimateGas: venomswapEstimateGas, + } = useUniswapV2Like(tradeProviders, TradeProvider.VENOMSWAP, inputAmount_, inputToken, outputToken) + + // Open Swap + const { + trader_: openswap_, + trader: openswap, + traderEstimateGas: openswapEstimateGas, + } = useUniswapV2Like(tradeProviders, TradeProvider.OPENSWAP, inputAmount_, inputToken, outputToken) + + // Defi Kingdoms + const { + trader_: defikingdoms_, + trader: defikingdoms, + traderEstimateGas: defikingdomsEstimateGas, + } = useUniswapV2Like(tradeProviders, TradeProvider.DEFIKINGDOMS, inputAmount_, inputToken, outputToken) + // Mdex const { trader_: mdex_, @@ -222,6 +243,8 @@ export function useAllTradeComputed( { provider: TradeProvider.OPENOCEAN, ...openocean_, value: openocean, gas: openoceanSwapEstimateGas }, { provider: TradeProvider.WANNASWAP, ...wannaswap_, value: wannaswap, gas: wannaSwapEstimateGas }, { provider: TradeProvider.TRISOLARIS, ...trisolaris_, value: trisolaris, gas: trisolarisEstimateGas }, + { provider: TradeProvider.VENOMSWAP, ...venomswap_, value: venomswap, gas: venomswapEstimateGas }, + { provider: TradeProvider.OPENSWAP, ...openswap_, value: openswap, gas: openswapEstimateGas }, { provider: TradeProvider.MDEX, ...mdex_, value: mdex, gas: mdexEstimateGas }, ] diff --git a/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts b/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts index 940a289cb781..99e1a06e94ad 100644 --- a/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts +++ b/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts @@ -21,8 +21,14 @@ import { WANNASWAP_CUSTOM_BASES, TRISOLARIS_BASE_AGAINST_TOKENS, TRISOLARIS_CUSTOM_BASES, + VENOMSWAP_BASE_AGAINST_TOKENS, + VENOMSWAP_CUSTOM_BASES, + OPENSWAP_BASE_AGAINST_TOKENS, + OPENSWAP_CUSTOM_BASES, MDEX_BASE_AGAINST_TOKENS, MDEX_CUSTOM_BASES, + DEFIKINGDOMS_BASE_AGAINST_TOKENS, + DEFIKINGDOMS_CUSTOM_BASES, } from '../constants' import { unreachable } from '@dimensiondev/kit' import { TargetChainIdContext } from './useTargetChainIdContext' @@ -175,6 +181,45 @@ export function useGetTradeContext(tradeProvider?: TradeProvider) { ADDITIONAL_TOKENS: {}, CUSTOM_TOKENS: MDEX_CUSTOM_BASES, } + case TradeProvider.VENOMSWAP: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.VENOMSWAP_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.VENOMSWAP_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.VENOMSWAP_ROUTER_ADDRESS, + SPENDER_CONTRACT_ADDRESS: DEX_TRADE.VENOMSWAP_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.VENOMSWAP_FACTORY_ADDRESS, + AGAINST_TOKENS: VENOMSWAP_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: VENOMSWAP_CUSTOM_BASES, + } + case TradeProvider.OPENSWAP: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.OPENSWAP_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.OPENSWAP_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.OPENSWAP_ROUTER_ADDRESS, + SPENDER_CONTRACT_ADDRESS: DEX_TRADE.OPENSWAP_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.OPENSWAP_FACTORY_ADDRESS, + AGAINST_TOKENS: OPENSWAP_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: OPENSWAP_CUSTOM_BASES, + } + case TradeProvider.DEFIKINGDOMS: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.DEFIKINGDOMS_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.DEFIKINGDOMS_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.DEFIKINGDOMS_ROUTER_ADDRESS, + SPENDER_CONTRACT_ADDRESS: DEX_TRADE.DEFIKINGDOMS_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.DEFIKINGDOMS_FACTORY_ADDRESS, + AGAINST_TOKENS: DEFIKINGDOMS_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: DEFIKINGDOMS_CUSTOM_BASES, + } case TradeProvider.ZRX: return { TYPE: tradeProvider, diff --git a/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts b/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts index 1f45f7b22380..35d55117ffcf 100644 --- a/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts +++ b/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts @@ -100,8 +100,14 @@ export function useTradeCallback( return uniswapV2Like case TradeProvider.TRISOLARIS: return uniswapV2Like + case TradeProvider.VENOMSWAP: + return uniswapV2Like + case TradeProvider.OPENSWAP: + return uniswapV2Like case TradeProvider.MDEX: return uniswapV2Like + case TradeProvider.DEFIKINGDOMS: + return uniswapV2Like case TradeProvider.ZRX: return zrx case TradeProvider.BALANCER: diff --git a/packages/mask/src/plugins/Trader/types/trader.ts b/packages/mask/src/plugins/Trader/types/trader.ts index ca44b2391919..956f1a8fc0f7 100644 --- a/packages/mask/src/plugins/Trader/types/trader.ts +++ b/packages/mask/src/plugins/Trader/types/trader.ts @@ -76,6 +76,9 @@ export enum ZrxTradePool { Trisolaris = 'Trisolaris', WannaSwap = 'WannaSwap', Mdex = 'Mdex', + VenomSwap = 'VenomSwap', + OpenSwap = 'OpenSwap', + DefiKingdoms = 'DefiKingdoms', } export interface TradeComputed { diff --git a/packages/mask/src/plugins/Wallet/SNSAdaptor/ConnectWalletDialog/index.tsx b/packages/mask/src/plugins/Wallet/SNSAdaptor/ConnectWalletDialog/index.tsx index e4d2a0472314..24cfe55458f3 100644 --- a/packages/mask/src/plugins/Wallet/SNSAdaptor/ConnectWalletDialog/index.tsx +++ b/packages/mask/src/plugins/Wallet/SNSAdaptor/ConnectWalletDialog/index.tsx @@ -32,17 +32,15 @@ export function ConnectWalletDialog(props: ConnectWalletDialogProps) { const [networkType, setNetworkType] = useState() // #region remote controlled dialog - const { open, setDialog: setConnectWalletDialog } = useRemoteControlledDialog( - WalletMessages.events.connectWalletDialogUpdated, - (ev) => { - if (!ev.open) return - setProviderType(ev.providerType) - setNetworkType(ev.networkType) - }, - ) - const onClose = useCallback(() => { - setConnectWalletDialog({ open: false }) - }, []) + const { + open, + closeDialog, + setDialog: setConnectWalletDialog, + } = useRemoteControlledDialog(WalletMessages.events.connectWalletDialogUpdated, (ev) => { + if (!ev.open) return + setProviderType(ev.providerType) + setNetworkType(ev.networkType) + }) // #endregion // #region walletconnect @@ -116,10 +114,9 @@ export function ConnectWalletDialog(props: ConnectWalletDialogProps) { // it will always add a new RPC provider even if the network exists if (providerType !== ProviderType.Coin98) { await Promise.race([ - (async () => { - await delay(30 /* seconds */ * 1000 /* milliseconds */) + delay(30 /* seconds */ * 1000 /* milliseconds */).then(() => { throw new Error('Timeout!') - })(), + }), networkType === NetworkType.Ethereum ? Services.Ethereum.switchEthereumChain(ChainId.Mainnet, overrides) : Services.Ethereum.addEthereumChain(chainDetailedCAIP, account, overrides), @@ -156,7 +153,7 @@ export function ConnectWalletDialog(props: ConnectWalletDialogProps) { if (!providerType) return null return ( - + diff --git a/packages/mask/src/plugins/Wallet/apis/debank.ts b/packages/mask/src/plugins/Wallet/apis/debank.ts index e72fdc67de63..e64de5fe31d7 100644 --- a/packages/mask/src/plugins/Wallet/apis/debank.ts +++ b/packages/mask/src/plugins/Wallet/apis/debank.ts @@ -29,6 +29,8 @@ export async function getAssetsList(address: string) { } const auroraChainOnDebank = getDeBankConstants(ChainId.Aurora).CHAIN_ID +const harmonyChainOnDebank = getDeBankConstants(ChainId.Harmony).CHAIN_ID +const arbitrumChainOnDebank = getDeBankConstants(ChainId.Arbitrum).CHAIN_ID const fieldKeys = ['fast', 'normal', 'slow'] as const /** * Debank's data might be outdated, like gas price for aurora which requires 1 Gwei at least @@ -36,7 +38,7 @@ const fieldKeys = ['fast', 'normal', 'slow'] as const * Once debank fixes it, we will remove this modifier. */ function gasModifier(gasDict: GasPriceDictResponse, chain: string) { - if (chain === auroraChainOnDebank) { + if ([auroraChainOnDebank, arbitrumChainOnDebank].includes(chain)) { fieldKeys.forEach((fieldKey) => { const field = gasDict.data[fieldKey] field.price = Math.max(field.price, formatGweiToWei(1).toNumber()) diff --git a/packages/mask/src/plugins/Wallet/services/account.ts b/packages/mask/src/plugins/Wallet/services/account.ts index 2b3759fc6beb..a5c866b20fc9 100644 --- a/packages/mask/src/plugins/Wallet/services/account.ts +++ b/packages/mask/src/plugins/Wallet/services/account.ts @@ -128,5 +128,6 @@ export async function getSupportedNetworks() { Flags.fantom_enabled ? NetworkType.Fantom : undefined, Flags.avalanche_enabled ? NetworkType.Avalanche : undefined, Flags.aurora_enabled ? NetworkType.Aurora : undefined, + Flags.harmony_enabled ? NetworkType.Harmony : undefined, ].filter(Boolean) as NetworkType[] } diff --git a/packages/mask/src/resources/SushiSwapIcon.tsx b/packages/mask/src/resources/SushiSwapIcon.tsx deleted file mode 100644 index 2a7e07344ed0..000000000000 --- a/packages/mask/src/resources/SushiSwapIcon.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { SvgIconProps, SvgIcon } from '@mui/material' - -const svg = ( - - - -) - -export function SushiSwapIcon(props: SvgIconProps) { - return {svg} -} diff --git a/packages/public-api/src/web.ts b/packages/public-api/src/web.ts index bf167a37460b..15e28cda345f 100644 --- a/packages/public-api/src/web.ts +++ b/packages/public-api/src/web.ts @@ -194,6 +194,9 @@ export enum TradeProvider { TRADERJOE = 13, PANGOLIN = 14, MDEX = 15, + VENOMSWAP = 16, + OPENSWAP = 17, + DEFIKINGDOMS = 18, } /** Supported language settings */ @@ -232,6 +235,7 @@ export enum NetworkType { Fuse = 'Fuse', Metis = 'Metis', Optimistic = 'Optimistic', + Harmony = 'Harmony', Conflux = 'Conflux', } diff --git a/packages/web3-constants/compile-constants.ts b/packages/web3-constants/compile-constants.ts index e9462b36f726..ab288a6150c3 100644 --- a/packages/web3-constants/compile-constants.ts +++ b/packages/web3-constants/compile-constants.ts @@ -60,6 +60,8 @@ compileConstants(path.join(__dirname, 'evm'), [ 'Aurora', 'Aurora_Testnet', 'Conflux', + 'Harmony', + 'Harmony_Test', ]) compileConstants(path.join(__dirname, 'solana'), ['Mainnet', 'Testnet', 'Devnet']) diff --git a/packages/web3-constants/evm/aave.json b/packages/web3-constants/evm/aave.json index 4894405bcf10..8fc273982e95 100644 --- a/packages/web3-constants/evm/aave.json +++ b/packages/web3-constants/evm/aave.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "AAVE_LENDING_POOL_ADDRESSES_PROVIDER_CONTRACT_ADDRESS": { "Mainnet": "0xb53c1a33016b2dc2ff3653530bff1848a515c8c5", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "AAVE_PROTOCOL_DATA_PROVIDER_CONTRACT_ADDRESS": { "Mainnet": "0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d", @@ -60,6 +64,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/airdrop.json b/packages/web3-constants/evm/airdrop.json index 28ca1f00abf1..c2926befc023 100644 --- a/packages/web3-constants/evm/airdrop.json +++ b/packages/web3-constants/evm/airdrop.json @@ -18,6 +18,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/artblocks.json b/packages/web3-constants/evm/artblocks.json index 0ac17edfdcae..683855f0d316 100644 --- a/packages/web3-constants/evm/artblocks.json +++ b/packages/web3-constants/evm/artblocks.json @@ -18,6 +18,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/coingecko.json b/packages/web3-constants/evm/coingecko.json index 20dbb8910035..a0b9c6d8b510 100644 --- a/packages/web3-constants/evm/coingecko.json +++ b/packages/web3-constants/evm/coingecko.json @@ -18,7 +18,9 @@ "Fantom": "fantom", "Aurora": "aurora", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "harmony", + "Harmony_Test": "" }, "COIN_ID": { "Mainnet": "ethereum", @@ -39,6 +41,8 @@ "Fantom": "fantom", "Aurora": "ethereum", "Aurora_Testnet": "", - "Conflux": "conflux-token" + "Conflux": "conflux-token", + "Harmony": "harmony", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/coinmarketcap.json b/packages/web3-constants/evm/coinmarketcap.json index 44f07aaa4b88..bb8ef5c346d4 100644 --- a/packages/web3-constants/evm/coinmarketcap.json +++ b/packages/web3-constants/evm/coinmarketcap.json @@ -16,8 +16,10 @@ "Avalanche_Fuji": "", "Celo": "5567", "Fantom": "3513", - "Aurora": "1313161554", + "Aurora": "14803", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "7334", + "Harmony": "3945", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/cryptoartai.json b/packages/web3-constants/evm/cryptoartai.json index 8819260601ef..8c0fd4f8d36f 100644 --- a/packages/web3-constants/evm/cryptoartai.json +++ b/packages/web3-constants/evm/cryptoartai.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "ARTIST_ACCEPTING_BIDS_V2": { "Mainnet": "0x78C889749f29D2965a76Ede3BBb232A9729Ccf0b", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "CANFT_MARKET": { "Mainnet": "0x72d081953957723e540780a0C6bA31725469238E", @@ -60,6 +64,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/debank.json b/packages/web3-constants/evm/debank.json index f4ba365239c1..f62c9f0461ba 100644 --- a/packages/web3-constants/evm/debank.json +++ b/packages/web3-constants/evm/debank.json @@ -18,6 +18,8 @@ "Fantom": "ftm", "Aurora": "aurora", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "hmy", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/dhedge.json b/packages/web3-constants/evm/dhedge.json index 9aa7b2dbd671..845dc5287bfc 100644 --- a/packages/web3-constants/evm/dhedge.json +++ b/packages/web3-constants/evm/dhedge.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "API_URL": { "Mainnet": "https://api-v2.dhedge.org/graphql", @@ -39,6 +41,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/ethereum.json b/packages/web3-constants/evm/ethereum.json index 9915418599d4..d2aae0d26463 100644 --- a/packages/web3-constants/evm/ethereum.json +++ b/packages/web3-constants/evm/ethereum.json @@ -18,7 +18,9 @@ "Fantom": "0xc119574d5fb333f5ac018658d4d8b5035e16bf39", "Aurora": "0xC119574D5Fb333F5AC018658D4d8b5035E16bf39", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xc119574d5fb333f5ac018658d4d8b5035e16bf39", + "Harmony_Test": "" }, "MULTICALL_ADDRESS": { "Mainnet": "0x1F98415757620B543A52E61c46B32eB19261F984", @@ -39,7 +41,9 @@ "Fantom": "0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c", "Aurora": "0x6cc1b1058F9153358278C35E0b2D382f1585854B", "Aurora_Testnet": "", - "Conflux": "0x19f179d7e0d7d9f9d5386afff64271d98a91615b" + "Conflux": "0x19f179d7e0d7d9f9d5386afff64271d98a91615b", + "Harmony": "0x6cc1b1058f9153358278c35e0b2d382f1585854b", + "Harmony_Test": "" }, "ENS_REGISTRAR_ADDRESS": { "Mainnet": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", @@ -60,7 +64,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "ENS_REVERSE_RECORDS_ADDRESS": { "Mainnet": "0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C", @@ -81,6 +87,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/explorer.json b/packages/web3-constants/evm/explorer.json index 27b6689b8f7f..b6b05a3396f4 100644 --- a/packages/web3-constants/evm/explorer.json +++ b/packages/web3-constants/evm/explorer.json @@ -18,7 +18,9 @@ "Fantom": ["AST4WWPNEYDURUXG2GH32JZMYWEFDP999S"], "Aurora": [], "Aurora_Testnet": [], - "Conflux": [] + "Conflux": [], + "Harmony": [], + "Harmony_Test": [] }, "EXPLORER_API": { "Mainnet": "https://api.etherscan.io/api", @@ -39,6 +41,8 @@ "Fantom": "https://api.ftmscan.com/api", "Aurora": "https://explorer.mainnet.aurora.dev/api", "Aurora_Testnet": "https://explorer.testnet.aurora.dev/api", - "Conflux": "https://evmapi.confluxscan.net/api" + "Conflux": "https://evmapi.confluxscan.net/api", + "Harmony": "https://explorer.harmony.one", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/gitcoin.json b/packages/web3-constants/evm/gitcoin.json index c26772f90dd9..47630e59da64 100644 --- a/packages/web3-constants/evm/gitcoin.json +++ b/packages/web3-constants/evm/gitcoin.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BULK_CHECKOUT_ADDRESS": { "Mainnet": "0x7d655c57f71464B6f83811C55D84009Cd9f5221C", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "GITCOIN_ETH_ADDRESS": { "Mainnet": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", @@ -60,7 +64,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "GITCOIN_TIP_PERCENTAGE": { "Mainnet": 5, @@ -81,6 +87,8 @@ "Fantom": 0, "Aurora": 0, "Aurora_Testnet": 0, - "Conflux": 0 + "Conflux": 0, + "Harmony": 0, + "Harmony_Test": 0 } } diff --git a/packages/web3-constants/evm/good-ghosting.json b/packages/web3-constants/evm/good-ghosting.json index 9ab7b3a1ba84..6c86d726b946 100644 --- a/packages/web3-constants/evm/good-ghosting.json +++ b/packages/web3-constants/evm/good-ghosting.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "GOOD_GHOSTING_INCENTIVES_CONTRACT_ADDRESS": { "Mainnet": "", @@ -39,6 +41,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/ito.json b/packages/web3-constants/evm/ito.json index 7a56f24e5d98..ed88c8ac7f71 100644 --- a/packages/web3-constants/evm/ito.json +++ b/packages/web3-constants/evm/ito.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MASK_ITO_CONTRACT_ADDRESS": { "Mainnet": "0x86812da3A623ab9606976078588b80C315E55FA3", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "ITO2_CONTRACT_ADDRESS": { "Mainnet": "0xc2CFbF22d6Dc87D0eE18d38d73733524c109Ff46", @@ -60,7 +64,9 @@ "Fantom": "0x981be454a930479d92C91a0092D204b64845A5D6", "Aurora": "0x2cf91AD8C175305EBe6970Bd8f81231585EFbd77", "Aurora_Testnet": "0xdcA6F476EebCDE8FE8b072e3fC80dBC28dC209b3", - "Conflux": "0x066804d9123bf2609ed4a4a40b1177a9c5a9ed51" + "Conflux": "0x066804d9123bf2609ed4a4a40b1177a9c5a9ed51", + "Harmony": "0x5b966f3a32db9c180843bcb40267a66b73e4f022", + "Harmony_Test": "0x578a7fee5f0d8cec7d00578bf37374c5b95c4b98" }, "ITO2_CONTRACT_CREATION_BLOCK_HEIGHT": { "Mainnet": 12766513, @@ -81,7 +87,9 @@ "Fantom": 25071597, "Aurora": 57350598, "Aurora_Testnet": 77919102, - "Conflux": 37722805 + "Conflux": 37722805, + "Harmony": 24133305, + "Harmony_Test": 22744597 }, "DEFAULT_QUALIFICATION_ADDRESS": { "Mainnet": "0x81b6ae377e360dcad63611846a2516f4ba8c88ac", @@ -102,7 +110,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "DEFAULT_QUALIFICATION2_ADDRESS": { "Mainnet": "0x4dC5f343Fe57E4fbDA1B454d125D396A3181272c", @@ -123,7 +133,9 @@ "Fantom": "0x83D6b366f21e413f214EB077D5378478e71a5eD2", "Aurora": "0x578a7Fee5f0D8CEc7d00578Bf37374C5b95C4b98", "Aurora_Testnet": "", - "Conflux": "0x05ee315e407c21a594f807d61d6cc11306d1f149" + "Conflux": "0x05ee315e407c21a594f807d61d6cc11306d1f149", + "Harmony": "0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF", + "Harmony_Test": "0x812463356F58fc8194645A1838ee6C52D8ca2D26" }, "SUBGRAPH_URL": { "Mainnet": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-mainnet", @@ -144,6 +156,8 @@ "Fantom": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-fantom", "Aurora": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-aurora", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-harmony", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/lbp.json b/packages/web3-constants/evm/lbp.json index 4e867a9c5741..4ed79897fe9f 100644 --- a/packages/web3-constants/evm/lbp.json +++ b/packages/web3-constants/evm/lbp.json @@ -18,6 +18,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/lido.json b/packages/web3-constants/evm/lido.json index 0a3c06476274..6bce00b13733 100644 --- a/packages/web3-constants/evm/lido.json +++ b/packages/web3-constants/evm/lido.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "LIDO_REFERRAL_ADDRESS": { "Mainnet": "0x934b510d4c9103e6a87aef13b816fb080286d649", @@ -39,6 +41,8 @@ "Fantom": "0x934b510d4c9103e6a87aef13b816fb080286d649", "Aurora": "0x934b510d4c9103e6a87aef13b816fb080286d649", "Aurora_Testnet": "0x934b510d4c9103e6a87aef13b816fb080286d649", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/mask-box.json b/packages/web3-constants/evm/mask-box.json index d1bc8e10c0f8..46222400694a 100644 --- a/packages/web3-constants/evm/mask-box.json +++ b/packages/web3-constants/evm/mask-box.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "0xf5056B96ab242C566002852d0b98ce0BcDf1af51", "Aurora_Testnet": "0xB4D669bc117735FdA44e90e52795132187705B21", - "Conflux": "" + "Conflux": "", + "Harmony": "0xDc0905F2Dac875E29A36f22F1Ea046e063875D3e", + "Harmony_Test": "0x4Fda6d9Bb68Af18E5d686555b18cCeA7C82E0A3F" }, "MASK_BOX_CONTRACT_FROM_BLOCK": { "Mainnet": 13687866, @@ -39,6 +41,8 @@ "Fantom": 0, "Aurora": 57259004, "Aurora_Testnet": 77919118, - "Conflux": 0 + "Conflux": 0, + "Harmony": 24172689, + "Harmony_Test": 22787067 } } diff --git a/packages/web3-constants/evm/nft-red-packet.json b/packages/web3-constants/evm/nft-red-packet.json index b0457542eee0..7475a36b6c43 100644 --- a/packages/web3-constants/evm/nft-red-packet.json +++ b/packages/web3-constants/evm/nft-red-packet.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "0x05ee315E407C21a594f807D61d6CC11306D1F149", "Aurora_Testnet": "0x97369fEE7db34E0BfE47861f2ec44b4378d13eB4", - "Conflux": "0x5b966f3a32db9c180843bcb40267a66b73e4f022" + "Conflux": "0x5b966f3a32db9c180843bcb40267a66b73e4f022", + "Harmony": "0x83d6b366f21e413f214eb077d5378478e71a5ed2", + "Harmony_Test": "0x981be454a930479d92c91a0092d204b64845a5d6" }, "SUBGRAPH_URL": { "Mainnet": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-mainnet", @@ -39,6 +41,8 @@ "Fantom": "", "Aurora": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-aurora", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-harmony", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/openocean.json b/packages/web3-constants/evm/openocean.json index a0004c674b66..6cc2a20b1148 100644 --- a/packages/web3-constants/evm/openocean.json +++ b/packages/web3-constants/evm/openocean.json @@ -18,6 +18,8 @@ "Fantom": "0x934B510D4C9103E6a87AEf13b816fb080286D649", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/opensea-api.json b/packages/web3-constants/evm/opensea-api.json index eec5cbdb1162..5f5acdc0beae 100644 --- a/packages/web3-constants/evm/opensea-api.json +++ b/packages/web3-constants/evm/opensea-api.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "GET_SINGLE_ASSET_URL": { "Mainnet": "https://api.opensea.io/api/v1/asset", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "GET_ASSETS_URL": { "Mainnet": "https://api.opensea.io/api/v1/assets", @@ -60,6 +64,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/pooltogether.json b/packages/web3-constants/evm/pooltogether.json index ea3096e69ea4..76bb72969f5a 100644 --- a/packages/web3-constants/evm/pooltogether.json +++ b/packages/web3-constants/evm/pooltogether.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MASK_POOL_ADDRESS": { "Mainnet": "", @@ -39,6 +41,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/red-packet.json b/packages/web3-constants/evm/red-packet.json index 3fc873e50bb9..1b52af2433b4 100644 --- a/packages/web3-constants/evm/red-packet.json +++ b/packages/web3-constants/evm/red-packet.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "HAPPY_RED_PACKET_ADDRESS_V2": { "Mainnet": "0x8D8912E1237F9FF3EF661F32743CFB276E052F98", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "HAPPY_RED_PACKET_ADDRESS_V3": { "Mainnet": "", @@ -60,7 +64,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "HAPPY_RED_PACKET_ADDRESS_V4": { "Mainnet": "0xaBBe1101FD8fa5847c452A6D70C8655532B03C33", @@ -81,7 +87,9 @@ "Fantom": "0x578a7Fee5f0D8CEc7d00578Bf37374C5b95C4b98", "Aurora": "0x19f179D7e0D7d9F9d5386afFF64271D98A91615B", "Aurora_Testnet": "0xdB93cCd481012bB5D1E2c8d0aF7C5f2940c00fdC", - "Conflux": "0x96c7d011cdfd467f551605f0f5fce279f86f4186" + "Conflux": "0x96c7d011cdfd467f551605f0f5fce279f86f4186", + "Harmony": "0xab7b1be4233a04e5c43a810e75657eced8e5463b", + "Harmony_Test": "0x96c7d011cdfd467f551605f0f5fce279f86f4186" }, "HAPPY_RED_PACKET_ADDRESS_V4_BLOCK_HEIGHT": { "Mainnet": 12939427, @@ -102,7 +110,9 @@ "Fantom": 25112473, "Aurora": 57552338, "Aurora_Testnet": 77918765, - "Conflux": 37670572 + "Conflux": 37670572, + "Harmony": 24134162, + "Harmony_Test": 22701101 }, "SUBGRAPH_URL": { "Mainnet": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-mainnet", @@ -123,6 +133,8 @@ "Fantom": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-fantom", "Aurora": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-aurora", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-harmony", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/rpc.json b/packages/web3-constants/evm/rpc.json index ba9151bcf390..a3074975a56d 100644 --- a/packages/web3-constants/evm/rpc.json +++ b/packages/web3-constants/evm/rpc.json @@ -60,7 +60,15 @@ "Fantom": ["https://rpc.ftm.tools"], "Aurora": ["https://mainnet.aurora.dev"], "Aurora_Testnet": ["https://testnet.aurora.dev"], - "Conflux": ["https://evm.confluxrpc.com"] + "Conflux": ["https://evm.confluxrpc.com"], + "Harmony": [ + "https://harmony-0-rpc.gateway.pokt.network", + "https://api.harmony.one", + "https://a.api.s0.t.hmny.io", + "https://api.s0.t.hmny.io", + "https://rpc.hermesdefi.io/" + ], + "Harmony_Test": ["https://api.s0.b.hmny.io/"] }, "RPC_WEIGHTS": { "Mainnet": [0, 1, 2, 3, 4], @@ -81,6 +89,8 @@ "Fantom": [0, 0, 0, 0, 0], "Aurora": [0, 0, 0, 0, 0], "Aurora_Testnet": [0, 0, 0, 0, 0], - "Conflux": [0, 0, 0, 0, 0] + "Conflux": [0, 0, 0, 0, 0], + "Harmony": [0, 0, 0, 0, 0], + "Harmony_Test": [0, 0, 0, 0, 0] } } diff --git a/packages/web3-constants/evm/space-station-galaxy.json b/packages/web3-constants/evm/space-station-galaxy.json index 28bd2f7c41ed..dccfde580628 100644 --- a/packages/web3-constants/evm/space-station-galaxy.json +++ b/packages/web3-constants/evm/space-station-galaxy.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SUBGRAPH_URL": { "Mainnet": "", @@ -39,6 +41,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/token-asset-base-url.json b/packages/web3-constants/evm/token-asset-base-url.json index 79acb11afe4d..2f84ef4263c0 100644 --- a/packages/web3-constants/evm/token-asset-base-url.json +++ b/packages/web3-constants/evm/token-asset-base-url.json @@ -48,6 +48,11 @@ "Fantom": [], "Aurora": [], "Aurora_Testnet": [], - "Conflux": [] + "Conflux": [], + "Harmony": [ + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/harmony", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/harmony" + ], + "Harmony_Test": [] } } diff --git a/packages/web3-constants/evm/token-list.json b/packages/web3-constants/evm/token-list.json index 15193e2a83fb..247481564f6b 100644 --- a/packages/web3-constants/evm/token-list.json +++ b/packages/web3-constants/evm/token-list.json @@ -18,6 +18,8 @@ "Fantom": ["https://tokens.r2d2.to/latest/250/tokens.json"], "Aurora": ["https://tokens.r2d2.to/latest/1313161554/tokens.json"], "Aurora_Testnet": [], - "Conflux": ["https://tokens.r2d2.to/latest/1030/tokens.json"] + "Conflux": ["https://tokens.r2d2.to/latest/1030/tokens.json"], + "Harmony": ["https://tokens.r2d2.to/latest/1666600000/tokens.json"], + "Harmony_Test": ["https://tokens.r2d2.to/latest/1666700000/tokens.json"] } } diff --git a/packages/web3-constants/evm/token.json b/packages/web3-constants/evm/token.json index e6cdc468f1a2..1486158cf340 100644 --- a/packages/web3-constants/evm/token.json +++ b/packages/web3-constants/evm/token.json @@ -18,7 +18,9 @@ "Fantom": "0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83", "Aurora": "0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a", + "Harmony_Test": "" }, "LDO_stETH_ADDRESS": { "Mainnet": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "USDC_ADDRESS": { "Mainnet": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", @@ -60,7 +64,9 @@ "Fantom": "0x04068da6c83afcfa0e13ba15a6696662335d5b75", "Aurora": "0xb12bfca5a55806aaf64e99521918a4bf0fc40802", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x985458E523dB3d53125813eD68c274899e9DfAb4", + "Harmony_Test": "" }, "USDT_ADDRESS": { "Mainnet": "0xdAC17F958D2ee523a2206206994597C13D831ec7", @@ -81,7 +87,9 @@ "Fantom": "", "Aurora": "0x4988a896b1227218e4a686fde5eabdcabd91571f", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x3c2b8be99c50593081eaa2a724f0b8285f5aba8f", + "Harmony_Test": "" }, "aUSDT_ADDRESS": { "Mainnet": "0x71fc860F7D3A592A4a98740e39dB31d25db65ae8", @@ -102,7 +110,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x3C2B8Be99c50593081EAA2A724F0B8285F5aba8f", + "Harmony_Test": "" }, "HUSD_ADDRESS": { "Mainnet": "0xdf574c24545e5ffecb9a659c229253d4111d87e1", @@ -123,7 +133,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BUSD_ADDRESS": { "Mainnet": "0x4fabb145d64652a948d72533023f6e7a623c7c53", @@ -144,7 +156,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xE176EBE47d621b984a73036B9DA5d834411ef734", + "Harmony_Test": "" }, "COMP_ADDRESS": { "Mainnet": "0xc00e94Cb662C3520282E6f5717214004A7f26888", @@ -165,7 +179,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "EASY_ADDRESS": { "Mainnet": "", @@ -186,7 +202,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MKR_ADDRESS": { "Mainnet": "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2", @@ -207,7 +225,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MASK_ADDRESS": { "Mainnet": "0x69af81e73A73B40adF4f3d4223Cd9b1ECE623074", @@ -228,7 +248,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MSKA_ADDRESS": { "Mainnet": "", @@ -249,7 +271,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MSKB_ADDRESS": { "Mainnet": "", @@ -270,7 +294,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MSKC_ADDRESS": { "Mainnet": "", @@ -291,7 +317,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MSKD_ADDRESS": { "Mainnet": "", @@ -312,7 +340,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MSKE_ADDRESS": { "Mainnet": "", @@ -333,7 +363,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "DAI_ADDRESS": { "Mainnet": "0x6B175474E89094C44Da98b954EedeAC495271d0F", @@ -354,7 +386,9 @@ "Fantom": "0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E", "Aurora": "0xe3520349f477a5f6eb06107066048508498a291b", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xEf977d2f931C1978Db5F6747666fa1eACB0d0339", + "Harmony_Test": "" }, "AMPL_ADDRESS": { "Mainnet": "0xD46bA6D942050d489DBd938a2C909A5d5039A161", @@ -375,7 +409,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "OKB_ADDRESS": { "Mainnet": "0x75231F58b43240C9718Dd58B4967c5114342a86c", @@ -396,7 +432,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UST_ADDRESS": { "Mainnet": "0xa47c8bf37f92aBed4A126BDA807A7b7498661acD", @@ -417,7 +455,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x224e64ec1BDce3870a6a6c777eDd450454068FEC", + "Harmony_Test": "" }, "eUSDC_ADDRESS": { "Mainnet": "", @@ -438,7 +478,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "eUSDT_ADDRESS": { "Mainnet": "", @@ -459,7 +501,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "fUSDT_ADDRESS": { "Mainnet": "", @@ -480,7 +524,9 @@ "Fantom": "0x049d68029688eAbF473097a2fC38ef61633A3C7A", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "eDAI_ADDRESS": { "Mainnet": "", @@ -501,7 +547,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNITOKEN_ADDRESS": { "Mainnet": "", @@ -522,7 +570,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TT01_ADDRESS": { "Mainnet": "", @@ -543,7 +593,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TT02_ADDRESS": { "Mainnet": "", @@ -564,7 +616,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "QUICK_ADDRESS": { "Mainnet": "", @@ -585,7 +639,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "WANNA_ADDRESS": { "Mainnet": "", @@ -606,7 +662,9 @@ "Fantom": "", "Aurora": "0x7faA64Faf54750a2E3eE621166635fEAF406Ab22", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "WBTC_ADDRESS": { "Mainnet": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", @@ -627,7 +685,9 @@ "Fantom": "0x321162Cd933E2Be498Cd2267a90534A804051b11", "Aurora": "0xf4eb217ba2454613b15dbdea6e5f22276410e89e", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x3095c7557bCb296ccc6e363DE01b760bA031F2d9", + "Harmony_Test": "" }, "IGG_ADDRESS": { "Mainnet": "", @@ -648,7 +708,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "OM_ADDRESS": { "Mainnet": "", @@ -669,7 +731,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SUSHI_ADDRESS": { "Mainnet": "0x6B3595068778DD592e39A122f4f5a5cF09C90fE2", @@ -690,7 +754,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xBEC775Cb42AbFa4288dE81F387a9b1A3c4Bc552A", + "Harmony_Test": "" }, "YAM_ADDRESS": { "Mainnet": "0x0e2298E3B3390e3b945a5456fBf59eCc3f55DA16", @@ -711,7 +777,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "RUNE_ADDRESS": { "Mainnet": "0x3155BA85D5F96b2d030a4966AF206230e46849cb", @@ -732,7 +800,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "YFI_ADDRESS": { "Mainnet": "0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e", @@ -753,7 +823,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "sUSD_ADDRESS": { "Mainnet": "0x57ab1ec28d129707052df4df418d58a2d46d5f51", @@ -774,7 +846,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BTCB_ADDRESS": { "Mainnet": "", @@ -795,7 +869,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "CAKE_ADDRESS": { "Mainnet": "", @@ -816,7 +892,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "maUSDC_ADDRESS": { "Mainnet": "", @@ -837,7 +915,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "stETH_ADDRESS": { "Mainnet": "0xDFe66B14D37C77F4E9b180cEb433d1b164f0281D", @@ -858,7 +938,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "NFTX_ADDRESS": { "Mainnet": "0x87d73E916D7057945c9BcD8cdd94e42A6F47f776", @@ -879,7 +961,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "cUSD_ADDRESS": { "Mainnet": "", @@ -900,7 +984,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "cEUR_ADDRESS": { "Mainnet": "", @@ -921,7 +1007,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "xTRI_ADDRESS": { "Mainnet": "", @@ -942,7 +1030,9 @@ "Fantom": "", "Aurora": "0x802119e4e253D5C19aA06A5d567C5a41596D6803", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "JOE_ADDRESS": { "Mainnet": "", @@ -963,7 +1053,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PNG_ADDRESS": { "Mainnet": "", @@ -984,7 +1076,101 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" + }, + "VIPER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0xEa589E93Ff18b1a1F1e9BaC7EF3E86Ab62addc79", + "Harmony_Test": "0x69A655c56087D927eb05247FB56495a0f19B9f70" + }, + "JEWEL_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x72Cb10C6bfA5624dD07Ef608027E366bd690048F", + "Harmony_Test": "" + }, + "CRYSTAL_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x72Cb10C6bfA5624dD07Ef608027E366bd690048F", + "Harmony_Test": "" + }, + "OPENX_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x01A4b054110d57069c1658AFBC46730529A3E326", + "Harmony_Test": "" }, "ETHER_ADDRESS": { "Mainnet": "", @@ -1005,7 +1191,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "NATIVE_TOKEN_ADDRESS": { "Mainnet": "0x0000000000000000000000000000000000000000", @@ -1026,7 +1214,9 @@ "Fantom": "0x0000000000000000000000000000000000000000", "Aurora": "0x0000000000000000000000000000000000000000", "Aurora_Testnet": "", - "Conflux": "0x0000000000000000000000000000000000000000" + "Conflux": "0x0000000000000000000000000000000000000000", + "Harmony": "0x0000000000000000000000000000000000000000", + "Harmony_Test": "0x0000000000000000000000000000000000000000" }, "WETH_ADDRESS": { "Mainnet": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", @@ -1047,7 +1237,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aWETH_ADDRESS": { "Mainnet": "0x030bA81f1c18d280636F32af80b9AAd02Cf0854e", @@ -1068,7 +1260,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8", + "Harmony_Test": "" }, "ZRX_ADDRESS": { "Mainnet": "0xE41d2489571d322189246DaFA5ebDe1F4699F498", @@ -1089,7 +1283,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aZRX_ADDRESS": { "Mainnet": "0xDf7FF54aAcAcbFf42dfe29DD6144A69b629f8C9e", @@ -1110,7 +1306,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNI_ADDRESS": { "Mainnet": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984", @@ -1131,7 +1329,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aUNI_ADDRESS": { "Mainnet": "0xB9D7CB55f463405CDfBe4E90a6D2Df01C2B92BF1", @@ -1152,7 +1352,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "LIDO_ADDRESS": { "Mainnet": "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32", @@ -1173,7 +1375,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "AAVE_ADDRESS": { "Mainnet": "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9", @@ -1194,7 +1398,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xcF323Aad9E522B93F11c352CaA519Ad0E14eB40F", + "Harmony_Test": "" }, "aAAVE_ADDRESS": { "Mainnet": "0xFFC97d72E13E01096502Cb8Eb52dEe56f74DAD7B", @@ -1215,7 +1421,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xf329e36C7bF6E5E86ce2150875a84Ce77f477375", + "Harmony_Test": "" }, "BAT_ADDRESS": { "Mainnet": "0x0D8775F648430679A709E98d2b0Cb6250d2887EF", @@ -1236,7 +1444,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aBAT_ADDRESS": { "Mainnet": "0x05Ec93c0365baAeAbF7AefFb0972ea7ECdD39CF1", @@ -1257,7 +1467,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "ENJ_ADDRESS": { "Mainnet": "0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c", @@ -1278,7 +1490,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aENJ_ADDRESS": { "Mainnet": "0xaC6Df26a590F08dcC95D5a4705ae8abbc88509Ef", @@ -1299,7 +1513,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "KNC_ADDRESS": { "Mainnet": "0xdd974D5C2e2928deA5F71b9825b8b646686BD200", @@ -1320,7 +1536,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aKNC_ADDRESS": { "Mainnet": "0x39C6b3e42d6A679d7D776778Fe880BC9487C2EDA", @@ -1341,7 +1559,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "LINK_ADDRESS": { "Mainnet": "0x514910771AF9Ca656af840dff83E8264EcF986CA", @@ -1362,7 +1582,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x218532a12a389a4a92fC0C5Fb22901D1c19198aA", + "Harmony_Test": "" }, "aLINK_ADDRESS": { "Mainnet": "0xa06bC25B5805d5F8d82847D191Cb4Af5A3e873E0", @@ -1383,7 +1605,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MANA_ADDRESS": { "Mainnet": "0x0F5D2fB29fb7d3CFeE444a200298f468908cC942", @@ -1404,7 +1628,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aMANA_ADDRESS": { "Mainnet": "0xa685a61171bb30d4072B338c80Cb7b2c865c873E", @@ -1425,7 +1651,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "REN_ADDRESS": { "Mainnet": "0x408e41876cCCDC0F92210600ef50372656052a38", @@ -1446,7 +1674,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aREN_ADDRESS": { "Mainnet": "0xCC12AbE4ff81c9378D670De1b57F8e0Dd228D77a", @@ -1467,7 +1697,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SNX_ADDRESS": { "Mainnet": "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F", @@ -1488,7 +1720,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aSNX_ADDRESS": { "Mainnet": "0x35f6B052C598d933D69A4EEC4D04c73A191fE6c2", @@ -1509,7 +1743,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TUSD_ADDRESS": { "Mainnet": "0x0000000000085d4780B73119b644AE5ecd22b376", @@ -1530,7 +1766,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aTUSD_ADDRESS": { "Mainnet": "0x101cc05f4A51C0319f570d5E146a8C625198e636", @@ -1551,7 +1789,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "CRV_ADDRESS": { "Mainnet": "0xD533a949740bb3306d119CC777fa900bA034cd52", @@ -1572,7 +1812,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aCRV_ADDRESS": { "Mainnet": "0x8dAE6Cb04688C62d939ed9B68d32Bc62e49970b1", @@ -1593,7 +1835,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "GUSD_ADDRESS": { "Mainnet": "0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd", @@ -1614,7 +1858,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aGUSD_ADDRESS": { "Mainnet": "0xD37EE7e4f452C6638c96536e68090De8cBcdb583", @@ -1635,7 +1881,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BAL_ADDRESS": { "Mainnet": "0xba100000625a3754423978a60c9317c58a424e3D", @@ -1656,7 +1904,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aBAL_ADDRESS": { "Mainnet": "0x272F97b7a56a387aE942350bBC7Df5700f8a4576", @@ -1677,7 +1927,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "xSUSHI_ADDRESS": { "Mainnet": "0x8798249c2E607446EfB7Ad49eC89dD1865Ff4272", @@ -1698,7 +1950,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aXSUSHI_ADDRESS": { "Mainnet": "0xF256CC7847E919FAc9B808cC216cAc87CCF2f47a", @@ -1719,7 +1973,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "renFIL_ADDRESS": { "Mainnet": "0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5", @@ -1740,7 +1996,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aRENFIL_ADDRESS": { "Mainnet": "0x514cd6756CCBe28772d4Cb81bC3156BA9d1744aa", @@ -1761,7 +2019,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "RAI_ADDRESS": { "Mainnet": "0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919", @@ -1782,7 +2042,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aRAI_ADDRESS": { "Mainnet": "0xc9BC48c72154ef3e5425641a3c747242112a46AF", @@ -1803,7 +2065,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "USDP_ADDRESS": { "Mainnet": "0x8E870D67F660D95d5be530380D0eC0bd388289E1", @@ -1824,7 +2088,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aUSDP_ADDRESS": { "Mainnet": "0x2e8F4bdbE3d47d7d7DE490437AeA9915D930F1A3", @@ -1845,7 +2111,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "DPI_ADDRESS": { "Mainnet": "0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b", @@ -1866,7 +2134,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aDPI_ADDRESS": { "Mainnet": "0x6F634c6135D2EBD550000ac92F494F9CB8183dAe", @@ -1887,7 +2157,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "FRAX_ADDRESS": { "Mainnet": "0x853d955aCEf822Db058eb8505911ED77F175b99e", @@ -1908,7 +2180,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xFa7191D292d5633f702B0bd7E3E3BcCC0e633200", + "Harmony_Test": "" }, "aFRAX_ADDRESS": { "Mainnet": "0xd4937682df3C8aEF4FE912A96A74121C0829E664", @@ -1929,7 +2203,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "FEI_ADDRESS": { "Mainnet": "0x956F47F50A910163D8BF957Cf5846D573E7f87CA", @@ -1950,7 +2226,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aFEI_ADDRESS": { "Mainnet": "0x683923dB55Fead99A79Fa01A27EeC3cB19679cC3", @@ -1971,7 +2249,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aWBTC_ADDRESS": { "Mainnet": "0x9ff58f4fFB29fA2266Ab25e75e2A8b3503311656", @@ -1992,7 +2272,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x078f358208685046a11C85e8ad32895DED33A249", + "Harmony_Test": "" }, "aYFI_ADDRESS": { "Mainnet": "0x5165d24277cD063F5ac44Efd447B27025e888f37", @@ -2013,7 +2295,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aBUSD_ADDRESS": { "Mainnet": "0xA361718326c15715591c299427c62086F69923D9", @@ -2034,7 +2318,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aDAI_ADDRESS": { "Mainnet": "0x028171bCA77440897B824Ca71D1c56caC55b68A3", @@ -2055,7 +2341,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aMKR_ADDRESS": { "Mainnet": "0xc713e5E149D5D0715DcD1c156a020976e7E56B88", @@ -2076,7 +2364,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aSUSD_ADDRESS": { "Mainnet": "0x6C5024Cd4F8A59110119C56f8933403A539555EB", @@ -2097,7 +2387,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aUSDC_ADDRESS": { "Mainnet": "0xBcca60bB61934080951369a648Fb03DF4F96263C", @@ -2118,7 +2410,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "aAMPL_ADDRESS": { "Mainnet": "0x1E6bb68Acec8fefBD87D192bE09bb274170a0548", @@ -2139,6 +2433,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "0x0000000000000000000000000000000000000000" + "Conflux": "0x0000000000000000000000000000000000000000", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/trader.json b/packages/web3-constants/evm/trader.json index e8cac04eca46..3b20c45fa677 100644 --- a/packages/web3-constants/evm/trader.json +++ b/packages/web3-constants/evm/trader.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V2_FACTORY_ADDRESS": { "Mainnet": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V2_THEGRAPH": { "Mainnet": "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2", @@ -60,7 +64,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V2_INIT_CODE_HASH": { "Mainnet": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", @@ -81,7 +87,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_SWAP_ROUTER_ADDRESS": { "Mainnet": "0xe592427a0aece92de3edee1f18e0157c05861564", @@ -102,7 +110,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V3_FACTORY_ADDRESS": { "Mainnet": "0x1F98431c8aD98523631AE4a59f267346ea31F984", @@ -123,7 +133,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V3_QUOTER_ADDRESS": { "Mainnet": "0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6", @@ -144,7 +156,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V3_THEGRAPH": { "Mainnet": "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3", @@ -165,7 +179,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V3_INIT_CODE_HASH": { "Mainnet": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", @@ -186,7 +202,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SUSHISWAP_ROUTER_ADDRESS": { "Mainnet": "0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F", @@ -207,7 +225,9 @@ "Fantom": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "Aurora": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", + "Harmony_Test": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506" }, "SUSHISWAP_FACTORY_ADDRESS": { "Mainnet": "0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac", @@ -228,7 +248,9 @@ "Fantom": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", + "Harmony_Test": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4" }, "SUSHISWAP_THEGRAPH": { "Mainnet": "https://api.thegraph.com/subgraphs/name/zippoxer/sushiswap-subgraph-fork", @@ -249,7 +271,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SUSHISWAP_INIT_CODE_HASH": { "Mainnet": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", @@ -270,7 +294,9 @@ "Fantom": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", + "Harmony_Test": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303" }, "SASHIMISWAP_ROUTER_ADDRESS": { "Mainnet": "0xe4fe6a45f354e845f954cddee6084603cedb9410", @@ -291,7 +317,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SASHIMISWAP_FACTORY_ADDRESS": { "Mainnet": "0xF028F723ED1D0fE01cC59973C49298AA95c57472", @@ -312,7 +340,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SASHIMISWAP_THEGRAPH": { "Mainnet": "https://api.thegraph.com/subgraphs/name/sashimiproject/sashimi", @@ -333,7 +363,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "SASHIMISWAP_INIT_CODE_HASH": { "Mainnet": "0xb465bbe4edb8c9b0da8ff0b2b36ce0065de9fcd5a33f32c6856ea821779c8b72", @@ -354,7 +386,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "QUICKSWAP_ROUTER_ADDRESS": { "Mainnet": "", @@ -375,7 +409,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "QUICKSWAP_FACTORY_ADDRESS": { "Mainnet": "", @@ -396,7 +432,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "QUICKSWAP_THEGRAPH": { "Mainnet": "", @@ -417,7 +455,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "QUICKSWAP_INIT_CODE_HASH": { "Mainnet": "", @@ -438,7 +478,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANCAKESWAP_ROUTER_ADDRESS": { "Mainnet": "", @@ -459,7 +501,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANCAKESWAP_FACTORY_ADDRESS": { "Mainnet": "", @@ -480,7 +524,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANCAKESWAP_THEGRAPH": { "Mainnet": "", @@ -501,7 +547,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANCAKESWAP_INIT_CODE_HASH": { "Mainnet": "", @@ -522,7 +570,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BALANCER_ETH_ADDRESS": { "Mainnet": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", @@ -543,7 +593,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BALANCER_EXCHANGE_PROXY_ADDRESS": { "Mainnet": "0x3E66B66Fd1d0b02fDa6C811Da9E0547970DB2f21", @@ -564,7 +616,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BALANCER_POOLS_URL": { "Mainnet": "https://ipfs.fleek.co/ipns/balancer-bucket.storage.fleek.co/balancer-exchange/pools", @@ -585,7 +639,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "DODO_ETH_ADDRESS": { "Mainnet": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", @@ -606,7 +662,9 @@ "Fantom": "", "Aurora": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "DODO_EXCHANGE_PROXY_ADDRESS": { "Mainnet": "0xCB859eA579b28e02B87A1FDE08d087ab9dbE5149", @@ -627,7 +685,9 @@ "Fantom": "", "Aurora": "0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BANCOR_ETH_ADDRESS": { "Mainnet": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", @@ -648,7 +708,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "BANCOR_EXCHANGE_PROXY_ADDRESS": { "Mainnet": "0x2F9EC37d6CcFFf1caB21733BdaDEdE11c823cCB0", @@ -669,7 +731,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRADERJOE_ROUTER_ADDRESS": { "Mainnet": "", @@ -690,7 +754,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRADERJOE_FACTORY_ADDRESS": { "Mainnet": "", @@ -711,7 +777,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRADERJOE_THEGRAPH": { "Mainnet": "https://api.thegraph.com/subgraphs/name/traderjoe-xyz/exchange", @@ -732,7 +800,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRADERJOE_INIT_CODE_HASH": { "Mainnet": "", @@ -753,7 +823,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "OPENOCEAN_ETH_ADDRESS": { "Mainnet": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", @@ -774,7 +846,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "OPENOCEAN_EXCHANGE_PROXY_ADDRESS": { "Mainnet": "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", @@ -795,7 +869,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANGOLIN_ROUTER_ADDRESS": { "Mainnet": "", @@ -816,7 +892,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANGOLIN_FACTORY_ADDRESS": { "Mainnet": "", @@ -837,7 +915,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANGOLIN_THEGRAPH": { "Mainnet": "", @@ -858,7 +938,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "PANGOLIN_INIT_CODE_HASH": { "Mainnet": "", @@ -879,7 +961,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "WANNASWAP_ROUTER_V2_ADDRESS": { "Mainnet": "", @@ -900,7 +984,9 @@ "Fantom": "", "Aurora": "0xa3a1eF5Ae6561572023363862e238aFA84C72ef5", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "WANNASWAP_ROUTER_ADDRESS": { "Mainnet": "", @@ -921,7 +1007,9 @@ "Fantom": "", "Aurora": "0x8f1E0Cf0f9f269Bc977C38635E560aa5b0E63323", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "WANNASWAP_FACTORY_ADDRESS": { "Mainnet": "", @@ -942,7 +1030,9 @@ "Fantom": "", "Aurora": "0x7928D4FeA7b2c90C732c10aFF59cf403f0C38246", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "WANNASWAP_THEGRAPH": { "Mainnet": "", @@ -963,7 +1053,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "WANNASWAP_INIT_CODE_HASH": { "Mainnet": "", @@ -984,7 +1076,9 @@ "Fantom": "", "Aurora": "0xa06b8b0642cf6a9298322d0c8ac3c68c291ca24dc66245cf23aa2abc33b57e21", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRISOLARIS_ROUTER_ADDRESS": { "Mainnet": "", @@ -1005,7 +1099,9 @@ "Fantom": "", "Aurora": "0x2CB45Edb4517d5947aFdE3BEAbF95A582506858B", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRISOLARIS_FACTORY_ADDRESS": { "Mainnet": "", @@ -1026,7 +1122,9 @@ "Fantom": "", "Aurora": "0xc66F594268041dB60507F00703b152492fb176E7", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRISOLARIS_THEGRAPH": { "Mainnet": "", @@ -1047,7 +1145,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "TRISOLARIS_INIT_CODE_HASH": { "Mainnet": "", @@ -1068,7 +1168,9 @@ "Fantom": "", "Aurora": "0x754e1d90e536e4c1df81b7f030f47b4ca80c87120e145c294f098c83a6cb5ace", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MDEX_ROUTER_ADDRESS": { "Mainnet": "0x74119c3bca85bEA0538A62319a79b4a372590B47", @@ -1089,7 +1191,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MDEX_FACTORY_ADDRESS": { "Mainnet": "0x7DAe51BD3E3376B8c7c4900E9107f12Be3AF1bA8", @@ -1110,7 +1214,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MDEX_THEGRAPH": { "Mainnet": "", @@ -1131,7 +1237,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "MDEX_INIT_CODE_HASH": { "Mainnet": "0x8ecc069c645df696f2ca5116ab459c5c2889f299e73c1b208aaa3cdd7d110b16", @@ -1152,6 +1260,284 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" + }, + "VENOMSWAP_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0xf012702a5f0e54015362cbca26a26fc90aa832a3", + "Harmony_Test": "0x8e9A3cE409B13ef459fE4448aE97a79d6Ecd8b4b" + }, + "VENOMSWAP_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x7D02c116b98d0965ba7B642ace0183ad8b8D2196", + "Harmony_Test": "0x066bafafC84607a956967F6f050bD14A8347952F" + }, + "VENOMSWAP_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" + }, + "VENOMSWAP_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x162f79e638367cd45a118c778971dfd8d96c625d2798d3b71994b035cfe9b6dc", + "Harmony_Test": "0x162f79e638367cd45a118c778971dfd8d96c625d2798d3b71994b035cfe9b6dc" + }, + "OPENSWAP_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x2F99992024DCC51324BA4956bB1c510F36FA54F5", + "Harmony_Test": "" + }, + "OPENSWAP_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x5d2F9817303b940C9bB4F47C8C566c5C034d9848", + "Harmony_Test": "" + }, + "OPENSWAP_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" + }, + "OPENSWAP_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x613b6eaa34b43dcb7eb8881dd4b5af85805be104d5f2f385304ffa8bda5e219c", + "Harmony_Test": "" + }, + "DEFIKINGDOMS_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x24ad62502d1C652Cc7684081169D04896aC20f30", + "Harmony_Test": "" + }, + "DEFIKINGDOMS_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0x9014B937069918bd319f80e8B3BB4A2cf6FAA5F7", + "Harmony_Test": "" + }, + "DEFIKINGDOMS_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" + }, + "DEFIKINGDOMS_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "", + "Conflux": "", + "Harmony": "0xf1c21a825f13eff153022ddea53156462dd79972b6f88adf06f79ca8b042c3c1", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/trending.json b/packages/web3-constants/evm/trending.json index 4848e30aa5d4..d905555795f4 100644 --- a/packages/web3-constants/evm/trending.json +++ b/packages/web3-constants/evm/trending.json @@ -18,7 +18,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "UNISWAP_V2_HEALTH_URL": { "Mainnet": "https://api.thegraph.com/index-node/graphql", @@ -39,7 +41,9 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" }, "ETHEREUM_BLOCKS_SUBGRAPH_URL": { "Mainnet": "https://api.thegraph.com/subgraphs/name/blocklytics/ethereum-blocks", @@ -60,6 +64,8 @@ "Fantom": "", "Aurora": "", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "", + "Harmony_Test": "" } } diff --git a/packages/web3-constants/evm/zerion.json b/packages/web3-constants/evm/zerion.json index 7ccce157682d..e37ba5227d63 100644 --- a/packages/web3-constants/evm/zerion.json +++ b/packages/web3-constants/evm/zerion.json @@ -18,7 +18,9 @@ "Fantom": "fantom-assets", "Aurora": "aurora-assets", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "harmony-assets", + "Harmony_Test": "" }, "TRANSACTIONS_SCOPE_NAME": { "Mainnet": "transactions", @@ -39,6 +41,8 @@ "Fantom": "fantom-transactions", "Aurora": "aurora-transactions", "Aurora_Testnet": "", - "Conflux": "" + "Conflux": "", + "Harmony": "harmony-transactions", + "Harmony_Test": "" } } diff --git a/packages/web3-contracts/abis/ERC20.json b/packages/web3-contracts/abis/ERC20.json index bdc6d9277899..c302149e23df 100644 --- a/packages/web3-contracts/abis/ERC20.json +++ b/packages/web3-contracts/abis/ERC20.json @@ -218,5 +218,29 @@ ], "name": "Transfer", "type": "event" + }, + { + "name": "increaseAllowance", + "inputs": [ + { + "type": "address", + "name": "spender", + "internalType": "address" + }, + { + "name": "addedValue", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "type": "bool", + "internalType": "bool", + "name": "" + } + ], + "stateMutability": "nonpayable", + "type": "function" } ] diff --git a/packages/web3-contracts/types/AaveLendingPool.d.ts b/packages/web3-contracts/types/AaveLendingPool.d.ts index 927c8b6d8bc9..59ed6ff16814 100644 --- a/packages/web3-contracts/types/AaveLendingPool.d.ts +++ b/packages/web3-contracts/types/AaveLendingPool.d.ts @@ -15,7 +15,7 @@ import { BaseContract, } from './types' -export interface EventOptions { +interface EventOptions { filter?: object fromBlock?: BlockType topics?: string[] diff --git a/packages/web3-contracts/types/AaveLendingPoolAddressProvider.d.ts b/packages/web3-contracts/types/AaveLendingPoolAddressProvider.d.ts index 1b04de4f3b88..08c0538e8c3b 100644 --- a/packages/web3-contracts/types/AaveLendingPoolAddressProvider.d.ts +++ b/packages/web3-contracts/types/AaveLendingPoolAddressProvider.d.ts @@ -15,7 +15,7 @@ import { BaseContract, } from './types' -export interface EventOptions { +interface EventOptions { filter?: object fromBlock?: BlockType topics?: string[] diff --git a/packages/web3-contracts/types/AaveProtocolDataProvider.d.ts b/packages/web3-contracts/types/AaveProtocolDataProvider.d.ts index c55d154bef05..264195b44671 100644 --- a/packages/web3-contracts/types/AaveProtocolDataProvider.d.ts +++ b/packages/web3-contracts/types/AaveProtocolDataProvider.d.ts @@ -15,7 +15,7 @@ import { BaseContract, } from './types' -export interface EventOptions { +interface EventOptions { filter?: object fromBlock?: BlockType topics?: string[] diff --git a/packages/web3-contracts/types/AaveStableDebtToken.d.ts b/packages/web3-contracts/types/AaveStableDebtToken.d.ts index 5b407b64a865..2a9e49e2bf30 100644 --- a/packages/web3-contracts/types/AaveStableDebtToken.d.ts +++ b/packages/web3-contracts/types/AaveStableDebtToken.d.ts @@ -15,7 +15,7 @@ import { BaseContract, } from './types' -export interface EventOptions { +interface EventOptions { filter?: object fromBlock?: BlockType topics?: string[] diff --git a/packages/web3-contracts/types/CryptoPunks.d.ts b/packages/web3-contracts/types/CryptoPunks.d.ts new file mode 100644 index 000000000000..e5a370703574 --- /dev/null +++ b/packages/web3-contracts/types/CryptoPunks.d.ts @@ -0,0 +1,33 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import BN from 'bn.js' +import { ContractOptions } from 'web3-eth-contract' +import { EventLog } from 'web3-core' +import { EventEmitter } from 'events' +import { + Callback, + PayableTransactionObject, + NonPayableTransactionObject, + BlockType, + ContractEventLog, + BaseContract, +} from './types' + +interface EventOptions { + filter?: object + fromBlock?: BlockType + topics?: string[] +} + +export interface CryptoPunks extends BaseContract { + constructor(jsonInterface: any[], address?: string, options?: ContractOptions): CryptoPunks + clone(): CryptoPunks + methods: { + punkIndexToAddress(tokenId: number | string | BN): NonPayableTransactionObject + } + events: { + allEvents(options?: EventOptions, cb?: Callback): EventEmitter + } +} diff --git a/packages/web3-contracts/types/ERC1155.d.ts b/packages/web3-contracts/types/ERC1155.d.ts new file mode 100644 index 000000000000..baebd723ba5f --- /dev/null +++ b/packages/web3-contracts/types/ERC1155.d.ts @@ -0,0 +1,33 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import BN from 'bn.js' +import { ContractOptions } from 'web3-eth-contract' +import { EventLog } from 'web3-core' +import { EventEmitter } from 'events' +import { + Callback, + PayableTransactionObject, + NonPayableTransactionObject, + BlockType, + ContractEventLog, + BaseContract, +} from './types' + +interface EventOptions { + filter?: object + fromBlock?: BlockType + topics?: string[] +} + +export interface ERC1155 extends BaseContract { + constructor(jsonInterface: any[], address?: string, options?: ContractOptions): ERC1155 + clone(): ERC1155 + methods: { + supportsInterface(interfaceId: string | number[]): NonPayableTransactionObject + } + events: { + allEvents(options?: EventOptions, cb?: Callback): EventEmitter + } +} diff --git a/packages/web3-contracts/types/ERC20.d.ts b/packages/web3-contracts/types/ERC20.d.ts index 3583ea982e6f..032ee1b61d71 100644 --- a/packages/web3-contracts/types/ERC20.d.ts +++ b/packages/web3-contracts/types/ERC20.d.ts @@ -59,6 +59,8 @@ export interface ERC20 extends BaseContract { transfer(to: string, value: number | string | BN): NonPayableTransactionObject allowance(_owner: string, _spender: string): NonPayableTransactionObject + + increaseAllowance(spender: string, addedValue: number | string | BN): NonPayableTransactionObject } events: { Approval(cb?: Callback): EventEmitter diff --git a/packages/web3-providers/src/zerion/format.ts b/packages/web3-providers/src/zerion/format.ts index 4bbcde8e1391..0b3cf92e4e25 100644 --- a/packages/web3-providers/src/zerion/format.ts +++ b/packages/web3-providers/src/zerion/format.ts @@ -56,7 +56,7 @@ export function formatAssets( return data.map(({ asset, quantity }) => { const balance = leftShift(quantity, asset.decimals).toNumber() const value = (asset as ZerionAsset).price?.value ?? (asset as ZerionCovalentAsset).value ?? 0 - const isNativeToken = (symbol: string) => ['ETH', 'BNB', 'MATIC', 'ARETH', 'AETH'].includes(symbol) + const isNativeToken = (symbol: string) => ['ETH', 'BNB', 'MATIC', 'ARETH', 'AETH', 'ONE'].includes(symbol) const address = isNativeToken(asset.symbol) ? getTokenConstants().NATIVE_TOKEN_ADDRESS : asset.asset_code const chainId = resolveChainByScope(scope).chainId diff --git a/packages/web3-shared/evm/assets/chains.json b/packages/web3-shared/evm/assets/chains.json index 61108a11ae6b..aad0eb4fb04a 100644 --- a/packages/web3-shared/evm/assets/chains.json +++ b/packages/web3-shared/evm/assets/chains.json @@ -2790,22 +2790,26 @@ "chainId": 1313161556 }, { - "name": "Harmony Mainnet Shard 0", + "name": "Harmony", "chain": "Harmony", "network": "mainnet", - "features": [], - "nativeCurrency": { - "name": "ONE", - "symbol": "ONE", - "decimals": 18 - }, - "infoURL": "https://www.harmony.one/", - "shortName": "hmy-s0", - "chainId": 1666600000 + "features": [""], + "nativeCurrency": { "name": "ONE", "symbol": "ONE", "decimals": 18 }, + "infoURL": "https://explorer.harmony.one", + "shortName": "hmy", + "chainId": 1666600000, + "networkId": 1666600000, + "explorers": [ + { + "name": "harmony", + "url": "https://explorer.harmony.one", + "standard": "EIP3091" + } + ] }, { "name": "Harmony Mainnet Shard 1", - "chain": "Harmony", + "chain": "HarmonyShard1", "network": "mainnet", "features": [], "nativeCurrency": { diff --git a/packages/web3-shared/evm/constants/getContractOwnerDomain.ts b/packages/web3-shared/evm/constants/getContractOwnerDomain.ts index 467014000d2a..ae6757dc5d64 100644 --- a/packages/web3-shared/evm/constants/getContractOwnerDomain.ts +++ b/packages/web3-shared/evm/constants/getContractOwnerDomain.ts @@ -29,6 +29,10 @@ const domainAddressMap: Record = { 'UNISWAP_V3_FACTORY_ADDRESS', 'UNISWAP_V3_QUOTER_ADDRESS', ]), + 'defikingdoms.com': collect(Trader, ['DEFIKINGDOMS_ROUTER_ADDRESS', 'DEFIKINGDOMS_FACTORY_ADDRESS']), + 'app.openswap.one': collect(Trader, ['OPENSWAP_ROUTER_ADDRESS', 'OPENSWAP_FACTORY_ADDRESS']), + 'viper.exchange': collect(Trader, ['VENOMSWAP_ROUTER_ADDRESS', 'VENOMSWAP_FACTORY_ADDRESS']), + 'viperswap.one': collect(Trader, ['VENOMSWAP_ROUTER_ADDRESS', 'VENOMSWAP_FACTORY_ADDRESS']), 'www.sushi.com': collect(Trader, ['SUSHISWAP_ROUTER_ADDRESS', 'SUSHISWAP_FACTORY_ADDRESS']), 'quickswap.exchange': collect(Trader, ['QUICKSWAP_ROUTER_ADDRESS', 'QUICKSWAP_FACTORY_ADDRESS']), 'pancakeswap.finance': collect(Trader, ['PANCAKESWAP_ROUTER_ADDRESS', 'PANCAKESWAP_FACTORY_ADDRESS']), diff --git a/packages/web3-shared/evm/constants/tokens.ts b/packages/web3-shared/evm/constants/tokens.ts index 69b687e60645..cd1b49403548 100644 --- a/packages/web3-shared/evm/constants/tokens.ts +++ b/packages/web3-shared/evm/constants/tokens.ts @@ -45,6 +45,9 @@ export const CUSD = createERC20Tokens('cUSD_ADDRESS', 'Celo Dollar', 'cUSD', 18) export const CEUR = createERC20Tokens('cEUR_ADDRESS', 'Celo Euro', 'cEUR', 18) export const JOE = createERC20Tokens('JOE_ADDRESS', 'JoeToken', 'JOE', 18) export const PNG = createERC20Tokens('PNG_ADDRESS', 'Pangolin', 'PNG', 18) +export const VIPER = createERC20Tokens('VIPER_ADDRESS', 'Viper', 'VIPER', 18) +export const OPENX = createERC20Tokens('OPENX_ADDRESS', 'OpenSwap Token', 'OpenX', 18) +export const JEWEL = createERC20Tokens('JEWEL_ADDRESS', 'Jewels', 'JEWEL', 18) export const WNATIVE = createERC20Tokens( 'WNATIVE_ADDRESS', @@ -72,4 +75,5 @@ export const WNATIVE_ONLY: ERC20AgainstToken = { [ChainId.Fantom]: [WNATIVE[ChainId.Fantom]], [ChainId.Aurora]: [WNATIVE[ChainId.Aurora]], [ChainId.Aurora_Testnet]: [WNATIVE[ChainId.Aurora_Testnet]], + [ChainId.Harmony]: [WNATIVE[ChainId.Harmony]], } diff --git a/packages/web3-shared/evm/pipes/index.ts b/packages/web3-shared/evm/pipes/index.ts index 9e247a3caf95..4cca8dccde1c 100644 --- a/packages/web3-shared/evm/pipes/index.ts +++ b/packages/web3-shared/evm/pipes/index.ts @@ -97,6 +97,11 @@ export const resolveNetworkAddressPrefix = createLookupTableResolver [NetworkType.Fantom]: 'Fantom', [NetworkType.Aurora]: 'Aurora', [NetworkType.Conflux]: 'Conflux', + [NetworkType.Harmony]: 'Harmony', + [NetworkType.Boba]: 'Boba', + [NetworkType.Fuse]: 'Fuse', + [NetworkType.Metis]: 'Metis', + [NetworkType.Optimistic]: 'Optimistic', }, 'Unknown', ) @@ -147,7 +157,13 @@ export const resolveChainColor = createLookupTableResolver( [ChainId.Fantom]: 'rgb(19, 181, 236)', [ChainId.Aurora]: 'rgb(112, 212, 74)', [ChainId.Conflux]: 'rgb(24, 163, 138)', + [ChainId.Harmony]: 'rgb(48, 153, 242)', + [ChainId.Harmony_Test]: 'rgb(48, 153, 242)', [ChainId.Aurora_Testnet]: 'rgb(112, 212, 74)', + [ChainId.Fuse]: 'rgb(255 255 255)', + [ChainId.Boba]: 'rgb(255 255 255)', + [ChainId.Metis]: 'rgb(255 255 255)', + [ChainId.Optimistic]: 'rgb(255 255 255)', }, 'rgb(214, 217, 220)', ) diff --git a/packages/web3-shared/evm/types/index.ts b/packages/web3-shared/evm/types/index.ts index 5a061e31366c..fc07b546a044 100644 --- a/packages/web3-shared/evm/types/index.ts +++ b/packages/web3-shared/evm/types/index.ts @@ -71,6 +71,10 @@ export enum ChainId { // Optimistic Optimistic = 10, + // Harmony + Harmony = 1666600000, + Harmony_Test = 1666700000, + // Conflux Conflux = 1030, } @@ -659,6 +663,7 @@ export enum NetworkType { Fuse = 'Fuse', Metis = 'Metis', Optimistic = 'Optimistic', + Harmony = 'Harmony', Conflux = 'Conflux', } diff --git a/packages/web3-shared/evm/utils/chainDetailed.ts b/packages/web3-shared/evm/utils/chainDetailed.ts index d125c92667bb..610a58b3d9f1 100644 --- a/packages/web3-shared/evm/utils/chainDetailed.ts +++ b/packages/web3-shared/evm/utils/chainDetailed.ts @@ -96,6 +96,11 @@ export const getChainIdFromNetworkType = createLookupTableResolver = { [NetworkType.Fuse]: 'Fuse', [NetworkType.Metis]: 'Metis', [NetworkType.Optimistic]: 'Optimistic', + [NetworkType.Harmony]: 'Harmony', [NetworkType.Conflux]: 'Conflux', } export function getNetworkTypeFromChainId(chainId: ChainId, value?: boolean) { diff --git a/packages/web3-shared/evm/utils/enum.ts b/packages/web3-shared/evm/utils/enum.ts index 3a0344027c3f..10a77a548bae 100644 --- a/packages/web3-shared/evm/utils/enum.ts +++ b/packages/web3-shared/evm/utils/enum.ts @@ -1,7 +1,4 @@ -export function createLookupTableResolver( - map: Partial>, - fallback: T | ((key: K) => T), -) { +export function createLookupTableResolver(map: Record, fallback: T | ((key: K) => T)) { function resolveFallback(key: K) { if (typeof fallback === 'function') return (fallback as (key: K) => T)(key) return fallback diff --git a/packages/web3-shared/evm/utils/formatter.ts b/packages/web3-shared/evm/utils/formatter.ts index 1c907af9d583..74be97189f87 100644 --- a/packages/web3-shared/evm/utils/formatter.ts +++ b/packages/web3-shared/evm/utils/formatter.ts @@ -98,3 +98,8 @@ export function formatGweiToWei(value: BigNumber.Value) { export function formatGweiToEther(value: BigNumber.Value) { return new BigNumber(value).shiftedBy(-9) } + +export function formatUSD(value: BigNumber.Value, significant = 2): string { + const bn = new BigNumber(value) + return bn.lt(0.01) ? '<$0.01' : bn.toFixed(significant) +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 06b2bca0b4bb..da17ef3ef9df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26873,6 +26873,14 @@ packages: optional: true dev: false + /use-subscription/1.6.0_react@packages+empty: + resolution: {integrity: sha512-0Y/cTLlZfw547tJhJMoRA16OUbVqRm6DmvGpiGbmLST6BIA5KU5cKlvlz8DVMrACnWpyEjCkgmhLatthP4jUbA==} + peerDependencies: + react: ^18.0.0 + dependencies: + react: link:packages/empty + dev: false + /use/3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'}