bridge_ui: Use new TVL calculation in useTVL hook, 48h transaction count
This commit is contained in:
parent
02848a6560
commit
2080c27ef2
|
@ -232,7 +232,23 @@ function App() {
|
||||||
<div className={classes.headerImage} />
|
<div className={classes.headerImage} />
|
||||||
{["/transfer", "/nft", "/redeem"].includes(pathname) ? (
|
{["/transfer", "/nft", "/redeem"].includes(pathname) ? (
|
||||||
<Container maxWidth="md" style={{ paddingBottom: 24 }}>
|
<Container maxWidth="md" style={{ paddingBottom: 24 }}>
|
||||||
<HeaderText white>Portal Token Bridge</HeaderText>
|
<HeaderText
|
||||||
|
white
|
||||||
|
subtitle={
|
||||||
|
<>
|
||||||
|
<Typography>
|
||||||
|
Portal is a bridge that offers unlimited transfers across
|
||||||
|
chains for tokens and NFTs wrapped by Wormhole.
|
||||||
|
</Typography>
|
||||||
|
<Typography>
|
||||||
|
Unlike many other bridges, you avoid double wrapping and
|
||||||
|
never have to retrace your steps.
|
||||||
|
</Typography>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Portal Token Bridge
|
||||||
|
</HeaderText>
|
||||||
<Tabs
|
<Tabs
|
||||||
value={pathname}
|
value={pathname}
|
||||||
variant="fullWidth"
|
variant="fullWidth"
|
||||||
|
|
|
@ -30,7 +30,7 @@ export default function HeaderText({
|
||||||
children: ReactChild;
|
children: ReactChild;
|
||||||
white?: boolean;
|
white?: boolean;
|
||||||
small?: boolean;
|
small?: boolean;
|
||||||
subtitle?: string;
|
subtitle?: ReactChild;
|
||||||
}) {
|
}) {
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
return (
|
return (
|
||||||
|
@ -43,7 +43,7 @@ export default function HeaderText({
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
</Typography>
|
</Typography>
|
||||||
{subtitle ? <Typography>{subtitle}</Typography> : null}
|
{subtitle ? <Typography component="div">{subtitle}</Typography> : null}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,7 @@ const TransactionMetrics: React.FC<any> = () => {
|
||||||
noWrap
|
noWrap
|
||||||
className={classes.totalValue}
|
className={classes.totalValue}
|
||||||
>
|
>
|
||||||
{numeral(transactionCount.data?.total24h || 0).format("0,0")}
|
{numeral(transactionCount.data?.total48h || 0).format("0,0")}
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div className={classes.totalContainer}>
|
<div className={classes.totalContainer}>
|
||||||
|
|
|
@ -1,46 +1,14 @@
|
||||||
import {
|
import { ChainId } from "@certusone/wormhole-sdk";
|
||||||
ChainId,
|
|
||||||
CHAIN_ID_AVAX,
|
|
||||||
CHAIN_ID_BSC,
|
|
||||||
CHAIN_ID_ETH,
|
|
||||||
CHAIN_ID_POLYGON,
|
|
||||||
CHAIN_ID_SOLANA,
|
|
||||||
CHAIN_ID_TERRA,
|
|
||||||
} from "@certusone/wormhole-sdk";
|
|
||||||
import { formatUnits } from "@ethersproject/units";
|
|
||||||
import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
|
|
||||||
import { TokenInfo } from "@solana/spl-token-registry";
|
|
||||||
import {
|
|
||||||
AccountInfo,
|
|
||||||
Connection,
|
|
||||||
ParsedAccountData,
|
|
||||||
PublicKey,
|
|
||||||
} from "@solana/web3.js";
|
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { DataWrapper } from "../store/helpers";
|
|
||||||
import {
|
import {
|
||||||
AVAX_TOKEN_BRIDGE_ADDRESS,
|
DataWrapper,
|
||||||
BSC_TOKEN_BRIDGE_ADDRESS,
|
errorDataWrapper,
|
||||||
CHAINS_BY_ID,
|
fetchDataWrapper,
|
||||||
COVALENT_GET_TOKENS_URL,
|
receiveDataWrapper,
|
||||||
ETH_TOKEN_BRIDGE_ADDRESS,
|
} from "../store/helpers";
|
||||||
logoOverrides,
|
import { COIN_GECKO_IMAGE_URLS } from "../utils/coinGecko";
|
||||||
POLYGON_TOKEN_BRIDGE_ADDRESS,
|
import { TVL_URL } from "../utils/consts";
|
||||||
SOLANA_HOST,
|
|
||||||
SOL_CUSTODY_ADDRESS,
|
|
||||||
TERRA_SWAPRATE_URL,
|
|
||||||
TERRA_TOKEN_BRIDGE_ADDRESS,
|
|
||||||
} from "../utils/consts";
|
|
||||||
import { priceStore, serumMarkets } from "../utils/SolanaPriceStore";
|
|
||||||
import {
|
|
||||||
formatNativeDenom,
|
|
||||||
getNativeTerraIcon,
|
|
||||||
NATIVE_TERRA_DECIMALS,
|
|
||||||
} from "../utils/terra";
|
|
||||||
import useMetadata, { GenericMetadata } from "./useMetadata";
|
|
||||||
import useSolanaTokenMap from "./useSolanaTokenMap";
|
|
||||||
import useTerraNativeBalances from "./useTerraNativeBalances";
|
|
||||||
|
|
||||||
export type TVL = {
|
export type TVL = {
|
||||||
logo?: string;
|
logo?: string;
|
||||||
|
@ -55,470 +23,75 @@ export type TVL = {
|
||||||
decimals?: number;
|
decimals?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
const BAD_PRICES_BY_CHAIN = {
|
interface LockedAsset {
|
||||||
[CHAIN_ID_BSC]: [
|
Symbol: string;
|
||||||
"0x04132bf45511d03a58afd4f1d36a29d229ccc574",
|
Name: string;
|
||||||
"0xa79bd679ce21a2418be9e6f88b2186c9986bbe7d",
|
Address: string;
|
||||||
"0x931c3987040c90b6db09981c7c91ba155d3fa31f",
|
CoinGeckoId: string;
|
||||||
"0x8fb1a59ca2d57b51e5971a85277efe72c4492983",
|
Amount: number;
|
||||||
],
|
Notional: number;
|
||||||
[CHAIN_ID_ETH]: [],
|
TokenPrice: number;
|
||||||
[CHAIN_ID_POLYGON]: ["0xd52d9ba6fcbadb1fe1e3aca52cbb72c4d9bbb4ec"],
|
}
|
||||||
};
|
|
||||||
|
|
||||||
const calcEvmTVL = (covalentReport: any, chainId: ChainId): TVL[] => {
|
interface LockedAssets {
|
||||||
const output: TVL[] = [];
|
[tokenAddress: string]: LockedAsset;
|
||||||
if (!covalentReport?.data?.items?.length) {
|
}
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
covalentReport.data.items.forEach((item: any) => {
|
interface ChainsAssets {
|
||||||
if (item.balance > 0 && item.contract_address) {
|
[chainId: string]: LockedAssets;
|
||||||
const hasUnreliablePrice =
|
}
|
||||||
BAD_PRICES_BY_CHAIN[chainId]?.includes(item.contract_address) ||
|
|
||||||
item.quote_rate > 1000000;
|
interface NotionalTvl {
|
||||||
output.push({
|
Last24HoursChange: ChainsAssets;
|
||||||
logo:
|
AllTime: ChainsAssets;
|
||||||
logoOverrides.get(item.contract_address) ||
|
}
|
||||||
item.logo_url ||
|
|
||||||
undefined,
|
const createTVLArray = (notionalTvl: NotionalTvl) => {
|
||||||
symbol: item.contract_ticker_symbol || undefined,
|
const tvl: TVL[] = [];
|
||||||
name: item.contract_name || undefined,
|
for (const [chainId, chainAssets] of Object.entries(notionalTvl.AllTime)) {
|
||||||
amount: formatUnits(item.balance, item.contract_decimals),
|
if (chainId === "*") continue;
|
||||||
totalValue: hasUnreliablePrice ? 0 : item.quote,
|
for (const [tokenAddress, lockedAsset] of Object.entries(chainAssets)) {
|
||||||
quotePrice: hasUnreliablePrice ? 0 : item.quote_rate,
|
if (tokenAddress === "*") continue;
|
||||||
assetAddress: item.contract_address,
|
tvl.push({
|
||||||
originChainId: chainId,
|
logo: COIN_GECKO_IMAGE_URLS[lockedAsset.CoinGeckoId],
|
||||||
originChain: CHAINS_BY_ID[chainId].name,
|
symbol: lockedAsset.Symbol,
|
||||||
decimals: item.contract_decimals,
|
name: lockedAsset.Name,
|
||||||
|
amount: lockedAsset.Amount.toString(),
|
||||||
|
totalValue: lockedAsset.Notional,
|
||||||
|
quotePrice: lockedAsset.TokenPrice,
|
||||||
|
assetAddress: tokenAddress,
|
||||||
|
originChainId: +chainId as ChainId,
|
||||||
|
originChain: chainId.toString(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
return output;
|
|
||||||
};
|
|
||||||
const calcSolanaTVL = (
|
|
||||||
accounts:
|
|
||||||
| { pubkey: PublicKey; account: AccountInfo<ParsedAccountData> }[]
|
|
||||||
| undefined,
|
|
||||||
metaData: DataWrapper<Map<string, GenericMetadata>>,
|
|
||||||
solanaPrices: DataWrapper<Map<string, number | undefined>>
|
|
||||||
) => {
|
|
||||||
const output: TVL[] = [];
|
|
||||||
if (
|
|
||||||
!accounts ||
|
|
||||||
!accounts.length ||
|
|
||||||
metaData.isFetching ||
|
|
||||||
metaData.error ||
|
|
||||||
!metaData.data ||
|
|
||||||
solanaPrices.isFetching ||
|
|
||||||
!solanaPrices.data
|
|
||||||
) {
|
|
||||||
return output;
|
|
||||||
}
|
}
|
||||||
|
return tvl;
|
||||||
accounts.forEach((item) => {
|
|
||||||
const genericMetadata = metaData.data?.get(
|
|
||||||
item.account.data.parsed?.info?.mint?.toString()
|
|
||||||
);
|
|
||||||
const mint = item.account.data.parsed?.info?.mint?.toString();
|
|
||||||
const price = solanaPrices?.data?.get(mint);
|
|
||||||
output.push({
|
|
||||||
logo: genericMetadata?.logo || undefined,
|
|
||||||
symbol: genericMetadata?.symbol || undefined,
|
|
||||||
name: genericMetadata?.tokenName || undefined,
|
|
||||||
amount: item.account.data.parsed?.info?.tokenAmount?.uiAmount || "0", //Should always be defined.
|
|
||||||
totalValue: price
|
|
||||||
? parseFloat(
|
|
||||||
item.account.data.parsed?.info?.tokenAmount?.uiAmount || "0"
|
|
||||||
) * price
|
|
||||||
: undefined,
|
|
||||||
quotePrice: price,
|
|
||||||
assetAddress: mint,
|
|
||||||
originChainId: CHAIN_ID_SOLANA,
|
|
||||||
originChain: "Solana",
|
|
||||||
decimals: item.account.data.parsed?.info?.tokenAmount?.decimals,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
return output;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const useTerraTVL = () => {
|
const useTVL = () => {
|
||||||
const { isLoading: isTerraNativeLoading, balances: terraNativeBalances } =
|
const [tvl, setTvl] = useState<DataWrapper<TVL[]>>(fetchDataWrapper());
|
||||||
useTerraNativeBalances(TERRA_TOKEN_BRIDGE_ADDRESS);
|
|
||||||
const [terraSwaprates, setTerraSwaprates] = useState<any[]>([]);
|
|
||||||
useEffect(() => {
|
|
||||||
let cancelled = false;
|
|
||||||
(async () => {
|
|
||||||
try {
|
|
||||||
const result = await axios.get(TERRA_SWAPRATE_URL);
|
|
||||||
if (!cancelled && result && result.data) {
|
|
||||||
setTerraSwaprates(result.data);
|
|
||||||
}
|
|
||||||
} catch (e) {}
|
|
||||||
})();
|
|
||||||
return () => {
|
|
||||||
cancelled = true;
|
|
||||||
};
|
|
||||||
}, []);
|
|
||||||
const terraTVL = useMemo(() => {
|
|
||||||
const arr: TVL[] = [];
|
|
||||||
if (terraNativeBalances) {
|
|
||||||
const denoms = Object.keys(terraNativeBalances);
|
|
||||||
denoms.forEach((denom) => {
|
|
||||||
const amount = formatUnits(
|
|
||||||
terraNativeBalances[denom],
|
|
||||||
NATIVE_TERRA_DECIMALS
|
|
||||||
);
|
|
||||||
const symbol = formatNativeDenom(denom);
|
|
||||||
let matchingSwap = undefined;
|
|
||||||
let quotePrice = 0;
|
|
||||||
let totalValue = 0;
|
|
||||||
try {
|
|
||||||
matchingSwap = terraSwaprates.find((swap) => swap.denom === denom);
|
|
||||||
quotePrice =
|
|
||||||
denom === "uusd"
|
|
||||||
? 1
|
|
||||||
: matchingSwap
|
|
||||||
? 1 / Number(matchingSwap.swaprate)
|
|
||||||
: 0;
|
|
||||||
totalValue =
|
|
||||||
denom === "uusd"
|
|
||||||
? Number(
|
|
||||||
formatUnits(terraNativeBalances[denom], NATIVE_TERRA_DECIMALS)
|
|
||||||
)
|
|
||||||
: matchingSwap
|
|
||||||
? Number(amount) / Number(matchingSwap.swaprate)
|
|
||||||
: 0;
|
|
||||||
} catch (e) {}
|
|
||||||
arr.push({
|
|
||||||
amount,
|
|
||||||
assetAddress: denom,
|
|
||||||
originChain: CHAINS_BY_ID[CHAIN_ID_TERRA].name,
|
|
||||||
originChainId: CHAIN_ID_TERRA,
|
|
||||||
quotePrice,
|
|
||||||
totalValue,
|
|
||||||
logo: getNativeTerraIcon(symbol),
|
|
||||||
symbol,
|
|
||||||
decimals: NATIVE_TERRA_DECIMALS,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return arr;
|
|
||||||
}, [terraNativeBalances, terraSwaprates]);
|
|
||||||
return useMemo(
|
|
||||||
() => ({ terraTVL, isLoading: isTerraNativeLoading }),
|
|
||||||
[isTerraNativeLoading, terraTVL]
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const useSolanaPrices = (
|
|
||||||
mintAddresses: string[],
|
|
||||||
tokenMap: DataWrapper<TokenInfo[]>
|
|
||||||
) => {
|
|
||||||
const [isLoading, setIsLoading] = useState(false);
|
|
||||||
const [priceMap, setPriceMap] = useState<Map<
|
|
||||||
string,
|
|
||||||
number | undefined
|
|
||||||
> | null>(null);
|
|
||||||
const [error] = useState("");
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let cancelled = false;
|
let cancelled = false;
|
||||||
|
|
||||||
if (!mintAddresses || !mintAddresses.length || !tokenMap.data) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const relevantMarkets: {
|
|
||||||
publicKey?: PublicKey;
|
|
||||||
name: string;
|
|
||||||
deprecated?: boolean;
|
|
||||||
mintAddress: string;
|
|
||||||
}[] = [];
|
|
||||||
mintAddresses.forEach((address) => {
|
|
||||||
const tokenInfo = tokenMap.data?.find((x) => x.address === address);
|
|
||||||
const relevantMarket = tokenInfo && serumMarkets[tokenInfo.symbol];
|
|
||||||
if (relevantMarket) {
|
|
||||||
relevantMarkets.push({ ...relevantMarket, mintAddress: address });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
setIsLoading(true);
|
|
||||||
const priceMap: Map<string, number | undefined> = new Map();
|
|
||||||
const connection = new Connection(SOLANA_HOST);
|
|
||||||
const promises: Promise<void>[] = [];
|
|
||||||
//Load all the revelevant markets into the priceMap
|
|
||||||
relevantMarkets.forEach((market) => {
|
|
||||||
const marketName: string = market.name;
|
|
||||||
promises.push(
|
|
||||||
priceStore
|
|
||||||
.getPrice(connection, marketName)
|
|
||||||
.then((result) => {
|
|
||||||
priceMap.set(market.mintAddress, result);
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
//Do nothing, we just won't load this price.
|
|
||||||
return Promise.resolve();
|
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
Promise.all(promises).then(() => {
|
|
||||||
//By this point all the relevant markets are loaded.
|
|
||||||
if (!cancelled) {
|
|
||||||
setPriceMap(priceMap);
|
|
||||||
setIsLoading(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
cancelled = true;
|
|
||||||
return;
|
|
||||||
};
|
|
||||||
}, [mintAddresses, tokenMap.data]);
|
|
||||||
|
|
||||||
return useMemo(() => {
|
|
||||||
return {
|
|
||||||
isFetching: isLoading,
|
|
||||||
data: priceMap || null,
|
|
||||||
error: error,
|
|
||||||
receivedAt: null,
|
|
||||||
};
|
|
||||||
}, [error, priceMap, isLoading]);
|
|
||||||
};
|
|
||||||
|
|
||||||
const useTVL = (): DataWrapper<TVL[]> => {
|
|
||||||
const [ethCovalentData, setEthCovalentData] = useState(undefined);
|
|
||||||
const [ethCovalentIsLoading, setEthCovalentIsLoading] = useState(false);
|
|
||||||
const [ethCovalentError, setEthCovalentError] = useState("");
|
|
||||||
|
|
||||||
const [bscCovalentData, setBscCovalentData] = useState(undefined);
|
|
||||||
const [bscCovalentIsLoading, setBscCovalentIsLoading] = useState(false);
|
|
||||||
const [bscCovalentError, setBscCovalentError] = useState("");
|
|
||||||
|
|
||||||
const [polygonCovalentData, setPolygonCovalentData] = useState(undefined);
|
|
||||||
const [polygonCovalentIsLoading, setPolygonCovalentIsLoading] =
|
|
||||||
useState(false);
|
|
||||||
const [polygonCovalentError, setPolygonCovalentError] = useState("");
|
|
||||||
|
|
||||||
const [avaxCovalentData, setAvaxCovalentData] = useState(undefined);
|
|
||||||
const [avaxCovalentIsLoading, setAvaxCovalentIsLoading] = useState(false);
|
|
||||||
const [avaxCovalentError, setAvaxCovalentError] = useState("");
|
|
||||||
|
|
||||||
const [solanaCustodyTokens, setSolanaCustodyTokens] = useState<
|
|
||||||
{ pubkey: PublicKey; account: AccountInfo<ParsedAccountData> }[] | undefined
|
|
||||||
>(undefined);
|
|
||||||
const [solanaCustodyTokensLoading, setSolanaCustodyTokensLoading] =
|
|
||||||
useState(false);
|
|
||||||
const [solanaCustodyTokensError, setSolanaCustodyTokensError] = useState("");
|
|
||||||
const mintAddresses = useMemo(() => {
|
|
||||||
const addresses: string[] = [];
|
|
||||||
solanaCustodyTokens?.forEach((item) => {
|
|
||||||
const mintKey = item.account.data.parsed?.info?.mint?.toString();
|
|
||||||
if (mintKey) {
|
|
||||||
addresses.push(mintKey);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return addresses;
|
|
||||||
}, [solanaCustodyTokens]);
|
|
||||||
|
|
||||||
const solanaMetadata = useMetadata(CHAIN_ID_SOLANA, mintAddresses);
|
|
||||||
const solanaTokenMap = useSolanaTokenMap();
|
|
||||||
const solanaPrices = useSolanaPrices(mintAddresses, solanaTokenMap);
|
|
||||||
|
|
||||||
const { isLoading: isTerraLoading, terraTVL } = useTerraTVL();
|
|
||||||
|
|
||||||
const solanaTVL = useMemo(
|
|
||||||
() => calcSolanaTVL(solanaCustodyTokens, solanaMetadata, solanaPrices),
|
|
||||||
[solanaCustodyTokens, solanaMetadata, solanaPrices]
|
|
||||||
);
|
|
||||||
const ethTVL = useMemo(
|
|
||||||
() => calcEvmTVL(ethCovalentData, CHAIN_ID_ETH),
|
|
||||||
[ethCovalentData]
|
|
||||||
);
|
|
||||||
const bscTVL = useMemo(
|
|
||||||
() => calcEvmTVL(bscCovalentData, CHAIN_ID_BSC),
|
|
||||||
[bscCovalentData]
|
|
||||||
);
|
|
||||||
const polygonTVL = useMemo(
|
|
||||||
() => calcEvmTVL(polygonCovalentData, CHAIN_ID_POLYGON),
|
|
||||||
[polygonCovalentData]
|
|
||||||
);
|
|
||||||
const avaxTVL = useMemo(
|
|
||||||
() => calcEvmTVL(avaxCovalentData, CHAIN_ID_AVAX),
|
|
||||||
[avaxCovalentData]
|
|
||||||
);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
let cancelled = false;
|
|
||||||
setEthCovalentIsLoading(true);
|
|
||||||
axios
|
axios
|
||||||
.get(
|
.get<NotionalTvl>(TVL_URL)
|
||||||
COVALENT_GET_TOKENS_URL(CHAIN_ID_ETH, ETH_TOKEN_BRIDGE_ADDRESS, false)
|
.then((response) => {
|
||||||
)
|
if (!cancelled) {
|
||||||
.then(
|
setTvl(receiveDataWrapper(createTVLArray(response.data)));
|
||||||
(results) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setEthCovalentData(results.data);
|
|
||||||
setEthCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setEthCovalentError("Unable to retrieve Ethereum TVL.");
|
|
||||||
setEthCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
let cancelled = false;
|
|
||||||
setBscCovalentIsLoading(true);
|
|
||||||
axios
|
|
||||||
.get(
|
|
||||||
COVALENT_GET_TOKENS_URL(CHAIN_ID_BSC, BSC_TOKEN_BRIDGE_ADDRESS, false)
|
|
||||||
)
|
|
||||||
.then(
|
|
||||||
(results) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setBscCovalentData(results.data);
|
|
||||||
setBscCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setBscCovalentError("Unable to retrieve BSC TVL.");
|
|
||||||
setBscCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
let cancelled = false;
|
|
||||||
setPolygonCovalentIsLoading(true);
|
|
||||||
axios
|
|
||||||
.get(
|
|
||||||
COVALENT_GET_TOKENS_URL(
|
|
||||||
CHAIN_ID_POLYGON,
|
|
||||||
POLYGON_TOKEN_BRIDGE_ADDRESS,
|
|
||||||
false
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.then(
|
|
||||||
(results) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setPolygonCovalentData(results.data);
|
|
||||||
setPolygonCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setPolygonCovalentError("Unable to retrieve Polygon TVL.");
|
|
||||||
setPolygonCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
let cancelled = false;
|
|
||||||
setAvaxCovalentIsLoading(true);
|
|
||||||
axios
|
|
||||||
.get(
|
|
||||||
COVALENT_GET_TOKENS_URL(CHAIN_ID_AVAX, AVAX_TOKEN_BRIDGE_ADDRESS, false)
|
|
||||||
)
|
|
||||||
.then(
|
|
||||||
(results) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setAvaxCovalentData(results.data);
|
|
||||||
setAvaxCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setAvaxCovalentError("Unable to retrieve Avax TVL.");
|
|
||||||
setAvaxCovalentIsLoading(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
let cancelled = false;
|
|
||||||
const connection = new Connection(SOLANA_HOST, "confirmed");
|
|
||||||
setSolanaCustodyTokensLoading(true);
|
|
||||||
connection
|
|
||||||
.getParsedTokenAccountsByOwner(new PublicKey(SOL_CUSTODY_ADDRESS), {
|
|
||||||
programId: TOKEN_PROGRAM_ID,
|
|
||||||
})
|
})
|
||||||
.then(
|
.catch((error) => {
|
||||||
(results) => {
|
console.log(error);
|
||||||
if (!cancelled) {
|
if (!cancelled) {
|
||||||
setSolanaCustodyTokens(results.value);
|
setTvl(errorDataWrapper(error));
|
||||||
setSolanaCustodyTokensLoading(false);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
(error) => {
|
|
||||||
if (!cancelled) {
|
|
||||||
setSolanaCustodyTokensLoading(false);
|
|
||||||
setSolanaCustodyTokensError(
|
|
||||||
"Unable to retrieve Solana locked tokens."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
});
|
||||||
|
return () => {
|
||||||
|
cancelled = true;
|
||||||
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return useMemo(() => {
|
return tvl;
|
||||||
const tvlArray = [
|
|
||||||
...ethTVL,
|
|
||||||
...bscTVL,
|
|
||||||
...polygonTVL,
|
|
||||||
...avaxTVL,
|
|
||||||
...solanaTVL,
|
|
||||||
...terraTVL,
|
|
||||||
];
|
|
||||||
|
|
||||||
return {
|
|
||||||
isFetching:
|
|
||||||
ethCovalentIsLoading ||
|
|
||||||
bscCovalentIsLoading ||
|
|
||||||
polygonCovalentIsLoading ||
|
|
||||||
avaxCovalentIsLoading ||
|
|
||||||
solanaCustodyTokensLoading ||
|
|
||||||
isTerraLoading,
|
|
||||||
error:
|
|
||||||
ethCovalentError ||
|
|
||||||
bscCovalentError ||
|
|
||||||
polygonCovalentError ||
|
|
||||||
avaxCovalentError ||
|
|
||||||
solanaCustodyTokensError,
|
|
||||||
receivedAt: null,
|
|
||||||
data: tvlArray,
|
|
||||||
};
|
|
||||||
}, [
|
|
||||||
ethCovalentError,
|
|
||||||
ethCovalentIsLoading,
|
|
||||||
bscCovalentError,
|
|
||||||
bscCovalentIsLoading,
|
|
||||||
polygonCovalentError,
|
|
||||||
polygonCovalentIsLoading,
|
|
||||||
polygonTVL,
|
|
||||||
avaxCovalentError,
|
|
||||||
avaxCovalentIsLoading,
|
|
||||||
avaxTVL,
|
|
||||||
ethTVL,
|
|
||||||
bscTVL,
|
|
||||||
solanaTVL,
|
|
||||||
solanaCustodyTokensError,
|
|
||||||
solanaCustodyTokensLoading,
|
|
||||||
isTerraLoading,
|
|
||||||
terraTVL,
|
|
||||||
]);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default useTVL;
|
export default useTVL;
|
||||||
|
|
|
@ -9,24 +9,29 @@ import {
|
||||||
|
|
||||||
export type TransactionCount = {
|
export type TransactionCount = {
|
||||||
totalAllTime: number;
|
totalAllTime: number;
|
||||||
total24h: number;
|
total48h: number;
|
||||||
mostRecent: any; //This will be a signedVAA
|
mostRecent: any; //This will be a signedVAA
|
||||||
};
|
};
|
||||||
|
|
||||||
const mergeResults = (totals: any, recents: any): TransactionCount | null => {
|
const mergeResults = (totals: any, recents: any): TransactionCount | null => {
|
||||||
let totalAllTime = 0;
|
let totalAllTime = 0;
|
||||||
let total24h = 0;
|
let total48h = 0;
|
||||||
|
const lastDays = Object.values(totals?.DailyTotals || {});
|
||||||
|
const lastTwoDays: any = lastDays.slice(lastDays.length - 2);
|
||||||
VAA_EMITTER_ADDRESSES.forEach((address: string) => {
|
VAA_EMITTER_ADDRESSES.forEach((address: string) => {
|
||||||
let totalAll = (totals?.TotalCount && totals.TotalCount[address]) || 0;
|
let totalAll = (totals?.TotalCount && totals.TotalCount[address]) || 0;
|
||||||
let total24 = (totals?.LastDayCount && totals.LastDayCount[address]) || 0;
|
let total48 =
|
||||||
|
lastTwoDays.length === 2
|
||||||
|
? (lastTwoDays[0][address] || 0) + (lastTwoDays[1][address] || 0)
|
||||||
|
: 0;
|
||||||
|
|
||||||
totalAllTime += totalAll;
|
totalAllTime += totalAll;
|
||||||
total24h += total24;
|
total48h += total48;
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
totalAllTime,
|
totalAllTime,
|
||||||
total24h,
|
total48h,
|
||||||
mostRecent: null,
|
mostRecent: null,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,684 @@
|
||||||
|
export type CoinGeckoIdToImageUrl = {
|
||||||
|
[id: string]: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const COIN_GECKO_IMAGE_URLS: CoinGeckoIdToImageUrl = {
|
||||||
|
"yearn-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/11849/small/yfi-192x192.png?1598325330",
|
||||||
|
partneroid:
|
||||||
|
"https://assets.coingecko.com/coins/images/21381/small/144531867-a8016f41-3b31-4d6f-97a1-372a58d48626.png?1639034184",
|
||||||
|
metaseer:
|
||||||
|
"https://assets.coingecko.com/coins/images/17443/small/metas.PNG?1627863142",
|
||||||
|
only1:
|
||||||
|
"https://assets.coingecko.com/coins/images/17501/small/like-token.png?1628036165",
|
||||||
|
floof:
|
||||||
|
"https://assets.coingecko.com/coins/images/19810/small/FLOOF_logo_200x200.png?1635917291",
|
||||||
|
"nole-npc":
|
||||||
|
"https://assets.coingecko.com/coins/images/19981/small/1EXEFTo6_400x400.jpg?1640251890",
|
||||||
|
"solareum-wallet":
|
||||||
|
"https://assets.coingecko.com/coins/images/20958/small/xsb-200.png?1638141904",
|
||||||
|
"synthetify-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/14835/small/synthetify_token.png?1618611507",
|
||||||
|
mim: "https://assets.coingecko.com/coins/images/19927/small/13988.png?1636323160",
|
||||||
|
raydium:
|
||||||
|
"https://assets.coingecko.com/coins/images/13928/small/PSigc4ie_400x400.jpg?1612875614",
|
||||||
|
mixmarvel:
|
||||||
|
"https://assets.coingecko.com/coins/images/8222/small/8878caf93b1e3b6cfb3b414bda3b5250.png?1613945432",
|
||||||
|
ariadne:
|
||||||
|
"https://assets.coingecko.com/coins/images/19401/small/Frame_5_%287%29_%281%29.png?1635176608",
|
||||||
|
apyswap:
|
||||||
|
"https://assets.coingecko.com/coins/images/14163/small/apys.png?1635831990",
|
||||||
|
xhashtag:
|
||||||
|
"https://assets.coingecko.com/coins/images/20912/small/xtag.png?1637922382",
|
||||||
|
"socean-staked-sol":
|
||||||
|
"https://assets.coingecko.com/coins/images/18468/small/biOTzfxE_400x400.png?1633662119",
|
||||||
|
"bamboo-coin":
|
||||||
|
"https://assets.coingecko.com/coins/images/19620/small/FC0hnduacAAHYFC.png?1635496724",
|
||||||
|
"waggle-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/18696/small/waggle.PNG?1633750177",
|
||||||
|
hapi: "https://assets.coingecko.com/coins/images/14298/small/R9i2HjAL_400x400.jpg?1615332438",
|
||||||
|
sail: "https://assets.coingecko.com/coins/images/16657/small/SAIL.png?1624608515",
|
||||||
|
"lido-staked-sol":
|
||||||
|
"https://assets.coingecko.com/coins/images/18369/small/logo_-_2021-09-15T100934.765.png?1631671781",
|
||||||
|
solrazr:
|
||||||
|
"https://assets.coingecko.com/coins/images/18390/small/Sol-Razr-Logo-TICKER.png?1631759669",
|
||||||
|
samoyedcoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/15051/small/IXeEj5e.png?1619560738",
|
||||||
|
babytigergold:
|
||||||
|
"https://assets.coingecko.com/coins/images/22811/small/logo_babytiger.png?1642658264",
|
||||||
|
"rope-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/14661/small/rope-v6.png?1619606776",
|
||||||
|
"usd-coin":
|
||||||
|
"https://assets.coingecko.com/coins/images/6319/small/USD_Coin_icon.png?1547042389",
|
||||||
|
"grape-2":
|
||||||
|
"https://assets.coingecko.com/coins/images/18149/small/fRsuAlcV_400x400.png?1632437325",
|
||||||
|
"terra-luna":
|
||||||
|
"https://assets.coingecko.com/coins/images/8284/small/luna1557227471663.png?1567147072",
|
||||||
|
"tiger-coin":
|
||||||
|
"https://assets.coingecko.com/coins/images/22681/small/tigerlogo.png?1642407729",
|
||||||
|
bitcoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/1/small/bitcoin.png?1547033579",
|
||||||
|
"woof-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/18319/small/woof-logo-svg-true-solana-radient-blackinside.png?1637655115",
|
||||||
|
bilira:
|
||||||
|
"https://assets.coingecko.com/coins/images/10119/small/JBs9jiXO_400x400.jpg?1642668342",
|
||||||
|
sushi:
|
||||||
|
"https://assets.coingecko.com/coins/images/12271/small/512x512_Logo_no_chop.png?1606986688",
|
||||||
|
"star-atlas":
|
||||||
|
"https://assets.coingecko.com/coins/images/17659/small/Icon_Reverse.png?1628759092",
|
||||||
|
aurory:
|
||||||
|
"https://assets.coingecko.com/coins/images/19324/small/logo.png?1635076945",
|
||||||
|
"avalanche-2":
|
||||||
|
"https://assets.coingecko.com/coins/images/12559/small/coin-round-red.png?1604021818",
|
||||||
|
ethereum:
|
||||||
|
"https://assets.coingecko.com/coins/images/279/small/ethereum.png?1595348880",
|
||||||
|
"battle-of-guardians-share":
|
||||||
|
"https://assets.coingecko.com/coins/images/22285/small/K3hU77wS_400x400.jpg?1641365642",
|
||||||
|
bitsong:
|
||||||
|
"https://assets.coingecko.com/coins/images/5041/small/logo_-_2021-01-10T210801.390.png?1610284134",
|
||||||
|
"blocto-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/18657/small/BLT_token.png?1633082645",
|
||||||
|
"wrapped-usdt":
|
||||||
|
"https://assets.coingecko.com/coins/images/19507/small/wusdt.png?1635315186",
|
||||||
|
renbtc:
|
||||||
|
"https://assets.coingecko.com/coins/images/11370/small/Bitcoin.jpg?1628072791",
|
||||||
|
"gari-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/22615/small/gari.png?1642313087",
|
||||||
|
chainlink:
|
||||||
|
"https://assets.coingecko.com/coins/images/877/small/chainlink-new-logo.png?1547034700",
|
||||||
|
cashcow:
|
||||||
|
"https://assets.coingecko.com/coins/images/19388/small/cropped-cropped-CashCowToken_08.png?1635148053",
|
||||||
|
"3x-long-ethereum-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/10163/small/683JEXMN_400x400_%281%29.png?1576504568",
|
||||||
|
defil:
|
||||||
|
"https://assets.coingecko.com/coins/images/17708/small/defillogo200200.png?1629080381",
|
||||||
|
tether:
|
||||||
|
"https://assets.coingecko.com/coins/images/325/small/Tether-logo.png?1598003707",
|
||||||
|
"ptokens-btc":
|
||||||
|
"https://assets.coingecko.com/coins/images/10805/small/J51iIea.png?1583891599",
|
||||||
|
cropperfinance:
|
||||||
|
"https://assets.coingecko.com/coins/images/17883/small/copperfinance.PNG?1629708744",
|
||||||
|
aldrin:
|
||||||
|
"https://assets.coingecko.com/coins/images/16849/small/Aldrin.png?1629959768",
|
||||||
|
"woo-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/12921/small/w2UiemF__400x400.jpg?1603670367",
|
||||||
|
bonfida:
|
||||||
|
"https://assets.coingecko.com/coins/images/13395/small/fida-dark.png?1608112224",
|
||||||
|
victorum:
|
||||||
|
"https://assets.coingecko.com/coins/images/17391/small/Victorum-logo200X200.png?1627525058",
|
||||||
|
"bull-coin":
|
||||||
|
"https://assets.coingecko.com/coins/images/15975/small/bull_ms.94cd70ff.png?1622525834",
|
||||||
|
"twirl-governance-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/16725/small/Yn1ebvX.png?1624850650",
|
||||||
|
monkeyball:
|
||||||
|
"https://assets.coingecko.com/coins/images/20841/small/monkeyball.png?1639023123",
|
||||||
|
sypool:
|
||||||
|
"https://assets.coingecko.com/coins/images/18518/small/sypool.PNG?1632268218",
|
||||||
|
"foxy-equilibrium":
|
||||||
|
"https://assets.coingecko.com/coins/images/17303/small/cmc200x200.png?1627268759",
|
||||||
|
"squirrel-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/12415/small/transparent_logo200.png?1599690422",
|
||||||
|
genopets:
|
||||||
|
"https://assets.coingecko.com/coins/images/20360/small/gene-token.png?1636945172",
|
||||||
|
goosefx:
|
||||||
|
"https://assets.coingecko.com/coins/images/19793/small/0Kjm9f4.png?1635906737",
|
||||||
|
"solape-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/16930/small/128px-coin.png?1625753550",
|
||||||
|
"galaxy-war":
|
||||||
|
"https://assets.coingecko.com/coins/images/22166/small/e2x7gMJ4_400x400.jpg?1641166277",
|
||||||
|
"1safu":
|
||||||
|
"https://assets.coingecko.com/coins/images/22792/small/145941796-8f7716f4-66bc-4a38-9ad5-441525c3b5b2.png?1642581127",
|
||||||
|
"solpad-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/16368/small/solpad.PNG?1623820231",
|
||||||
|
dexlab:
|
||||||
|
"https://assets.coingecko.com/coins/images/17276/small/4_Secondary_GradientSymbol_DarkLogo.png?1643018984",
|
||||||
|
"solanasail-governance-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/17658/small/logo_GSAIL.png?1628758657",
|
||||||
|
"parasol-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/21551/small/icon.png?1642584584",
|
||||||
|
meanfi:
|
||||||
|
"https://assets.coingecko.com/coins/images/21557/small/89934951.png?1639466364",
|
||||||
|
marinade:
|
||||||
|
"https://assets.coingecko.com/coins/images/18867/small/MNDE.png?1643187748",
|
||||||
|
"mango-markets":
|
||||||
|
"https://assets.coingecko.com/coins/images/14773/small/token-mango.png?1628171237",
|
||||||
|
blockasset:
|
||||||
|
"https://assets.coingecko.com/coins/images/21332/small/blockasset.PNG?1638947864",
|
||||||
|
"parrot-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/18443/small/PRT.png?1634698095",
|
||||||
|
tudabirds:
|
||||||
|
"https://assets.coingecko.com/coins/images/22839/small/_TOvRxfx_400x400.jpg?1642745695",
|
||||||
|
serum:
|
||||||
|
"https://assets.coingecko.com/coins/images/11970/small/serum-logo.png?1597121577",
|
||||||
|
"sunny-aggregator":
|
||||||
|
"https://assets.coingecko.com/coins/images/18039/small/90dbe787-8e5f-473c-b923-fe138a7a30ea.png?1630314924",
|
||||||
|
saber:
|
||||||
|
"https://assets.coingecko.com/coins/images/17162/small/oYs_YFz8_400x400.jpg?1626678457",
|
||||||
|
"wrapped-solana":
|
||||||
|
"https://assets.coingecko.com/coins/images/21629/small/solana.jpg?1639626543",
|
||||||
|
"step-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/14988/small/step.png?1619274762",
|
||||||
|
zoints:
|
||||||
|
"https://assets.coingecko.com/coins/images/20376/small/logo_-_2021-11-15T121641.242.png?1636949811",
|
||||||
|
allbridge:
|
||||||
|
"https://assets.coingecko.com/coins/images/18690/small/abr.png?1640742053",
|
||||||
|
"solchicks-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/20978/small/chicks.png?1638162821",
|
||||||
|
aave: "https://assets.coingecko.com/coins/images/12645/small/AAVE.png?1601374110",
|
||||||
|
kin: "https://assets.coingecko.com/coins/images/959/small/kin.png?1586917032",
|
||||||
|
msol: "https://assets.coingecko.com/coins/images/17752/small/mSOL.png?1644541955",
|
||||||
|
orca: "https://assets.coingecko.com/coins/images/17547/small/Orca_Logo.png?1628781615",
|
||||||
|
solanium:
|
||||||
|
"https://assets.coingecko.com/coins/images/15816/small/token-icon.png?1621981387",
|
||||||
|
"tiki-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/16427/small/60cbd8fd912298ca60e1fd7e_logo_TIKI_200_square.png?1623995319",
|
||||||
|
"coin-discovery":
|
||||||
|
"https://assets.coingecko.com/coins/images/18839/small/IdvWAhot_400x400.jpg?1633572605",
|
||||||
|
"huobi-btc":
|
||||||
|
"https://assets.coingecko.com/coins/images/12407/small/Unknown-5.png?1599624896",
|
||||||
|
rai: "https://assets.coingecko.com/coins/images/14004/small/RAI-logo-coin.png?1613592334",
|
||||||
|
"coin-capsule":
|
||||||
|
"https://assets.coingecko.com/coins/images/15921/small/e55393fa-7b4d-40f5-9f36-9a8a6bdcb570.png?1622430581",
|
||||||
|
"wrapped-ecomi":
|
||||||
|
"https://assets.coingecko.com/coins/images/14675/small/ecomi.jpg?1617689100",
|
||||||
|
tomoe:
|
||||||
|
"https://assets.coingecko.com/coins/images/12646/small/tomoe_logo.png?1601377449",
|
||||||
|
math: "https://assets.coingecko.com/coins/images/11335/small/2020-05-19-token-200.png?1589940590",
|
||||||
|
"spell-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/15861/small/abracadabra-3.png?1622544862",
|
||||||
|
"mirror-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/13295/small/mirror_logo_transparent.png?1611554658",
|
||||||
|
"governance-ohm":
|
||||||
|
"https://assets.coingecko.com/coins/images/21129/small/token_wsOHM_logo.png?1638764900",
|
||||||
|
wasder:
|
||||||
|
"https://assets.coingecko.com/coins/images/15374/small/wasderlogo200x200.png?1620691729",
|
||||||
|
"basic-attention-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/677/small/basic-attention-token.png?1547034427",
|
||||||
|
decentraland:
|
||||||
|
"https://assets.coingecko.com/coins/images/878/small/decentraland-mana.png?1550108745",
|
||||||
|
"1inch":
|
||||||
|
"https://assets.coingecko.com/coins/images/13469/small/1inch-token.png?1608803028",
|
||||||
|
gala: "https://assets.coingecko.com/coins/images/12493/small/GALA-COINGECKO.png?1600233435",
|
||||||
|
audius:
|
||||||
|
"https://assets.coingecko.com/coins/images/12913/small/AudiusCoinLogo_2x.png?1603425727",
|
||||||
|
ageur:
|
||||||
|
"https://assets.coingecko.com/coins/images/19479/small/agEUR.png?1635283566",
|
||||||
|
usdk: "https://assets.coingecko.com/coins/images/8824/small/usdk.png?1563418517",
|
||||||
|
bancor:
|
||||||
|
"https://assets.coingecko.com/coins/images/736/small/bancor-bnt.png?1628822309",
|
||||||
|
uniswap:
|
||||||
|
"https://assets.coingecko.com/coins/images/12504/small/uniswap-uni.png?1600306604",
|
||||||
|
ovr: "https://assets.coingecko.com/coins/images/13429/small/ovr_logo.png?1608518911",
|
||||||
|
augur:
|
||||||
|
"https://assets.coingecko.com/coins/images/309/small/REP.png?1596339859",
|
||||||
|
"wrapped-bitcoin":
|
||||||
|
"https://assets.coingecko.com/coins/images/7598/small/wrapped_bitcoin_wbtc.png?1548822744",
|
||||||
|
jpyc: "https://assets.coingecko.com/coins/images/17277/small/WoZ8rruL_400x400.png?1627016492",
|
||||||
|
"ufo-gaming":
|
||||||
|
"https://assets.coingecko.com/coins/images/16801/small/ufo.png?1644048038",
|
||||||
|
"dds-store":
|
||||||
|
"https://assets.coingecko.com/coins/images/13946/small/11qbAbzb_400x400.png?1613172588",
|
||||||
|
"hlth-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/18637/small/hlth.png?1639728357",
|
||||||
|
aleph:
|
||||||
|
"https://assets.coingecko.com/coins/images/11676/small/Monochram-aleph.png?1608483725",
|
||||||
|
hex: "https://assets.coingecko.com/coins/images/10103/small/HEX-logo.png?1575942673",
|
||||||
|
"cream-2":
|
||||||
|
"https://assets.coingecko.com/coins/images/11976/small/Cream.png?1596593418",
|
||||||
|
throne:
|
||||||
|
"https://assets.coingecko.com/coins/images/16965/small/aXhD3i_g_400x400.jpg?1625804145",
|
||||||
|
"angle-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/19060/small/ANGLE_Token_Logo.png?1635281291",
|
||||||
|
rune: "https://assets.coingecko.com/coins/images/15606/small/rune-200x200.png?1621315121",
|
||||||
|
"akita-inu":
|
||||||
|
"https://assets.coingecko.com/coins/images/14115/small/logo_%282%29.png?1644913173",
|
||||||
|
ramp: "https://assets.coingecko.com/coins/images/12837/small/RAMP-Logo-v2-1000pxsq.png?1617952606",
|
||||||
|
"frax-share":
|
||||||
|
"https://assets.coingecko.com/coins/images/13423/small/frax_share.png?1608478989",
|
||||||
|
chiliz:
|
||||||
|
"https://assets.coingecko.com/coins/images/8834/small/Chiliz.png?1561970540",
|
||||||
|
parsiq:
|
||||||
|
"https://assets.coingecko.com/coins/images/11973/small/DsNgK0O.png?1596590280",
|
||||||
|
"elite-swap":
|
||||||
|
"https://assets.coingecko.com/coins/images/13715/small/logo_-_2021-01-20T105016.992.png?1611111027",
|
||||||
|
kleekai:
|
||||||
|
"https://assets.coingecko.com/coins/images/15548/small/Klee-Kai-Logo.png?1628258448",
|
||||||
|
olympus:
|
||||||
|
"https://assets.coingecko.com/coins/images/14483/small/token_OHM_%281%29.png?1628311611",
|
||||||
|
"the-sandbox":
|
||||||
|
"https://assets.coingecko.com/coins/images/12129/small/sandbox_logo.jpg?1597397942",
|
||||||
|
opendao:
|
||||||
|
"https://assets.coingecko.com/coins/images/21956/small/fo42wXI6_400x400.jpg?1640373810",
|
||||||
|
chain:
|
||||||
|
"https://assets.coingecko.com/coins/images/19678/small/Chain_icon.png?1635741399",
|
||||||
|
civic:
|
||||||
|
"https://assets.coingecko.com/coins/images/788/small/Civic-logo-blue.png?1636393120",
|
||||||
|
"hot-cross":
|
||||||
|
"https://assets.coingecko.com/coins/images/15706/small/Hotcross.png?1632197570",
|
||||||
|
"pax-gold":
|
||||||
|
"https://assets.coingecko.com/coins/images/9519/small/paxg.PNG?1568542565",
|
||||||
|
"gemma-extending-tech":
|
||||||
|
"https://assets.coingecko.com/coins/images/12226/small/200.png?1643188059",
|
||||||
|
"the-4th-pillar":
|
||||||
|
"https://assets.coingecko.com/coins/images/3434/small/four-ticker-2021-256x256.png?1617702287",
|
||||||
|
ridotto:
|
||||||
|
"https://assets.coingecko.com/coins/images/18671/small/200x200_%2832%29.png?1632875527",
|
||||||
|
chronobank:
|
||||||
|
"https://assets.coingecko.com/coins/images/604/small/time-32x32.png?1627130666",
|
||||||
|
hxro: "https://assets.coingecko.com/coins/images/7805/small/Hxro_Profile_Transparent.png?1622443308",
|
||||||
|
fantom:
|
||||||
|
"https://assets.coingecko.com/coins/images/4001/small/Fantom.png?1558015016",
|
||||||
|
"binance-usd":
|
||||||
|
"https://assets.coingecko.com/coins/images/9576/small/BUSD.png?1568947766",
|
||||||
|
"ftx-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/9026/small/F.png?1609051564",
|
||||||
|
vlaunch:
|
||||||
|
"https://assets.coingecko.com/coins/images/20838/small/vlaunch_22.png?1637738535",
|
||||||
|
contentos:
|
||||||
|
"https://assets.coingecko.com/coins/images/8379/small/4036.png?1561085375",
|
||||||
|
"lido-dao":
|
||||||
|
"https://assets.coingecko.com/coins/images/13573/small/Lido_DAO.png?1609873644",
|
||||||
|
"jokermanor-metaverse":
|
||||||
|
"https://assets.coingecko.com/coins/images/20556/small/14732.png?1637208904",
|
||||||
|
"pancake-games":
|
||||||
|
"https://assets.coingecko.com/coins/images/20217/small/6oc-L2UC_400x400.png?1636671365",
|
||||||
|
launchpool:
|
||||||
|
"https://assets.coingecko.com/coins/images/14041/small/dGUvV0HQ_400x400.jpg?1613976219",
|
||||||
|
pixelverse:
|
||||||
|
"https://assets.coingecko.com/coins/images/19934/small/pixelverse.PNG?1636325521",
|
||||||
|
"poolz-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/13679/small/poolz_logo.png?1610806091",
|
||||||
|
dai: "https://assets.coingecko.com/coins/images/9956/small/4943.png?1636636734",
|
||||||
|
million:
|
||||||
|
"https://assets.coingecko.com/coins/images/16825/small/logo200x200.png?1625834139",
|
||||||
|
gene: "https://assets.coingecko.com/coins/images/14145/small/logo.a60a0c80_%281%29.png?1614653629",
|
||||||
|
"render-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/11636/small/rndr.png?1638840934",
|
||||||
|
"nord-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/13630/small/nord.jpg?1610465136",
|
||||||
|
"genaro-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/1361/small/genaro-network.png?1547035387",
|
||||||
|
"bird-money":
|
||||||
|
"https://assets.coingecko.com/coins/images/13260/small/favicon-180x180.png?1611546646",
|
||||||
|
"anchor-beth-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/21002/small/bETH.png?1638187691",
|
||||||
|
xsgd: "https://assets.coingecko.com/coins/images/12832/small/StraitsX_Singapore_Dollar_%28XSGD%29_Token_Logo.png?1633936813",
|
||||||
|
"orion-money":
|
||||||
|
"https://assets.coingecko.com/coins/images/18630/small/YtrqPIWc.png?1632710781",
|
||||||
|
xdefi:
|
||||||
|
"https://assets.coingecko.com/coins/images/19524/small/xdefi.png?1637917251",
|
||||||
|
"metaverse-index":
|
||||||
|
"https://assets.coingecko.com/coins/images/14684/small/MVI_logo.png?1617776444",
|
||||||
|
"dogelon-mars":
|
||||||
|
"https://assets.coingecko.com/coins/images/14962/small/6GxcPRo3_400x400.jpg?1619157413",
|
||||||
|
"xcad-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/15857/small/xcad.PNG?1622164789",
|
||||||
|
sarcophagus:
|
||||||
|
"https://assets.coingecko.com/coins/images/15091/small/E2S2-CcUcAAyNxD.jpeg?1622519884",
|
||||||
|
xsigma:
|
||||||
|
"https://assets.coingecko.com/coins/images/14090/small/logo_128.png?1619775781",
|
||||||
|
hedget:
|
||||||
|
"https://assets.coingecko.com/coins/images/12453/small/Hedget.png?1599944809",
|
||||||
|
constitutiondao:
|
||||||
|
"https://assets.coingecko.com/coins/images/20612/small/GN_UVm3d_400x400.jpg?1637294355",
|
||||||
|
"matic-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/4713/small/matic-token-icon.png?1624446912",
|
||||||
|
"wrapped-steth":
|
||||||
|
"https://assets.coingecko.com/coins/images/18834/small/wstETH.png?1633565443",
|
||||||
|
polkastarter:
|
||||||
|
"https://assets.coingecko.com/coins/images/12648/small/polkastarter.png?1609813702",
|
||||||
|
frax: "https://assets.coingecko.com/coins/images/13422/small/frax_logo.png?1608476506",
|
||||||
|
upbots:
|
||||||
|
"https://assets.coingecko.com/coins/images/12476/small/UBXT.png?1600132967",
|
||||||
|
"keep-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/3373/small/IuNzUb5b_400x400.jpg?1589526336",
|
||||||
|
"reserve-rights-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/8365/small/rsr.png?1637983320",
|
||||||
|
"swag-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/12805/small/photo_2020-10-14_23.17.02.jpeg?1602688642",
|
||||||
|
opium:
|
||||||
|
"https://assets.coingecko.com/coins/images/13758/small/opium-token-black_%281%29.png?1611767960",
|
||||||
|
akropolis:
|
||||||
|
"https://assets.coingecko.com/coins/images/3328/small/Akropolis.png?1547037929",
|
||||||
|
swipe:
|
||||||
|
"https://assets.coingecko.com/coins/images/9368/small/swipe.png?1566792311",
|
||||||
|
dydx: "https://assets.coingecko.com/coins/images/17500/small/hjnIm9bV.jpg?1628009360",
|
||||||
|
"shiba-inu":
|
||||||
|
"https://assets.coingecko.com/coins/images/11939/small/shiba.png?1622619446",
|
||||||
|
"magic-internet-money":
|
||||||
|
"https://assets.coingecko.com/coins/images/16786/small/mimlogopng.png?1624979612",
|
||||||
|
artem:
|
||||||
|
"https://assets.coingecko.com/coins/images/21998/small/ARTM_Logo_MAIN_%281%29.png?1644469331",
|
||||||
|
"binance-wrapped-btc":
|
||||||
|
"https://assets.coingecko.com/coins/images/14867/small/binance-btc_32.png?1618814666",
|
||||||
|
gaj: "https://assets.coingecko.com/coins/images/15257/small/logo200x200.png?1629887093",
|
||||||
|
quiztok:
|
||||||
|
"https://assets.coingecko.com/coins/images/8208/small/QTCON.png?1587543372",
|
||||||
|
"bxmi-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/20859/small/1QE9Pge.png?1637803118",
|
||||||
|
"redfox-labs-2":
|
||||||
|
"https://assets.coingecko.com/coins/images/12956/small/rfox.png?1642926902",
|
||||||
|
"wrapped-ust":
|
||||||
|
"https://assets.coingecko.com/coins/images/15462/small/ust.png?1620910058",
|
||||||
|
lunachow:
|
||||||
|
"https://assets.coingecko.com/coins/images/18805/small/J-MwYfhD_400x400.jpg?1633475157",
|
||||||
|
terrausd:
|
||||||
|
"https://assets.coingecko.com/coins/images/12681/small/UST.png?1601612407",
|
||||||
|
"celsius-degree-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/3263/small/CEL_logo.png?1609598753",
|
||||||
|
"my-neighbor-alice":
|
||||||
|
"https://assets.coingecko.com/coins/images/14375/small/alice_logo.jpg?1615782968",
|
||||||
|
"yield-optimization-platform":
|
||||||
|
"https://assets.coingecko.com/coins/images/13678/small/J7zykPx.jpg?1610802162",
|
||||||
|
"staked-ether":
|
||||||
|
"https://assets.coingecko.com/coins/images/13442/small/steth_logo.png?1608607546",
|
||||||
|
"lua-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/12627/small/Screenshot_2020-09-28_at_6.24.59_PM.jpg?1601288721",
|
||||||
|
"amy-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/18719/small/9oSy6bTl_400x400.png?1633127387",
|
||||||
|
binancecoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/825/small/bnb-icon2_2x.png?1644979850",
|
||||||
|
"axie-infinity":
|
||||||
|
"https://assets.coingecko.com/coins/images/13029/small/axie_infinity_logo.png?1604471082",
|
||||||
|
"ethernity-chain":
|
||||||
|
"https://assets.coingecko.com/coins/images/14238/small/ethernity_logo.png?1615189750",
|
||||||
|
"perpetual-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/12381/small/60d18e06844a844ad75901a9_mark_only_03.png?1628674771",
|
||||||
|
"compound-governance-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/10775/small/COMP.png?1592625425",
|
||||||
|
weth: "https://assets.coingecko.com/coins/images/2518/small/weth.png?1628852295",
|
||||||
|
"ethereum-name-service":
|
||||||
|
"https://assets.coingecko.com/coins/images/19785/small/acatxTm8_400x400.jpg?1635850140",
|
||||||
|
erc20:
|
||||||
|
"https://assets.coingecko.com/coins/images/1141/small/0c213e0a1ee44bd8a3c952ffc5bc5a45.png?1628771346",
|
||||||
|
"chain-games":
|
||||||
|
"https://assets.coingecko.com/coins/images/12257/small/chain-logo-centered-500x500.png?1599617244",
|
||||||
|
"interest-bearing-bitcoin":
|
||||||
|
"https://assets.coingecko.com/coins/images/15500/small/ibbtc.png?1621077589",
|
||||||
|
"free-novak":
|
||||||
|
"https://assets.coingecko.com/coins/images/23370/small/logo_%282%29.png?1643955421",
|
||||||
|
"the-graph":
|
||||||
|
"https://assets.coingecko.com/coins/images/13397/small/Graph_Token.png?1608145566",
|
||||||
|
"vega-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/15870/small/vega.PNG?1622178218",
|
||||||
|
"smooth-love-potion":
|
||||||
|
"https://assets.coingecko.com/coins/images/10366/small/SLP.png?1578640057",
|
||||||
|
torg: "https://assets.coingecko.com/coins/images/17596/small/TORG_Logo_200x200.png?1628586056",
|
||||||
|
"terra-virtua-kolect":
|
||||||
|
"https://assets.coingecko.com/coins/images/13330/small/CoinGLogo.png?1607507042",
|
||||||
|
"wrapped-terra":
|
||||||
|
"https://assets.coingecko.com/coins/images/13628/small/wluna.png?1610448334",
|
||||||
|
"zam-io":
|
||||||
|
"https://assets.coingecko.com/coins/images/19522/small/zam.png?1635324134",
|
||||||
|
covalent:
|
||||||
|
"https://assets.coingecko.com/coins/images/14168/small/covalent-cqt.png?1624545218",
|
||||||
|
ampleforth:
|
||||||
|
"https://assets.coingecko.com/coins/images/4708/small/Ampleforth.png?1561684250",
|
||||||
|
"shield-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/15813/small/3FYKlPka_400x400.png?1621980007",
|
||||||
|
cindicator:
|
||||||
|
"https://assets.coingecko.com/coins/images/1006/small/cindicator.png?1547034913",
|
||||||
|
"curve-dao-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/12124/small/Curve.png?1597369484",
|
||||||
|
"safe-coin":
|
||||||
|
"https://assets.coingecko.com/coins/images/4938/small/safe-coin-logo.png?1547040363",
|
||||||
|
adapad:
|
||||||
|
"https://assets.coingecko.com/coins/images/18273/small/EhSqPTtG_400x400.jpg?1631181091",
|
||||||
|
"crowny-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/14958/small/crowny-icon-rounded_2x.png?1619147225",
|
||||||
|
"gera-coin":
|
||||||
|
"https://assets.coingecko.com/coins/images/13686/small/GeraCoin_Logo-icon-1000px.png?1610919942",
|
||||||
|
husd: "https://assets.coingecko.com/coins/images/9567/small/HUSD.jpg?1568889385",
|
||||||
|
"feisty-doge-nft":
|
||||||
|
"https://assets.coingecko.com/coins/images/17834/small/doge-fractionalized.png?1629390495",
|
||||||
|
curate:
|
||||||
|
"https://assets.coingecko.com/coins/images/13327/small/400x400_%281%29_%283%29_%282%29.png?1613998208",
|
||||||
|
banana:
|
||||||
|
"https://assets.coingecko.com/coins/images/17521/small/bananaa.png?1628091607",
|
||||||
|
"injective-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/12882/small/Secondary_Symbol.png?1628233237",
|
||||||
|
pillar:
|
||||||
|
"https://assets.coingecko.com/coins/images/809/small/v2logo-1.png?1624906282",
|
||||||
|
bitspawn:
|
||||||
|
"https://assets.coingecko.com/coins/images/16513/small/token_logo.png?1631603192",
|
||||||
|
defire:
|
||||||
|
"https://assets.coingecko.com/coins/images/15722/small/defire.PNG?1621635373",
|
||||||
|
nftlaunch:
|
||||||
|
"https://assets.coingecko.com/coins/images/18140/small/nftl.PNG?1630652662",
|
||||||
|
pontoon:
|
||||||
|
"https://assets.coingecko.com/coins/images/19575/small/pontoon.PNG?1635467899",
|
||||||
|
chronologic:
|
||||||
|
"https://assets.coingecko.com/coins/images/951/small/Chronologic-network.png?1547034815",
|
||||||
|
everid:
|
||||||
|
"https://assets.coingecko.com/coins/images/5209/small/Everest.jpg?1628042930",
|
||||||
|
botxcoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/6827/small/botx.jpg?1548317786",
|
||||||
|
"ice-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/14586/small/ice.png?1617188825",
|
||||||
|
charli3:
|
||||||
|
"https://assets.coingecko.com/coins/images/15052/small/Charli3-Profile-Icon-1.png?1642643567",
|
||||||
|
"rally-2":
|
||||||
|
"https://assets.coingecko.com/coins/images/12843/small/image.png?1611212077",
|
||||||
|
enjincoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/1102/small/enjin-coin-logo.png?1547035078",
|
||||||
|
"frontier-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/12479/small/frontier_logo.png?1600145472",
|
||||||
|
essentia:
|
||||||
|
"https://assets.coingecko.com/coins/images/2483/small/Essentia-token.jpg?1547036604",
|
||||||
|
orbs: "https://assets.coingecko.com/coins/images/4630/small/Orbs.jpg?1547039896",
|
||||||
|
"nexus-governance-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/19080/small/aK3V5I56_400x400.jpg?1634304970",
|
||||||
|
playnity:
|
||||||
|
"https://assets.coingecko.com/coins/images/21479/small/ply.png?1639651574",
|
||||||
|
starterra:
|
||||||
|
"https://assets.coingecko.com/coins/images/17715/small/starterra-logo.png?1629084125",
|
||||||
|
"mirrored-tesla":
|
||||||
|
"https://assets.coingecko.com/coins/images/13644/small/mirror_logo_transparent.png?1611565294",
|
||||||
|
"anchor-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/14420/small/anchor_protocol_logo.jpg?1615965420",
|
||||||
|
"mirrored-amazon":
|
||||||
|
"https://assets.coingecko.com/coins/images/13646/small/mirror_logo_transparent.png?1611565645",
|
||||||
|
bitlocus:
|
||||||
|
"https://assets.coingecko.com/coins/images/20913/small/btl.png?1637922710",
|
||||||
|
"mirrored-spdr-s-p-500":
|
||||||
|
"https://assets.coingecko.com/coins/images/21088/small/mir.png?1638323591",
|
||||||
|
"mirrored-airbnb":
|
||||||
|
"https://assets.coingecko.com/coins/images/14022/small/mirror_logo_transparent.png?1613719600",
|
||||||
|
anchorust:
|
||||||
|
"https://assets.coingecko.com/coins/images/21097/small/aust.png?1638324579",
|
||||||
|
"mirrored-netflix":
|
||||||
|
"https://assets.coingecko.com/coins/images/13643/small/mirror_logo_transparent.png?1611565277",
|
||||||
|
"pylon-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/16859/small/pylon_logo.png?1625466331",
|
||||||
|
"mirrored-apple":
|
||||||
|
"https://assets.coingecko.com/coins/images/13514/small/mirror_logo_transparent.png?1611564758",
|
||||||
|
secret:
|
||||||
|
"https://assets.coingecko.com/coins/images/11871/small/Secret.png?1595520186",
|
||||||
|
"ethereum-meta":
|
||||||
|
"https://assets.coingecko.com/coins/images/6586/small/ethereum-meta.png?1548125409",
|
||||||
|
cake: "https://assets.coingecko.com/coins/images/21639/small/cake.png?1639630973",
|
||||||
|
"radio-caca":
|
||||||
|
"https://assets.coingecko.com/coins/images/17841/small/ez44_BSs_400x400.jpg?1629464170",
|
||||||
|
"polychain-monsters":
|
||||||
|
"https://assets.coingecko.com/coins/images/14604/small/polkamon.png?1617238350",
|
||||||
|
"panda-dao":
|
||||||
|
"https://assets.coingecko.com/coins/images/14295/small/logo_Panda_Dao.png?1617277854",
|
||||||
|
lasereyes:
|
||||||
|
"https://assets.coingecko.com/coins/images/22597/small/lsr.png?1643524878",
|
||||||
|
"wall-street-bets-dapp":
|
||||||
|
"https://assets.coingecko.com/coins/images/15093/small/Pe1mrDu.png?1629882480",
|
||||||
|
"binance-eth":
|
||||||
|
"https://assets.coingecko.com/coins/images/13804/small/Binnace.png?1611997829",
|
||||||
|
soldoge:
|
||||||
|
"https://assets.coingecko.com/coins/images/19746/small/2L4aX1r.png?1635822424",
|
||||||
|
"odin-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/14934/small/ODIN_iso_black.png?1619076975",
|
||||||
|
recharge:
|
||||||
|
"https://assets.coingecko.com/coins/images/18120/small/thecharge.PNG?1630559768",
|
||||||
|
mysterium:
|
||||||
|
"https://assets.coingecko.com/coins/images/757/small/mysterium.png?1547034503",
|
||||||
|
"plant-vs-undead-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/17461/small/token-200x200.png?1627883446",
|
||||||
|
insurace:
|
||||||
|
"https://assets.coingecko.com/coins/images/14226/small/insur.png?1615124622",
|
||||||
|
cardano:
|
||||||
|
"https://assets.coingecko.com/coins/images/975/small/cardano.png?1547034860",
|
||||||
|
echoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/9354/small/L32_KzNQ_400x400.jpg?1566513096",
|
||||||
|
solana:
|
||||||
|
"https://assets.coingecko.com/coins/images/4128/small/solana.png?1640133422",
|
||||||
|
litecoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/2/small/litecoin.png?1547033580",
|
||||||
|
wolfsafepoorpeople:
|
||||||
|
"https://assets.coingecko.com/coins/images/17090/small/wspplogo.png?1626187594",
|
||||||
|
"spongebob-square":
|
||||||
|
"https://assets.coingecko.com/coins/images/22772/small/Spnge.png?1642576286",
|
||||||
|
"globaltrustfund-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/11817/small/gtf.png?1594679456",
|
||||||
|
"trust-wallet-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/11085/small/Trust.png?1588062702",
|
||||||
|
"crypto-fight-club":
|
||||||
|
"https://assets.coingecko.com/coins/images/21695/small/zGwwAgL.png?1639721544",
|
||||||
|
ztcoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/6566/small/ztcoin.jpg?1547042777",
|
||||||
|
wraith:
|
||||||
|
"https://assets.coingecko.com/coins/images/18099/small/LOGOTRANS-1.png?1630475109",
|
||||||
|
investin:
|
||||||
|
"https://assets.coingecko.com/coins/images/15588/small/ivn_logo.png?1621267247",
|
||||||
|
psyoptions:
|
||||||
|
"https://assets.coingecko.com/coins/images/22784/small/download.png?1642580392",
|
||||||
|
polkadot:
|
||||||
|
"https://assets.coingecko.com/coins/images/12171/small/polkadot.png?1639712644",
|
||||||
|
"binance-bitcoin":
|
||||||
|
"https://assets.coingecko.com/coins/images/14108/small/Binance-bitcoin.png?1617332330",
|
||||||
|
shirtum:
|
||||||
|
"https://assets.coingecko.com/coins/images/16955/small/4fWlpC0.png?1625794164",
|
||||||
|
"planet-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/15710/small/aqua-icon.png?1621583770",
|
||||||
|
"musk-metaverse":
|
||||||
|
"https://assets.coingecko.com/coins/images/21822/small/Logo-Symbol-kh-ng-n-n.png?1640075758",
|
||||||
|
"oly-sport":
|
||||||
|
"https://assets.coingecko.com/coins/images/19930/small/oly_sport.PNG?1636323685",
|
||||||
|
"wrapped-avax":
|
||||||
|
"https://assets.coingecko.com/coins/images/15075/small/wrapped-avax.png?1629873618",
|
||||||
|
safemoon:
|
||||||
|
"https://assets.coingecko.com/coins/images/14362/small/174x174-white.png?1617174846",
|
||||||
|
hashpanda:
|
||||||
|
"https://assets.coingecko.com/coins/images/15903/small/logo_-_2021-05-31T060013.983.png?1622412025",
|
||||||
|
benqi:
|
||||||
|
"https://assets.coingecko.com/coins/images/16362/small/GergDDN3_400x400.jpg?1644984441",
|
||||||
|
"vent-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/17925/small/Artboard_29.png?1629804982",
|
||||||
|
gemguardian:
|
||||||
|
"https://assets.coingecko.com/coins/images/18614/small/gemg.PNG?1632697389",
|
||||||
|
nuls: "https://assets.coingecko.com/coins/images/1053/small/Nuls.png?1556868153",
|
||||||
|
openocean:
|
||||||
|
"https://assets.coingecko.com/coins/images/17014/small/ooe_log.png?1626074195",
|
||||||
|
synchrony:
|
||||||
|
"https://assets.coingecko.com/coins/images/19308/small/SYNCHRONY-LOGO.png?1634973091",
|
||||||
|
biswap:
|
||||||
|
"https://assets.coingecko.com/coins/images/16845/small/biswap.png?1625388985",
|
||||||
|
iotex:
|
||||||
|
"https://assets.coingecko.com/coins/images/3334/small/iotex-logo.png?1547037941",
|
||||||
|
"dogemon-go":
|
||||||
|
"https://assets.coingecko.com/coins/images/17480/small/dogemongo.PNG?1627950869",
|
||||||
|
nothing:
|
||||||
|
"https://assets.coingecko.com/coins/images/16090/small/Gecko-200x200.png?1624544349",
|
||||||
|
coin98:
|
||||||
|
"https://assets.coingecko.com/coins/images/17117/small/logo.png?1626412904",
|
||||||
|
"numbers-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/20495/small/5J3RAUO2_400x400.jpg?1637131666",
|
||||||
|
maticverse:
|
||||||
|
"https://assets.coingecko.com/coins/images/18403/small/A0782-F05-535-C-45-C8-BE4-F-FEBB4-B8-B5933.jpg?1631792934",
|
||||||
|
dogecoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/5/small/dogecoin.png?1547792256",
|
||||||
|
wbnb: "https://assets.coingecko.com/coins/images/12591/small/binance-coin-logo.png?1600947313",
|
||||||
|
idefiyieldprotocol:
|
||||||
|
"https://assets.coingecko.com/coins/images/21976/small/i-DYP-Logo-1.png?1640570294",
|
||||||
|
catzcoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/15519/small/MX0hFr7.jpeg?1621118815",
|
||||||
|
"lucky-lion":
|
||||||
|
"https://assets.coingecko.com/coins/images/18712/small/lucky-token-200px.png?1633079262",
|
||||||
|
infinitup:
|
||||||
|
"https://assets.coingecko.com/coins/images/18890/small/fc_qo2M7_400x400.jpg?1633749805",
|
||||||
|
"baby-doge-coin":
|
||||||
|
"https://assets.coingecko.com/coins/images/16125/small/Baby_Doge.png?1623044048",
|
||||||
|
"safuyield-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/17021/small/safuyield.png?1626098281",
|
||||||
|
"biconomy-exchange-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/18198/small/mGky0OOh_400x400.jpg?1630965301",
|
||||||
|
"green-shiba-inu":
|
||||||
|
"https://assets.coingecko.com/coins/images/15649/small/inu-logo-new-200x200.png?1625578449",
|
||||||
|
"beefy-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/12704/small/token.png?1601876182",
|
||||||
|
"orion-protocol":
|
||||||
|
"https://assets.coingecko.com/coins/images/11841/small/orion_logo.png?1594943318",
|
||||||
|
catecoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/15364/small/logo.png?1620647627",
|
||||||
|
rougecoin:
|
||||||
|
"https://assets.coingecko.com/coins/images/14621/small/rougecoin.png?1617265377",
|
||||||
|
"token-pocket":
|
||||||
|
"https://assets.coingecko.com/coins/images/7603/small/_E6sbg1g_400x400.jpg?1548828066",
|
||||||
|
starlaunch:
|
||||||
|
"https://assets.coingecko.com/coins/images/20109/small/OP3eksDQ_400x400.png?1636513478",
|
||||||
|
ontology:
|
||||||
|
"https://assets.coingecko.com/coins/images/3447/small/ONT.png?1583481820",
|
||||||
|
chi: "https://assets.coingecko.com/coins/images/20130/small/sIuRXww.png?1636528063",
|
||||||
|
wmatic:
|
||||||
|
"https://assets.coingecko.com/coins/images/14073/small/matic.png?1628852392",
|
||||||
|
"aave-polygon-usdc":
|
||||||
|
"https://assets.coingecko.com/coins/images/17249/small/amUSDC_2x.png?1626941306",
|
||||||
|
"data-economy-index":
|
||||||
|
"https://assets.coingecko.com/coins/images/18500/small/data_32.png?1632209427",
|
||||||
|
ispolink:
|
||||||
|
"https://assets.coingecko.com/coins/images/15283/small/isolink.PNG?1620352267",
|
||||||
|
celo: "https://assets.coingecko.com/coins/images/11090/small/icon-celo-CELO-color-500.png?1592293590",
|
||||||
|
"saitama-inu":
|
||||||
|
"https://assets.coingecko.com/coins/images/16353/small/Capture.PNG?1632126703",
|
||||||
|
"true-usd":
|
||||||
|
"https://assets.coingecko.com/coins/images/3449/small/tusd.png?1618395665",
|
||||||
|
"eagonswap-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/20431/small/IMG-20210912-WA0003.jpg?1637035180",
|
||||||
|
easyfi:
|
||||||
|
"https://assets.coingecko.com/coins/images/12742/small/Logo_Icon.png?1624471467",
|
||||||
|
streamr:
|
||||||
|
"https://assets.coingecko.com/coins/images/17869/small/DATA_new_symbol_3x.png?1629692324",
|
||||||
|
"internet-node-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/2519/small/int-logo-red-transparent_200x200.png?1617251612",
|
||||||
|
"0xmonero":
|
||||||
|
"https://assets.coingecko.com/coins/images/11035/small/0xmnr.PNG?1587357680",
|
||||||
|
one: "https://assets.coingecko.com/coins/images/4960/small/Screenshot_39.png?1561103318",
|
||||||
|
"gaia-everworld":
|
||||||
|
"https://assets.coingecko.com/coins/images/19629/small/gaia_icon_new.png?1637559277",
|
||||||
|
quick:
|
||||||
|
"https://assets.coingecko.com/coins/images/13970/small/1_pOU6pBMEmiL-ZJVb0CYRjQ.png?1613386659",
|
||||||
|
"tixl-new":
|
||||||
|
"https://assets.coingecko.com/coins/images/12432/small/Tixl-Logo-200-transparent.png?1610248504",
|
||||||
|
"hakka-finance":
|
||||||
|
"https://assets.coingecko.com/coins/images/12163/small/Hakka-icon.png?1597746776",
|
||||||
|
"aurora-dao":
|
||||||
|
"https://assets.coingecko.com/coins/images/2565/small/logomark-purple-286x286.png?1638362736",
|
||||||
|
mimatic:
|
||||||
|
"https://assets.coingecko.com/coins/images/15264/small/mimatic-red.png?1620281018",
|
||||||
|
sifchain:
|
||||||
|
"https://assets.coingecko.com/coins/images/14044/small/EROWAN.png?1614656300",
|
||||||
|
"polygon-ecosystem-index":
|
||||||
|
"https://assets.coingecko.com/coins/images/19270/small/amun-peco.png?1634868167",
|
||||||
|
"iron-titanium-token":
|
||||||
|
"https://assets.coingecko.com/coins/images/16031/small/titan.png?1636080284",
|
||||||
|
boozedoge:
|
||||||
|
"https://assets.coingecko.com/coins/images/18852/small/Booze-Logo-CMC.png?1633592459",
|
||||||
|
banano:
|
||||||
|
"https://assets.coingecko.com/coins/images/6226/small/banano-transparent.png?1619589798",
|
||||||
|
tryhards:
|
||||||
|
"https://assets.coingecko.com/coins/images/18624/small/Q22nU_z4_400x400.jpg?1632702444",
|
||||||
|
"dragons-quick":
|
||||||
|
"https://assets.coingecko.com/coins/images/15185/small/quickswap.png?1620044811",
|
||||||
|
"wrapped-memory":
|
||||||
|
"https://assets.coingecko.com/coins/images/22392/small/wmemo.png?1641792100",
|
||||||
|
joe: "https://assets.coingecko.com/coins/images/17569/small/joe_200x200.png?1628497750",
|
||||||
|
livepeer:
|
||||||
|
"https://assets.coingecko.com/coins/images/7137/small/logo-circle-green.png?1619593365",
|
||||||
|
"celer-network":
|
||||||
|
"https://assets.coingecko.com/coins/images/4379/small/Celr.png?1554705437",
|
||||||
|
};
|
|
@ -497,6 +497,8 @@ export const COVALENT_GET_TOKENS_URL = (
|
||||||
nft ? "&nft=true" : ""
|
nft ? "&nft=true" : ""
|
||||||
}${noNftMetadata ? "&no-nft-fetch=true" : ""}`;
|
}${noNftMetadata ? "&no-nft-fetch=true" : ""}`;
|
||||||
};
|
};
|
||||||
|
export const TVL_URL =
|
||||||
|
"https://europe-west3-wormhole-315720.cloudfunctions.net/mainnet-notionaltvl";
|
||||||
export const TERRA_SWAPRATE_URL =
|
export const TERRA_SWAPRATE_URL =
|
||||||
"https://fcd.terra.dev/v1/market/swaprate/uusd";
|
"https://fcd.terra.dev/v1/market/swaprate/uusd";
|
||||||
|
|
||||||
|
@ -813,6 +815,10 @@ export const VAA_EMITTER_ADDRESSES = [
|
||||||
`${CHAIN_ID_BSC}:0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde`, //bsc nft
|
`${CHAIN_ID_BSC}:0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde`, //bsc nft
|
||||||
`${CHAIN_ID_POLYGON}:0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde`, //Polygon
|
`${CHAIN_ID_POLYGON}:0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde`, //Polygon
|
||||||
`${CHAIN_ID_POLYGON}:00000000000000000000000090bbd86a6fe93d3bc3ed6335935447e75fab7fcf`, //Polygon nft
|
`${CHAIN_ID_POLYGON}:00000000000000000000000090bbd86a6fe93d3bc3ed6335935447e75fab7fcf`, //Polygon nft
|
||||||
|
`${CHAIN_ID_AVAX}:0000000000000000000000000e082f06ff657d94310cb8ce8b0d9a04541d8052`, //AVAX
|
||||||
|
`${CHAIN_ID_AVAX}:000000000000000000000000f7b6737ca9c4e08ae573f75a97b73d7a813f5de5`, //AVAX nft
|
||||||
|
`${CHAIN_ID_OASIS}:0000000000000000000000005848c791e09901b40a9ef749f2a6735b418d7564`, //OASIS
|
||||||
|
`${CHAIN_ID_OASIS}:00000000000000000000000004952D522Ff217f40B5Ef3cbF659EcA7b952a6c1`, //OASIS nft
|
||||||
];
|
];
|
||||||
|
|
||||||
export const WORMHOLE_EXPLORER_BASE = "https://wormholenetwork.com/en/explorer";
|
export const WORMHOLE_EXPLORER_BASE = "https://wormholenetwork.com/en/explorer";
|
||||||
|
|
Loading…
Reference in New Issue