Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
a27e20c
Fix Omnipool asset share
vkulinich-cl Mar 17, 2026
a0f565b
Merge pull request #3632 from galacticcouncil/next
nohaapav Mar 18, 2026
d810b77
Merge pull request #3648 from galacticcouncil/next
nohaapav Mar 19, 2026
01f1e53
TX Review JSON formatter
jvonasek Mar 19, 2026
7717852
Fix Referral code link
vkulinich-cl Mar 19, 2026
07ef0cc
remove referrals link
vkulinich-cl Mar 19, 2026
7d57239
trigger ci
vkulinich-cl Mar 20, 2026
8efe2b6
Merge branch 'master' into fix/omnipool-share
vkulinich-cl Mar 20, 2026
82b88d0
push ci config
vkulinich-cl Mar 20, 2026
e5ffabe
address PR comments
vkulinich-cl Mar 20, 2026
a4a6fe0
update ci config
vkulinich-cl Mar 20, 2026
f47591f
Merge pull request #3652 from galacticcouncil/fix/referral-code
vkulinich-cl Mar 20, 2026
e63af18
Merge branch 'master' into fix/omnipool-share
vkulinich-cl Mar 20, 2026
1da0a3e
Merge branch 'master' into feat/tx-review-json-formatter
vkulinich-cl Mar 20, 2026
0d1b152
Merge pull request #3623 from galacticcouncil/fix/omnipool-share
vkulinich-cl Mar 20, 2026
82f48fd
Merge pull request #3651 from galacticcouncil/feat/tx-review-json-for…
jvonasek Mar 20, 2026
6910366
Hide Hollar banner on Wallet
vkulinich-cl Mar 20, 2026
e4940fe
Merge pull request #3654 from galacticcouncil/chore/hide-banner
vkulinich-cl Mar 20, 2026
864833b
xc-scan icon map
jvonasek Mar 20, 2026
c0b1b4f
Add HEURC
vkulinich-cl Mar 23, 2026
1eb69a8
Merge pull request #3655 from galacticcouncil/chore/xcscan-icon-map
jvonasek Mar 23, 2026
b0ca049
bump to latest deps
nohaapav Mar 24, 2026
1d1e5ec
fix claim
nohaapav Mar 24, 2026
5d1f80a
Merge pull request #3658 from galacticcouncil/upgrade-deps
nohaapav Mar 24, 2026
6605ac4
Refetch swap TX on balance change
jvonasek Mar 24, 2026
0c89f5a
Merge pull request #3661 from galacticcouncil/fix/rebuild-tx-on-balan…
nohaapav Mar 24, 2026
cd160d9
Parse stringified journey.stops
jvonasek Mar 24, 2026
07de588
Merge pull request #3663 from galacticcouncil/chore/parse-journey-stops
nohaapav Mar 24, 2026
c51ace0
Replace unified indexer
vkulinich-cl Mar 24, 2026
deae0a9
Merge pull request #3667 from galacticcouncil/chore/update-unified-rpc
vkulinich-cl Mar 24, 2026
53caefe
Refactor: build swap TX at submit
jvonasek Mar 25, 2026
e61dc61
External wallet param renamed address => account
jvonasek Mar 26, 2026
27434fe
upgrade sdk deps to latest
nohaapav Mar 26, 2026
332ba6c
Merge pull request #3670 from galacticcouncil/chore/refactor-trade-tx…
jvonasek Mar 26, 2026
7740a06
Merge pull request #3672 from galacticcouncil/chore/external-wallet-p…
jvonasek Mar 26, 2026
7d94399
Fix types
jvonasek Mar 26, 2026
f71fb4c
Sell All Alert
jvonasek Mar 26, 2026
8a40374
Merge pull request #3673 from galacticcouncil/upgrade-deps
nohaapav Mar 27, 2026
81b63cb
Address PR comments
jvonasek Mar 27, 2026
5836c01
Merge pull request #3656 from galacticcouncil/chore/add-huerc
vkulinich-cl Mar 27, 2026
2034b8f
Replace orca-prod indexer url
vkulinich-cl Mar 30, 2026
2dbc071
Disable sell_all alert consent
jvonasek Mar 30, 2026
cfcce94
Merge pull request #3681 from galacticcouncil/chore/update-unified-rpc
vkulinich-cl Mar 31, 2026
3750bb0
Replace AAVE string with Borrow
vkulinich-cl Mar 31, 2026
ef9ee72
Merge pull request #3688 from galacticcouncil/chore/replace-aave-string
vkulinich-cl Mar 31, 2026
3abfc48
Merge pull request #3675 from galacticcouncil/feat/sell-all-alert
jvonasek Mar 31, 2026
ea3ac36
Deposit/Withdraw
jvonasek Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Lint
on:
- push
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
cache: yarn
node-version: '20.x'
- run: yarn install --frozen-lockfile
- run: yarn run build
- run: yarn run lint
2 changes: 1 addition & 1 deletion apps/main/.env.development
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VITE_PROVIDER_URL=wss://rpc.nice.hydration.cloud
VITE_INDEXER_URL=https://archive.nice.hydration.cloud/graphql
VITE_SQUID_URL=https://galacticcouncil.squids.live/hydration-pools:orca-prod/api/graphql
VITE_SQUID_URL=https://orca-main-aggr-indx.indexer.hydration.cloud/graphql
VITE_SNOWBRIDGE_URL="https://snowbridge.squids.live/snowbridge-subsquid-polkadot@v1/api/graphql"
VITE_GRAFANA_URL=https://grafana-api.play.hydration.cloud/api/ds/query
VITE_GRAFANA_DSN=11
Expand Down
2 changes: 1 addition & 1 deletion apps/main/.env.production
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VITE_PROVIDER_URL=wss://hydration-rpc.n.dwellir.com
VITE_INDEXER_URL=https://explorer.hydradx.cloud/graphql
VITE_SQUID_URL=https://galacticcouncil.squids.live/hydration-pools:orca-prod/api/graphql
VITE_SQUID_URL=https://orca-main-aggr-indx.indexer.hydration.cloud/graphql
VITE_SNOWBRIDGE_URL="https://snowbridge.squids.live/snowbridge-subsquid-polkadot@v1/api/graphql"
VITE_GRAFANA_URL=https://grafana.hydradx.cloud/api/ds/query
VITE_GRAFANA_DSN=10
Expand Down
61 changes: 61 additions & 0 deletions apps/main/src/api/external/assethub.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { XcmV3Junction, XcmV3Junctions } from "@galacticcouncil/descriptors"
import { XcmV3Multilocation } from "@galacticcouncil/sdk-next"
import { invariant } from "@galacticcouncil/utils"
import { chainsMap } from "@galacticcouncil/xc-cfg"
import {
Asset,
AssetAmount,
multiloc,
Parachain,
} from "@galacticcouncil/xc-core"

import { AnyPapiTx } from "@/modules/transactions/types"

export const assethub = chainsMap.get("assethub") as Parachain

export async function calculateAssethubFee(
tx: AnyPapiTx,
address: string,
asset: Asset,
): Promise<bigint> {
const assethub = chainsMap.get("assethub")
invariant(assethub, "Assethub chain not found")

const native = assethub.assetsData.get("dot")
invariant(native, "Assethub native asset not found")

const paymentInfo = await tx.getPaymentInfo(address)

const feeAmount = (paymentInfo.partial_fee * 30n) / 10n // add 30% margin

if (native.asset.isEqual(asset)) {
return feeAmount
}

const feeQuote = await assethub.dex.getQuote(
asset,
native.asset,
AssetAmount.fromAsset(native.asset, {
amount: feeAmount,
decimals: native.decimals!,
}),
)
return feeQuote.amount
}

export const getAssetHubFeeAssetLocaction = (asset: Asset) => {
const location = assethub.getAssetXcmLocation(asset)

if (location && location.interior !== XcmV3Junctions.Here().type) {
const pallet = multiloc.findPalletInstance(location)
const index = multiloc.findGeneralIndex(location)

return {
parents: 0,
interior: XcmV3Junctions.X2([
XcmV3Junction.PalletInstance(Number(pallet)),
XcmV3Junction.GeneralIndex(BigInt(index)),
]),
} as XcmV3Multilocation
}
}
12 changes: 12 additions & 0 deletions apps/main/src/api/external/common.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Asset } from "@galacticcouncil/xc-core"

import { getAssetHubFeeAssetLocaction } from "@/api/external/assethub"

export function getParachainFeeAssetLocation(chainKey: string, asset: Asset) {
switch (chainKey) {
case "assethub":
return getAssetHubFeeAssetLocaction(asset)
default:
return null
}
}
2 changes: 1 addition & 1 deletion apps/main/src/api/external/defillama.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export const ASSET_ID_TO_DEFILLAMA_ID: Record<string, string> = {
}

const DEFILLAMA_APY_ENDPOINT =
"https://galacticcouncil.squids.live/hydration-pools:orca-prod/api/proxy/defillama/yields/chart"
"https://orca-main-aggr-indx.indexer.hydration.cloud/proxy/defillama/yields/chart"

const fetchDefillamaLatestApy = async (id: string): Promise<number> => {
const res = await fetch(`${DEFILLAMA_APY_ENDPOINT}/${id}`)
Expand Down
2 changes: 1 addition & 1 deletion apps/main/src/api/external/kamino.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { z } from "zod"
import { GC_TIME, STALE_TIME } from "@/utils/consts"

const getKaminoEndpoint = (yieldSource: string) =>
`https://galacticcouncil.squids.live/hydration-pools:orca-prod/api/proxy/kamino/yields/${yieldSource}/history`
`https://orca-main-aggr-indx.indexer.hydration.cloud/proxy/kamino/yields/${yieldSource}/history`

export const ASSET_ID_TO_KAMINO_ID: Record<string, string> = {
[PRIME_ASSET_ID]: "3b8X44fLF9ooXaUm3hhSgjpmVs6rZZ3pPoGnGahc3Uu7",
Expand Down
4 changes: 4 additions & 0 deletions apps/main/src/api/external/pendulum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { chainsMap } from "@galacticcouncil/xc-cfg"
import { Parachain } from "@galacticcouncil/xc-core/build/types/chain"

export const pendulum = chainsMap.get("pendulum") as Parachain
11 changes: 11 additions & 0 deletions apps/main/src/api/omnipool.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { platformTotalQuery } from "@galacticcouncil/indexer/squid"
import { fixed_from_rational } from "@galacticcouncil/math-liquidity-mining"
import { useQuery, useQueryClient } from "@tanstack/react-query"
import Big from "big.js"
import { millisecondsInHour } from "date-fns/constants"
import { Binary, Enum } from "polkadot-api"
import { useMemo } from "react"

import { useSquidClient } from "@/api/provider"
import { useRpcProvider } from "@/providers/rpcProvider"

import { hubTokenQuery, omnipoolTokensQuery } from "./pools"
Expand Down Expand Up @@ -158,3 +160,12 @@ export const useOraclePrice = (
: () => null,
})
}

export const useTotalOmnipoolLiquidity = () => {
const squidClient = useSquidClient()

return useQuery({
...platformTotalQuery(squidClient),
select: (data) => data.omnipoolTvlNorm,
})
}
1 change: 1 addition & 0 deletions apps/main/src/api/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ const getProviderData = async (
),
metadata.fetchAssets(),
metadata.fetchChains(),
metadata.fetchMetadata(),
],
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {
Text,
} from "@galacticcouncil/ui/components"
import { getToken } from "@galacticcouncil/ui/utils"
import { replaceAaveWithBorrow } from "@galacticcouncil/utils"
import { FC, ReactNode } from "react"
import { useTranslation } from "react-i18next"

Expand Down Expand Up @@ -50,7 +51,6 @@ export const TransactionItemMobile: FC<Props> = ({
statusProps.status === TransactionStatusVariant.Success
? [statusProps.sent, statusProps.received]
: [null, null]

return (
<TransactionItemMobileContainer>
<Flex justify="space-between" flex={1} p="l" className={className}>
Expand All @@ -75,7 +75,7 @@ export const TransactionItemMobile: FC<Props> = ({
variant={statusProps.status}
sx={{ maxWidth: "200px", textAlign: "end" }}
>
{message}
{replaceAaveWithBorrow(message)}
</TransactionStatusMessage>
)}
</Flex>
Expand All @@ -84,7 +84,11 @@ export const TransactionItemMobile: FC<Props> = ({
{link && (
<ButtonIcon asChild>
<ExternalLink href={link}>
<Icon size="s" component={SubScan} color="#FEFEFE" />
<Icon
size="s"
component={SubScan}
color={getToken("text.high")}
/>
</ExternalLink>
</ButtonIcon>
)}
Expand Down
10 changes: 10 additions & 0 deletions apps/main/src/config/navigation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ export const LINKS = {
statsHollar: "/stats/hollar",
statsFees: "/stats/fees",
statsAmm: "/stats/amm",
deposit: "/deposit",
withdraw: "/withdraw",
// memepad: "/memepad",
submitTransaction: "/submit-transaction",
} satisfies Record<string, Route>
Expand Down Expand Up @@ -300,6 +302,14 @@ export const getMenuTranslations = (t: TFunction) =>
title: t("navigation.statsFees.title"),
description: "",
},
deposit: {
title: t("navigation.deposit.title"),
description: t("navigation.deposit.description"),
},
withdraw: {
title: t("navigation.withdraw.title"),
description: t("navigation.withdraw.description"),
},
// memepad: {
// title: t("navigation.memepad.title"),
// description: "",
Expand Down
6 changes: 3 additions & 3 deletions apps/main/src/config/rpc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export type IndexerProps = {

const MAINNET_INDEXER_URL = "https://explorer.hydradx.cloud/graphql"
const MAINNET_SQUID_URL =
"https://galacticcouncil.squids.live/hydration-pools:unified-prod/api/graphql"
"https://unified-main-aggr-indx.indexer.hydration.cloud/graphql"

export const createProvider = (
name: string,
Expand All @@ -38,7 +38,7 @@ export const createProvider = (
export const SQUID_URLS_CONFIG = [
{
name: "Orca Prod",
url: "https://galacticcouncil.squids.live/hydration-pools:orca-prod/api",
url: "https://orca-main-aggr-indx.indexer.hydration.cloud",
},
{
name: "Orca Prod 01 indx",
Expand Down Expand Up @@ -92,7 +92,7 @@ export const PROVIDERS: ProviderProps[] = [
"Testnet",
"wss://rpc.nice.hydration.cloud",
"https://archive.nice.hydration.cloud/graphql",
"https://galacticcouncil.squids.live/hydration-pools:unified-prod/api/graphql",
"https://unified-main-aggr-indx.indexer.hydration.cloud/graphql",
["development"],
"testnet",
),
Expand Down
3 changes: 2 additions & 1 deletion apps/main/src/i18n/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { initReactI18next } from "react-i18next"
import borrow from "@/i18n/locales/en/borrow.json"
import common from "@/i18n/locales/en/common.json"
import liquidity from "@/i18n/locales/en/liquidity.json"
import onramp from "@/i18n/locales/en/onramp.json"
import staking from "@/i18n/locales/en/staking.json"
import stats from "@/i18n/locales/en/stats.json"
import trade from "@/i18n/locales/en/trade.json"
Expand All @@ -13,7 +14,7 @@ import xcm from "@/i18n/locales/en/xcm.json"

export const defaultNS = "common"
export const resources = {
en: { common, liquidity, trade, wallet, borrow, staking, xcm, stats },
en: { common, liquidity, trade, wallet, borrow, staking, xcm, stats, onramp },
} as const

const i18n = i18next.createInstance()
Expand Down
8 changes: 8 additions & 0 deletions apps/main/src/i18n/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@
"currentValue": "Current value",
"withdraw": "Withdraw",
"deposit": "Deposit",
"deposit.pending_one": "{{ count }} deposit pending",
"deposit.pending_other": "{{ count }} deposits pending",
"transfer": "Transfer",
"balances": "Balances",
"amount": "Amount",
Expand Down Expand Up @@ -210,6 +212,10 @@
"navigation.statsHollar.title": "Hollar",
"navigation.statsAmm.title": "AMM",
"navigation.statsFees.title": "Fees",
"navigation.deposit.title": "Deposit",
"navigation.deposit.description": "Deposit your asssets to Hydration",
"navigation.withdraw.title": "Withdraw",
"navigation.withdraw.description": "Withdraw your asssets from Hydration",
"remove": "Remove",
"rpc.change.modal.autoMode.desc": "Enabling this will automatically switch RPCs and Indexers when one of the active ones is unavailable.",
"rpc.change.modal.autoMode.title": "Auto-connect to working RPC and Indexer",
Expand Down Expand Up @@ -314,6 +320,8 @@
"transaction.jsonview.copy.calldata": "Copy call data",
"transaction.alert.insufficientFeeBalance": "Not enough fee payment asset balance.",
"transaction.alert.pendingDispatchPermit": "Permit transaction is pending. Please wait.",
"transaction.alert.sellAll": "You are selling your entire balance of {{ value, currency }}.",
"transaction.alert.acceptRisk": "I accept the risk involved.",
"transaction.batch.warning": "Your transaction would exhaust block limit, we need to split it into multiple transactions",
"transaction.batch.step.label": "Transaction {{ index }}",
"transaction.error.unsupportedTransaction": "Unsupported transaction or signer type",
Expand Down
Loading
Loading