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} />
|
||||
{["/transfer", "/nft", "/redeem"].includes(pathname) ? (
|
||||
<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
|
||||
value={pathname}
|
||||
variant="fullWidth"
|
||||
|
|
|
@ -30,7 +30,7 @@ export default function HeaderText({
|
|||
children: ReactChild;
|
||||
white?: boolean;
|
||||
small?: boolean;
|
||||
subtitle?: string;
|
||||
subtitle?: ReactChild;
|
||||
}) {
|
||||
const classes = useStyles();
|
||||
return (
|
||||
|
@ -43,7 +43,7 @@ export default function HeaderText({
|
|||
>
|
||||
{children}
|
||||
</Typography>
|
||||
{subtitle ? <Typography>{subtitle}</Typography> : null}
|
||||
{subtitle ? <Typography component="div">{subtitle}</Typography> : null}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ const TransactionMetrics: React.FC<any> = () => {
|
|||
noWrap
|
||||
className={classes.totalValue}
|
||||
>
|
||||
{numeral(transactionCount.data?.total24h || 0).format("0,0")}
|
||||
{numeral(transactionCount.data?.total48h || 0).format("0,0")}
|
||||
</Typography>
|
||||
</div>
|
||||
<div className={classes.totalContainer}>
|
||||
|
|
|
@ -1,46 +1,14 @@
|
|||
import {
|
||||
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 { ChainId } from "@certusone/wormhole-sdk";
|
||||
import axios from "axios";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { DataWrapper } from "../store/helpers";
|
||||
import { useEffect, useState } from "react";
|
||||
import {
|
||||
AVAX_TOKEN_BRIDGE_ADDRESS,
|
||||
BSC_TOKEN_BRIDGE_ADDRESS,
|
||||
CHAINS_BY_ID,
|
||||
COVALENT_GET_TOKENS_URL,
|
||||
ETH_TOKEN_BRIDGE_ADDRESS,
|
||||
logoOverrides,
|
||||
POLYGON_TOKEN_BRIDGE_ADDRESS,
|
||||
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";
|
||||
DataWrapper,
|
||||
errorDataWrapper,
|
||||
fetchDataWrapper,
|
||||
receiveDataWrapper,
|
||||
} from "../store/helpers";
|
||||
import { COIN_GECKO_IMAGE_URLS } from "../utils/coinGecko";
|
||||
import { TVL_URL } from "../utils/consts";
|
||||
|
||||
export type TVL = {
|
||||
logo?: string;
|
||||
|
@ -55,470 +23,75 @@ export type TVL = {
|
|||
decimals?: number;
|
||||
};
|
||||
|
||||
const BAD_PRICES_BY_CHAIN = {
|
||||
[CHAIN_ID_BSC]: [
|
||||
"0x04132bf45511d03a58afd4f1d36a29d229ccc574",
|
||||
"0xa79bd679ce21a2418be9e6f88b2186c9986bbe7d",
|
||||
"0x931c3987040c90b6db09981c7c91ba155d3fa31f",
|
||||
"0x8fb1a59ca2d57b51e5971a85277efe72c4492983",
|
||||
],
|
||||
[CHAIN_ID_ETH]: [],
|
||||
[CHAIN_ID_POLYGON]: ["0xd52d9ba6fcbadb1fe1e3aca52cbb72c4d9bbb4ec"],
|
||||
};
|
||||
interface LockedAsset {
|
||||
Symbol: string;
|
||||
Name: string;
|
||||
Address: string;
|
||||
CoinGeckoId: string;
|
||||
Amount: number;
|
||||
Notional: number;
|
||||
TokenPrice: number;
|
||||
}
|
||||
|
||||
const calcEvmTVL = (covalentReport: any, chainId: ChainId): TVL[] => {
|
||||
const output: TVL[] = [];
|
||||
if (!covalentReport?.data?.items?.length) {
|
||||
return [];
|
||||
}
|
||||
interface LockedAssets {
|
||||
[tokenAddress: string]: LockedAsset;
|
||||
}
|
||||
|
||||
covalentReport.data.items.forEach((item: any) => {
|
||||
if (item.balance > 0 && item.contract_address) {
|
||||
const hasUnreliablePrice =
|
||||
BAD_PRICES_BY_CHAIN[chainId]?.includes(item.contract_address) ||
|
||||
item.quote_rate > 1000000;
|
||||
output.push({
|
||||
logo:
|
||||
logoOverrides.get(item.contract_address) ||
|
||||
item.logo_url ||
|
||||
undefined,
|
||||
symbol: item.contract_ticker_symbol || undefined,
|
||||
name: item.contract_name || undefined,
|
||||
amount: formatUnits(item.balance, item.contract_decimals),
|
||||
totalValue: hasUnreliablePrice ? 0 : item.quote,
|
||||
quotePrice: hasUnreliablePrice ? 0 : item.quote_rate,
|
||||
assetAddress: item.contract_address,
|
||||
originChainId: chainId,
|
||||
originChain: CHAINS_BY_ID[chainId].name,
|
||||
decimals: item.contract_decimals,
|
||||
interface ChainsAssets {
|
||||
[chainId: string]: LockedAssets;
|
||||
}
|
||||
|
||||
interface NotionalTvl {
|
||||
Last24HoursChange: ChainsAssets;
|
||||
AllTime: ChainsAssets;
|
||||
}
|
||||
|
||||
const createTVLArray = (notionalTvl: NotionalTvl) => {
|
||||
const tvl: TVL[] = [];
|
||||
for (const [chainId, chainAssets] of Object.entries(notionalTvl.AllTime)) {
|
||||
if (chainId === "*") continue;
|
||||
for (const [tokenAddress, lockedAsset] of Object.entries(chainAssets)) {
|
||||
if (tokenAddress === "*") continue;
|
||||
tvl.push({
|
||||
logo: COIN_GECKO_IMAGE_URLS[lockedAsset.CoinGeckoId],
|
||||
symbol: lockedAsset.Symbol,
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
return tvl;
|
||||
};
|
||||
|
||||
const useTerraTVL = () => {
|
||||
const { isLoading: isTerraNativeLoading, balances: terraNativeBalances } =
|
||||
useTerraNativeBalances(TERRA_TOKEN_BRIDGE_ADDRESS);
|
||||
const [terraSwaprates, setTerraSwaprates] = useState<any[]>([]);
|
||||
const useTVL = () => {
|
||||
const [tvl, setTvl] = useState<DataWrapper<TVL[]>>(fetchDataWrapper());
|
||||
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
(async () => {
|
||||
try {
|
||||
const result = await axios.get(TERRA_SWAPRATE_URL);
|
||||
if (!cancelled && result && result.data) {
|
||||
setTerraSwaprates(result.data);
|
||||
axios
|
||||
.get<NotionalTvl>(TVL_URL)
|
||||
.then((response) => {
|
||||
if (!cancelled) {
|
||||
setTvl(receiveDataWrapper(createTVLArray(response.data)));
|
||||
}
|
||||
} catch (e) {}
|
||||
})();
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log(error);
|
||||
if (!cancelled) {
|
||||
setTvl(errorDataWrapper(error));
|
||||
}
|
||||
});
|
||||
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(() => {
|
||||
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
|
||||
.get(
|
||||
COVALENT_GET_TOKENS_URL(CHAIN_ID_ETH, ETH_TOKEN_BRIDGE_ADDRESS, false)
|
||||
)
|
||||
.then(
|
||||
(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(
|
||||
(results) => {
|
||||
if (!cancelled) {
|
||||
setSolanaCustodyTokens(results.value);
|
||||
setSolanaCustodyTokensLoading(false);
|
||||
}
|
||||
},
|
||||
(error) => {
|
||||
if (!cancelled) {
|
||||
setSolanaCustodyTokensLoading(false);
|
||||
setSolanaCustodyTokensError(
|
||||
"Unable to retrieve Solana locked tokens."
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}, []);
|
||||
|
||||
return useMemo(() => {
|
||||
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,
|
||||
]);
|
||||
return tvl;
|
||||
};
|
||||
|
||||
export default useTVL;
|
||||
|
|
|
@ -9,24 +9,29 @@ import {
|
|||
|
||||
export type TransactionCount = {
|
||||
totalAllTime: number;
|
||||
total24h: number;
|
||||
total48h: number;
|
||||
mostRecent: any; //This will be a signedVAA
|
||||
};
|
||||
|
||||
const mergeResults = (totals: any, recents: any): TransactionCount | null => {
|
||||
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) => {
|
||||
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;
|
||||
total24h += total24;
|
||||
total48h += total48;
|
||||
});
|
||||
|
||||
return {
|
||||
totalAllTime,
|
||||
total24h,
|
||||
total48h,
|
||||
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" : ""
|
||||
}${noNftMetadata ? "&no-nft-fetch=true" : ""}`;
|
||||
};
|
||||
export const TVL_URL =
|
||||
"https://europe-west3-wormhole-315720.cloudfunctions.net/mainnet-notionaltvl";
|
||||
export const TERRA_SWAPRATE_URL =
|
||||
"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_POLYGON}:0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde`, //Polygon
|
||||
`${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";
|
||||
|
|
Loading…
Reference in New Issue