From 74a8e7e919caf4e0d0d6f5bf32579b436f76682f Mon Sep 17 00:00:00 2001 From: Nur Fikri Date: Wed, 12 Jun 2024 20:45:36 +0700 Subject: [PATCH 1/3] fix: broken testnet, bump sdk --- chain-registry | 2 +- initia-registry | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- src/hooks/useChains.ts | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/chain-registry b/chain-registry index 5d701e5a..7bccaa9b 160000 --- a/chain-registry +++ b/chain-registry @@ -1 +1 @@ -Subproject commit 5d701e5adc29a3a07ec4a405ef81741c7c69f9ca +Subproject commit 7bccaa9b2437b3fd00358c8db60742159109e765 diff --git a/initia-registry b/initia-registry index 5027f21d..a85bd790 160000 --- a/initia-registry +++ b/initia-registry @@ -1 +1 @@ -Subproject commit 5027f21d76f73ce00d4a508fa706bb2c156a2973 +Subproject commit a85bd790639facf7ebe1c88f872245276cce692c diff --git a/package-lock.json b/package-lock.json index 9c0378b3..e418dd00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.7", "@sentry/nextjs": "^7.99.0", - "@skip-router/core": "4.1.1", + "@skip-router/core": "5.0.1", "@solana/spl-token": "^0.4.1", "@solana/wallet-adapter-react": "^0.15.35", "@solana/wallet-adapter-wallets": "^0.19.31", @@ -13484,9 +13484,9 @@ } }, "node_modules/@skip-router/core": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@skip-router/core/-/core-4.1.1.tgz", - "integrity": "sha512-N/H9V6XlWxWX4L8MwIkSyjBno+0zqkVeHG/vwB/PCMlK2HFBrY15CcpJPj8iuHB3aMho2kGIiOyFvnIeU/15pw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@skip-router/core/-/core-5.0.1.tgz", + "integrity": "sha512-reoMD7BDqGIG0bZtBbxr0mqxAsBNlAAUPjtKIxuYh8vBAq7BJ/Cp3QeHC8G7i/WwBl92ysmN90YOzGiEB4UQKw==", "dependencies": { "@cosmjs/amino": "0.32.3", "@cosmjs/cosmwasm-stargate": "0.32.3", diff --git a/package.json b/package.json index b3026ab9..17d2e662 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.7", "@sentry/nextjs": "^7.99.0", - "@skip-router/core": "4.1.1", + "@skip-router/core": "5.0.1", "@solana/spl-token": "^0.4.1", "@solana/wallet-adapter-react": "^0.15.35", "@solana/wallet-adapter-wallets": "^0.19.31", diff --git a/src/hooks/useChains.ts b/src/hooks/useChains.ts index 94f25289..5b4e0388 100644 --- a/src/hooks/useChains.ts +++ b/src/hooks/useChains.ts @@ -24,7 +24,7 @@ export function useChains(args: UseChainsQueryArgs = {}) { const chains = await skipClient.chains({ includeEVM: true, includeSVM: true, - includeTestnets: process.env.NEXT_PUBLIC_IS_TESTNET ? true : false, + onlyTestnets: process.env.NEXT_PUBLIC_IS_TESTNET ? true : false, }); return chains From 0f2a95e208b4c71f3a7c735d49b93ccb880f2a3d Mon Sep 17 00:00:00 2001 From: Nur Fikri Date: Thu, 13 Jun 2024 15:35:38 +0700 Subject: [PATCH 2/3] allow tia on stride for gas --- chain-registry | 2 +- package-lock.json | 8 ++--- package.json | 2 +- src/components/SwapWidget/useSwapWidget.ts | 36 ++++++++++++++++++++-- 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/chain-registry b/chain-registry index 7bccaa9b..f98ec1eb 160000 --- a/chain-registry +++ b/chain-registry @@ -1 +1 @@ -Subproject commit 7bccaa9b2437b3fd00358c8db60742159109e765 +Subproject commit f98ec1ebedab7228ab2f7694c3892d2033bdb0f3 diff --git a/package-lock.json b/package-lock.json index e418dd00..1e2903dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.7", "@sentry/nextjs": "^7.99.0", - "@skip-router/core": "5.0.1", + "@skip-router/core": "5.0.2", "@solana/spl-token": "^0.4.1", "@solana/wallet-adapter-react": "^0.15.35", "@solana/wallet-adapter-wallets": "^0.19.31", @@ -13484,9 +13484,9 @@ } }, "node_modules/@skip-router/core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@skip-router/core/-/core-5.0.1.tgz", - "integrity": "sha512-reoMD7BDqGIG0bZtBbxr0mqxAsBNlAAUPjtKIxuYh8vBAq7BJ/Cp3QeHC8G7i/WwBl92ysmN90YOzGiEB4UQKw==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@skip-router/core/-/core-5.0.2.tgz", + "integrity": "sha512-6sGQbb6CDXjV8OwKvQ6SqWJw/FtJ7Uw6oVpe1bmRKCu1TwYvwisG3FYowJQ3SjAli/1RzQwtIOr7njf+QM8ghA==", "dependencies": { "@cosmjs/amino": "0.32.3", "@cosmjs/cosmwasm-stargate": "0.32.3", diff --git a/package.json b/package.json index 17d2e662..e10f1c7d 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.7", "@sentry/nextjs": "^7.99.0", - "@skip-router/core": "5.0.1", + "@skip-router/core": "5.0.2", "@solana/spl-token": "^0.4.1", "@solana/wallet-adapter-react": "^0.15.35", "@solana/wallet-adapter-wallets": "^0.19.31", diff --git a/src/components/SwapWidget/useSwapWidget.ts b/src/components/SwapWidget/useSwapWidget.ts index 993d381d..7eb9240c 100644 --- a/src/components/SwapWidget/useSwapWidget.ts +++ b/src/components/SwapWidget/useSwapWidget.ts @@ -46,7 +46,7 @@ export function useSwapWidget() { const skipClient = useSkipClient(); - const { assetsByChainID, getFeeAsset, isReady: isAssetsReady } = useAssets(); + const { assetsByChainID, getFeeAsset, isReady: isAssetsReady, getAsset } = useAssets(); const { data: chains } = useChains(); const { getWalletRepo } = useCosmosManager(); @@ -149,7 +149,39 @@ export function useSwapWidget() { if (srcFeeAsset) { const parsedFeeBalance = BigNumber(balances[srcFeeAsset.denom] ?? "0").shiftedBy(-(srcFeeAsset.decimals ?? 6)); const parsedGasRequired = BigNumber(gasRequired || "0"); + if (srcChain?.chainID === "stride-1") { + const tiaIbcToken = "ibc/BF3B4F53F3694B66E13C23107C84B6485BD2B96296BB7EC680EA77BBA75B4801"; + const tiaOnStride = getAsset(tiaIbcToken, "stride-1"); + const parsedTiaOnStrideBalance = BigNumber(balances[tiaIbcToken] ?? "0").shiftedBy( + -(tiaOnStride?.decimals ?? 6), + ); + + const needTia = parsedTiaOnStrideBalance.minus(parsedGasRequired).isLessThanOrEqualTo(0); + const needFeeToken = parsedFeeBalance.minus(parsedGasRequired).isLessThanOrEqualTo(0); + const assetIsFeeDenom = srcFeeAsset.denom === srcAsset.denom; + const assetIsTiaDenom = srcAsset.denom === tiaIbcToken; + + if ( + parsedGasRequired.gt(0) && + (assetIsFeeDenom + ? parsedAmount.isGreaterThan(parsedBalance.minus(parsedGasRequired)) && needTia + : assetIsTiaDenom + ? parsedAmount.isGreaterThan(parsedTiaOnStrideBalance.minus(parsedGasRequired)) && needFeeToken + : needFeeToken + ? needTia + : needTia + ? needFeeToken + : false) + ) { + if (parsedAmount.isGreaterThan(parsedBalance)) { + return `Insufficient balance.`; + } + return `Insufficient balance. You need ≈${gasRequired} ${srcFeeAsset.recommendedSymbol} or ${tiaOnStride?.recommendedSymbol} to accomodate gas fees.`; + } + } + if ( + srcChain?.chainID !== "stride-1" && parsedGasRequired.gt(0) && (srcFeeAsset.denom === srcAsset.denom ? parsedAmount.isGreaterThan(parsedBalance.minus(parsedGasRequired)) @@ -164,7 +196,7 @@ export function useSwapWidget() { } return false; - }, [amountIn, balances, gasRequired, srcAsset, srcFeeAsset]); + }, [amountIn, balances, gasRequired, getAsset, srcAsset, srcChain?.chainID, srcFeeAsset]); const swapPriceImpactPercent = useMemo(() => { if (!route?.swapPriceImpactPercent) return undefined; From 228ae1537173e404799e719a1d84e035c2c5a668 Mon Sep 17 00:00:00 2001 From: Nur Fikri Date: Thu, 13 Jun 2024 19:56:05 +0700 Subject: [PATCH 3/3] hide estimated transaction fee on stride --- src/components/SwapWidget/SwapDetails.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/SwapWidget/SwapDetails.tsx b/src/components/SwapWidget/SwapDetails.tsx index 1047a680..309270e8 100644 --- a/src/components/SwapWidget/SwapDetails.tsx +++ b/src/components/SwapWidget/SwapDetails.tsx @@ -201,9 +201,13 @@ export const SwapDetails = ({ {sourceFeeAsset && ( <>
Estimated Transaction Fee
-
- {gasRequired ?? "-"} {sourceFeeAsset.recommendedSymbol} -
+ {sourceChain.chainID !== "stride-1" ? ( +
+ {gasRequired ?? "-"} {sourceFeeAsset.recommendedSymbol} +
+ ) : ( +
--
+ )} )} {/*
Gas Amount