ghost-dao-interface/src/hooks/helpers.js
Uncle Fatso d4446f6fb1
version 0.0.22
Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
2025-04-28 14:03:56 +03:00

144 lines
3.7 KiB
JavaScript

import {
DAI_ADDRESSES,
FTSO_ADDRESSES,
STNK_ADDRESSES,
GHST_ADDRESSES,
FTSO_DAI_LP_ADDRESSES,
} from "../constants/addresses";
import { abi as DaiAbi } from "../abi/Reserve.json";
import { abi as FatsoAbi } from "../abi/Fatso.json";
import { abi as StinkyAbi } from "../abi/Stinky.json";
import { abi as GhostAbi } from "../abi/Ghost.json";
import { abi as Erc20Abi } from "../abi/ERC20.json";
export const getTokenAbi = (name) => {
let abi = Erc20Abi;
switch (name?.toUpperCase()) {
case "GDAI":
abi = DaiAbi;
break;
case "FTSO":
abi = FatsoAbi;
break;
case "STNK":
abi = StinkyAbi;
break;
case "GHST":
abi = GhostAbi;
break;
}
return abi;
}
export const getTokenDecimals = (name) => {
let decimals = 18;
switch (name?.toUpperCase()) {
case "GDAI":
decimals = 18;
break;
case "FTSO":
decimals = 9;
break;
case "STNK":
decimals = 9;
break;
case "GHST":
decimals = 18;
break;
}
return decimals;
}
export const getTokenAddress = (chainId, name) => {
let address = name;
switch (name?.toUpperCase()) {
case "GDAI":
address = DAI_ADDRESSES[chainId];
break;
case "FTSO":
address = FTSO_ADDRESSES[chainId];
break;
case "STNK":
address = STNK_ADDRESSES[chainId];
break;
case "GHST":
address = GHST_ADDRESSES[chainId];
break;
case "DAI_FTSO":
address = FTSO_DAI_LP_ADDRESSES[chainId];
break;
}
return address;
}
export const getTokenIcons = (chainId, address) => {
let icons = [""];
switch (address) {
case DAI_ADDRESSES[chainId]:
icons = ["GDAI"];
break;
case FTSO_ADDRESSES[chainId]:
icons = ["FTSO"];
break;
case STNK_ADDRESSES[chainId]:
icons = "STNK";
break;
case GHST_ADDRESSES[chainId]:
icons = ["GHST"];
break;
case FTSO_DAI_LP_ADDRESSES[chainId]:
icons = ["FTSO", "GDAI"];
break;
}
return icons;
}
export const getTokenName = (chainId, address) => {
let name = "";
switch (address) {
case DAI_ADDRESSES[chainId]:
name = "gDAI";
break;
case FTSO_ADDRESSES[chainId]:
name = "FTSO";
break;
case STNK_ADDRESSES[chainId]:
name = "STNK";
break;
case GHST_ADDRESSES[chainId]:
name = "GHST";
break;
case FTSO_DAI_LP_ADDRESSES[chainId]:
name = "UNI-V2";
break;
}
return name;
}
export const getBondNameDisplayName = (chainId, tokenAddress) => {
let bondName = "";
switch (tokenAddress) {
case DAI_ADDRESSES[chainId]:
bondName = "FTSO/gDAI";
break;
case FTSO_DAI_LP_ADDRESSES[chainId]:
bondName = "LP FTSO/gDAI"
break;
}
return bondName;
}
export const getTokenPurchaseLink = (chainId, tokenAddress) => {
let purchaseUrl = "https://app.dao.ghostchain.io/#/dex/uniswap";
switch (tokenAddress) {
case DAI_ADDRESSES[chainId]:
purchaseUrl = "https://app.dao.ghostchain.io/#/faucet";
break;
case FTSO_DAI_LP_ADDRESSES[chainId]:
purchaseUrl += `?pool=true&from=${DAI_ADDRESSES[chainId]}&to=${FTSO_ADDRESSES[chainId]}`;
break;
}
return purchaseUrl;
}