hoodi testnet added and wagmi + viem updated to the latest version
Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
parent
c41ea74b60
commit
2d81ba3554
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "ghost-dao-interface",
|
"name": "ghost-dao-interface",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.32",
|
"version": "0.1.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
@ -20,7 +20,7 @@
|
|||||||
"@mui/utils": "^6.4.6",
|
"@mui/utils": "^6.4.6",
|
||||||
"@tanstack/react-query": "^5.67.2",
|
"@tanstack/react-query": "^5.67.2",
|
||||||
"@tanstack/react-query-devtools": "^5.67.2",
|
"@tanstack/react-query-devtools": "^5.67.2",
|
||||||
"@wagmi/core": "^2.16.7",
|
"@wagmi/core": "^2.17.3",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
"react-ga4": "^2.1.0",
|
"react-ga4": "^2.1.0",
|
||||||
@ -28,8 +28,8 @@
|
|||||||
"react-hot-toast": "^2.5.2",
|
"react-hot-toast": "^2.5.2",
|
||||||
"react-router-dom": "^7.3.0",
|
"react-router-dom": "^7.3.0",
|
||||||
"scss": "^0.2.4",
|
"scss": "^0.2.4",
|
||||||
"viem": "^2.26.5",
|
"viem": "^2.31.0",
|
||||||
"wagmi": "^2.14.12"
|
"wagmi": "^2.15.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^9.21.0",
|
"@eslint/js": "^9.21.0",
|
||||||
|
1432
pnpm-lock.yaml
1432
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
|||||||
import { http, fallback, createConfig } from 'wagmi'
|
import { http, fallback, createConfig } from 'wagmi'
|
||||||
import { sepolia } from 'wagmi/chains'
|
import { sepolia, hoodi } from 'wagmi/chains'
|
||||||
|
|
||||||
export const config = createConfig({
|
export const config = createConfig({
|
||||||
chains: [sepolia],
|
chains: [sepolia, hoodi],
|
||||||
transports: {
|
transports: {
|
||||||
[sepolia.id]: fallback([
|
[sepolia.id]: fallback([
|
||||||
http('https://ethereum-sepolia-rpc.publicnode.com'),
|
http('https://ethereum-sepolia-rpc.publicnode.com'),
|
||||||
@ -14,5 +14,9 @@ export const config = createConfig({
|
|||||||
http('https://eth-sepolia.api.onfinality.io/public'),
|
http('https://eth-sepolia.api.onfinality.io/public'),
|
||||||
http('https://sepolia.drpc.org')
|
http('https://sepolia.drpc.org')
|
||||||
]),
|
]),
|
||||||
|
[hoodi.id]: fallback([
|
||||||
|
http('https://rpc.hoodi.ethpandaops.io'),
|
||||||
|
http('https://0xrpc.io/hoodi'),
|
||||||
|
])
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
export enum NetworkId {
|
export enum NetworkId {
|
||||||
TESTNET_SEPOLIA = 11155111,
|
TESTNET_SEPOLIA = 11155111,
|
||||||
|
TESTNET_HOODI = 560048,
|
||||||
}
|
}
|
||||||
|
|
||||||
export const isNetworkAvailable = (chainId, addressChainId) => {
|
export const isNetworkAvailable = (chainId, addressChainId) => {
|
||||||
@ -9,6 +10,9 @@ export const isNetworkAvailable = (chainId, addressChainId) => {
|
|||||||
case 11155111:
|
case 11155111:
|
||||||
exists = true
|
exists = true
|
||||||
break;
|
break;
|
||||||
|
case 560048:
|
||||||
|
exists = true
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2,60 +2,75 @@ import { NetworkId } from "../constants";
|
|||||||
|
|
||||||
export const STAKING_ADDRESSES = {
|
export const STAKING_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0xb22Ad3b4a23EaEA8c06CD151D7C0e3758d0FB580",
|
[NetworkId.TESTNET_SEPOLIA]: "0xb22Ad3b4a23EaEA8c06CD151D7C0e3758d0FB580",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0x25F62eDc6C89FF84E957C22336A35d2dfc861a86",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const BOND_DEPOSITORY_ADDRESSES = {
|
export const BOND_DEPOSITORY_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x8773AC3258b31D3ACfc99Ffd13768ccB170fcF9f",
|
[NetworkId.TESTNET_SEPOLIA]: "0x8773AC3258b31D3ACfc99Ffd13768ccB170fcF9f",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0x6Ad50B1E293E68B2fC230c576220a93A9D311571",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const DAO_TREASURY_ADDRESSES = {
|
export const DAO_TREASURY_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x2AAd1EA51044e69756880f580C13a92D910af238",
|
[NetworkId.TESTNET_SEPOLIA]: "0x2AAd1EA51044e69756880f580C13a92D910af238",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0x1a1b29b18f714fac9dDabEf530dFc4f85b56A6e8",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const FTSO_DAI_LP_ADDRESSES = {
|
export const FTSO_DAI_LP_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x64B19626bd074cf7B1019798846c363bbA8A0d53",
|
[NetworkId.TESTNET_SEPOLIA]: "0x64B19626bd074cf7B1019798846c363bbA8A0d53",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xf7B2d44209E70782d93A70F7D8eC50010dF7ae50", // TBD
|
||||||
};
|
};
|
||||||
|
|
||||||
export const FTSO_STNK_LP_ADDRESSES = {
|
export const FTSO_STNK_LP_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x29965676fc00C3eA9717B2A02739d294399a382e",
|
[NetworkId.TESTNET_SEPOLIA]: "0x29965676fc00C3eA9717B2A02739d294399a382e",
|
||||||
|
[NetworkId.TESTNET_SEPOLIA]: "0x0000000000000000000000000000000000000000", // TBD
|
||||||
}
|
}
|
||||||
|
|
||||||
export const DAI_ADDRESSES = {
|
export const DAI_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0xc7Afd3bC4c74f6E07880447b1759d5d639F2525F",
|
[NetworkId.TESTNET_SEPOLIA]: "0xc7Afd3bC4c74f6E07880447b1759d5d639F2525F",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0x80c6676c334BCcE60b3CC852085B72143379CE58",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const WETH_ADDRESSES = {
|
export const WETH_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
|
[NetworkId.TESTNET_SEPOLIA]: "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xE69a5c6dd88cA798b93c3C92fc50c51Fd5305eB4",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const GHST_ADDRESSES = {
|
export const GHST_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x4643076087234d9B81974beF1eC9c25F3A0202B9",
|
[NetworkId.TESTNET_SEPOLIA]: "0x4643076087234d9B81974beF1eC9c25F3A0202B9",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xE98f7426457E6533B206e91B7EcA97aa8A258B46",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const STNK_ADDRESSES = {
|
export const STNK_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x84060da636f5a83f2668ad238f09f8c667a1ec8b",
|
[NetworkId.TESTNET_SEPOLIA]: "0x84060da636f5a83f2668ad238f09f8c667a1ec8b",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xF07e9303A9f16Afd82f4f57Fd6fca68Aa0AB6D7F",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const FTSO_ADDRESSES = {
|
export const FTSO_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x0eF2E888710E9f1d5E734f9ce30FAD40c832D5F3",
|
[NetworkId.TESTNET_SEPOLIA]: "0x0eF2E888710E9f1d5E734f9ce30FAD40c832D5F3",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xb184e423811b644A1924334E63985c259F5D0033",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const DISTRIBUTOR_ADDRESSES = {
|
export const DISTRIBUTOR_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0xE433D078a555163dC6B53968E72418B6a1618f04",
|
[NetworkId.TESTNET_SEPOLIA]: "0xE433D078a555163dC6B53968E72418B6a1618f04",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xdF49dC81c457c6f92e26cf6d686C7a8715255842",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const GHOST_GOVERNANCE_ADDRESSES = {
|
export const GHOST_GOVERNANCE_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0xD40E6442Ee01c234CD8AaF335122CfbB2aec8548",
|
[NetworkId.TESTNET_SEPOLIA]: "0xD40E6442Ee01c234CD8AaF335122CfbB2aec8548",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0x1B96B792840d4d19d5097ee007392Ed4d851e64F",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const BONDING_CALCULATOR_ADDRESSES = {
|
export const BONDING_CALCULATOR_ADDRESSES = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0x29a6bb5De7a1049632E107544CaEF05e518451e7",
|
[NetworkId.TESTNET_SEPOLIA]: "0x29a6bb5De7a1049632E107544CaEF05e518451e7",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0x2635d526Ad24b98082563937f7b996075052c6Fd",
|
||||||
}
|
}
|
||||||
|
|
||||||
export const UNISWAP_V2_ROUTER = {
|
export const UNISWAP_V2_ROUTER = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0xee567fe1712faf6149d80da1e6934e354124cfe3",
|
[NetworkId.TESTNET_SEPOLIA]: "0xee567fe1712faf6149d80da1e6934e354124cfe3",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xD41daF947c6FFEf344754B99ad09466FBCBb7583",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const UNISWAP_V2_FACTORY = {
|
export const UNISWAP_V2_FACTORY = {
|
||||||
[NetworkId.TESTNET_SEPOLIA]: "0xF62c03E08ada871A0bEb309762E260a7a6a880E6",
|
[NetworkId.TESTNET_SEPOLIA]: "0xF62c03E08ada871A0bEb309762E260a7a6a880E6",
|
||||||
|
[NetworkId.TESTNET_HOODI]: "0xF140342cB5C29C1468d91Aee408d7b7271C48b5A",
|
||||||
};
|
};
|
||||||
|
@ -11,4 +11,11 @@ export const AVAILABLE_DEXES = {
|
|||||||
viewBox: "0 0 195 230",
|
viewBox: "0 0 195 230",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
[NetworkId.TESTNET_HOODI]: [
|
||||||
|
{
|
||||||
|
name: "Uniswap",
|
||||||
|
icon: UniswapIcon,
|
||||||
|
viewBox: "0 0 195 230",
|
||||||
|
},
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
@ -3,7 +3,7 @@ import { useReadContract } from "wagmi";
|
|||||||
import { useCurrentIndex } from "../staking";
|
import { useCurrentIndex } from "../staking";
|
||||||
import { useUniswapV2PairReserves } from "../uniswapv2";
|
import { useUniswapV2PairReserves } from "../uniswapv2";
|
||||||
import { DecimalBigNumber } from "../../helpers/DecimalBigNumber";
|
import { DecimalBigNumber } from "../../helpers/DecimalBigNumber";
|
||||||
import { FTSO_DAI_LP_ADDRESSES, DAI_ADDRESSES } from "../../constants/addresses";
|
import { FTSO_DAI_LP_ADDRESSES, DAI_ADDRESSES, FTSO_ADDRESSES } from "../../constants/addresses";
|
||||||
|
|
||||||
export const useDaiPrice = (chainId) => {
|
export const useDaiPrice = (chainId) => {
|
||||||
const daiPrice = new DecimalBigNumber(1000000000000000000n, 18);
|
const daiPrice = new DecimalBigNumber(1000000000000000000n, 18);
|
||||||
@ -11,7 +11,7 @@ export const useDaiPrice = (chainId) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const useFtsoPrice = (chainId) => {
|
export const useFtsoPrice = (chainId) => {
|
||||||
const { reserves, refetch } = useUniswapV2PairReserves(
|
const { reserves, tokens, refetch } = useUniswapV2PairReserves(
|
||||||
chainId,
|
chainId,
|
||||||
FTSO_DAI_LP_ADDRESSES[chainId],
|
FTSO_DAI_LP_ADDRESSES[chainId],
|
||||||
9,
|
9,
|
||||||
@ -20,9 +20,17 @@ export const useFtsoPrice = (chainId) => {
|
|||||||
"GDAI",
|
"GDAI",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const stableReserves = DAI_ADDRESSES[chainId].toUpperCase() === tokens.token0.toUpperCase()
|
||||||
|
? reserves.reserve0._value
|
||||||
|
: DAI_ADDRESSES[chainId].toUpperCase() === tokens.token1.toUpperCase() ? reserves.reserve1._value : 0n;
|
||||||
|
|
||||||
|
const ftsoReserves = FTSO_ADDRESSES[chainId].toUpperCase() === tokens.token0.toUpperCase()
|
||||||
|
? reserves.reserve0._value
|
||||||
|
: FTSO_ADDRESSES[chainId].toUpperCase() === tokens.token1.toUpperCase() ? reserves.reserve1._value : 0n;
|
||||||
|
|
||||||
let price = 0n
|
let price = 0n
|
||||||
if (reserves.reserve0._value > 0n)
|
if (ftsoReserves > 0n)
|
||||||
price = reserves.reserve1._value / reserves.reserve0._value;
|
price = stableReserves / ftsoReserves;
|
||||||
|
|
||||||
return new DecimalBigNumber(price, 9);
|
return new DecimalBigNumber(price, 9);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user