diff --git a/cspell.json b/cspell.json index 9dc41c29c4a6..f3a5d389c622 100644 --- a/cspell.json +++ b/cspell.json @@ -25,6 +25,7 @@ "arbitrum", "ARETH", "arweave", + "avalanche", "avax", "betanet", "bgcolor", @@ -170,6 +171,8 @@ "Pageable", "pagelet", "pancakeswap", + "pangolin", + "pangolindex", "pathnames", "perma", "pid", @@ -229,6 +232,7 @@ "timelocked", "Tokelau", "tokenid", + "traderjoe", "Transak", "Trisolaris", "twimg", @@ -250,6 +254,7 @@ "walletconnect", "WANNASWAP", "wault", + "WAVAX", "webextension", "webm", "withdrawed", @@ -312,6 +317,7 @@ "inpage", "irss", "isfacebook", + "jkoeaghipilijlahjplgbfiocjhldnap", "jsxs", "koda", "Kodav", diff --git a/docs/evm-integration.md b/docs/evm-integration.md index fc3315016859..5e57cb79c08c 100644 --- a/docs/evm-integration.md +++ b/docs/evm-integration.md @@ -28,7 +28,7 @@ Mask Network fetches on-chain data from various data sources. Therefore, you can #### Learn more -- https://api.coingecko.com/api/v3/asset_platforms +- ### Token List @@ -44,10 +44,10 @@ Mask Network has integrated Uniswap V2 and Uniswap V3 into the trader plugin. If For API-based DEX, please ref to how other DEXes integrated: -| DEX | Pull Request Link | -| --------- | -------------------------------------------------- | -| DODO | https://github.com/DimensionDev/Maskbook/pull/3882 | -| OpenOcean | https://github.com/DimensionDev/Maskbook/pull/5198 | +| DEX | Pull Request Link | +| --------- | ---------------------------------------------------- | +| DODO | | +| OpenOcean | | ### Deploy Contracts @@ -93,9 +93,10 @@ Goto `chrome-extension://jkoeaghipilijlahjplgbfiocjhldnap/dashboard.html#/wallet ## Learn More -| Chain | Pull Request Link | -| -------- | -------------------------------------------------- | -| CELO | https://github.com/DimensionDev/Maskbook/pull/5052 | -| Fantom | https://github.com/DimensionDev/Maskbook/pull/5036 | -| xDai | https://github.com/DimensionDev/Maskbook/pull/4140 | -| Arbitrum | https://github.com/DimensionDev/Maskbook/pull/3558 | +| Chain | Pull Request Link | +| --------- | ---------------------------------------------------- | +| CELO | | +| Fantom | | +| xDai | | +| Arbitrum | | +| Avalanche | | diff --git a/packages/dashboard/src/pages/Labs/components/SwapSettingDialog.tsx b/packages/dashboard/src/pages/Labs/components/SwapSettingDialog.tsx index bf52e726d24f..219efa91b95d 100644 --- a/packages/dashboard/src/pages/Labs/components/SwapSettingDialog.tsx +++ b/packages/dashboard/src/pages/Labs/components/SwapSettingDialog.tsx @@ -8,6 +8,7 @@ import { useEthereumNetworkTradeProvider, usePolygonNetworkTradeProvider, useArbitrumNetworkTradeProvider, + useAvalancheNetworkTradeProvider, useXDaiNetworkTradeProvider, useCeloNetworkTradeProvider, useFantomNetworkTradeProvider, @@ -62,6 +63,13 @@ export default function SwapSettingDialog({ open, onClose }: SettingDialogProps) const celoOptions = [{ label: 'SushiSwap', value: TradeProvider.SUSHISWAP }] + const avalancheOptions = [ + { label: 'SushiSwap', value: TradeProvider.SUSHISWAP }, + { label: 'TraderJoe', value: TradeProvider.TRADERJOE }, + { label: 'OpenOcean', value: TradeProvider.OPENOCEAN }, + { label: 'PangolinDex', value: TradeProvider.PANGOLIN }, + ] + const auroraOptions = [ { label: 'DODO', value: TradeProvider.DODO }, { label: 'WannaSwap', value: TradeProvider.WANNASWAP }, @@ -113,6 +121,12 @@ export default function SwapSettingDialog({ open, onClose }: SettingDialogProps) options: fantomOptions, onChange: (value: string) => Services.Settings.setFantomNetworkTradeProvider(Number.parseInt(value, 10)), }, + { + legend: t.labs_settings_swap_network({ network: 'Avalanche' }), + value: useAvalancheNetworkTradeProvider(), + options: avalancheOptions, + onChange: (value: string) => Services.Settings.setAvalancheNetworkTradeProvider(Number.parseInt(value, 10)), + }, { legend: t.labs_settings_swap_network({ network: 'Aurora' }), value: useAuroraNetworkTradeProvider(), diff --git a/packages/dashboard/src/pages/Settings/api.ts b/packages/dashboard/src/pages/Settings/api.ts index 61f45b6c00ca..dc2c5e369de2 100644 --- a/packages/dashboard/src/pages/Settings/api.ts +++ b/packages/dashboard/src/pages/Settings/api.ts @@ -43,6 +43,11 @@ export const [useCeloNetworkTradeProvider] = createGlobalState( Messages.events.celoNetworkTradeProviderSettings.on, ) +export const [useAvalancheNetworkTradeProvider] = createGlobalState( + Services.Settings.getAvalancheNetworkTradeProvider, + Messages.events.avalancheNetworkTradeProviderSettings.on, +) + export const [useAuroraNetworkTradeProvider] = createGlobalState( Services.Settings.getAuroraNetworkTradeProvider, Messages.events.auroraNetworkTradeProviderSettings.on, diff --git a/packages/mask/shared/flags.ts b/packages/mask/shared/flags.ts index 8e589c33f4f9..7092e6a0845e 100644 --- a/packages/mask/shared/flags.ts +++ b/packages/mask/shared/flags.ts @@ -51,6 +51,7 @@ export const Flags = { polygon_enabled: true, arbitrum_enabled: true, xdai_enabled: true, + avalanche_enabled: true, fantom_enabled: true, flow_enabled: true, celo_enabled: true, diff --git a/packages/mask/src/components/shared/ApplicationBoard.tsx b/packages/mask/src/components/shared/ApplicationBoard.tsx index d0797a53a301..c3aa2870db30 100644 --- a/packages/mask/src/components/shared/ApplicationBoard.tsx +++ b/packages/mask/src/components/shared/ApplicationBoard.tsx @@ -93,6 +93,7 @@ const SUPPORTED_CHAIN_ID_LIST = [ ChainId.Celo, ChainId.Fantom, ChainId.Aurora, + ChainId.Avalanche, ] export interface MaskAppEntry { diff --git a/packages/mask/src/extension/background-script/SettingsService.ts b/packages/mask/src/extension/background-script/SettingsService.ts index 738b7466d796..b30d4c8d6e0d 100644 --- a/packages/mask/src/extension/background-script/SettingsService.ts +++ b/packages/mask/src/extension/background-script/SettingsService.ts @@ -15,6 +15,7 @@ import { polygonNetworkTradeProviderSettings, arbitrumNetworkTradeProviderSettings, xdaiNetworkTradeProviderSettings, + avalancheNetworkTradeProviderSettings, celoNetworkTradeProviderSettings, fantomNetworkTradeProviderSettings, auroraNetworkTradeProviderSettings, @@ -76,6 +77,9 @@ export const [getArbitrumNetworkTradeProvider, setArbitrumNetworkTradeProvider] ) export const [getxDaiNetworkTradeProvider, setxDaiNetworkTradeProvider] = create(xdaiNetworkTradeProviderSettings) +export const [getAvalancheNetworkTradeProvider, setAvalancheNetworkTradeProvider] = create( + avalancheNetworkTradeProviderSettings, +) export const [getCeloNetworkTradeProvider, setCeloNetworkTradeProvider] = create(celoNetworkTradeProviderSettings) export const [getFantomNetworkTradeProvider, setFantomNetworkTradeProvider] = create(fantomNetworkTradeProviderSettings) diff --git a/packages/mask/src/plugins/EVM/assets/avalanche.png b/packages/mask/src/plugins/EVM/assets/avalanche.png new file mode 100644 index 000000000000..a7d618493c59 Binary files /dev/null and b/packages/mask/src/plugins/EVM/assets/avalanche.png differ diff --git a/packages/mask/src/plugins/EVM/constants.ts b/packages/mask/src/plugins/EVM/constants.ts index 3793c07fda14..3dc1d3f59335 100644 --- a/packages/mask/src/plugins/EVM/constants.ts +++ b/packages/mask/src/plugins/EVM/constants.ts @@ -147,6 +147,16 @@ export const PLUGIN_NETWORKS: Web3Plugin.NetworkDescriptor[] = [ iconColor: 'rgb(73, 169, 166)', isMainnet: true, }, + { + ID: `${PLUGIN_ID}_avalanche`, + networkSupporterPluginID: PLUGIN_ID, + chainId: ChainId.Avalanche, + type: NetworkType.Avalanche, + name: 'Avalanche', + icon: new URL('./assets/avalanche.png', import.meta.url), + iconColor: 'rgb(232, 65, 66)', + isMainnet: true, + }, { ID: `${PLUGIN_ID}_aurora`, networkSupporterPluginID: PLUGIN_ID, diff --git a/packages/mask/src/plugins/ITO/base.ts b/packages/mask/src/plugins/ITO/base.ts index 4d293d2fa4eb..cb4f1e3c1cd4 100644 --- a/packages/mask/src/plugins/ITO/base.ts +++ b/packages/mask/src/plugins/ITO/base.ts @@ -23,6 +23,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Mumbai, ChainId.Arbitrum, ChainId.xDai, + ChainId.Avalanche, ], }, }, diff --git a/packages/mask/src/plugins/RedPacket/base.ts b/packages/mask/src/plugins/RedPacket/base.ts index 8770ebd8f402..c94f5bf19f57 100644 --- a/packages/mask/src/plugins/RedPacket/base.ts +++ b/packages/mask/src/plugins/RedPacket/base.ts @@ -24,6 +24,7 @@ export const base: Plugin.Shared.Definition = { ChainId.Arbitrum, ChainId.xDai, ChainId.Fantom, + ChainId.Avalanche, ], }, }, diff --git a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeProviderIcon.tsx b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeProviderIcon.tsx index 3d979f176744..517038b2ea52 100644 --- a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeProviderIcon.tsx +++ b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeProviderIcon.tsx @@ -9,11 +9,13 @@ import { UniswapIcon } from '../../../../resources/UniswapIcon' import { ZRXIcon } from '../../../../resources/ZRXIcon' import { DODOIcon } from '../../../../resources/DODOIcon' import { OpenOceanIcon } from '../../../../resources/OpenOceanIcon' +import { PangolinIcon } from '../../../../resources/PangolinIcon' import { TrisolarisIcon } from '../../../../resources/TrisolarisIcon' import { resolveTradeProviderName } from '../../pipes' const quickswapIcon = new URL('../../../../resources/quickswap.png', import.meta.url).toString() const pancakeswapIcon = new URL('../../../../resources/pancakeswap.png', import.meta.url).toString() +const traderjoeIcon = new URL('../../../../resources/traderjoe.png', import.meta.url).toString() const wannaswapIcon = new URL('../../../../resources/wannaswap.png', import.meta.url).toString() const useStyles = makeStyles()((theme) => ({ @@ -70,8 +72,18 @@ export function TradeProviderIcon(props: TradeProviderIconProps) { return case TradeProvider.BANCOR: return + case TradeProvider.TRADERJOE: + return ( + {resolveTradeProviderName(TradeProvider.TRADERJOE)} + ) case TradeProvider.OPENOCEAN: return + case TradeProvider.PANGOLIN: + return case TradeProvider.TRISOLARIS: return default: diff --git a/packages/mask/src/plugins/Trader/SNSAdaptor/trending/TraderView.tsx b/packages/mask/src/plugins/Trader/SNSAdaptor/trending/TraderView.tsx index e7902138cf53..835997f89847 100644 --- a/packages/mask/src/plugins/Trader/SNSAdaptor/trending/TraderView.tsx +++ b/packages/mask/src/plugins/Trader/SNSAdaptor/trending/TraderView.tsx @@ -204,11 +204,8 @@ export function TraderView(props: TraderViewProps) { // #endregion // #region if the coin is a native token or contract address exists - - const isSwappable = - (!!trending?.coin.contract_address || ['eth', 'matic', 'bnb'].includes(coinSymbol)) && - chainIdValid && - tradeProviders.length + const isNativeToken = ['eth', 'matic', 'bnb', 'avax'].includes(coinSymbol) + const isSwappable = (!!trending?.coin.contract_address || isNativeToken) && chainIdValid && tradeProviders.length // #endregion // #region display loading skeleton diff --git a/packages/mask/src/plugins/Trader/apis/trader/index.ts b/packages/mask/src/plugins/Trader/apis/trader/index.ts index 06d5ec04ff5d..f86fd03af408 100644 --- a/packages/mask/src/plugins/Trader/apis/trader/index.ts +++ b/packages/mask/src/plugins/Trader/apis/trader/index.ts @@ -38,6 +38,10 @@ export async function getAvailableTraderProviders(chainId: ChainId) { ] case NetworkType.Arbitrum: return [TradeProvider.UNISWAP_V3, TradeProvider.OPENOCEAN, TradeProvider.DODO] + case NetworkType.xDai: + return [TradeProvider.SUSHISWAP] + case NetworkType.Avalanche: + return [TradeProvider.SUSHISWAP, TradeProvider.OPENOCEAN, TradeProvider.TRADERJOE, TradeProvider.PANGOLIN] case NetworkType.xDai: return [TradeProvider.SUSHISWAP, TradeProvider.OPENOCEAN] case NetworkType.Celo: @@ -49,7 +53,6 @@ export async function getAvailableTraderProviders(chainId: ChainId) { case NetworkType.Boba: case NetworkType.Fuse: case NetworkType.Metis: - case NetworkType.Avalanche: case NetworkType.Optimistic: console.error('To be implement network: ', networkType) return [] diff --git a/packages/mask/src/plugins/Trader/apis/trending/index.ts b/packages/mask/src/plugins/Trader/apis/trending/index.ts index 91bb038c4761..70a8db6d683c 100644 --- a/packages/mask/src/plugins/Trader/apis/trending/index.ts +++ b/packages/mask/src/plugins/Trader/apis/trending/index.ts @@ -339,7 +339,7 @@ async function getCoinTrending(id: string, currency: Currency, dataProvider: Dat decimals: Number(token?.decimals || '0'), is_mirrored: isMirroredKeyword(token?.symbol || ''), blockchain_urls: [`https://info.uniswap.org/token/${id}`, `https://etherscan.io/address/${id}`], - image_url: `https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/${id}/logo.png`, + image_url: `https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum/assets/${id}/logo.png`, platform_url: `https://info.uniswap.org/token/${id}`, contract_address: id, }, diff --git a/packages/mask/src/plugins/Trader/apis/uniswap/index.ts b/packages/mask/src/plugins/Trader/apis/uniswap/index.ts index 4a888ce607fe..ea5dcce00b7a 100644 --- a/packages/mask/src/plugins/Trader/apis/uniswap/index.ts +++ b/packages/mask/src/plugins/Trader/apis/uniswap/index.ts @@ -286,7 +286,7 @@ export async function getCoinInfo(id: string) { .map(([pairAddress, pairData]) => { return { logo_url: - 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984/logo.png', + 'https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum/assets/0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984/logo.png', trade_url: `https://info.uniswap.org/pair/${pairAddress}`, market_name: 'Uniswap (V2)', base_name: pairData.token0.symbol, diff --git a/packages/mask/src/plugins/Trader/constants/0x.ts b/packages/mask/src/plugins/Trader/constants/0x.ts index 60a4a15a19d3..06be52d5c29f 100644 --- a/packages/mask/src/plugins/Trader/constants/0x.ts +++ b/packages/mask/src/plugins/Trader/constants/0x.ts @@ -6,13 +6,13 @@ export const ZRX_BASE_URL: Record = { [NetworkType.Polygon]: 'https://polygon.api.0x.org/', [NetworkType.Arbitrum]: 'https://arbitrum.api.0x.org/', [NetworkType.xDai]: 'https://xdai.api.0x.org/', + [NetworkType.Avalanche]: 'https://avalanche.api.0x.org/', [NetworkType.Celo]: 'https://celo.api.0x.org/', [NetworkType.Fantom]: 'https://fantom.api.0x.org/', [NetworkType.Aurora]: 'https://aurora.api.0x.org/', [NetworkType.Boba]: '', [NetworkType.Fuse]: '', [NetworkType.Metis]: '', - [NetworkType.Avalanche]: '', [NetworkType.Optimistic]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/dodo.ts b/packages/mask/src/plugins/Trader/constants/dodo.ts index cec5fbb10083..7996fe13525e 100644 --- a/packages/mask/src/plugins/Trader/constants/dodo.ts +++ b/packages/mask/src/plugins/Trader/constants/dodo.ts @@ -8,12 +8,12 @@ export const networkNames: Record = { [NetworkType.Polygon]: 'matic', [NetworkType.Arbitrum]: 'arbitrum', [NetworkType.xDai]: 'xdai', + [NetworkType.Avalanche]: 'avalanche', [NetworkType.Celo]: 'celo', [NetworkType.Fantom]: 'fantom', [NetworkType.Aurora]: 'aurora', [NetworkType.Boba]: '', [NetworkType.Fuse]: '', [NetworkType.Metis]: '', - [NetworkType.Avalanche]: '', [NetworkType.Optimistic]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/index.ts b/packages/mask/src/plugins/Trader/constants/index.ts index 89995aab8751..7cde5749d988 100644 --- a/packages/mask/src/plugins/Trader/constants/index.ts +++ b/packages/mask/src/plugins/Trader/constants/index.ts @@ -9,6 +9,8 @@ export * from './quickswap' export * from './pancakeswap' export * from './dodo' export * from './bancor' +export * from './traderjoe' +export * from './pangolindex' export * from './wannaswap' export * from './trisolaris' 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 8b5e2313b027..862e158999b1 100644 --- a/packages/mask/src/plugins/Trader/constants/openocean.ts +++ b/packages/mask/src/plugins/Trader/constants/openocean.ts @@ -10,10 +10,10 @@ export const networkNames: Record = { [NetworkType.xDai]: 'xdai', [NetworkType.Celo]: 'celo', [NetworkType.Fantom]: 'fantom', + [NetworkType.Avalanche]: 'avalanche', [NetworkType.Aurora]: 'aurora', [NetworkType.Boba]: '', [NetworkType.Fuse]: '', [NetworkType.Metis]: '', - [NetworkType.Avalanche]: '', [NetworkType.Optimistic]: '', } diff --git a/packages/mask/src/plugins/Trader/constants/pangolindex.ts b/packages/mask/src/plugins/Trader/constants/pangolindex.ts new file mode 100644 index 000000000000..009fd8235f6f --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/pangolindex.ts @@ -0,0 +1,14 @@ +import { ChainId } from '@masknet/web3-shared-evm' +import { DAIe, ETHER, PNG, USDCe, USDTe, WBTCe, WNATIVE, WNATIVE_ONLY } from './trader' +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 PANGOLIN_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const PANGOLIN_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Avalanche]: [WNATIVE, DAIe, PNG, USDTe, USDCe, ETHER, WBTCe].map((x) => x[ChainId.Avalanche]), +} diff --git a/packages/mask/src/plugins/Trader/constants/sushiswap.ts b/packages/mask/src/plugins/Trader/constants/sushiswap.ts index ae6db9169262..1c77a8e30c71 100644 --- a/packages/mask/src/plugins/Trader/constants/sushiswap.ts +++ b/packages/mask/src/plugins/Trader/constants/sushiswap.ts @@ -35,4 +35,5 @@ export const SUSHISWAP_BASE_AGAINST_TOKENS: ERC20AgainstToken = { [ChainId.xDai]: [WNATIVE, USDC, USDT, WBTC].map((x) => x[ChainId.xDai]), [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]), } diff --git a/packages/mask/src/plugins/Trader/constants/trader.ts b/packages/mask/src/plugins/Trader/constants/trader.ts index e9cfe78fe1e6..6f8cdc2d5594 100644 --- a/packages/mask/src/plugins/Trader/constants/trader.ts +++ b/packages/mask/src/plugins/Trader/constants/trader.ts @@ -4,7 +4,9 @@ import BigNumber from 'bignumber.js' import type { ERC20AgainstToken } from './types' export const USDC = createERC20Tokens('USDC_ADDRESS', 'USD Coin', 'USDC', 6) +export const USDCe = createERC20Tokens('USDC_ADDRESS', 'USD Coin', 'USDCe', 6) export const USDT = createERC20Tokens('USDT_ADDRESS', 'Tether USD', 'USDT', 6) +export const USDTe = createERC20Tokens('USDT_ADDRESS', 'Tether USD', 'USDT.e', 6) export const fUSDT = createERC20Tokens('fUSDT_ADDRESS', 'Frapped USDT', 'fUSDT', 6) export const HUSD = createERC20Tokens('HUSD_ADDRESS', 'Huobi USD', 'HUSD', 6) export const BUSD = createERC20Tokens('BUSD_ADDRESS', 'Huobi USD', 'BUSD', 6) @@ -16,6 +18,7 @@ export const MSKC = createERC20Tokens('MSKC_ADDRESS', 'Mask C', 'MSKC', 18) export const MSKD = createERC20Tokens('MSKD_ADDRESS', 'Mask D', 'MSKD', 18) export const MSKE = createERC20Tokens('MSKE_ADDRESS', 'Mask E', 'MSKE', 18) export const DAI = createERC20Tokens('DAI_ADDRESS', 'Dai Stablecoin', 'DAI', 18) +export const DAIe = createERC20Tokens('DAI_ADDRESS', 'Dai Stablecoin', 'DAI.e', 18) export const AMPL = createERC20Tokens('AMPL_ADDRESS', 'Ampleforth', 'AMPL', 18) export const OKB = createERC20Tokens('OKB_ADDRESS', 'Ampleforth', 'OKB', 18) export const UST = createERC20Tokens('UST_ADDRESS', 'Wrapped UST Token', 'UST', 18) @@ -31,6 +34,7 @@ export const ETHER = createERC20Tokens('ETHER_ADDRESS', 'Ether', 'ETH', 18) export const QUICK = createERC20Tokens('QUICK_ADDRESS', 'Quickswap', 'QUICK', 18) export const WANNA = createERC20Tokens('WANNA_ADDRESS', 'Wannaswap', 'WANNA', 18) export const WBTC = createERC20Tokens('WBTC_ADDRESS', 'Wrapped Bitcoin', 'WBTC', 18) +export const WBTCe = createERC20Tokens('WBTC_ADDRESS', 'Wrapped Bitcoin', 'WBTCe', 18) export const IGG = createERC20Tokens('IGG_ADDRESS', 'IG Gold', 'IGG', 18) export const OM = createERC20Tokens('OM_ADDRESS', 'OM Token', 'OM', 18) export const SUSHI = createERC20Tokens('SUSHI_ADDRESS', 'SushiToken', 'SUSHI', 18) @@ -44,6 +48,8 @@ export const NFTX = createERC20Tokens('NFTX_ADDRESS', 'NFTX', 'NFTX', 18) export const STETH = createERC20Tokens('stETH_ADDRESS', 'stakedETH', 'stETH', 18) 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 WNATIVE = createERC20Tokens( 'WNATIVE_ADDRESS', @@ -65,6 +71,8 @@ export const WNATIVE_ONLY: ERC20AgainstToken = { [ChainId.Arbitrum]: [WNATIVE[ChainId.Arbitrum]], [ChainId.Arbitrum_Rinkeby]: [WNATIVE[ChainId.Arbitrum_Rinkeby]], [ChainId.xDai]: [WNATIVE[ChainId.xDai]], + [ChainId.Avalanche]: [WNATIVE[ChainId.Avalanche]], + [ChainId.Avalanche_Fuji]: [WNATIVE[ChainId.Avalanche_Fuji]], [ChainId.Celo]: [WNATIVE[ChainId.Celo]], [ChainId.Fantom]: [WNATIVE[ChainId.Fantom]], [ChainId.Aurora]: [WNATIVE[ChainId.Aurora]], diff --git a/packages/mask/src/plugins/Trader/constants/traderjoe.ts b/packages/mask/src/plugins/Trader/constants/traderjoe.ts new file mode 100644 index 000000000000..65e45a755bca --- /dev/null +++ b/packages/mask/src/plugins/Trader/constants/traderjoe.ts @@ -0,0 +1,14 @@ +import { ChainId } from '@masknet/web3-shared-evm' +import { DAIe, USDCe, USDTe, WBTCe, WNATIVE, WNATIVE_ONLY } from './trader' +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 TRADERJOE_CUSTOM_BASES: ERC20TokenCustomizedBase = {} + +export const TRADERJOE_BASE_AGAINST_TOKENS: ERC20AgainstToken = { + ...WNATIVE_ONLY, + [ChainId.Avalanche]: [WNATIVE, DAIe, USDTe, USDCe, WBTCe].map((x) => x[ChainId.Avalanche]), +} diff --git a/packages/mask/src/plugins/Trader/pipes.ts b/packages/mask/src/plugins/Trader/pipes.ts index b80d631eb395..ea9434a4858a 100644 --- a/packages/mask/src/plugins/Trader/pipes.ts +++ b/packages/mask/src/plugins/Trader/pipes.ts @@ -57,6 +57,8 @@ export const resolveTradeProviderName = createLookupTableResolver { if (currentDataProviderSettings.value === DataProvider.UNISWAP_INFO) currentDataProviderSettings.value = DataProvider.COIN_MARKET_CAP break + case NetworkType.Avalanche: + currentTradeProviderSettings.value = TradeProvider.SUSHISWAP + if (currentDataProviderSettings.value === DataProvider.UNISWAP_INFO) + currentDataProviderSettings.value = DataProvider.COIN_GECKO + break case NetworkType.Celo: currentTradeProviderSettings.value = TradeProvider.SUSHISWAP if (currentDataProviderSettings.value === DataProvider.UNISWAP_INFO) @@ -90,6 +96,9 @@ currentTradeProviderSettings.addListener((tradeProvider: TradeProvider) => { case NetworkType.xDai: xdaiNetworkTradeProviderSettings.value = tradeProvider break + case NetworkType.Avalanche: + avalancheNetworkTradeProviderSettings.value = tradeProvider + break case NetworkType.Celo: celoNetworkTradeProviderSettings.value = tradeProvider break @@ -102,7 +111,6 @@ currentTradeProviderSettings.addListener((tradeProvider: TradeProvider) => { case NetworkType.Boba: case NetworkType.Fuse: case NetworkType.Metis: - case NetworkType.Avalanche: case NetworkType.Optimistic: throw new Error(`To be implement network: ${networkType}`) default: diff --git a/packages/mask/src/plugins/Trader/settings.ts b/packages/mask/src/plugins/Trader/settings.ts index 36da1d506ab8..1f75fc3d1ce5 100644 --- a/packages/mask/src/plugins/Trader/settings.ts +++ b/packages/mask/src/plugins/Trader/settings.ts @@ -88,6 +88,12 @@ export const celoNetworkTradeProviderSettings = createGlobalSettings '' }, ) +export const avalancheNetworkTradeProviderSettings = createGlobalSettings( + `${PLUGIN_ID}+avalanche+tradeProvider`, + TradeProvider.SUSHISWAP, + { primary: () => '' }, +) + export const auroraNetworkTradeProviderSettings = createGlobalSettings( `${PLUGIN_ID}+aurora+tradeProvider`, TradeProvider.DODO, @@ -109,6 +115,8 @@ const pancakeswapSettings = createInternalSettings(`${PLUGIN_ID}+tradePr const balancerSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+balancer`, '') const dodoSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+dodo`, '') const bancorSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+bancor`, '') +const traderjoeSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+traderjoe`, '') +const pangolinSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+pangolin`, '') const openoceanSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+openocean`, '') const trisolarisSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+trisolaris`, '') const wannaswapSettings = createInternalSettings(`${PLUGIN_ID}+tradeProvider+wannaswap`, '') @@ -138,8 +146,12 @@ export function getCurrentTradeProviderGeneralSettings(tradeProvider: TradeProvi return dodoSettings case TradeProvider.BANCOR: return bancorSettings + case TradeProvider.TRADERJOE: + return traderjoeSettings case TradeProvider.OPENOCEAN: return openoceanSettings + case TradeProvider.PANGOLIN: + return pangolinSettings case TradeProvider.TRISOLARIS: return trisolarisSettings case TradeProvider.WANNASWAP: diff --git a/packages/mask/src/plugins/Trader/trader/uniswap/useTradeParameters.ts b/packages/mask/src/plugins/Trader/trader/uniswap/useTradeParameters.ts index 74fbf4abe697..e7719fc2518b 100644 --- a/packages/mask/src/plugins/Trader/trader/uniswap/useTradeParameters.ts +++ b/packages/mask/src/plugins/Trader/trader/uniswap/useTradeParameters.ts @@ -9,12 +9,41 @@ import { SwapRouter } from '@uniswap/v3-sdk' import { useRouterV2Contract } from '../../contracts/uniswap/useRouterV2Contract' import { useSwapRouterContract } from '../../contracts/uniswap/useSwapRouterContract' import { useTransactionDeadline } from './useTransactionDeadline' -import type { TradeProvider } from '@masknet/public-api' import { useGetTradeContext } from '../useGetTradeContext' import { TargetChainIdContext } from '../useTargetChainIdContext' +import { TradeProvider } from '@masknet/public-api' const UNISWAP_BIPS_BASE = JSBI.BigInt(10_000) +// Pangolin and TraderJoe have modified uniswap contracts +type SwapParams = Parameters +const swapCallParameters = (trade: SwapParams[0], options: SwapParams[1], tradeProvider?: TradeProvider) => { + const parameters = Router.swapCallParameters(trade, options) + if (tradeProvider === TradeProvider.PANGOLIN || tradeProvider === TradeProvider.TRADERJOE) { + switch (parameters.methodName) { + case 'WETH': + parameters.methodName = 'WAVAX' + break + case 'swapTokensForExactETH': + parameters.methodName = 'swapTokensForExactAVAX' + break + case 'swapExactTokensForETHSupportingFeeOnTransferTokens': + parameters.methodName = 'swapExactTokensForAVAXSupportingFeeOnTransferTokens' + break + case 'swapExactTokensForETH': + parameters.methodName = 'swapExactTokensForAVAX' + break + case 'swapExactETHForTokensSupportingFeeOnTransferTokens': + parameters.methodName = 'swapExactAVAXForTokensSupportingFeeOnTransferTokens' + break + case 'swapExactETHForTokens': + parameters.methodName = 'swapExactAVAXForTokens' + break + } + } + return parameters +} + /** * Returns the swap calls that can be used to make the trade * @param trade trade to execute @@ -39,22 +68,31 @@ export function useSwapParameters( if (trade_ instanceof V2Trade) { if (!routerV2Contract) return [] + const parameters = [ - Router.swapCallParameters(trade_, { - feeOnTransfer: false, - allowedSlippage: allowedSlippage_, - recipient: account, - ttl: deadline.toNumber(), - }), - ] - if (trade_.tradeType === TradeType.EXACT_INPUT) - parameters.push( - Router.swapCallParameters(trade_, { - feeOnTransfer: true, + swapCallParameters( + trade_, + { + feeOnTransfer: false, allowedSlippage: allowedSlippage_, recipient: account, ttl: deadline.toNumber(), - }), + }, + tradeProvider, + ), + ] + if (trade_.tradeType === TradeType.EXACT_INPUT) + parameters.push( + swapCallParameters( + trade_, + { + feeOnTransfer: true, + allowedSlippage: allowedSlippage_, + recipient: account, + ttl: deadline.toNumber(), + }, + tradeProvider, + ), ) return parameters.map(({ methodName, args, value }) => { return { diff --git a/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts b/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts index d01fda3f6831..3a849211b895 100644 --- a/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts +++ b/packages/mask/src/plugins/Trader/trader/useAllTradeComputed.ts @@ -178,6 +178,30 @@ export function useAllTradeComputed( const bancor = useBancorTradeComputed(bancor_.value ?? null, TradeStrategy.ExactIn, inputToken, outputToken) const bancorSwapEstimateGas = useBancorTradeGasLimit(bancor) + // traderjoe + const traderJoe_ = useUniswapV2Trade( + TradeProvider.TRADERJOE, + TradeStrategy.ExactIn, + inputAmount_, + '0', + tradeProviders.some((x) => x === TradeProvider.TRADERJOE) ? inputToken : undefined, + tradeProviders.some((x) => x === TradeProvider.TRADERJOE) ? outputToken : undefined, + ) + const traderJoe = useUniswapTradeComputed(traderJoe_.value, inputToken, outputToken) + const traderJoeEstimateGas = useUniswapTradeGasLimit(traderJoe, TradeProvider.TRADERJOE) + + // pangolindex + const pangolindex_ = useUniswapV2Trade( + TradeProvider.PANGOLIN, + TradeStrategy.ExactIn, + inputAmount_, + '0', + tradeProviders.some((x) => x === TradeProvider.PANGOLIN) ? inputToken : undefined, + tradeProviders.some((x) => x === TradeProvider.PANGOLIN) ? outputToken : undefined, + ) + const pangolindex = useUniswapTradeComputed(pangolindex_.value, inputToken, outputToken) + const pangolinEstimateGas = useUniswapTradeGasLimit(pangolindex, TradeProvider.PANGOLIN) + // openocean const openocean_ = useOpenOceanTrade(TradeStrategy.ExactIn, inputAmount_, '0', inputToken, outputToken) const openocean = useOpenOceanTradeComputed( @@ -223,6 +247,8 @@ export function useAllTradeComputed( { provider: TradeProvider.BALANCER, ...balancer_, value: balancer, gas: balancerSwapEstimateGas }, { provider: TradeProvider.DODO, ...dodo_, value: dodo, gas: dodoSwapEstimateGas }, { provider: TradeProvider.BANCOR, ...bancor_, value: bancor, gas: bancorSwapEstimateGas }, + { provider: TradeProvider.TRADERJOE, ...traderJoe_, value: traderJoe, gas: traderJoeEstimateGas }, + { provider: TradeProvider.PANGOLIN, ...pangolindex_, value: pangolindex, gas: pangolinEstimateGas }, { provider: TradeProvider.OPENOCEAN, ...openocean_, value: openocean, gas: openoceanSwapEstimateGas }, { provider: TradeProvider.WANNASWAP, ...wannaswap_, value: wannaswap, gas: wannaSwapEstimateGas }, { provider: TradeProvider.TRISOLARIS, ...trisolaris_, value: trisolaris, gas: trisolarisEstimateGas }, diff --git a/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts b/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts index 824ba21bc05d..77533cc926e2 100644 --- a/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts +++ b/packages/mask/src/plugins/Trader/trader/useGetTradeContext.ts @@ -13,6 +13,10 @@ import { SUSHISWAP_CUSTOM_BASES, UNISWAP_BASE_AGAINST_TOKENS, UNISWAP_CUSTOM_BASES, + TRADERJOE_BASE_AGAINST_TOKENS, + TRADERJOE_CUSTOM_BASES, + PANGOLIN_BASE_AGAINST_TOKENS, + PANGOLIN_CUSTOM_BASES, WANNASWAP_BASE_AGAINST_TOKENS, WANNASWAP_CUSTOM_BASES, TRISOLARIS_BASE_AGAINST_TOKENS, @@ -98,6 +102,30 @@ export function useGetTradeContext(tradeProvider?: TradeProvider) { ADDITIONAL_TOKENS: {}, CUSTOM_TOKENS: PANCAKESWAP_CUSTOM_BASES, } + case TradeProvider.TRADERJOE: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.TRADERJOE_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.TRADERJOE_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.TRADERJOE_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.TRADERJOE_FACTORY_ADDRESS, + AGAINST_TOKENS: TRADERJOE_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: TRADERJOE_CUSTOM_BASES, + } + case TradeProvider.PANGOLIN: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.PANGOLIN_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.PANGOLIN_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.PANGOLIN_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.PANGOLIN_FACTORY_ADDRESS, + AGAINST_TOKENS: PANGOLIN_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: PANGOLIN_CUSTOM_BASES, + } case TradeProvider.WANNASWAP: return { TYPE: tradeProvider, diff --git a/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts b/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts index b492e343f7f5..0b1efad1cc0d 100644 --- a/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts +++ b/packages/mask/src/plugins/Trader/trader/useTradeCallback.ts @@ -108,6 +108,10 @@ export function useTradeCallback( return dodo case TradeProvider.BANCOR: return bancor + case TradeProvider.TRADERJOE: + return uniswapV2Like + case TradeProvider.PANGOLIN: + return uniswapV2Like case TradeProvider.OPENOCEAN: return openocean default: diff --git a/packages/mask/src/plugins/Trader/trader/useTradeContext.ts b/packages/mask/src/plugins/Trader/trader/useTradeContext.ts index 6fd8953b6354..3db649333430 100644 --- a/packages/mask/src/plugins/Trader/trader/useTradeContext.ts +++ b/packages/mask/src/plugins/Trader/trader/useTradeContext.ts @@ -13,6 +13,10 @@ import { SUSHISWAP_CUSTOM_BASES, UNISWAP_BASE_AGAINST_TOKENS, UNISWAP_CUSTOM_BASES, + TRADERJOE_BASE_AGAINST_TOKENS, + TRADERJOE_CUSTOM_BASES, + PANGOLIN_BASE_AGAINST_TOKENS, + PANGOLIN_CUSTOM_BASES, WANNASWAP_BASE_AGAINST_TOKENS, WANNASWAP_CUSTOM_BASES, TRISOLARIS_CUSTOM_BASES, @@ -143,6 +147,30 @@ export function useTradeContext(tradeProvider: TradeProvider) { TYPE: tradeProvider, ROUTER_CONTRACT_ADDRESS: DEX_TRADE.BANCOR_EXCHANGE_PROXY_ADDRESS, } + case TradeProvider.TRADERJOE: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.TRADERJOE_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.TRADERJOE_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.TRADERJOE_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.TRADERJOE_FACTORY_ADDRESS, + AGAINST_TOKENS: TRADERJOE_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: TRADERJOE_CUSTOM_BASES, + } + case TradeProvider.PANGOLIN: + return { + TYPE: tradeProvider, + IS_UNISWAP_V2_LIKE: true, + GRAPH_API: DEX_TRADE.PANGOLIN_THEGRAPH, + INIT_CODE_HASH: DEX_TRADE.PANGOLIN_INIT_CODE_HASH, + ROUTER_CONTRACT_ADDRESS: DEX_TRADE.PANGOLIN_ROUTER_ADDRESS, + FACTORY_CONTRACT_ADDRESS: DEX_TRADE.PANGOLIN_FACTORY_ADDRESS, + AGAINST_TOKENS: PANGOLIN_BASE_AGAINST_TOKENS, + ADDITIONAL_TOKENS: {}, + CUSTOM_TOKENS: PANGOLIN_CUSTOM_BASES, + } case TradeProvider.OPENOCEAN: return { TYPE: tradeProvider, diff --git a/packages/mask/src/plugins/Trader/trending/useCurrentTradeProvider.ts b/packages/mask/src/plugins/Trader/trending/useCurrentTradeProvider.ts index c84086874aaf..c05b5209bb59 100644 --- a/packages/mask/src/plugins/Trader/trending/useCurrentTradeProvider.ts +++ b/packages/mask/src/plugins/Trader/trending/useCurrentTradeProvider.ts @@ -5,6 +5,7 @@ import { binanceNetworkTradeProviderSettings, arbitrumNetworkTradeProviderSettings, xdaiNetworkTradeProviderSettings, + avalancheNetworkTradeProviderSettings, celoNetworkTradeProviderSettings, fantomNetworkTradeProviderSettings, auroraNetworkTradeProviderSettings, @@ -21,6 +22,7 @@ export function useCurrentTradeProvider(chainId?: ChainId) { const binanceNetworkTradeProvider = useValueRef(binanceNetworkTradeProviderSettings) const arbitrumNetworkTradeProvider = useValueRef(arbitrumNetworkTradeProviderSettings) const xdaiNetworkTradeProvider = useValueRef(xdaiNetworkTradeProviderSettings) + const avalancheNetworkTradeProvider = useValueRef(avalancheNetworkTradeProviderSettings) const celoNetworkTradeProvider = useValueRef(celoNetworkTradeProviderSettings) const fantomNetworkTradeProvider = useValueRef(fantomNetworkTradeProviderSettings) const auroraNetworkTradeProvider = useValueRef(auroraNetworkTradeProviderSettings) @@ -37,6 +39,8 @@ export function useCurrentTradeProvider(chainId?: ChainId) { return arbitrumNetworkTradeProvider case NetworkType.xDai: return xdaiNetworkTradeProvider + case NetworkType.Avalanche: + return avalancheNetworkTradeProvider case NetworkType.Celo: return celoNetworkTradeProvider case NetworkType.Fantom: @@ -46,7 +50,6 @@ export function useCurrentTradeProvider(chainId?: ChainId) { case NetworkType.Boba: case NetworkType.Fuse: case NetworkType.Metis: - case NetworkType.Avalanche: case NetworkType.Optimistic: throw new Error(`To be implement network: ${networkType}`) default: diff --git a/packages/mask/src/plugins/Trader/types/trader.ts b/packages/mask/src/plugins/Trader/types/trader.ts index 211c73a9818f..fb0d655737ee 100644 --- a/packages/mask/src/plugins/Trader/types/trader.ts +++ b/packages/mask/src/plugins/Trader/types/trader.ts @@ -71,6 +71,8 @@ export enum ZrxTradePool { UniswapV3 = 'Uniswap_V3', WaultSwap = 'WaultSwap', xSigma = 'xSigma', + TraderJoe = 'TraderJoe', + PangolinDex = 'PangolinDex', Trisolaris = 'Trisolaris', WannaSwap = 'WannaSwap', } diff --git a/packages/mask/src/plugins/UnlockProtocol/constants.ts b/packages/mask/src/plugins/UnlockProtocol/constants.ts index fb91e2f5bf01..bdeb320043f3 100644 --- a/packages/mask/src/plugins/UnlockProtocol/constants.ts +++ b/packages/mask/src/plugins/UnlockProtocol/constants.ts @@ -12,6 +12,7 @@ export const graphEndpointKeyVal = { [ChainId.Rinkeby]: 'https://api.thegraph.com/subgraphs/name/unlock-protocol/unlock-rinkeby', [ChainId.xDai]: 'https://api.thegraph.com/subgraphs/name/unlock-protocol/xdai', [ChainId.Matic]: 'https://api.thegraph.com/subgraphs/name/unlock-protocol/polygon', + [ChainId.Avalanche]: '', } export const keyServerEndpoint = 'https://unlock.r2d2.to/' diff --git a/packages/mask/src/plugins/Wallet/apis/opensea.ts b/packages/mask/src/plugins/Wallet/apis/opensea.ts index 2fc239fa9339..f483dd5b9707 100644 --- a/packages/mask/src/plugins/Wallet/apis/opensea.ts +++ b/packages/mask/src/plugins/Wallet/apis/opensea.ts @@ -1,4 +1,5 @@ import { ChainId } from '@masknet/web3-shared-evm' +import urlcat from 'urlcat' import { OPENSEA_API_KEY } from '../constants' interface AssetContract { @@ -120,62 +121,41 @@ export interface CollectionsResponse { collections: AssetCollection[] } -export async function getAssetsList( - from: string, - opts: { chainId?: ChainId; page?: number; size?: number; collection?: string }, -) { - const { chainId = ChainId.Mainnet, page = 0, size = 50, collection } = opts - const params = new URLSearchParams() - params.append('owner', from.toLowerCase()) - params.append('limit', String(size)) - params.append('offset', String(size * page)) - if (collection) { - params.append('collection', collection) - } +interface BaseOptions { + chainId?: ChainId + page?: number + size?: number +} - if (![ChainId.Mainnet, ChainId.Rinkeby].includes(chainId)) - return { - assets: [], - } as AssetsListResponse +const SUPPORTED_CHAIN_ID_LIST = [ChainId.Mainnet, ChainId.Rinkeby] - const response = await fetch( - `https://${chainId === ChainId.Mainnet ? 'api' : 'rinkeby-api'}.opensea.io/api/v1/assets?${params.toString()}`, - { - method: 'GET', - mode: 'cors', - headers: { - 'x-api-key': OPENSEA_API_KEY, - }, - }, - ) - return (await response.json()) as AssetsListResponse +export function getAssetsList(from: string, opts: BaseOptions & { collection?: string }): Promise { + const { chainId = ChainId.Mainnet, page = 0, size = 50, collection } = opts + if (!SUPPORTED_CHAIN_ID_LIST.includes(chainId)) return Promise.resolve({ assets: [] }) + return request(chainId, '/api/v1/assets', { + owner: from.toLowerCase(), + limit: size, + offset: size * page, + collection, + }) } -export async function getCollections(owner: string, opts: { chainId?: ChainId; page?: number; size?: number }) { +export function getCollections(owner: string, opts: BaseOptions): Promise { const { chainId = ChainId.Mainnet, page = 0, size = 300 } = opts - const params = new URLSearchParams() - params.append('asset_owner', owner.toLowerCase()) - params.append('limit', String(size)) - params.append('offset', String(size * page)) - - if (![ChainId.Mainnet, ChainId.Rinkeby].includes(chainId)) - return { - collections: [], - } as CollectionsResponse - - const response = await fetch( - `https://${ - chainId === ChainId.Mainnet ? 'api' : 'rinkeby-api' - }.opensea.io/api/v1/collections?${params.toString()}`, - { - method: 'GET', - mode: 'cors', - headers: { - 'x-api-key': OPENSEA_API_KEY, - }, - }, - ) - const collections = (await response.json()) as AssetCollection[] + if (!SUPPORTED_CHAIN_ID_LIST.includes(chainId)) return Promise.resolve({ collections: [] }) + return request(chainId, '/api/v1/collections', { + asset_owner: owner.toLowerCase(), + limit: size, + offset: size * page, + }) +} - return { collections } +async function request(chainId: ChainId, requestPath: string, params: object): Promise { + const domain = chainId === ChainId.Mainnet ? 'https://api.opensea.io' : 'https://rinkeby-api.opensea.io' + const response = await fetch(urlcat(domain, requestPath, params), { + method: 'GET', + mode: 'cors', + headers: { 'x-api-key': OPENSEA_API_KEY }, + }) + return response.json() } diff --git a/packages/mask/src/plugins/Wallet/services/account.ts b/packages/mask/src/plugins/Wallet/services/account.ts index b9b0717a40c4..fd926daa1f66 100644 --- a/packages/mask/src/plugins/Wallet/services/account.ts +++ b/packages/mask/src/plugins/Wallet/services/account.ts @@ -126,6 +126,7 @@ export async function getSupportedNetworks() { Flags.xdai_enabled ? NetworkType.xDai : undefined, Flags.celo_enabled ? NetworkType.Celo : undefined, Flags.fantom_enabled ? NetworkType.Fantom : undefined, + Flags.avalanche_enabled ? NetworkType.Avalanche : undefined, Flags.aurora_enabled ? NetworkType.Aurora : undefined, ].filter(Boolean) as NetworkType[] } diff --git a/packages/mask/src/plugins/Wallet/services/assets.ts b/packages/mask/src/plugins/Wallet/services/assets.ts index 9ef97a86e009..4d809e618815 100644 --- a/packages/mask/src/plugins/Wallet/services/assets.ts +++ b/packages/mask/src/plugins/Wallet/services/assets.ts @@ -106,7 +106,7 @@ export async function getAssetsList( // xdai-assets is not support const scopes = network ? [resolveZerionAssetsScopeName(network)] - : ['assets', 'bsc-assets', 'polygon-assets', 'arbitrum-assets'] + : ['assets', 'bsc-assets', 'polygon-assets', 'arbitrum-assets', 'avalanche-assets'] for (const scope of scopes) { const { meta, payload } = await ZerionAPI.getAssetsList(address, scope) if (meta.status !== 'ok') throw new Error('Fail to load assets.') diff --git a/packages/mask/src/resources/PangolinIcon.tsx b/packages/mask/src/resources/PangolinIcon.tsx new file mode 100644 index 000000000000..a92a0378c8da --- /dev/null +++ b/packages/mask/src/resources/PangolinIcon.tsx @@ -0,0 +1,15 @@ +import { SvgIconProps, SvgIcon } from '@mui/material' + +const svg = ( + + + + + + + +) + +export function PangolinIcon(props: SvgIconProps) { + return {svg} +} diff --git a/packages/mask/src/resources/traderjoe.png b/packages/mask/src/resources/traderjoe.png new file mode 100644 index 000000000000..61ec8915aa60 Binary files /dev/null and b/packages/mask/src/resources/traderjoe.png differ diff --git a/packages/mask/src/settings/listener.ts b/packages/mask/src/settings/listener.ts index 931e30892e7b..1cf3e2f29dc6 100644 --- a/packages/mask/src/settings/listener.ts +++ b/packages/mask/src/settings/listener.ts @@ -25,6 +25,7 @@ import { binanceNetworkTradeProviderSettings, arbitrumNetworkTradeProviderSettings, xdaiNetworkTradeProviderSettings, + avalancheNetworkTradeProviderSettings, celoNetworkTradeProviderSettings, fantomNetworkTradeProviderSettings, auroraNetworkTradeProviderSettings, @@ -55,6 +56,7 @@ export function ToBeListened(): ToBeListedSettings { binanceNetworkTradeProviderSettings, arbitrumNetworkTradeProviderSettings, xdaiNetworkTradeProviderSettings, + avalancheNetworkTradeProviderSettings, celoNetworkTradeProviderSettings, fantomNetworkTradeProviderSettings, auroraNetworkTradeProviderSettings, diff --git a/packages/mask/src/utils/native-rpc/Web.ts b/packages/mask/src/utils/native-rpc/Web.ts index ac00aa79f5e1..4569d34daabf 100644 --- a/packages/mask/src/utils/native-rpc/Web.ts +++ b/packages/mask/src/utils/native-rpc/Web.ts @@ -115,6 +115,8 @@ export const MaskNetworkAPI: MaskNetworkAPIs = { return Services.Settings.getArbitrumNetworkTradeProvider() case NetworkType.xDai: return Services.Settings.getxDaiNetworkTradeProvider() + case NetworkType.Avalanche: + return Services.Settings.getAvalancheNetworkTradeProvider() case NetworkType.Celo: return Services.Settings.getCeloNetworkTradeProvider() case NetworkType.Fantom: @@ -144,6 +146,8 @@ export const MaskNetworkAPI: MaskNetworkAPIs = { return Services.Settings.setArbitrumNetworkTradeProvider(provider) case NetworkType.xDai: return Services.Settings.setxDaiNetworkTradeProvider(provider) + case NetworkType.Avalanche: + return Services.Settings.setAvalancheNetworkTradeProvider(provider) case NetworkType.Celo: return Services.Settings.setCeloNetworkTradeProvider(provider) case NetworkType.Fantom: diff --git a/packages/public-api/src/web.ts b/packages/public-api/src/web.ts index 5bde212caefb..1193e0e88dd8 100644 --- a/packages/public-api/src/web.ts +++ b/packages/public-api/src/web.ts @@ -221,6 +221,8 @@ export enum TradeProvider { OPENOCEAN = 10, WANNASWAP = 11, TRISOLARIS = 12, + TRADERJOE = 13, + PANGOLIN = 14, } /** Supported language settings */ export enum LanguageOptions { diff --git a/packages/shared-base/src/Messages/Mask.ts b/packages/shared-base/src/Messages/Mask.ts index cbf06df30f59..1c2d071be436 100644 --- a/packages/shared-base/src/Messages/Mask.ts +++ b/packages/shared-base/src/Messages/Mask.ts @@ -35,6 +35,7 @@ export interface MaskSettingsEvents { xdaiNetworkTradeProviderSettings: TradeProvider fantomNetworkTradeProviderSettings: TradeProvider celoNetworkTradeProviderSettings: TradeProvider + avalancheNetworkTradeProviderSettings: TradeProvider auroraNetworkTradeProviderSettings: TradeProvider } diff --git a/packages/shared/src/UI/components/NetworkIcon/wallet-network-icon/avalanche.png b/packages/shared/src/UI/components/NetworkIcon/wallet-network-icon/avalanche.png new file mode 100644 index 000000000000..6fa7ccab8d1d Binary files /dev/null and b/packages/shared/src/UI/components/NetworkIcon/wallet-network-icon/avalanche.png differ diff --git a/packages/shared/src/UI/components/TokenIcon/TokenIconSpecialIconList.json b/packages/shared/src/UI/components/TokenIcon/TokenIconSpecialIconList.json index 612fed4150a6..2909c44aacdf 100644 --- a/packages/shared/src/UI/components/TokenIcon/TokenIconSpecialIconList.json +++ b/packages/shared/src/UI/components/TokenIcon/TokenIconSpecialIconList.json @@ -188,5 +188,10 @@ "name": "tUSD", "address": "0xcfdd90d4a00f7b5b", "logo_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAIABJREFUeJztnXl8XNWV57/3vtpLu2TLkmVLli1vGGOTAHawTSAsWQmQpjvLZ0K2SSY9oZPJ5EN38sknC52Z8Ml0mkxPlk4YsieE7pCEZSbsE8dAbDAGbLCNd8mWra2kkqpKtb337vzx6pVqs1CVqmTZ0s8Iqape3XeX3zv3nHPPPVeg7lDMY85CnusKzOPcYp4AcxzzBJjjmCfAHMc8AeY45gkwxzFPgDmOeQLMccwTYI5jngBzHI5zXYHKQQEKDY163DTgp5kqGvFRgwcvLtxoKMBEEUcnQpwg4wwwziAhhokSJpkqT5zDtlQOFwgBrOWMKpy0UE0njWyglWtZySaW4sOVc61A5gyoRRfr/wKRfn2SUZ7iMM9ylP0M0cMIg4yjY3IhkEKcv4tBConAi4PLWcwXuY6rWY4EZIVmNjM16GHifJsd/IRdDBAhjlmR+80EzkMCKJxI3s8GPscWltFAHV4AxAw9kSolcQwUpxnleU7yVf7IfoY439Sq84YAAsUW2vkMW7iWLurxUsqQR/UEhircZLd04NS0ouumUpTYQy+PsJ/v8SxDxIou51xg1hPAheQ6VvBf2MrVdOXP3UpZU7ECXZmEk3HG9QThRIwToQBHgwOcGR+jNxK03k/GMU2z4PTtlg68ThdNniqavTV01DTSWdNEs7+WKqcbv8OFx+G06pD6fi4FFYpRYnyPZ/kxuznGMLNZV5i1BHAh2UQbP+ODLKUua+CVUilVDsb1BIFYhO5QgKOjgxwY6ePY6AA9oWGiepKkYaAECIcGQoA5yXwtBAiBMgyUYeIQEpfmoM7tY0XdQlbVN9NZ00RHTRNLquqp8/iQSiCFRYhMMthS4W62czfP0MsYs5EIs5AAiiY8PM6nuJgWNES6Y1VKQ9eVyelwkMPBfp7vP8HR6DDHhwcYiIySzBxgpUBZ4woCpRSpPwvfObcn7ItF6kMh8GoOltYvYHl1E+vqWljXuJjVDYuodnlS98qXCDGS3MXT3MlTzDYdYVYRwIvGPdzKLazDgyNPvBrK5GhwgCdPHuDZvqOcTkQYGgtioiyxrlT+IBaArcTlYioahRACIQUo8Hu9NHj8rKtZxJbWFWxbvJJGj/+s9zxKgI/yG56hh9kiDWYJARRvp4tv8i4uoSXjiQeUQgjBYDTMD/f9icd69jNixDB1AwkYpsJUJhLBxMSQW/r0mpgpgSQCE6tOUljSSTkkbs1Bh7ee/7BmE+/uWI9Lc6TbYNfIrse9PM8/8H8JzAJF8ZwTwI3ky7yNL/G2rHneUCaGaXIqMsJDx/fy8/3PMo4JholQKeUvA9Md5GKQKymksMinUpLh4sbF/KeLtnF5yzK8Dpc1jYlM/QCOEeAT3M+fOMG5lAbnkACKOjwc5g4a8OcN/ulIkO2nD/Pbwy9yJDyEHk+epZRzK8AKThuaRFPw9mUXc2PHei5dsNTSEXJgYPIpHuAn7D5nrqRzRoCtLOVBPkod3qxOTJgGO3oP8cDRl9g91EMoHgVT5T3xcO4H30YuCWylU3M6aPXW8Pb2i7hp2QY6axdkXWdbCts5yju5l9g5oME5IcDHeRN3cyPVZD8VfZFRfvn6Lh49fYDeYACBwFRmSj2fmIdnM3ItFiEFHqeLi+pb+NjaK7mmbXW6Dfa1JordnOQWfkYv4Rmu74wSQPElruJO3oGWYw69PtzHt/Y8xu5AD8lk0tLqU1W0vjm7Bz4TIkPtA8tyUECtr4oPdr6ZT6zbis/pzPMbHGGId/MTDjHETOkFM0YACXyGTdzNTen53kzZ5XsDp/j6C/+H14Z6keTb4+fT4GeikLKoed28q2U1n7/0ehZ6q/O+00+IK/gXuhllJkgwYwT4OzbxHW5ON8lUCt002N57iG+9/DinwkEwjNRcL87bQS+ETCJIKZAOjW3NK7j9kmtYWd+MzLESTEw6uStFgspiRtxSX2Ibd3NTlmAMJWP87ugevv7CI5wKjYBhXpCDD9kSzDBNDN3g6d6DfOvFR3l58GTe9RLJLm5nGXUVr1vFCfBxLuVO3pEW+woIxsf56f7nuPuVpwhEw2BODP6FikzFT5mWL2Nn3zH++55H+fPpQ3nXN1PNH/gwTeSbj+VEBQmg2MpS7uamtMJnKkU4EeNXB3fyq0O7CMVjKNPMmvMvtKc/ExNtE2mzdv9QL9/c8xi7+o/lXX8xrTzIRyh+gXrqqBgB6vHwIB+lGjdgee50ZfJ4z2vcd+QFwsk4hmmQqeVfyINvI48ESnF8ZIC7XvgjrwydzOoDgWAzHdzD+yo2UBUp143kEH+fjtQByxTa3X+C7+x9muHYOKZhZNnMcwkTZBcoBZqQHBjp4+6XnuRYcBAzhwS3cRnvpqsidakAARRf4W004svSfo+ODvJPLz/BUGrOPx/t+0rBVJbPY8/QSX5+cCcjsfGszwXwG25jNY1lv3fZCXADK/gHrsl6urvHAnxl10McGDmT0vZJfzaXkS0JFAlD55GeV/nd0T3W52pCcfTi5B5uxV3mIStraV4kd/HurKjcsUSM7+59mt2D3QhjbszzpUAgwFSMJ2L8eP+z7Dh9GMh+SN5CO19gG5SxD8tIAMU93Mp6WrLefeT4K2wfPI5m2qJuXvTnIqsvTMVIIsrXdj5EbyQIGUvfEslXuI5mfGW7d9kI0ISHW7g4w95X7B06xf1H9xAKhzAznDzFDH6hVcDzAUoVXsE86/WpPlGANBW9eoR7XttBUhlZXkInGr/mQ2WrZ1kI4ELyOJ/Cw0QUTDAe5ffHXuL46GD6umKfersDTWVF/Vi/Z/uPmbGQVRyB7f4xlULGdZ7oPcgTPQcw1ER5AsEWOtnCEsoxFZRla9gm2ljHIsvLhcIwTZ7vO87Tp15Hz/DvlwKFotblpdlXM6V4v3OKVPxoTNc5HRlBt4NQS4CpFMFohD8ce5l1Da2010xYAE4kD/ExWvlvxNCnVeVpE8CF5Ke8H0eGMIkkEzzSvZfBWHhaIlwIgWGYbG3t4lMXX5XlRJmNUFgitTcS5O+feYCR+DgOWZyQteMIAJRp8krgFDtOH2aRvxaXZsdIC+rwchUdPMZhptMf0ybA9axgKfXpSgsEO84c5pn+4yk3r0pLhlKgBPidblY3tJA0psf2SkNhOXUMZVp7BUptc4oESkE4GefJ3oNctXglrVV1aGKin3/BB2jlG+jTmAqmRQCB4nNszQru0JXJD/dtJ5qIgWlOKdR6ckxQxyEtr3hu7P1sgR3fUL7aKZRp8FJ/N8+eOcqtXW+y9INU+xvxczPr+Hf2lXyHaSmBW2nn6hwX5Y7eQxwOBxDm+RPGNRuRDnFXgqSEx0/uJ6on04MPIBH8LVfANGIJp0EAxWe4MovtET3BPa/uSC3v2lfND/50oJTCTOjs7DvGrv7j1nsZfXoVK7iERSWXXzIBnAiuoSs1V1k27/N9xzgcGkScv9vlZy1MAfe9/jxJ08ibVm9na8nllkgAxQfYSEPKIyWEIG7q7Dh9mHFTn6U6+vmHLOmpm+waOMGB4TNZ1wgEb6UTMEq6R0kEkAg+y5b0a1MpekLDvDjQg5lInrfeu9mOpDK4//ALee8vo5EtLKMUq6MkAnhx0EHDhOkn4PBIP8MqjhQSO79OOed/e5pRmX+X+POG9yi1XLt+ZWt1RihZSqzu7j/BWCJ7T6EAvsy1lGJ/lGAGKi6nNZWhw6pgJJngpcBJgmmffxmhJraH60ohSihfCJG2n6d0S6zgzWKhUDiEtKJ8i/72G5StQOkG/dEQO3oP8c6Oi4HUbmUEG2nFhSRRpEVQkh/gDq5N/y0QBGJhjoWH0Q0TU5XD9p+AEBCIhXnuzNGSJIqpFI0eP6vrW7JMqMkwloiyb6iXot0NqfwA/eNj6GXxgWRDExLdIXk10Mt1S9filBPRgnX48OAgQaKoMosmQBVOrs2w/ZVSnA4H6Q0NpzusXKJfKYUmJM+eOcIrQ/nh028EgSBmJNnW2sU3r3wfbm1qzT02OsgXdvw7mixuAFUqW42uTMJ63No1nNrePh1kuoeNRILXR/oJxCIs8temr3EiuZE1/JKXKWYqKJoALVQjyd7X1hMe5szYCKZhUroD9OyI6UlieuHdwZNBCkFUTzKWiBVFyoRpEIiFkGJ2ZfNQKIQSnNEjnI4EafbVZJHr07wlRYCpo2gCLKORTIbFDJ2e8AiJ1JJlOQe/bC7fyfLCTPKl2eRyVljZT5xSMm7qDEZDWVOaQLCJdqpxEypiGiiS4oqNtGTt5Y8mE3SPBdIb+mYqV99chEBgmorx6DinwiMk8hbHFC3k7zecDEUT4BpWZr0TM5KcDA1TvMZUPhQy7wSWv8JO41IMrAUdcdaFnWKjfcoF27Qej8foDg0TM/S8qa2N2rN8uzCKIoCGxiaWZL0X05MMRkNF3bRYZHZ2bucLrLneVrgM0yRpGsQNnXEjybieSOkPUx8wwzQZ1xNE9WQq1ZyObhrpRFT2/dJ7HXPqVEly2KF1o2aCeI4EEAiWU19UeUXpAPW4qcrZqxaIR4gZyQI51qaHdEh0AcliRR0ZGKbCSIVhSSGpc3up9/iodnrwO93UuX2YSrFpUSdaEQpdi7+Om5ZvIGkaJE2DkViEmK4zHI8QSkQJJqLWVm8h0ZBoUlgOsByNf7I2lAohBEpYcQLhZIwF3qqJzxB00lRUeUUSID8F2qnwCEmjND/02WAHkQiR2lJmGiSVZWFoQuLRnHQ1tNJZ08TyuoUsqaqnxVeL1+nC73RR4/TSHx3FVIqEYaQcQVMnQLXLw03LN9Lqr8VUVkiaJiRhPU40mWAsGeNUeITu0QAnQgH2D5+mNxy0iJnKWObUtPQ9zTISwSZVJBmzHrwcrKEZa3l4au0tigDN+PPmxGB83ApanOby78QmCEukm0oRN3Rc0sEify0d1Y1sbl3BJY1tLK6qT8ceHhsb5ExklL1Dp+iNBOkeCzASGydh6pjKEuXbWlfy3as/iEdzTqkuh4P9/O3/+xUezYkU4NIcOISko6aJJl81y6obWeSv5aolK3mfuwqnpjGWSk27u/8EL/Qfpz8SYiQ+jhQCl6alXdgwPSIIq7MIxWKEE/G8zztoKKq8ogjQiA8ThZZBg6RhTFv6Z82fKJzSwdLqBjY0LWF9Uxtddc1IIXgt0Mufew9xfGyII6MDnImMEjeS2Pn9hSBloVjSQwpJTLcDpqbe6UIIDGUS1S1zKpTq6L7xsVTy0Yn61ri9LK2qZ0VdM501C9jS2sXfdF3GUCzM/uEzvDTQzauBXkbiUSu/IOUhwtnWWlqpLqqtRRGgBk9e0QPREGoa3p/MwdeEZG1jC+9MpVaLGkn2DHTzyEt7OT4WYGB8lLipW3OvkEghrKf6LB1pTRmiJANFItBSAZ0Ft2en6h3Tkxwc6eO1wGmEEKkI5lrWNrSwdXEXt294GyOxCI91v8aTJw8wHAunHUylegmVqYgkYoST8SwvIUAdHlxoU14TKIoA1skb2RXOt0VLgxSCt7ev4z+u20pHbRP3HdzFb4+8SPdYgLihI6Q1ID7pyuJaOv/vWVApfdwu17IINJxSQykrefWRYD9HRwf4U+/rXNbcwScu2srnNl7LltYu/vmlxzk2OoRTytLrJqzpMaYn7RTGaTjQ8BRBgKLMQFcBvpRFsUGxtLqBD6y6nJX1zcR1nR+9uoPDwQEMFJqUaYUqt9POlbdOiJy8PsoSyUJYRNWkJKYnebJnP492v4rP4eKG9ov40KpNuDSHHfFXETiLeK6n7eyers1rd2KNy0ud24ow8jtdvGvZxeimgW4YBVfxinHGqIzfk8YT5H5hKmWriXbYbRFCQEoaNPtq2byoE4/mRJOS1qo63PYq3nTIq6bf91DkFGAUECvOlIZbalPsXUMHh/v406mDNHnfTIPHz+c3XsclTW08cHQPh0cGGEtESZh6nlcvPY/au49yKmJ785SaUJqsK7Oz+WVuOpl0XGyZm0GYzABYgcDvdFPj9LClzVII1za0oIDe8Aj3vb6LYCKK1+G0wshLIoHA53Thd7oL9rtZRExAUQQotA2p1V+HxnQCk60Bips6P9i3nZ7QCDev2MjymgW8o+Niti1exevBPvYMdHMsOMjpSJBTkSChRIykaWAqk6RppgM4rLMbRPq3FIKhaJgnevbj1CbslyqnG4/mQgormjmSjKc2dgheH+lL+yBs2thPm004h9BwSJk+VKLB42dJdT3t1Y2saWhh44KlLK6yDrroi4zxQv8JfnHwL+wdOoVbc0wrcEYIgdfpxudwFTifAOJFxAcWRYBx4pDzvHs1O+PlNKcCIJyMcf/hF9jVf4xLFyzl8uZlrKpfxJr6Fq5oXkY4GacvMkrf+BihZIzT4SDDsQinwiOMxCOMJWJp5ShuJNFTLt0TYwHu2v1HInoc3bQ6x+tw4ZYOhLBiBmJ6EhOFV3Pi0DRc0oEU1tOsCYnP6UIKQY3TQ7XLw0JfDc3eGlr8tTR4/NS5fbT662j2VeOQGmcio7w0eJJ9g6fY1X+MfUO9jMQjWUvMJVkAWBLHocmC5xtFSVaOAEGiecO8wGs12HYGFbsNTIiJjFm2UD4xFqAnNMxj3a/R4q9jdf0iOmqbWFXfzPLaBbx5YTsep4u4niRp6kT1JAnTIGkYJJVBKB4jlIwS03WC8fE0ZQPxSNpvkK9NWk93tcsaYKXAISUNHj/u1BPukBKPdOKQGm7NgVtz4HE40YRkNBHl+NgQz545wpHRQY4E+zk00k8wPk4yRbrpDn5mXf1ON16HK++jISIYGFTEEzhIJO/QpoW+GityxhQTk2GRsDsj0xsI1krjsdEBDg6fwcCk1uWl1u2j3u1jee0C2msaWNvQSou/jhZfLXUuL06p4ap1TASm2kqa/fqN6oJN4tTfqVgCpVR6kSmcjHFkdJDusSEODJ/h6Nggp0NBQsk4I/EIMT2JSzpwaPmDUA6rRQhBtceL35lPgB6CRZVVJAHCeQpfrctaeIkaydRTVNT9s5C7kKJS77kdVjXjhs6ZcJBToRFeDfRmzPXg1pws9NXQ6PHR6q/HpTnSvvyV9c28s+PiKSmrEsFANMSvX9+FFJKxRJShaJhxPc7pyChj8VhqncEmmErrBbaDyu90YVLeNYB0H6Va4Ndc+Byu9EKYjSNFJpouigDDRFE53ejWHLT46xiMhsvqdcm1sW0zS5PSqnSO1EiYBidDw3SPBditerD1+pie5Pr2tVy3dG16LeBsA2KXdWxskG/veRxNyHTUre1mto+K0QQIu+MnbEEAjIz6lhO2UqshaHR4LR0mZ7APM0DFCBAmSQ9BlmUsOPgcLtqrG9k7eKqYoopCIU1XZHxmewOllGg5n0khcGtOiukUS+lzZ4WST8btCQOycH3LCgFet5slVfW4Hc6cJNOKIwSKKq5oR9BTHMl67XO66axtonJO12wUerJy38t0+JhqKjN/NtLOooyyiq1TpSCFpMrjY2l1Q17yCYUqWgcomgDPkZ3T1ik1Wn21+J2elASc3xZWCdjTkG4Y+JQsmDJHIDjFWFHlFkkAwX4GsjyCUgjaquppralDyErsiZmHDYFAOjWWVTWwyFeb5bFUKMaI0V/kkTNFS4AeglmDrJSi1V9Le+0CEKkz9eZJUFZk9qfmdNJV30y925cnbO9nL3qRPtmiCTDAOCHiE/OqgDq3n+W+BtyaY8rbr+ZRPJQAtym4pGlJwc/v5TmKXZUpmgAGJv/En9OvBQKPw8klC9qo91enbdJ5KVBeCAFKChZ7a3jTwvY8xTNMnP0MTlJCYZSwHCz4Kc/niBrFitqFtLmrMVOm1zzKC9tHcfWS1VQ53XmfjxIr6dzBkuIBBglzJkfbXFxVx4amJTjcE66FeSkwfUz0ocCpBH/d9ea8axSKn/JiweX6N0JJBIijeJ6etB4gEEgEV7etwmdITFHuNAlzExO5FwGnxs3LL6XVn3+QVByd/8l2ip3/YRoRQV/h0awhFkKwccFS3tzcDlJORMfMS4FpQ0hJtcPFezrX532mUOykh6ESTyIvmQAHCPASvXnvf3TNFvyaa/bn9T2PoCRcuWg5axta87yaCvgd+yg1JmsaMYGCh3gt63wbgI0Ll/CO9osQLse8FJgG7LgKoUkaPVXcuOwSvJqD3IEeJcrPebHk+0wrKPT7PMdYjujRhOSvlr+JeqfH3sYynVvMeZimycbGNi5qaM1bzlYofswLjJK/Q2iqmBYBhojxPZ7NEkuGMumqW8gNSy9CczgQQuZtXpjH5LCffikFzVW1vHfZJSz0VuftbzRRqae/9L6ddlj4vezOesbt+LkbO9azrLpxhg6nvXCQ5faVGpsWdnBpc3vB1cb7eJm99E3rftMenuMM8222Z0kBpaCrrpkb2tbid7rTjqF5KTA5MvMuSilpq2ngb7ouo8GdvytbofgqjzHd7SVleD4F/8IzxJjYqiyFoMrp5j2d61nf2IbQZHrlap4EhZG5S0EgMAXc3LGBi5va8jaAKBQPsI/jRa79F0JZBPQpxriLp/NMlCVVDXxk9WaqHZbrcp4EbwwhBMopuXbxaj606gpcUssT/wOE+RC/Lot6XaYZWnAnT3GMQBYJpBBsW7yST6zdAm5ndlj0DJJAKdBTqWOSpkHC0Av/mAYK69qZRObTr6SgzVPLNzbfRJXTXcDuV/wrfyFRJuuqjCqa5CP8puAnt625kmsXrgBHKshyhiWBEBBKRAklY5P+hJMxRuIRNCFmzHjN3qAm8GsuvrDxeurdvnSmlEw8Rzdf56ky3l/dUca2Ku7hFj7OFemK2/PXaCLK5/58Py8MdmNmnCRW0QMlUjGB1S4PS6sbphS3JxCEkzFOjE0EV1Yq3i/zeF0hBLVeP7et3syHV23C73TlDb6J4kr+FzsLeGBLr0NZCQCNeHiev6Mz46Bje5D3BU7zj88/wquBXmtzZYVJkHnuoK6mLtYFZOXhrTQBhACvx8uNHev59EXbWOitLhAJrfgCD/PPPMN0Nf9MlN1KDxDjY9yfdwS6QLC6fhG3r7+aNfUtKV23suah3YmaEOmtXFP5caVyClcq2ldktF0KgeZycX3bGj6+5koW+goP/n76+T47KefgQ4XcNNs5wSf5bd46gUtqbG5ZzifXbWVRTR1KVN4yECLjJsV+rwLIbKcUAuV2cM2iLu7YeD1t/rq8flAoAoyzjR8QK/FUkMlQIT+d4KfsZjv5Kd6dUuPt7ev46pveRa3Lg5kaH5WWCReuiWjvorbdvJrbxXXNK/kfW/+KBo+/4MOdwOAGfshwicu9b4SKOWoN4B3cywucLDjHX922iu9c9QHaqxoQmoaUMivA5EKByPiXfk8IfB4f716yjq9d8R7c0lFwvcRE8XkeZA/9FatfRT31cUxu4WepDYv52Lyok29svonLF7bj0uzl4wkSXEhEAEvSCSmp8/j46+WXcvv6t1rmXoHBVyi+wRN8n12VrVO5rYBCWEkjf+bTNBfIZK2bJoeD/fzy0C4e7XmNSDxmCcqMWlXUVKwgMm18KSTKIVno9nPbqrfw3uWX0OipKvg9heJ/s4tP8fuKt3xGCACKdmo5xheRBYSOiSIYG+e3R17kX/duZxwdaaisNCrnGwmynmgBaJINDW18dsPb2LBgCR4tf2cvWO38Pa/yfn5FcgbaPEMEAIsEdezi9oKSwMaLA93cuesRDkWHIZ5I+womSpm9RCg0oNKp4RCSWzsv5YuXvRNHgaTSNuwn/z/zhxkZfJhRAlhYRh2/58Osp7XAvGcN9Ugswo9e28EjJ/YxHItgmkY6RWuhufJcI9edm/oPt9PFusbFfLDrMq5ZsnrSXMUmim/wJF/jCSZPfVlezDgBwPIWPsRH2Ux7vuabyscfM5Ls7DvGwyf2srPvOIHxEEJKlJHt0TuXBMj05CkFQlo2rSYEXfXNXNXSxc2dG1la04BSFM53iCKBwed5MKXwzazie04IAFb+3Xt4H7dxGYKzm35D0TC7+o/zyIm9vBw4RTA+Tio/S8FEiZUmRG497RxCSIHL4aDNX89bW7q4bula1jS04NYck4r8ISLcwI94qYKm3mQ4ZwQAywZ9F138G7fh4eziUQF9kVEODJ/hyd6DPHfmKH2xEBgmmGriuDqV+73yNK3woKfu55A4HA66/I1ct3Qtb1m0nBV1Cwsu5uTW7QD9bOUHFXPyTAXnlAA2VtHIvdzKZtoLWglgBZtKIYjpSU6EAjzZs58HjrxIXyKSylKpEOaEjpCZIcx+XQyyHTcTr00U2Nm/TMWm5g7e27mRzYs6afRWpc8ommx/pIniDh7mu+wsKqdfJTArCADgRvIFruIrXIsT7SwmkiX27c4NJ+M8c/owDx9/hVeHegmZSZISjGQSUzdwSGkpj0qlc/UXytCZjsEXIms6sr2ThlJoLieaFDgSJov8tbyldQXvWbaedY2Ls04GeaOB30k3/5WH2clJZnq+L4RZQwALioX4uI8PsYVlZydCzpxqKsXpSJA9A90cCvZzfCzAmegYIaETSySIJePEEkmMVGp7WSDDpqmsc4kFApfTicvlwuty40KyQPPQUdPI4qoG1jW2sr6pjVqXd9I6ZbdKMUiEH/AX7uQJzFkw8DZmGQEmsIUlPMzHqcUzZZewbSYGYmECsQiD4yHrdzTEQDTEeDJO2EiinBq5G1aUqfCh4ZUOGr1VNLj9NHmraPD4WeCrptlXgysVI1CMi9pE8SCv8n5+WeSpvjODWUsAUHhxso0OfsEHacSXl6U07xuppzA9/6eWFnRlkjR0DGWim6aV1jYHVgJoK9GjU2o4NQfSNu/ExDSBeuOlYjvF9K94ma/xGMcJzgJvRWHMYgLYUDiQ3MI6Ps0mtrF8UrPxrKVkJHPMNx8ttthrUaUlcbb+jRLnJzzPz3gxtWlj9oj7QjgPCJAJk0tYxGfZxlaWsTwVdnYuVw0Vijg6u+jhAfag1CYNAAABCElEQVTxc3YzSoLZPvA2zjMCTEBgsIVOvsy1bKCVOjw4KX6OLgaZpmSIOKPE+AV7uJs/pfbnnx+DnonzlgCZcCHx4uBm1vFJNnEFS7GHS5tmyIPCMiElglFi/Bt7+TF/4TUGGMdMnc5x/g28jQuCABOwmlKDmxZqaKOGTupZwQJWsZAOGmihOktaTHxTMU6SAON0M8JRhjnKAIcYoocgvYzRRziVHOv8HfBcXGAEmAxmyiiQuJB4cOBKSQcTRQyDOAYGRuo6S9W80FFUtvDzGxPn9CUwSZzVKp/GeX7nIeZ3789xzBNgjmOeAHMc8wSY45gnwBzHPAHmOOYJMMcxT4A5jnkCzHH8f1BFL1d3IEP5AAAEcGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIwLTExLTE5PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmRmMjI3YzkyLTY2MmQtNGI5Ny05N2QwLWFiNmQyYThmYjcwZTwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7mnKrlkb3lkI0g55qE6KSH5pysPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPkhzdWFuIExlZTwvcGRmOkF1dGhvcj4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz4KICA8eG1wOkNyZWF0b3JUb29sPkNhbnZhPC94bXA6Q3JlYXRvclRvb2w+CiA8L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0ncic/PolbVtwAAAAASUVORK5CYII=" + }, + { + "name": "AVAX", + "address": "0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7", + "logo_url": "https://raw.githubusercontent.com/sushiswap/icons/master/network/avalanche.jpg'" } ] diff --git a/packages/web3-constants/compile-constants.ts b/packages/web3-constants/compile-constants.ts index 1c6364433809..cafdb8aa29af 100644 --- a/packages/web3-constants/compile-constants.ts +++ b/packages/web3-constants/compile-constants.ts @@ -53,6 +53,8 @@ compileConstants(path.join(__dirname, 'evm'), [ 'Arbitrum', 'Arbitrum_Rinkeby', 'xDai', + 'Avalanche', + 'Avalanche_Fuji', 'Celo', 'Fantom', 'Aurora', diff --git a/packages/web3-constants/evm/airdrop.json b/packages/web3-constants/evm/airdrop.json index eee0146e37ca..ab949267d4f5 100644 --- a/packages/web3-constants/evm/airdrop.json +++ b/packages/web3-constants/evm/airdrop.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/coingecko.json b/packages/web3-constants/evm/coingecko.json index 108ba53afb0b..6f3add83afa9 100644 --- a/packages/web3-constants/evm/coingecko.json +++ b/packages/web3-constants/evm/coingecko.json @@ -12,6 +12,8 @@ "Arbitrum": "arbitrum-one", "Arbitrum_Rinkeby": "", "xDai": "xdai", + "Avalanche": "avalanche", + "Avalanche_Fuji": "", "Celo": "celo", "Fantom": "fantom", "Aurora": "aurora", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "xdai", + "Avalanche": "avalanche-2", + "Avalanche_Fuji": "", "Celo": "celo", "Fantom": "fantom", "Aurora": "ethereum", diff --git a/packages/web3-constants/evm/coinmarketcap.json b/packages/web3-constants/evm/coinmarketcap.json index d5c578f0d2e7..ffd32861a9a2 100644 --- a/packages/web3-constants/evm/coinmarketcap.json +++ b/packages/web3-constants/evm/coinmarketcap.json @@ -12,6 +12,8 @@ "Arbitrum": "11841", "Arbitrum_Rinkeby": "", "xDai": "5601", + "Avalanche": "43114", + "Avalanche_Fuji": "", "Celo": "5567", "Fantom": "3513", "Aurora": "1313161554", diff --git a/packages/web3-constants/evm/cryptoartai.json b/packages/web3-constants/evm/cryptoartai.json index 84d1ed2c7470..edde7f04abdc 100644 --- a/packages/web3-constants/evm/cryptoartai.json +++ b/packages/web3-constants/evm/cryptoartai.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -48,6 +52,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/debank.json b/packages/web3-constants/evm/debank.json index 18aea1893f65..070df0c683df 100644 --- a/packages/web3-constants/evm/debank.json +++ b/packages/web3-constants/evm/debank.json @@ -12,6 +12,8 @@ "Arbitrum": "arb", "Arbitrum_Rinkeby": "", "xDai": "xdai", + "Avalanche": "avax", + "Avalanche_Fuji": "", "Celo": "celo", "Fantom": "ftm", "Aurora": "aurora", diff --git a/packages/web3-constants/evm/dhedge.json b/packages/web3-constants/evm/dhedge.json index 029cfbf09d82..870f99083e7f 100644 --- a/packages/web3-constants/evm/dhedge.json +++ b/packages/web3-constants/evm/dhedge.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/ethereum.json b/packages/web3-constants/evm/ethereum.json index 2893a35631f7..f4ca94106031 100644 --- a/packages/web3-constants/evm/ethereum.json +++ b/packages/web3-constants/evm/ethereum.json @@ -12,6 +12,8 @@ "Arbitrum": "0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B", "Arbitrum_Rinkeby": "0xF98dC9391273c5ab9fa2c980A8d4F875ece802db", "xDai": "0x96c7D011cdFD467f551605f0f5Fce279F86F4186", + "Avalanche": "0xC119574D5Fb333F5AC018658D4d8b5035E16bf39", + "Avalanche_Fuji": "", "Celo": "0x8e28F1d64ceD52b9A09aB1AA3071Aa3c05802d1F", "Fantom": "0xc119574d5fb333f5ac018658d4d8b5035e16bf39", "Aurora": "0xC119574D5Fb333F5AC018658D4d8b5035E16bf39", @@ -30,6 +32,8 @@ "Arbitrum": "0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB", "Arbitrum_Rinkeby": "0xa501c031958F579dB7676fF1CE78AD305794d579", "xDai": "0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B", + "Avalanche": "0x6cc1b1058F9153358278C35E0b2D382f1585854B", + "Avalanche_Fuji": "", "Celo": "0x072453AdEC16cFC7FB6Af1517c3f25407180cccC", "Fantom": "0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c", "Aurora": "0x6cc1b1058F9153358278C35E0b2D382f1585854B", @@ -48,6 +52,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -66,6 +72,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/explorer.json b/packages/web3-constants/evm/explorer.json index a4a06690e1bd..a3c5bf0d117e 100644 --- a/packages/web3-constants/evm/explorer.json +++ b/packages/web3-constants/evm/explorer.json @@ -12,6 +12,8 @@ "Arbitrum": ["BE8VU1P9FUKRT15FBHKQMU84829VITWWF2"], "Arbitrum_Rinkeby": [], "xDai": [], + "Avalanche": [], + "Avalanche_Fuji": [], "Celo": [], "Fantom": ["AST4WWPNEYDURUXG2GH32JZMYWEFDP999S"], "Aurora": [], @@ -30,6 +32,8 @@ "Arbitrum": "https://api.arbiscan.io/api", "Arbitrum_Rinkeby": "", "xDai": "https://blockscout.com/xdai/mainnet/api", + "Avalanche": "https://api.snowtrace.io/api", + "Avalanche_Fuji": "https://api-testnet.snowtrace.io/api", "Celo": "https://explorer.celo.org/api", "Fantom": "https://api.ftmscan.com/api", "Aurora": "https://explorer.mainnet.aurora.dev/api", diff --git a/packages/web3-constants/evm/gitcoin.json b/packages/web3-constants/evm/gitcoin.json index 92e26081a158..708e296ea6de 100644 --- a/packages/web3-constants/evm/gitcoin.json +++ b/packages/web3-constants/evm/gitcoin.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -48,6 +52,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -66,6 +72,8 @@ "Arbitrum": 5, "Arbitrum_Rinkeby": 5, "xDai": 5, + "Avalanche": 5, + "Avalanche_Fuji": 0, "Celo": 0, "Fantom": 0, "Aurora": 0, diff --git a/packages/web3-constants/evm/good-ghosting.json b/packages/web3-constants/evm/good-ghosting.json index 5ca1473e8cec..e54f1e6ba1bf 100644 --- a/packages/web3-constants/evm/good-ghosting.json +++ b/packages/web3-constants/evm/good-ghosting.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/ito.json b/packages/web3-constants/evm/ito.json index 42d6ebd0c72d..74b33df77961 100644 --- a/packages/web3-constants/evm/ito.json +++ b/packages/web3-constants/evm/ito.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -48,8 +52,10 @@ "Arbitrum": "0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9", "Arbitrum_Rinkeby": "0x9b3649eC8C9f68484acC76D437B145a4e58Bf2A2", "xDai": "0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c", + "Avalanche": "0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF", + "Avalanche_Fuji": "0xf5056B96ab242C566002852d0b98ce0BcDf1af51", "Celo": "0xaA5bfd7355637eA7405CB194a55303e821c4c569", - "Fantom": "", + "Fantom": "0x981be454a930479d92C91a0092D204b64845A5D6", "Aurora": "0x5de932BD252DD79231C9eDB5F2e30D488B785109", "Aurora_Testnet": "0xdcA6F476EebCDE8FE8b072e3fC80dBC28dC209b3" }, @@ -66,9 +72,11 @@ "Arbitrum": 102022, "Arbitrum_Rinkeby": 708696, "xDai": 17865755, + "Avalanche": 8289892, + "Avalanche_Fuji": 4751103, "Celo": 10278776, - "Fantom": "", - "Aurora": 0, + "Fantom": 25071597, + "Aurora": 57350598, "Aurora_Testnet": 77919102 }, "DEFAULT_QUALIFICATION_ADDRESS": { @@ -84,6 +92,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -102,9 +112,11 @@ "Arbitrum": "0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c", "Arbitrum_Rinkeby": "0xEbd753E66649C824241E63894301BA8Db5DBF5Bb", "xDai": "0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9", - "Celo": "", - "Fantom": "", - "Aurora": "", + "Avalanche": "0x54a0A221C25Fc0a347EC929cFC5db0be17fA2a2B", + "Avalanche_Fuji": "", + "Celo": "0x2cB220F925E603A04BEE05F210252120deBA29d7", + "Fantom": "0x83D6b366f21e413f214EB077D5378478e71a5eD2", + "Aurora": "0x578a7Fee5f0D8CEc7d00578Bf37374C5b95C4b98", "Aurora_Testnet": "" }, "SUBGRAPH_URL": { @@ -120,9 +132,11 @@ "Arbitrum": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-arbitrum-one", "Arbitrum_Rinkeby": "", "xDai": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-xdai", - "Celo": "", - "Fantom": "", - "Aurora": "", + "Avalanche": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-avalanche", + "Avalanche_Fuji": "", + "Celo": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-celo", + "Fantom": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-fantom", + "Aurora": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-aurora", "Aurora_Testnet": "" } } diff --git a/packages/web3-constants/evm/lbp.json b/packages/web3-constants/evm/lbp.json index 3ea18109a7c6..051943e8a62d 100644 --- a/packages/web3-constants/evm/lbp.json +++ b/packages/web3-constants/evm/lbp.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/mask-box.json b/packages/web3-constants/evm/mask-box.json index 6462a6eea66c..b06a9d7d38dc 100644 --- a/packages/web3-constants/evm/mask-box.json +++ b/packages/web3-constants/evm/mask-box.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x05ee315E407C21a594f807D61d6CC11306D1F149", + "Avalanche_Fuji": "0xae5c53294003f72b27cef476680979453193673d", "Celo": "", "Fantom": "", "Aurora": "0xf5056B96ab242C566002852d0b98ce0BcDf1af51", @@ -30,6 +32,8 @@ "Arbitrum": 0, "Arbitrum_Rinkeby": 0, "xDai": 0, + "Avalanche": 8351767, + "Avalanche_Fuji": 4752026, "Celo": 0, "Fantom": 0, "Aurora": 57259004, @@ -48,6 +52,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x812463356F58fc8194645A1838ee6C52D8ca2D26", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -66,6 +72,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -84,6 +92,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/nft-red-packet.json b/packages/web3-constants/evm/nft-red-packet.json index 52907626bbce..14f892ec49c5 100644 --- a/packages/web3-constants/evm/nft-red-packet.json +++ b/packages/web3-constants/evm/nft-red-packet.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x96c7D011cdFD467f551605f0f5Fce279F86F4186", + "Avalanche_Fuji": "0x5de932BD252DD79231C9eDB5F2e30D488B785109", "Celo": "", "Fantom": "", "Aurora": "0x05ee315E407C21a594f807D61d6CC11306D1F149", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-avalanche", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-aurora", diff --git a/packages/web3-constants/evm/openocean.json b/packages/web3-constants/evm/openocean.json index dd5de64f9815..50fb7755a589 100644 --- a/packages/web3-constants/evm/openocean.json +++ b/packages/web3-constants/evm/openocean.json @@ -12,6 +12,8 @@ "Arbitrum": "0x934B510D4C9103E6a87AEf13b816fb080286D649", "Arbitrum_Rinkeby": "", "xDai": "0x934B510D4C9103E6a87AEf13b816fb080286D649", + "Avalanche": "0x934B510D4C9103E6a87AEf13b816fb080286D649", + "Avalanche_Fuji": "0x934B510D4C9103E6a87AEf13b816fb080286D649", "Celo": "0x934B510D4C9103E6a87AEf13b816fb080286D649", "Fantom": "0x934B510D4C9103E6a87AEf13b816fb080286D649", "Aurora": "", diff --git a/packages/web3-constants/evm/opensea-api.json b/packages/web3-constants/evm/opensea-api.json index d2b62bf356ed..8032d46e99ce 100644 --- a/packages/web3-constants/evm/opensea-api.json +++ b/packages/web3-constants/evm/opensea-api.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -48,6 +52,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/pooltogether.json b/packages/web3-constants/evm/pooltogether.json index 617908998037..529a2e16bb28 100644 --- a/packages/web3-constants/evm/pooltogether.json +++ b/packages/web3-constants/evm/pooltogether.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/red-packet.json b/packages/web3-constants/evm/red-packet.json index b8062f747b7c..9d88a6a4b0a7 100644 --- a/packages/web3-constants/evm/red-packet.json +++ b/packages/web3-constants/evm/red-packet.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -48,6 +52,8 @@ "Arbitrum": "0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF", "Arbitrum_Rinkeby": "0x6B70EC653c4331bdD0D0DCC7C941eb594e69a91d", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -64,8 +70,10 @@ "Matic": "0x93e0b87A0aD0C991dc1B5176ddCD850c9a78aabb", "Mumbai": "", "Arbitrum": "0x83D6b366f21e413f214EB077D5378478e71a5eD2", - "Arbitrum_Rinkeby": "", + "Arbitrum_Rinkeby": "0x4A77E797031257db72F7D2C3Ec08a4FAc5c8CfE9", "xDai": "0x54a0A221C25Fc0a347EC929cFC5db0be17fA2a2B", + "Avalanche": "0xF9F7C1496c21bC0180f4B64daBE0754ebFc8A8c0", + "Avalanche_Fuji": "0x3f64DFB6009d138DfD7b62916f3322A438d8b00D", "Celo": "", "Fantom": "", "Aurora": "0x19f179D7e0D7d9F9d5386afFF64271D98A91615B", @@ -84,6 +92,8 @@ "Arbitrum": 909051, "Arbitrum_Rinkeby": 0, "xDai": 18101937, + "Avalanche": 8306507, + "Avalanche_Fuji": 4751550, "Celo": 0, "Fantom": 0, "Aurora": 57552338, @@ -102,8 +112,10 @@ "Arbitrum": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-arbitrum-one", "Arbitrum_Rinkeby": "", "xDai": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-xdai", - "Celo": "", - "Fantom": "", + "Avalanche": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-avalanche", + "Avalanche_Fuji": "", + "Celo": "https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-celo", + "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": "" } diff --git a/packages/web3-constants/evm/rpc.json b/packages/web3-constants/evm/rpc.json index 7c73ce63f750..79a3c90aabcf 100644 --- a/packages/web3-constants/evm/rpc.json +++ b/packages/web3-constants/evm/rpc.json @@ -12,6 +12,8 @@ "Arbitrum": ["https://arb1.arbitrum.io/rpc"], "Arbitrum_Rinkeby": ["https://rinkeby.arbitrum.io/rpc"], "xDai": ["https://rpc.xdaichain.com/"], + "Avalanche": ["https://api.avax.network/ext/bc/C/rpc"], + "Avalanche_Fuji": ["https://api.avax-test.network/ext/bc/C/rpc"], "Celo": ["https://forno.celo.org"], "Fantom": ["https://rpcapi.fantom.network/"], "Aurora": ["https://mainnet.aurora.dev"], @@ -30,6 +32,8 @@ "Arbitrum": [0, 0, 0, 0], "Arbitrum_Rinkeby": [0, 0, 0, 0], "xDai": [0, 0, 0, 0], + "Avalanche": [0, 0, 0, 0], + "Avalanche_Fuji": [0, 0, 0, 0], "Celo": [0, 0, 0, 0], "Fantom": [0, 0, 0, 0], "Aurora": [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 e6d53731ccb0..86b85572cdcd 100644 --- a/packages/web3-constants/evm/space-station-galaxy.json +++ b/packages/web3-constants/evm/space-station-galaxy.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/token-asset-base-url.json b/packages/web3-constants/evm/token-asset-base-url.json index f109ab50bdea..994c1a1189ae 100644 --- a/packages/web3-constants/evm/token-asset-base-url.json +++ b/packages/web3-constants/evm/token-asset-base-url.json @@ -1,44 +1,49 @@ { "TOKEN_ASSET_BASE_URI": { "Mainnet": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/ethereum" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum" ], "Ropsten": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/ethereum" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum" ], "Rinkeby": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/ethereum" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum" ], "Kovan": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/ethereum" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum" ], "Gorli": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/ethereum" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum" ], "BSC": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/smartchain", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/smartchain" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/smartchain", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/smartchain" ], "BSCT": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/smartchain", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/smartchain" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/smartchain", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/smartchain" ], "Matic": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/polygon", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/polygon" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/polygon", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/polygon" ], "Mumbai": [ - "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/polygon", - "https://rawcdn.githack.com/trustwallet/assets/master/blockchains/polygon" + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/polygon", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/polygon" ], "Arbitrum": [], "Arbitrum_Rinkeby": [], "xDai": [], + "Avalanche": [ + "https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/avalanchec", + "https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/avalanchec" + ], + "Avalanche_Fuji": [], "Celo": [], "Fantom": [], "Aurora": [], diff --git a/packages/web3-constants/evm/token-list.json b/packages/web3-constants/evm/token-list.json index 4f265a782490..6fa6d302cfd7 100644 --- a/packages/web3-constants/evm/token-list.json +++ b/packages/web3-constants/evm/token-list.json @@ -25,6 +25,10 @@ "https://raw.githubusercontent.com/DimensionDev/Mask-Token-List/gh-pages/latest/421611/tokens.json" ], "xDai": ["https://raw.githubusercontent.com/DimensionDev/Mask-Token-List/gh-pages/latest/100/tokens.json"], + "Avalanche": [ + "https://raw.githubusercontent.com/DimensionDev/Mask-Token-List/gh-pages/latest/43114/tokens.json" + ], + "Avalanche_Fuji": [], "Celo": ["https://raw.githubusercontent.com/DimensionDev/Mask-Token-List/gh-pages/latest/42220/tokens.json"], "Fantom": ["https://raw.githubusercontent.com/DimensionDev/Mask-Token-List/gh-pages/latest/250/tokens.json"], "Aurora": [ diff --git a/packages/web3-constants/evm/token.json b/packages/web3-constants/evm/token.json index f177fa4da2d6..f6fe2360d0d4 100644 --- a/packages/web3-constants/evm/token.json +++ b/packages/web3-constants/evm/token.json @@ -12,6 +12,8 @@ "Arbitrum": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", "Arbitrum_Rinkeby": "0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681", "xDai": "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d", + "Avalanche": "0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7", + "Avalanche_Fuji": "", "Celo": "0x471EcE3750Da237f93B8E339c536989b8978a438", "Fantom": "0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83", "Aurora": "0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB", @@ -30,6 +32,8 @@ "Arbitrum": "0xe865dF68133fcEd7c2285ff3896B406CAfAa2dB8", "Arbitrum_Rinkeby": "", "xDai": "0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83", + "Avalanche": "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664", + "Avalanche_Fuji": "", "Celo": "0x2A3684e9Dc20B857375EA04235F2F7edBe818FA7", "Fantom": "0x04068da6c83afcfa0e13ba15a6696662335d5b75", "Aurora": "0xb12bfca5a55806aaf64e99521918a4bf0fc40802", @@ -48,6 +52,8 @@ "Arbitrum": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9", "Arbitrum_Rinkeby": "", "xDai": "0x4ECaBa5870353805a9F068101A40E0f32ed605C6", + "Avalanche": "0xc7198437980c041c805A1EDcbA50c1Ce5db95118", + "Avalanche_Fuji": "", "Celo": "0xb020d981420744f6b0fedd22bb67cd37ce18a1d5", "Fantom": "", "Aurora": "0x4988a896b1227218e4a686fde5eabdcabd91571f", @@ -66,6 +72,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "0x1e37E5b504F7773460d6eB0e24D2e7C223B66EC7", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -84,6 +92,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "0xdd96B45877d0E8361a4DDb732da741e97f3191Ff", + "Avalanche": "0x19860ccb0a68fd4213ab9d8266f7bbf05a8dde98", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -102,6 +112,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0xc3048e19e76cb9a3aa9d77d8c03c29fc906e2437", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -120,6 +132,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -138,6 +152,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -156,6 +172,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -174,6 +192,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -192,6 +212,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -210,6 +232,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -228,6 +252,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -246,6 +272,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -264,6 +292,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0xd586E7F844cEa2F87f50152665BCbc2C279D8d70", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E", "Aurora": "0xe3520349f477a5f6eb06107066048508498a291b", @@ -282,6 +312,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -300,6 +332,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -318,6 +352,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -336,6 +372,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -354,6 +392,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -372,6 +412,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "0x049d68029688eAbF473097a2fC38ef61633A3C7A", "Aurora": "", @@ -390,6 +432,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -408,6 +452,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -426,6 +472,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -444,6 +492,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -462,6 +512,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -480,6 +532,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0x7faA64Faf54750a2E3eE621166635fEAF406Ab22", @@ -498,6 +552,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252", + "Avalanche": "0x50b7545627a5162F82A992c33b87aDc75187B218", + "Avalanche_Fuji": "", "Celo": "0xBe50a3013A1c94768A1ABb78c3cB79AB28fc1aCE", "Fantom": "0x321162Cd933E2Be498Cd2267a90534A804051b11", "Aurora": "0xf4eb217ba2454613b15dbdea6e5f22276410e89e", @@ -516,6 +572,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -534,6 +592,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -552,6 +612,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -570,6 +632,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -588,6 +652,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -606,6 +672,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -624,6 +692,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -642,6 +712,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -660,6 +732,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -678,6 +752,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -696,6 +772,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -714,6 +792,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -732,6 +812,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "0x765de816845861e75a25fca122bb6898b8b1282a", "Fantom": "", "Aurora": "", @@ -750,6 +832,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "0x765de816845861e75a25fca122bb6898b8b1282a", "Fantom": "", "Aurora": "", @@ -768,11 +852,53 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0x802119e4e253D5C19aA06A5d567C5a41596D6803", "Aurora_Testnet": "" }, + "JOE_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0xce347E069B68C53A9ED5e7DA5952529cAF8ACCd4", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "PNG_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0x60781C2586D68229fde47564546784ab3fACA982", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, "ETHER_ADDRESS": { "Mainnet": "", "Ropsten": "", @@ -786,6 +912,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -804,6 +932,8 @@ "Arbitrum": "0x0000000000000000000000000000000000000000", "Arbitrum_Rinkeby": "0x0000000000000000000000000000000000000000", "xDai": "0x0000000000000000000000000000000000000000", + "Avalanche": "0x0000000000000000000000000000000000000000", + "Avalanche_Fuji": "0x0000000000000000000000000000000000000000", "Celo": "0x471ece3750da237f93b8e339c536989b8978a438", "Fantom": "0x0000000000000000000000000000000000000000", "Aurora": "0x0000000000000000000000000000000000000000", diff --git a/packages/web3-constants/evm/trader.json b/packages/web3-constants/evm/trader.json index 9378c927d852..b656354c3839 100644 --- a/packages/web3-constants/evm/trader.json +++ b/packages/web3-constants/evm/trader.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", + "Avalanche_Fuji": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", + "Avalanche_Fuji": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", "Celo": "", "Fantom": "", "Aurora": "", @@ -48,6 +52,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -66,6 +72,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "Avalanche_Fuji": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", "Celo": "", "Fantom": "", "Aurora": "", @@ -84,6 +92,8 @@ "Arbitrum": "0xE592427A0AEce92De3Edee1F18E0157C05861564", "Arbitrum_Rinkeby": "0xE592427A0AEce92De3Edee1F18E0157C05861564", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -102,6 +112,8 @@ "Arbitrum": "0x1F98431c8aD98523631AE4a59f267346ea31F984", "Arbitrum_Rinkeby": "0x1F98431c8aD98523631AE4a59f267346ea31F984", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -120,6 +132,8 @@ "Arbitrum": "0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6", "Arbitrum_Rinkeby": "0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -138,6 +152,8 @@ "Arbitrum": "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3", "Arbitrum_Rinkeby": "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -156,6 +172,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -174,6 +192,8 @@ "Arbitrum": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "Arbitrum_Rinkeby": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "xDai": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", + "Avalanche": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", + "Avalanche_Fuji": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "Celo": "0x1421bDe4B10e8dd459b3BCb598810B1337D56842", "Fantom": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", "Aurora": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", @@ -192,6 +212,8 @@ "Arbitrum": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", "Arbitrum_Rinkeby": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", "xDai": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", + "Avalanche": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", + "Avalanche_Fuji": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", "Celo": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", "Fantom": "0xc35DADB65012eC5796536bD9864eD8773aBc74C4", "Aurora": "", @@ -210,6 +232,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -228,6 +252,8 @@ "Arbitrum": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", "Arbitrum_Rinkeby": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", "xDai": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", + "Avalanche": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", + "Avalanche_Fuji": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", "Celo": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", "Fantom": "0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303", "Aurora": "", @@ -246,6 +272,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -264,6 +292,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -282,6 +312,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -300,6 +332,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -318,6 +352,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -336,6 +372,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -354,6 +392,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -372,6 +412,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -390,6 +432,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -408,6 +452,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -426,6 +472,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -444,6 +492,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -462,6 +512,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -480,6 +532,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -498,6 +552,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -516,6 +572,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", @@ -534,6 +592,8 @@ "Arbitrum": "0xA867241cDC8d3b0C07C85cC06F25a0cD3b5474d8", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619", @@ -552,6 +612,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -570,6 +632,88 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "TRADERJOE_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "0x7E2528476b14507f003aE9D123334977F5Ad7B14", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506", + "Avalanche": "0x60aE616a2155Ee3d9A68541Ba4544862310933d4", + "Avalanche_Fuji": "0x5db0735cf88F85E78ed742215090c465979B5006", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "TRADERJOE_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "0x86f83be9770894d8e46301b12E88e14AdC6cdb5F", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0x9Ad6C38BE94206cA50bb0d90783181662f0Cfa10", + "Avalanche_Fuji": "0x7eeccb3028870540EEc3D88C2259506f2d34fEE0", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "TRADERJOE_THEGRAPH": { + "Mainnet": "https://api.thegraph.com/subgraphs/name/traderjoe-xyz/exchange", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "TRADERJOE_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91", + "Avalanche_Fuji": "0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91", "Celo": "", "Fantom": "", "Aurora": "", @@ -588,6 +732,8 @@ "Arbitrum": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "Arbitrum_Rinkeby": "", "xDai": "0x0000000000000000000000000000000000000000", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -606,6 +752,88 @@ "Arbitrum": "0x6352a56caadc4f1e25cd6c75970fa768a3304e64", "Arbitrum_Rinkeby": "", "xDai": "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", + "Avalanche": "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", + "Avalanche_Fuji": "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "PANGOLIN_ROUTER_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "0x7E2528476b14507f003aE9D123334977F5Ad7B14", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106", + "Avalanche_Fuji": "0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "PANGOLIN_FACTORY_ADDRESS": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0xefa94DE7a4656D787667C749f7E1223D71E9FD88", + "Avalanche_Fuji": "0xE4A575550C2b460d2307b82dCd7aFe84AD1484dd", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "PANGOLIN_THEGRAPH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "https://api.thegraph.com/subgraphs/name/dasconnor/pangolin-dex'", + "Avalanche_Fuji": "", + "Celo": "", + "Fantom": "", + "Aurora": "", + "Aurora_Testnet": "" + }, + "PANGOLIN_INIT_CODE_HASH": { + "Mainnet": "", + "Ropsten": "", + "Rinkeby": "", + "Kovan": "", + "Gorli": "", + "BSC": "", + "BSCT": "", + "Matic": "", + "Mumbai": "", + "Arbitrum": "", + "Arbitrum_Rinkeby": "", + "xDai": "", + "Avalanche": "0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545", + "Avalanche_Fuji": "0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545", "Celo": "", "Fantom": "", "Aurora": "", @@ -624,6 +852,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0xa3a1eF5Ae6561572023363862e238aFA84C72ef5", @@ -642,6 +872,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0x8f1E0Cf0f9f269Bc977C38635E560aa5b0E63323", @@ -660,6 +892,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0x7928D4FeA7b2c90C732c10aFF59cf403f0C38246", @@ -678,6 +912,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -696,6 +932,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0xa06b8b0642cf6a9298322d0c8ac3c68c291ca24dc66245cf23aa2abc33b57e21", @@ -714,6 +952,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0x2CB45Edb4517d5947aFdE3BEAbF95A582506858B", @@ -732,6 +972,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0xc66F594268041dB60507F00703b152492fb176E7", @@ -750,6 +992,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -768,6 +1012,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "0x754e1d90e536e4c1df81b7f030f47b4ca80c87120e145c294f098c83a6cb5ace", diff --git a/packages/web3-constants/evm/trending.json b/packages/web3-constants/evm/trending.json index 645e5397355e..a115fe46afe5 100644 --- a/packages/web3-constants/evm/trending.json +++ b/packages/web3-constants/evm/trending.json @@ -12,6 +12,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -30,6 +32,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", @@ -48,6 +52,8 @@ "Arbitrum": "", "Arbitrum_Rinkeby": "", "xDai": "", + "Avalanche": "", + "Avalanche_Fuji": "", "Celo": "", "Fantom": "", "Aurora": "", diff --git a/packages/web3-constants/evm/zerion.json b/packages/web3-constants/evm/zerion.json index 9fd0dc3f4800..e0d70150b37f 100644 --- a/packages/web3-constants/evm/zerion.json +++ b/packages/web3-constants/evm/zerion.json @@ -12,6 +12,8 @@ "Arbitrum": "arbitrum-assets", "Arbitrum_Rinkeby": "", "xDai": "xdai-assets", + "Avalanche": "avalanche-assets", + "Avalanche_Fuji": "", "Celo": "celo-assets", "Fantom": "fantom-assets", "Aurora": "aurora-assets", @@ -30,6 +32,8 @@ "Arbitrum": "arbitrum-transactions", "Arbitrum_Rinkeby": "", "xDai": "xdai-transactions", + "Avalanche": "avalanche-transactions", + "Avalanche_Fuji": "", "Celo": "celo-transactions", "Fantom": "fantom-transactions", "Aurora": "aurora-transactions", diff --git a/packages/web3-contracts/abis/RouterV2.json b/packages/web3-contracts/abis/RouterV2.json index f3e8a280e186..7f402e4061ab 100644 --- a/packages/web3-contracts/abis/RouterV2.json +++ b/packages/web3-contracts/abis/RouterV2.json @@ -336,5 +336,87 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, + { "internalType": "address[]", "name": "path", "type": "address[]" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "deadline", "type": "uint256" } + ], + "name": "swapAVAXForExactTokens", + "outputs": [{ "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, + { "internalType": "address[]", "name": "path", "type": "address[]" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "deadline", "type": "uint256" } + ], + "name": "swapExactAVAXForTokensSupportingFeeOnTransferTokens", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, + { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, + { "internalType": "address[]", "name": "path", "type": "address[]" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "deadline", "type": "uint256" } + ], + "name": "swapExactTokensForAVAX", + "outputs": [{ "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, + { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, + { "internalType": "address[]", "name": "path", "type": "address[]" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "deadline", "type": "uint256" } + ], + "name": "swapExactTokensForAVAXSupportingFeeOnTransferTokens", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, + { "internalType": "uint256", "name": "amountInMax", "type": "uint256" }, + { "internalType": "address[]", "name": "path", "type": "address[]" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "deadline", "type": "uint256" } + ], + "name": "swapTokensForExactAVAX", + "outputs": [{ "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, + { "internalType": "address[]", "name": "path", "type": "address[]" }, + { "internalType": "address", "name": "to", "type": "address" }, + { "internalType": "uint256", "name": "deadline", "type": "uint256" } + ], + "name": "swapExactAVAXForTokens", + "outputs": [{ "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "WAVAX", + "outputs": [{ "internalType": "address", "name": "", "type": "address" }], + "stateMutability": "view", + "type": "function" + }, { "stateMutability": "payable", "type": "receive" } ] diff --git a/packages/web3-contracts/types/CryptoArtAIArtistAcceptingBidsV2.d.ts b/packages/web3-contracts/types/CryptoArtAIArtistAcceptingBidsV2.d.ts index 2931ddecf45c..52de8d2219d5 100644 --- a/packages/web3-contracts/types/CryptoArtAIArtistAcceptingBidsV2.d.ts +++ b/packages/web3-contracts/types/CryptoArtAIArtistAcceptingBidsV2.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/CryptoArtAICANFTMarket.d.ts b/packages/web3-contracts/types/CryptoArtAICANFTMarket.d.ts index 48d2101e718e..f49bedcf49ba 100644 --- a/packages/web3-contracts/types/CryptoArtAICANFTMarket.d.ts +++ b/packages/web3-contracts/types/CryptoArtAICANFTMarket.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/CryptoArtAIKnownOriginDigitalAssetV2.d.ts b/packages/web3-contracts/types/CryptoArtAIKnownOriginDigitalAssetV2.d.ts index 14e1422c0fc4..fda8b13c894f 100644 --- a/packages/web3-contracts/types/CryptoArtAIKnownOriginDigitalAssetV2.d.ts +++ b/packages/web3-contracts/types/CryptoArtAIKnownOriginDigitalAssetV2.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/ERC20.d.ts b/packages/web3-contracts/types/ERC20.d.ts index bb23716d2f0a..3583ea982e6f 100644 --- a/packages/web3-contracts/types/ERC20.d.ts +++ b/packages/web3-contracts/types/ERC20.d.ts @@ -44,11 +44,11 @@ export interface ERC20 extends BaseContract { methods: { name(): NonPayableTransactionObject - approve(_spender: string, _value: number | string | BN): NonPayableTransactionObject + approve(spender: string, value: number | string | BN): NonPayableTransactionObject totalSupply(): NonPayableTransactionObject - transferFrom(_from: string, _to: string, _value: number | string | BN): NonPayableTransactionObject + transferFrom(from: string, to: string, value: number | string | BN): NonPayableTransactionObject decimals(): NonPayableTransactionObject @@ -56,7 +56,7 @@ export interface ERC20 extends BaseContract { symbol(): NonPayableTransactionObject - transfer(_to: string, _value: number | string | BN): NonPayableTransactionObject + transfer(to: string, value: number | string | BN): NonPayableTransactionObject allowance(_owner: string, _spender: string): NonPayableTransactionObject } diff --git a/packages/web3-contracts/types/RouterV2.d.ts b/packages/web3-contracts/types/RouterV2.d.ts index 6438a1e1e63f..83f6cefa4e5a 100644 --- a/packages/web3-contracts/types/RouterV2.d.ts +++ b/packages/web3-contracts/types/RouterV2.d.ts @@ -241,6 +241,53 @@ export interface RouterV2 extends BaseContract { to: string, deadline: number | string | BN, ): NonPayableTransactionObject + + swapAVAXForExactTokens( + amountOut: number | string | BN, + path: string[], + to: string, + deadline: number | string | BN, + ): PayableTransactionObject + + swapExactAVAXForTokensSupportingFeeOnTransferTokens( + amountOutMin: number | string | BN, + path: string[], + to: string, + deadline: number | string | BN, + ): PayableTransactionObject + + swapExactTokensForAVAX( + amountIn: number | string | BN, + amountOutMin: number | string | BN, + path: string[], + to: string, + deadline: number | string | BN, + ): NonPayableTransactionObject + + swapExactTokensForAVAXSupportingFeeOnTransferTokens( + amountIn: number | string | BN, + amountOutMin: number | string | BN, + path: string[], + to: string, + deadline: number | string | BN, + ): NonPayableTransactionObject + + swapTokensForExactAVAX( + amountOut: number | string | BN, + amountInMax: number | string | BN, + path: string[], + to: string, + deadline: number | string | BN, + ): NonPayableTransactionObject + + swapExactAVAXForTokens( + amountOutMin: number | string | BN, + path: string[], + to: string, + deadline: number | string | BN, + ): PayableTransactionObject + + WAVAX(): NonPayableTransactionObject } events: { allEvents(options?: EventOptions, cb?: Callback): EventEmitter diff --git a/packages/web3-contracts/types/types.d.ts b/packages/web3-contracts/types/types.d.ts index 21c2843ab2c6..65fc225537c5 100644 --- a/packages/web3-contracts/types/types.d.ts +++ b/packages/web3-contracts/types/types.d.ts @@ -35,8 +35,6 @@ export interface NonPayableTx { to?: string data?: string gas?: string | number | BN - maxFeePerGas?: string | number | BN - maxPriorityFeePerGas?: string | number | BN gasPrice?: string | number | BN } diff --git a/packages/web3-shared/evm/assets/chains.json b/packages/web3-shared/evm/assets/chains.json index 22e09db4e3b9..32262888076c 100644 --- a/packages/web3-shared/evm/assets/chains.json +++ b/packages/web3-shared/evm/assets/chains.json @@ -14,6 +14,7 @@ "logoURI": "https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png" }, "faucets": [], + "features": ["EIP1559"], "explorers": [ { @@ -2074,6 +2075,34 @@ "chainId": 43110, "networkId": 43110 }, + { + "name": "Avalanche Mainnet", + "chain": "AVAX", + "network": "mainnet", + "rpc": ["https://api.avax.network/ext/bc/C/rpc"], + "faucets": [], + "features": [], + "nativeCurrency": { + "name": "Avalanche", + "symbol": "AVAX", + "decimals": 18, + "logoURI": "https://raw.githubusercontent.com/sushiswap/icons/master/network/avalanche.jpg" + }, + "infoURL": "https://snowtrace.io/", + "shortName": "AVAX", + "chainId": 43114, + "networkId": 43114, + "icon": "avalanche", + "explorers": [ + { + "name": "snowtrace", + "url": "https://snowtrace.io/", + "icon": "avalanche", + "standard": "EIP3091", + "logoURI": "https://snowtrace.io/images/svg/brands/main.svg?v=21.12.4.1" + } + ] + }, { "name": "Avalanche Fuji Testnet", "chain": "AVAX", @@ -2081,24 +2110,15 @@ "rpc": ["https://api.avax-test.network/ext/bc/C/rpc"], "faucets": ["https://faucet.avax-test.network/"], "features": [], - "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, + "nativeCurrency": { + "name": "Avalanche", + "symbol": "AVAX", + "decimals": 18 + }, "infoURL": "https://cchain.explorer.avax-test.network", "shortName": "Fuji", "chainId": 43113, - "networkId": 1 - }, - { - "name": "Avalanche Mainnet", - "chain": "AVAX", - "network": "mainnet", - "rpc": ["https://api.avax.network/ext/bc/C/rpc"], - "faucets": [], - "features": [], - "nativeCurrency": { "name": "Avalanche", "symbol": "AVAX", "decimals": 18 }, - "infoURL": "https://cchain.explorer.avax.network/", - "shortName": "Avalanche", - "chainId": 43114, - "networkId": 1 + "networkId": 43113 }, { "name": "Celo Alfajores Testnet", diff --git a/packages/web3-shared/evm/pipes/index.ts b/packages/web3-shared/evm/pipes/index.ts index a086a239899b..6b6c8cf71790 100644 --- a/packages/web3-shared/evm/pipes/index.ts +++ b/packages/web3-shared/evm/pipes/index.ts @@ -92,6 +92,7 @@ export const resolveNetworkAddressPrefix = createLookupTableResolver [NetworkType.Polygon]: 'Polygon', [NetworkType.Arbitrum]: 'Arbitrum', [NetworkType.xDai]: 'xDai', + [NetworkType.Avalanche]: 'Avalanche', [NetworkType.Celo]: 'Celo', [NetworkType.Fantom]: 'Fantom', [NetworkType.Aurora]: 'Aurora', @@ -137,6 +139,8 @@ export const resolveChainColor = createLookupTableResolver( [ChainId.Arbitrum]: 'rgb(36, 150, 238)', [ChainId.Arbitrum_Rinkeby]: 'rgb(36, 150, 238)', [ChainId.xDai]: 'rgb(73, 169, 166)', + [ChainId.Avalanche]: 'rgb(232, 65, 66)', + [ChainId.Avalanche_Fuji]: 'rgb(232, 65, 66)', [ChainId.Celo]: 'rgb(53, 208, 127)', [ChainId.Fantom]: 'rgb(19, 181, 236)', [ChainId.Aurora]: 'rgb(112, 212, 74)', diff --git a/packages/web3-shared/evm/types/index.ts b/packages/web3-shared/evm/types/index.ts index 153c06a108ab..154d6c523c0f 100644 --- a/packages/web3-shared/evm/types/index.ts +++ b/packages/web3-shared/evm/types/index.ts @@ -59,15 +59,16 @@ export enum ChainId { // xDai xDai = 100, + // Avalanche + Avalanche = 43114, + Avalanche_Fuji = 43113, + // Celo Celo = 42220, // Fantom Fantom = 250, - // Avalanche - Avalanche = 43114, - // Aurora Aurora = 1313161554, Aurora_Testnet = 1313161555, diff --git a/packages/web3-shared/evm/utils/chainDetailed.ts b/packages/web3-shared/evm/utils/chainDetailed.ts index ae6dc8be5138..1cceb01fa697 100644 --- a/packages/web3-shared/evm/utils/chainDetailed.ts +++ b/packages/web3-shared/evm/utils/chainDetailed.ts @@ -87,17 +87,19 @@ export function getChainIdFromName(name: string) { export const getChainIdFromNetworkType = createLookupTableResolver( { [NetworkType.Ethereum]: ChainId.Mainnet, - [NetworkType.Binance]: ChainId.BSC, - [NetworkType.Polygon]: ChainId.Matic, [NetworkType.Arbitrum]: ChainId.Arbitrum, - [NetworkType.xDai]: ChainId.xDai, + [NetworkType.Avalanche]: ChainId.Avalanche, + [NetworkType.Binance]: ChainId.BSC, [NetworkType.Celo]: ChainId.Celo, [NetworkType.Fantom]: ChainId.Fantom, + [NetworkType.Polygon]: ChainId.Matic, + [NetworkType.xDai]: ChainId.xDai, [NetworkType.Aurora]: ChainId.Aurora, }, ChainId.Mainnet, ) +// The value should be same as chain field in packages/web3-shared/evm/assets/chains.json const chainNameMap: Record = { [NetworkType.Ethereum]: 'ETH', [NetworkType.Binance]: 'BSC', @@ -107,7 +109,7 @@ const chainNameMap: Record = { [NetworkType.Celo]: 'CELO', [NetworkType.Fantom]: 'FTM', [NetworkType.Aurora]: 'Aurora', - [NetworkType.Avalanche]: 'Avalanche', + [NetworkType.Avalanche]: 'AVAX', [NetworkType.Boba]: 'Boba', [NetworkType.Fuse]: 'Fuse', [NetworkType.Metis]: 'Metis',