diff --git a/packages/trpc/src/chains.ts b/packages/trpc/src/chains.ts index 7392e9aaf7..22812f0537 100644 --- a/packages/trpc/src/chains.ts +++ b/packages/trpc/src/chains.ts @@ -1,9 +1,11 @@ import { getChain } from "@osmosis-labs/server"; +import { EthereumChainInfo } from "@osmosis-labs/utils"; import { z } from "zod"; import { createTRPCRouter, publicProcedure } from "./api"; export const chainsRouter = createTRPCRouter({ + /** Get Cosmos chain. */ getChain: publicProcedure .input( z.object({ @@ -16,4 +18,13 @@ export const chainsRouter = createTRPCRouter({ chainNameOrId: findChainNameOrId, }) ), + getEvmChain: publicProcedure + .input( + z.object({ + chainId: z.number(), + }) + ) + .query(async ({ input: { chainId } }) => + Object.values(EthereumChainInfo).find((chain) => chain.id === chainId) + ), }); diff --git a/packages/web/components/bridge/immersive/amount-and-review-screen.tsx b/packages/web/components/bridge/immersive/amount-and-review-screen.tsx index 5615946af8..51c1518d51 100644 --- a/packages/web/components/bridge/immersive/amount-and-review-screen.tsx +++ b/packages/web/components/bridge/immersive/amount-and-review-screen.tsx @@ -8,17 +8,13 @@ import { getAddress } from "viem"; import { AmountScreen } from "~/components/bridge/immersive/amount-screen"; import { ImmersiveBridgeScreens } from "~/components/bridge/immersive/immersive-bridge"; import { useBridgeQuotes } from "~/components/bridge/immersive/use-bridge-quotes"; -import { useBridgesSupportedAssets } from "~/components/bridge/immersive/use-bridges-supported-assets"; +import { SupportedAsset } from "~/components/bridge/immersive/use-bridges-supported-assets"; import { Screen } from "~/components/screen-manager"; import { useEvmWalletAccount } from "~/hooks/evm-wallet"; import { useStore } from "~/stores"; import { ReviewScreen } from "./review-screen"; -export type SupportedAsset = ReturnType< - typeof useBridgesSupportedAssets ->["supportedAssetsByChainId"][string][number]; - export type SupportedAssetWithAmount = SupportedAsset & { amount: CoinPretty }; interface AmountAndConfirmationScreenProps { diff --git a/packages/web/components/bridge/immersive/amount-screen.tsx b/packages/web/components/bridge/immersive/amount-screen.tsx index 06909f6848..c84cdc4ff7 100644 --- a/packages/web/components/bridge/immersive/amount-screen.tsx +++ b/packages/web/components/bridge/immersive/amount-screen.tsx @@ -29,7 +29,10 @@ import { BridgeNetworkSelectModal } from "~/components/bridge/immersive/bridge-n import { BridgeWalletSelectModal } from "~/components/bridge/immersive/bridge-wallet-select-modal"; import { ImmersiveBridgeScreens } from "~/components/bridge/immersive/immersive-bridge"; import { MoreBridgeOptions } from "~/components/bridge/immersive/more-bridge-options"; -import { useBridgesSupportedAssets } from "~/components/bridge/immersive/use-bridges-supported-assets"; +import { + SupportedAsset, + useBridgesSupportedAssets, +} from "~/components/bridge/immersive/use-bridges-supported-assets"; import { InputBox } from "~/components/input"; import { SkeletonLoader, Spinner } from "~/components/loaders"; import { useScreenManager } from "~/components/screen-manager"; @@ -58,10 +61,6 @@ import { } from "./quote-detail"; import { BridgeQuotes } from "./use-bridge-quotes"; -type SupportedAsset = ReturnType< - typeof useBridgesSupportedAssets ->["supportedAssetsByChainId"][string][number]; - interface AmountScreenProps { direction: "deposit" | "withdraw"; selectedDenom: string; diff --git a/packages/web/components/bridge/immersive/bridge-quote-remaining-time.tsx b/packages/web/components/bridge/immersive/bridge-quote-remaining-time.tsx index 183ce051cf..b72c448988 100644 --- a/packages/web/components/bridge/immersive/bridge-quote-remaining-time.tsx +++ b/packages/web/components/bridge/immersive/bridge-quote-remaining-time.tsx @@ -1,12 +1,13 @@ import classNames from "classnames"; import { FunctionComponent, useEffect, useState } from "react"; +import { Spinner } from "~/components/loaders"; + export const BridgeQuoteRemainingTime: FunctionComponent<{ className?: string; refetchInterval: number; - expiredElement?: React.ReactNode; dataUpdatedAt: number; -}> = ({ className, refetchInterval, expiredElement, dataUpdatedAt }) => { +}> = ({ className, refetchInterval, dataUpdatedAt }) => { const [progress, setProgress] = useState(100); useEffect(() => { @@ -30,14 +31,14 @@ export const BridgeQuoteRemainingTime: FunctionComponent<{ return () => clearInterval(intervalId); }, [dataUpdatedAt, refetchInterval]); - if (progress <= 0) { - return expiredElement; - } - return (
- + {progress <= 0 ? ( + + ) : ( + + )}
); diff --git a/packages/web/components/bridge/immersive/quote-detail.tsx b/packages/web/components/bridge/immersive/quote-detail.tsx index 832ce9880d..66ccdd1da9 100644 --- a/packages/web/components/bridge/immersive/quote-detail.tsx +++ b/packages/web/components/bridge/immersive/quote-detail.tsx @@ -3,7 +3,6 @@ import classNames from "classnames"; import { FunctionComponent, PropsWithChildren } from "react"; import { Icon } from "~/components/assets"; -import { Spinner } from "~/components/loaders"; import { Tooltip } from "~/components/tooltip"; import { t } from "~/hooks"; @@ -187,7 +186,6 @@ export const ExpandDetailsControlContent: FunctionComponent< } /> )}
diff --git a/packages/web/components/bridge/immersive/review-screen.tsx b/packages/web/components/bridge/immersive/review-screen.tsx index 5a7feb3a78..5d7aa266db 100644 --- a/packages/web/components/bridge/immersive/review-screen.tsx +++ b/packages/web/components/bridge/immersive/review-screen.tsx @@ -2,6 +2,7 @@ import { CoinPretty, PricePretty } from "@keplr-wallet/unit"; import { BridgeChain } from "@osmosis-labs/bridge"; import { getShortAddress, isNil } from "@osmosis-labs/utils"; import Image from "next/image"; +import Link from "next/link"; import { FunctionComponent, useState } from "react"; import { useMeasure } from "react-use"; @@ -10,7 +11,6 @@ import { Button } from "~/components/ui/button"; import { useTranslation } from "~/hooks"; import { api } from "~/utils/trpc"; -import { SupportedAsset } from "./amount-and-review-screen"; import { BridgeProviderDropdownRow, EstimatedTimeRow, @@ -20,6 +20,7 @@ import { TotalFeesRow, } from "./quote-detail"; import { BridgeQuotes } from "./use-bridge-quotes"; +import { SupportedAsset } from "./use-bridges-supported-assets"; interface ConfirmationScreenProps { direction: "deposit" | "withdraw"; @@ -64,6 +65,8 @@ export const ReviewScreen: FunctionComponent = ({ onCancel, onConfirm, }) => { + const { t } = useTranslation(); + const { data: assetsInOsmosis } = api.edge.assets.getCanonicalAssetWithVariants.useQuery( { @@ -86,16 +89,34 @@ export const ReviewScreen: FunctionComponent = ({ (asset) => asset.coinMinimalDenom === toAsset.address ) ?? assetsInOsmosis?.[0]; + console.log({ can: quote.userCanInteract }); + return (
-
- Confirm {direction} {direction === "withdraw" ? "from" : "to"} Osmosis +
+ {t( + direction === "withdraw" + ? "transfer.confirmWithdrawTo" + : "transfer.confirmDepositTo", + { chain: quote.toChainInfo?.prettyName ?? "" } + )}
+

+ {t( + direction === "withdraw" + ? "transfer.reviewWithdrawP" + : "transfer.reviewDepositP" + )} +

{quote.selectedQuote && ( = ({ = ({ )}
+ + {t("disclaimer")} +
); }; @@ -146,38 +178,50 @@ const AssetBox: FunctionComponent<{ walletImageUrl, value, coin, -}) => ( -
-
-
- token image -
- {type === "from" ? "Transfer" : "Receive"} {coin.denom} -
-
-
-
- {type === "to" && "~"} {value.toString()} +}) => { + const { t } = useTranslation(); + return ( +
+
+
+ token image +
+ {t(type === "from" ? "transfer.transfer" : "transfer.receive", { + denom: coin.denom, + })} +
-
- {type === "to" && "~"} {coin.trim(true).toString()} +
+
+ {type === "to" && "~"} {value.toString()} +
+
+ {type === "to" && "~"} {coin.trim(true).toString()} +
-
-
-
-
- {type === "from" ? "From" : "To"} {chainName} -
-
- wallet image -
- {getShortAddress(address)} +
+
+
+ {t(type === "from" ? "transfer.from" : "transfer.to", { + network: chainName, + })} +
+
+ wallet image +
+ {getShortAddress(address)} +
-
-); + ); +}; /** Assumes the first provider in the list is the selected provider. */ const TransferDetails: FunctionComponent = (quote) => { diff --git a/packages/web/components/bridge/immersive/use-bridge-quotes.ts b/packages/web/components/bridge/immersive/use-bridge-quotes.ts index a58b1879e4..0e5877fe49 100644 --- a/packages/web/components/bridge/immersive/use-bridge-quotes.ts +++ b/packages/web/components/bridge/immersive/use-bridge-quotes.ts @@ -18,6 +18,7 @@ import { BaseError } from "wagmi"; import { displayToast } from "~/components/alert/toast"; import { ToastType } from "~/components/alert/types"; +import { useChainDisplayInfo } from "~/components/chain/use-chain-display-info"; import { useEvmWalletAccount, useSendEvmTransaction } from "~/hooks/evm-wallet"; import { useTranslation } from "~/hooks/language"; import { useStore } from "~/stores"; @@ -412,7 +413,7 @@ export const useBridgeQuotes = ({ const [isApprovingToken, setIsApprovingToken] = useState(false); - const isSendTxPending = (() => { + const isTxPending = (() => { if (!toChain) return false; return toChain.chainType === "cosmos" ? accountStore.getWallet(toChain.chainId)?.txTypeInProgress !== "" @@ -421,10 +422,10 @@ export const useBridgeQuotes = ({ // close modal when initial eth transaction is committed useEffect(() => { - if (transferInitiated && !isSendTxPending) { + if (transferInitiated && !isTxPending) { onRequestClose(); } - }, [isSendTxPending, onRequestClose, transferInitiated]); + }, [isTxPending, onRequestClose, transferInitiated]); const handleEvmTx = async ( quote: NonNullable["quote"] @@ -609,13 +610,19 @@ export const useBridgeQuotes = ({ quoteResults.some((quoteResult) => quoteResult.fetchStatus !== "idle"); const isLoadingBridgeTransaction = bridgeTransaction.isLoading && bridgeTransaction.fetchStatus !== "idle"; - const isWithdrawReady = isWithdraw && !isSendTxPending; + const isWithdrawReady = isWithdraw && !isTxPending; + const isWalletConnected = + fromChain?.chainType === "evm" + ? isEvmWalletConnected + : fromChain?.chainId + ? accountStore.getWallet(fromChain.chainId)?.isWalletConnected ?? false + : false; const isDepositReady = isDeposit && - !isEvmWalletConnected && + isWalletConnected && isCorrectEvmChainSelected && !isLoadingBridgeQuote && - !isEthTxPending; + !isTxPending; const userCanInteract = isDepositReady || isWithdrawReady; let buttonText: string; @@ -625,7 +632,7 @@ export const useBridgeQuotes = ({ buttonText = t("assets.transfer.transferAnyway"); } else if (isApprovingToken) { buttonText = t("assets.transfer.approving"); - } else if (isSendTxPending) { + } else if (isTxPending) { buttonText = t("assets.transfer.sending"); } else if ( selectedQuote?.quote?.transactionRequest?.type === "evm" && @@ -644,6 +651,9 @@ export const useBridgeQuotes = ({ throw new Error("Expected output is not defined."); } + const fromChainInfo = useChainDisplayInfo(fromChain?.chainId); + const toChainInfo = useChainDisplayInfo(toChain?.chainId); + return { buttonText, buttonErrorMessage, @@ -661,6 +671,9 @@ export const useBridgeQuotes = ({ warnUserOfSlippage, warnUserOfPriceImpact, + fromChainInfo, + toChainInfo, + successfulQuotes, selectedBridgeProvider, setSelectedBridgeProvider: onChangeBridgeProvider, diff --git a/packages/web/components/bridge/immersive/use-bridges-supported-assets.ts b/packages/web/components/bridge/immersive/use-bridges-supported-assets.ts index 1bdbf0ba2f..7471d474a2 100644 --- a/packages/web/components/bridge/immersive/use-bridges-supported-assets.ts +++ b/packages/web/components/bridge/immersive/use-bridges-supported-assets.ts @@ -7,6 +7,10 @@ import { api, RouterOutputs } from "~/utils/trpc"; const bridgeKeys: Bridge[] = ["Skip", "Squid", "Axelar", "IBC"]; +export type SupportedAsset = ReturnType< + typeof useBridgesSupportedAssets +>["supportedAssetsByChainId"][string][number]; + export const useBridgesSupportedAssets = ({ assets, chain, diff --git a/packages/web/components/chain/use-chain-display-info.ts b/packages/web/components/chain/use-chain-display-info.ts new file mode 100644 index 0000000000..e53c6e1515 --- /dev/null +++ b/packages/web/components/chain/use-chain-display-info.ts @@ -0,0 +1,38 @@ +import { useMemo } from "react"; + +import { api } from "~/utils/trpc"; + +/** Gets display data for multiple types of chains */ +export function useChainDisplayInfo(chainId: string | number | undefined) { + const cosmosChainEnabled = typeof chainId === "string"; + const { data: cosmosChain, isLoading: isLoadingCosmosChain_ } = + api.edge.chains.getChain.useQuery( + { + findChainNameOrId: chainId?.toString() ?? "", + }, + { + enabled: cosmosChainEnabled, + } + ); + const isLoadingCosmosChain = isLoadingCosmosChain_ && cosmosChainEnabled; + + const evmChainEnabled = typeof chainId === "number"; + const { data: evmChain, isLoading: isLoadingEvmChain_ } = + api.edge.chains.getEvmChain.useQuery( + { + chainId: Number(chainId), + }, + { + enabled: evmChainEnabled, + } + ); + const isLoadingEvmChain = isLoadingEvmChain_ && evmChainEnabled; + + return useMemo( + () => ({ + prettyName: cosmosChain?.pretty_name ?? evmChain?.name, + isLoading: isLoadingCosmosChain || isLoadingEvmChain, + }), + [cosmosChain, evmChain, isLoadingCosmosChain, isLoadingEvmChain] + ); +} diff --git a/packages/web/localizations/de.json b/packages/web/localizations/de.json index 197a70356d..2c87c75350 100644 --- a/packages/web/localizations/de.json +++ b/packages/web/localizations/de.json @@ -908,11 +908,15 @@ "withdraw": "Zurückziehen", "fromNetwork": "Aus dem Netzwerk", "toNetwork": "Netzwerken", + "from": "Von {network}", + "to": "Zu {network}", "max": "Max", "available": "verfügbar", "transferWith": "Übertragen mit", "transferTo": "Übertragen nach", "receiveAsset": "Anlagegut erhalten", + "transfer": "Übertragen {denom}", + "receive": "Empfangen Sie {denom}", "receiveAssetDescription": "Wenn Sie bestimmte Vermögenswerte hinterlegen, können Sie auf Osmosis auswählen, welche Version des Vermögenswerts Sie erhalten möchten.", "estimatingTime": "Zeit schätzen", "calculatingFees": "Gebührenberechnung", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Geschätzter erhaltener Betrag", "slippageWarning": "Der erwartete Ausgabebetrag für diese Transaktion ist erheblich niedriger als der Eingabebetrag. Daher kann es sein, dass Sie einen anderen Endbetrag als erwartet erhalten.", "priceImpactWarning": "Die Preiseinflüsse dieser Transaktion betragen {priceImpact} und können sich auf den endgültigen Betrag auswirken.", - "connect": "Verbinden" + "connect": "Verbinden", + "confirm": "Bestätigen", + "cancel": "Stornieren", + "confirmDepositTo": "Einzahlung an {chain} bestätigen", + "confirmWithdrawTo": "Auszahlung an {chain} bestätigen", + "reviewDepositP": "Überprüfen Sie vor der Bestätigung Ihre Einzahlungsdetails. Nach der Einzahlung ist Ihre Transaktion unumkehrbar.", + "reviewWithdrawP": "Überprüfen Sie vor der Bestätigung Ihre Auszahlungsdetails. Nach der Auszahlung ist Ihre Transaktion unumkehrbar." }, "unknownError": "Unbekannter Fehler", "viewExplorer": "Explorer anzeigen", diff --git a/packages/web/localizations/en.json b/packages/web/localizations/en.json index 3985ed58cb..20bfb2fa95 100644 --- a/packages/web/localizations/en.json +++ b/packages/web/localizations/en.json @@ -908,11 +908,15 @@ "withdraw": "Withdraw", "fromNetwork": "From network", "toNetwork": "To network", + "from": "From {network}", + "to": "To {network}", "max": "Max", "available": "available", "transferWith": "Transfer with", "transferTo": "Transfer to", "receiveAsset": "Receive asset", + "transfer": "Transfer {denom}", + "receive": "Receive {denom}", "receiveAssetDescription": "When you deposit certain assets, you can choose which version of the asset you want to receive on Osmosis.", "estimatingTime": "Estimating time", "calculatingFees": "Calculating fees", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Estimated amount received", "slippageWarning": "The expected output for this transaction is significantly lower than the input amount, which may result in receiving a different final amount than expected.", "priceImpactWarning": "The price impact of this transaction is {priceImpact}, which may influence the final amount received.", - "connect": "Connect" + "connect": "Connect", + "confirm": "Confirm", + "cancel": "Cancel", + "confirmDepositTo": "Confirm deposit to {chain}", + "confirmWithdrawTo": "Confirm withdraw to {chain}", + "reviewDepositP": "Review your deposit details before confirming. Once deposited, your transaction is irreversible.", + "reviewWithdrawP": "Review your withdraw details before confirming. Once withdrawn, your transaction is irreversible." }, "unknownError": "Unknown error", "viewExplorer": "View explorer", diff --git a/packages/web/localizations/es.json b/packages/web/localizations/es.json index 2d67542419..fd7a7edc03 100644 --- a/packages/web/localizations/es.json +++ b/packages/web/localizations/es.json @@ -908,11 +908,15 @@ "withdraw": "Retirar", "fromNetwork": "De la red", "toNetwork": "A la red", + "from": "De {network}", + "to": "A {network}", "max": "máx.", "available": "disponible", "transferWith": "Transferir con", "transferTo": "Transferir a", "receiveAsset": "Recibir activo", + "transfer": "Transferir {denom}", + "receive": "Recibir {denom}", "receiveAssetDescription": "Cuando deposita ciertos activos, puede elegir qué versión del activo desea recibir en Osmosis.", "estimatingTime": "tiempo estimado", "calculatingFees": "Calcular tarifas", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Cantidad estimada recibida", "slippageWarning": "El resultado esperado para esta transacción es significativamente menor que el monto de entrada, lo que puede resultar en recibir un monto final diferente al esperado.", "priceImpactWarning": "El impacto en el precio de esta transacción es {priceImpact} , lo que puede influir en el importe final recibido.", - "connect": "Conectar" + "connect": "Conectar", + "confirm": "Confirmar", + "cancel": "Cancelar", + "confirmDepositTo": "Confirmar depósito a {chain}", + "confirmWithdrawTo": "Confirmar retiro a {chain}", + "reviewDepositP": "Revise los detalles de su depósito antes de confirmar. Una vez depositada, su transacción es irreversible.", + "reviewWithdrawP": "Revise los detalles de su retiro antes de confirmar. Una vez retirada, su transacción es irreversible." }, "unknownError": "Error desconocido", "viewExplorer": "Ver Explorador", diff --git a/packages/web/localizations/fa.json b/packages/web/localizations/fa.json index 1138116875..67cb3ad4ea 100644 --- a/packages/web/localizations/fa.json +++ b/packages/web/localizations/fa.json @@ -908,11 +908,15 @@ "withdraw": "کنار کشیدن", "fromNetwork": "از شبکه", "toNetwork": "به شبکه", + "from": "از {network}", + "to": "برای {network}", "max": "حداکثر", "available": "در دسترس", "transferWith": "انتقال با", "transferTo": "انتقال به", "receiveAsset": "دریافت دارایی", + "transfer": "انتقال {denom}", + "receive": "دریافت {denom}", "receiveAssetDescription": "هنگامی که دارایی های خاصی را واریز می کنید، می توانید انتخاب کنید که کدام نسخه از دارایی را می خواهید در اسموز دریافت کنید.", "estimatingTime": "تخمین زمان", "calculatingFees": "محاسبه هزینه ها", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "مبلغ تخمینی دریافت شده", "slippageWarning": "خروجی مورد انتظار برای این تراکنش به طور قابل توجهی کمتر از مقدار ورودی است که ممکن است منجر به دریافت مبلغ نهایی متفاوتی نسبت به انتظار شود.", "priceImpactWarning": "تأثیر قیمت این تراکنش {priceImpact} است که ممکن است بر مبلغ نهایی دریافتی تأثیر بگذارد.", - "connect": "اتصال" + "connect": "اتصال", + "confirm": "تایید", + "cancel": "لغو کنید", + "confirmDepositTo": "تایید سپرده به {chain}", + "confirmWithdrawTo": "تأیید خروج به {chain}", + "reviewDepositP": "قبل از تایید، جزئیات سپرده خود را بررسی کنید. پس از واریز، تراکنش شما برگشت ناپذیر است.", + "reviewWithdrawP": "قبل از تایید، جزئیات برداشت خود را بررسی کنید. پس از برداشت، تراکنش شما برگشت ناپذیر است." }, "unknownError": "خطای نا شناس", "viewExplorer": "مشاهده جزئیات تراکنش", diff --git a/packages/web/localizations/fr.json b/packages/web/localizations/fr.json index 059d7aaf96..6ddd191232 100644 --- a/packages/web/localizations/fr.json +++ b/packages/web/localizations/fr.json @@ -908,11 +908,15 @@ "withdraw": "Retirer", "fromNetwork": "Du réseau", "toNetwork": "Pour réseauter", + "from": "De {network}", + "to": "Vers {network}", "max": "Max.", "available": "disponible", "transferWith": "Transfert avec", "transferTo": "Transférer à", "receiveAsset": "Recevoir l'actif", + "transfer": "Transférer {denom}", + "receive": "Recevoir {denom}", "receiveAssetDescription": "Lorsque vous déposez certains actifs, vous pouvez choisir la version de l'actif que vous souhaitez recevoir sur Osmosis.", "estimatingTime": "Temps estimé", "calculatingFees": "Calcul des frais", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Montant estimé reçu", "slippageWarning": "Le résultat attendu pour cette transaction est nettement inférieur au montant d'entrée, ce qui peut entraîner la réception d'un montant final différent de celui attendu.", "priceImpactWarning": "L'impact sur le prix de cette transaction est {priceImpact} , ce qui peut influencer le montant final reçu.", - "connect": "Connecter" + "connect": "Connecter", + "confirm": "Confirmer", + "cancel": "Annuler", + "confirmDepositTo": "Confirmez le dépôt à {chain}", + "confirmWithdrawTo": "Confirmez le retrait à {chain}", + "reviewDepositP": "Vérifiez les détails de votre dépôt avant de confirmer. Une fois déposée, votre transaction est irréversible.", + "reviewWithdrawP": "Vérifiez les détails de votre retrait avant de confirmer. Une fois retirée, votre transaction est irréversible." }, "unknownError": "Erreur inconnue", "viewExplorer": "Voir dans l'exploreur", diff --git a/packages/web/localizations/gu.json b/packages/web/localizations/gu.json index a3ca46d00c..ee19c1d370 100644 --- a/packages/web/localizations/gu.json +++ b/packages/web/localizations/gu.json @@ -908,11 +908,15 @@ "withdraw": "ઉપાડો", "fromNetwork": "નેટવર્કમાંથી", "toNetwork": "નેટવર્ક માટે", + "from": "{network} માંથી", + "to": "{network} માટે", "max": "મહત્તમ", "available": "ઉપલબ્ધ", "transferWith": "સાથે ટ્રાન્સફર કરો", "transferTo": "પર ટ્રાન્સફર કરો", "receiveAsset": "સંપત્તિ પ્રાપ્ત કરો", + "transfer": "ટ્રાન્સફર {denom}", + "receive": "{denom} મેળવો", "receiveAssetDescription": "જ્યારે તમે અમુક સંપત્તિઓ જમા કરો છો, ત્યારે તમે ઓસ્મોસિસ પર સંપત્તિનું કયું સંસ્કરણ પ્રાપ્ત કરવા માંગો છો તે પસંદ કરી શકો છો.", "estimatingTime": "સમયનો અંદાજ", "calculatingFees": "ફીની ગણતરી", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "પ્રાપ્ત થયેલ અંદાજિત રકમ", "slippageWarning": "આ ટ્રાન્ઝેક્શન માટે અપેક્ષિત આઉટપુટ ઇનપુટ રકમ કરતાં નોંધપાત્ર રીતે ઓછું છે, જેના પરિણામે અપેક્ષા કરતાં અલગ અંતિમ રકમ પ્રાપ્ત થઈ શકે છે.", "priceImpactWarning": "આ વ્યવહારની કિંમતની અસર {priceImpact} છે, જે પ્રાપ્ત થયેલી અંતિમ રકમને પ્રભાવિત કરી શકે છે.", - "connect": "જોડાવા" + "connect": "જોડાવા", + "confirm": "પુષ્ટિ કરો", + "cancel": "રદ કરો", + "confirmDepositTo": "{chain} માં જમા કરાવવાની પુષ્ટિ કરો", + "confirmWithdrawTo": "{chain} માં પાછી ખેંચવાની પુષ્ટિ કરો", + "reviewDepositP": "પુષ્ટિ કરતા પહેલા તમારી ડિપોઝિટ વિગતોની સમીક્ષા કરો. એકવાર જમા થઈ ગયા પછી, તમારો વ્યવહાર ઉલટાવી ન શકાય એવો છે.", + "reviewWithdrawP": "પુષ્ટિ કરતા પહેલા તમારી ઉપાડની વિગતોની સમીક્ષા કરો. એકવાર પાછી ખેંચી લીધા પછી, તમારો વ્યવહાર ઉલટાવી શકાતો નથી." }, "unknownError": "અજાણી ભૂલ", "viewExplorer": "સંશોધક જુઓ", diff --git a/packages/web/localizations/hi.json b/packages/web/localizations/hi.json index 62b86fa14c..3afc435ad5 100644 --- a/packages/web/localizations/hi.json +++ b/packages/web/localizations/hi.json @@ -908,11 +908,15 @@ "withdraw": "निकालना", "fromNetwork": "नेटवर्क से", "toNetwork": "नेटवर्क के लिए", + "from": "{network} से", + "to": "{network}", "max": "अधिकतम", "available": "उपलब्ध", "transferWith": "साथ स्थानांतरित करें", "transferTo": "के लिए स्थानांतरण", "receiveAsset": "संपत्ति प्राप्त करें", + "transfer": "स्थानांतरण {denom}", + "receive": "{denom} प्राप्त करें", "receiveAssetDescription": "जब आप कुछ परिसंपत्तियां जमा करते हैं, तो आप चुन सकते हैं कि आप ओस्मोसिस पर परिसंपत्ति का कौन सा संस्करण प्राप्त करना चाहते हैं।", "estimatingTime": "समय का अनुमान लगाना", "calculatingFees": "शुल्क की गणना", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "अनुमानित प्राप्त राशि", "slippageWarning": "इस लेनदेन के लिए अपेक्षित आउटपुट इनपुट राशि से काफी कम है, जिसके परिणामस्वरूप अपेक्षित राशि से भिन्न अंतिम राशि प्राप्त हो सकती है।", "priceImpactWarning": "इस लेनदेन का मूल्य प्रभाव {priceImpact} है, जो प्राप्त अंतिम राशि को प्रभावित कर सकता है।", - "connect": "जोड़ना" + "connect": "जोड़ना", + "confirm": "पुष्टि करना", + "cancel": "रद्द करना", + "confirmDepositTo": "{chain} में जमा की पुष्टि करें", + "confirmWithdrawTo": "{chain} से निकासी की पुष्टि करें", + "reviewDepositP": "पुष्टि करने से पहले अपनी जमा राशि का विवरण देखें। एक बार जमा हो जाने के बाद, आपका लेनदेन अपरिवर्तनीय हो जाता है।", + "reviewWithdrawP": "पुष्टि करने से पहले अपने निकासी विवरण की समीक्षा करें। एक बार निकासी हो जाने के बाद, आपका लेनदेन अपरिवर्तनीय हो जाता है।" }, "unknownError": "अज्ञात त्रुटि", "viewExplorer": "एक्सप्लोरर देखें", diff --git a/packages/web/localizations/ja.json b/packages/web/localizations/ja.json index c37d9190a6..cfd9564a11 100644 --- a/packages/web/localizations/ja.json +++ b/packages/web/localizations/ja.json @@ -908,11 +908,15 @@ "withdraw": "撤回する", "fromNetwork": "ネットワークから", "toNetwork": "ネットワークに", + "from": "{network}から", + "to": "{network}へ", "max": "マックス", "available": "利用可能", "transferWith": "転送", "transferTo": "転送先", "receiveAsset": "資産を受け取る", + "transfer": "転送{denom}", + "receive": "{denom}受け取る", "receiveAssetDescription": "特定の資産を預ける際に、Osmosis で受け取る資産のバージョンを選択できます。", "estimatingTime": "時間の見積もり", "calculatingFees": "手数料の計算", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "受け取る推定金額", "slippageWarning": "このトランザクションの予想出力は入力金額よりも大幅に低いため、予想とは異なる最終金額を受け取る可能性があります。", "priceImpactWarning": "この取引の価格影響は{priceImpact}であり、最終的に受け取る金額に影響する可能性があります。", - "connect": "接続する" + "connect": "接続する", + "confirm": "確認する", + "cancel": "キャンセル", + "confirmDepositTo": "{chain}への入金を確認します", + "confirmWithdrawTo": "{chain}への撤退を確認します", + "reviewDepositP": "確認する前に入金の詳細を確認してください。入金後は取引を取り消すことはできません。", + "reviewWithdrawP": "確定する前に出金の詳細を確認してください。出金すると、取引は取り消すことができません。" }, "unknownError": "不明なエラー", "viewExplorer": "エクスプローラーを表示する", diff --git a/packages/web/localizations/ko.json b/packages/web/localizations/ko.json index 50cb876078..b1d7162c0c 100644 --- a/packages/web/localizations/ko.json +++ b/packages/web/localizations/ko.json @@ -908,11 +908,15 @@ "withdraw": "철회하다", "fromNetwork": "네트워크에서", "toNetwork": "네트워크로", + "from": "{network} 에서", + "to": "{network}", "max": "맥스", "available": "사용 가능", "transferWith": "다음으로 환승", "transferTo": "로 전송", "receiveAsset": "자산 수령", + "transfer": "{denom} 전송", + "receive": "{denom} 수신", "receiveAssetDescription": "특정 자산을 입금할 때 Osmosis에서 받고 싶은 자산 버전을 선택할 수 있습니다.", "estimatingTime": "추정 시간", "calculatingFees": "수수료 계산", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "예상 수령 금액", "slippageWarning": "이 거래에 대한 예상 출력은 입력 금액보다 상당히 낮으므로 예상과 다른 최종 금액을 받게 될 수 있습니다.", "priceImpactWarning": "이 거래의 가격 영향은 {priceImpact} 이며, 최종 수령 금액에 영향을 미칠 수 있습니다.", - "connect": "연결하다" + "connect": "연결하다", + "confirm": "확인하다", + "cancel": "취소", + "confirmDepositTo": "{chain} 에 입금 확인", + "confirmWithdrawTo": "{chain} 철회를 확인하세요", + "reviewDepositP": "확인하기 전에 입금 세부정보를 검토하세요. 일단 입금되면 거래를 되돌릴 수 없습니다.", + "reviewWithdrawP": "확인하기 전에 출금 세부정보를 검토하세요. 일단 철회되면 거래를 되돌릴 수 없습니다." }, "unknownError": "알 수 없는 에러", "viewExplorer": "블록 익스플로러 보기", diff --git a/packages/web/localizations/pl.json b/packages/web/localizations/pl.json index ac146b9216..8c9bd0095a 100644 --- a/packages/web/localizations/pl.json +++ b/packages/web/localizations/pl.json @@ -908,11 +908,15 @@ "withdraw": "Wycofać", "fromNetwork": "Z sieci", "toNetwork": "Do sieci", + "from": "Z {network}", + "to": "Do {network}", "max": "Maks", "available": "dostępny", "transferWith": "Przenieś z", "transferTo": "Przenieść do", "receiveAsset": "Odbierz zasób", + "transfer": "Przelew {denom}", + "receive": "Odbierz {denom}", "receiveAssetDescription": "Kiedy zdeponujesz określone aktywa, możesz wybrać, którą wersję aktywów chcesz otrzymać na Osmozie.", "estimatingTime": "Szacowanie czasu", "calculatingFees": "Obliczanie opłat", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Szacunkowa otrzymana kwota", "slippageWarning": "Oczekiwany wynik dla tej transakcji jest znacznie niższy niż kwota wejściowa, co może skutkować otrzymaniem kwoty końcowej innej niż oczekiwano.", "priceImpactWarning": "Wpływ cenowy tej transakcji to {priceImpact} , co może mieć wpływ na ostateczną otrzymaną kwotę.", - "connect": "Łączyć" + "connect": "Łączyć", + "confirm": "Potwierdzać", + "cancel": "Anulować", + "confirmDepositTo": "Potwierdź wpłatę do {chain}", + "confirmWithdrawTo": "Potwierdź wypłatę do {chain}", + "reviewDepositP": "Przed potwierdzeniem sprawdź szczegóły swojej wpłaty. Po złożeniu depozytu Twoja transakcja jest nieodwracalna.", + "reviewWithdrawP": "Przed potwierdzeniem przejrzyj szczegóły wypłaty. Po wycofaniu transakcja jest nieodwracalna." }, "unknownError": "Nieznany błąd", "viewExplorer": "zobacz eksplorer", diff --git a/packages/web/localizations/pt-br.json b/packages/web/localizations/pt-br.json index c72ab9cfa7..e241b32d7f 100644 --- a/packages/web/localizations/pt-br.json +++ b/packages/web/localizations/pt-br.json @@ -908,11 +908,15 @@ "withdraw": "Retirar", "fromNetwork": "Da rede", "toNetwork": "Para rede", + "from": "De {network}", + "to": "Para {network}", "max": "Máx.", "available": "disponível", "transferWith": "Transferir com", "transferTo": "Transferir para", "receiveAsset": "Receber ativo", + "transfer": "Transferir {denom}", + "receive": "Receba {denom}", "receiveAssetDescription": "Ao depositar determinados ativos, você pode escolher qual versão do ativo deseja receber no Osmosis.", "estimatingTime": "Estimando tempo", "calculatingFees": "Calculando taxas", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Valor estimado recebido", "slippageWarning": "O resultado esperado para esta transação é significativamente inferior ao valor do insumo, o que pode resultar no recebimento de um valor final diferente do esperado.", "priceImpactWarning": "O impacto no preço desta transação é {priceImpact} , o que pode influenciar o valor final recebido.", - "connect": "Conectar" + "connect": "Conectar", + "confirm": "confirme", + "cancel": "Cancelar", + "confirmDepositTo": "Confirme o depósito em {chain}", + "confirmWithdrawTo": "Confirme a retirada para {chain}", + "reviewDepositP": "Revise os detalhes do seu depósito antes de confirmar. Uma vez depositada, sua transação é irreversível.", + "reviewWithdrawP": "Revise os detalhes de sua retirada antes de confirmar. Uma vez retirada, sua transação é irreversível." }, "unknownError": "Erro desconhecido", "viewExplorer": "Visualizar explorer", diff --git a/packages/web/localizations/ro.json b/packages/web/localizations/ro.json index 52b6095f53..ede4d723cb 100644 --- a/packages/web/localizations/ro.json +++ b/packages/web/localizations/ro.json @@ -908,11 +908,15 @@ "withdraw": "Retrage", "fromNetwork": "Din rețea", "toNetwork": "La rețea", + "from": "De la {network}", + "to": "Către {network}", "max": "Max", "available": "disponibil", "transferWith": "Transfer cu", "transferTo": "Transfer către", "receiveAsset": "Primiți activ", + "transfer": "Transferați {denom}", + "receive": "Primiți {denom}", "receiveAssetDescription": "Când depui anumite active, poți alege ce versiune a activului vrei să primești pe Osmosis.", "estimatingTime": "Estimarea timpului", "calculatingFees": "Calcularea taxelor", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Suma estimată primită", "slippageWarning": "Ieșirea așteptată pentru această tranzacție este semnificativ mai mică decât suma de intrare, ceea ce poate duce la primirea unei alte sume finale decât cele așteptate.", "priceImpactWarning": "Impactul asupra prețului acestei tranzacții este {priceImpact} , care poate influența suma finală primită.", - "connect": "Conectați" + "connect": "Conectați", + "confirm": "A confirma", + "cancel": "Anulare", + "confirmDepositTo": "Confirmați depunerea către {chain}", + "confirmWithdrawTo": "Confirmați retragerea la {chain}", + "reviewDepositP": "Verificați detaliile depunerii înainte de a confirma. Odată depusă, tranzacția dvs. este ireversibilă.", + "reviewWithdrawP": "Verificați detaliile de retragere înainte de a confirma. Odată retrasă, tranzacția dvs. este ireversibilă." }, "unknownError": "Eroare necunoscuta", "viewExplorer": "vezi explorer", diff --git a/packages/web/localizations/ru.json b/packages/web/localizations/ru.json index 3938f99817..824c9a58d6 100644 --- a/packages/web/localizations/ru.json +++ b/packages/web/localizations/ru.json @@ -908,11 +908,15 @@ "withdraw": "Отзывать", "fromNetwork": "Из сети", "toNetwork": "В сеть", + "from": "Из {network}", + "to": "Чтобы {network}", "max": "Макс", "available": "доступный", "transferWith": "Трансфер с", "transferTo": "Перевести", "receiveAsset": "Получить актив", + "transfer": "Передача {denom}", + "receive": "Получите {denom}", "receiveAssetDescription": "Когда вы вносите определенные активы, вы можете выбрать, какую версию актива вы хотите получить на Osmosis.", "estimatingTime": "Оценка времени", "calculatingFees": "Расчет комиссий", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Ориентировочная полученная сумма", "slippageWarning": "Ожидаемый результат этой транзакции значительно ниже входной суммы, что может привести к получению другой конечной суммы, чем ожидалось.", "priceImpactWarning": "Влияние этой транзакции на цену составляет {priceImpact} , что может повлиять на конечную полученную сумму.", - "connect": "Соединять" + "connect": "Соединять", + "confirm": "Подтверждать", + "cancel": "Отмена", + "confirmDepositTo": "Подтвердите депозит на {chain}", + "confirmWithdrawTo": "Подтвердите вывод на {chain}", + "reviewDepositP": "Перед подтверждением проверьте данные своего депозита. После внесения депозита ваша транзакция становится необратимой.", + "reviewWithdrawP": "Перед подтверждением проверьте данные вывода средств. После вывода ваша транзакция становится необратимой." }, "unknownError": "Неизвестная ошибка", "viewExplorer": "Посмотреть проводник", diff --git a/packages/web/localizations/tr.json b/packages/web/localizations/tr.json index 77a46b2c8e..3a421b2bf3 100644 --- a/packages/web/localizations/tr.json +++ b/packages/web/localizations/tr.json @@ -908,11 +908,15 @@ "withdraw": "Geri çekilmek", "fromNetwork": "Ağdan", "toNetwork": "Ağa", + "from": "{network} kaynağından", + "to": "{network} için", "max": "Maksimum", "available": "mevcut", "transferWith": "Şununla aktar:", "transferTo": "Transfer", "receiveAsset": "Varlık al", + "transfer": "{denom}", + "receive": "{denom}", "receiveAssetDescription": "Belirli varlıkları yatırdığınızda, Osmosis'te varlığın hangi versiyonunu almak istediğinizi seçebilirsiniz.", "estimatingTime": "Tahmini süre", "calculatingFees": "Ücretlerin hesaplanması", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "Alınan tahmini miktar", "slippageWarning": "Bu işlem için beklenen çıktı, girdi tutarından önemli ölçüde düşüktür ve bu, beklenenden farklı bir nihai tutarın alınmasıyla sonuçlanabilir.", "priceImpactWarning": "Bu işlemin fiyat etkisi {priceImpact} olup, alınan son tutarı etkileyebilir.", - "connect": "Bağlamak" + "connect": "Bağlamak", + "confirm": "Onaylamak", + "cancel": "İptal etmek", + "confirmDepositTo": "{chain} hesabına para yatırmayı onaylayın", + "confirmWithdrawTo": "{chain} bağlantısına çekilmeyi onaylayın", + "reviewDepositP": "Onaylamadan önce para yatırma ayrıntılarınızı inceleyin. Para yatırıldıktan sonra işleminiz geri alınamaz.", + "reviewWithdrawP": "Onaylamadan önce para çekme ayrıntılarınızı gözden geçirin. Geri çekildikten sonra işleminiz geri alınamaz." }, "unknownError": "Bilinmeyen hata", "viewExplorer": "gezginde görüntüle", diff --git a/packages/web/localizations/zh-cn.json b/packages/web/localizations/zh-cn.json index 01f5b40b91..8a36a40da6 100644 --- a/packages/web/localizations/zh-cn.json +++ b/packages/web/localizations/zh-cn.json @@ -908,11 +908,15 @@ "withdraw": "提取", "fromNetwork": "摘自网络", "toNetwork": "建立网络", + "from": "来自{network}", + "to": "至{network}", "max": "最大限度", "available": "可用的", "transferWith": "转让", "transferTo": "传送到", "receiveAsset": "接收资产", + "transfer": "转移{denom}", + "receive": "接收{denom}", "receiveAssetDescription": "当你存入某些资产时,你可以选择要在 Osmosis 上接收哪个版本的资产。", "estimatingTime": "估计时间", "calculatingFees": "计算费用", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "预计收到金额", "slippageWarning": "该交易的预期输出明显低于输入金额,这可能导致收到的最终金额与预期不同。", "priceImpactWarning": "此交易的价格影响为{priceImpact} ,可能会影响最终收到的金额。", - "connect": "连接" + "connect": "连接", + "confirm": "确认", + "cancel": "取消", + "confirmDepositTo": "确认存款至{chain}", + "confirmWithdrawTo": "确认提现至{chain}", + "reviewDepositP": "确认前请检查您的存款详情。一旦存款,您的交易将不可逆转。", + "reviewWithdrawP": "确认前请检查您的提款详情。一旦提款,您的交易将不可逆转。" }, "unknownError": "未知错误", "viewExplorer": "浏览器查看", diff --git a/packages/web/localizations/zh-hk.json b/packages/web/localizations/zh-hk.json index 2fb92a90cd..b5b55fb07b 100644 --- a/packages/web/localizations/zh-hk.json +++ b/packages/web/localizations/zh-hk.json @@ -908,11 +908,15 @@ "withdraw": "提取", "fromNetwork": "來自網路", "toNetwork": "至網路", + "from": "來自{network}", + "to": "到{network}", "max": "最大限度", "available": "可用的", "transferWith": "轉移與", "transferTo": "傳送到", "receiveAsset": "接收資產", + "transfer": "傳輸{denom}", + "receive": "接收{denom}", "receiveAssetDescription": "當您存入某些資產時,您可以選擇想要在 Osmosis 上接收的資產版本。", "estimatingTime": "預計時間", "calculatingFees": "計算費用", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "預計收到金額", "slippageWarning": "該交易的預期輸出明顯低於輸入金額,這可能導致收到與預期不同的最終金額。", "priceImpactWarning": "此交易的價格影響為{priceImpact} ,這可能會影響最終收到的金額。", - "connect": "連接" + "connect": "連接", + "confirm": "確認", + "cancel": "取消", + "confirmDepositTo": "確認充值至{chain}", + "confirmWithdrawTo": "確認提現至{chain}", + "reviewDepositP": "確認前請檢查您的存款詳細資料。一旦存入,您的交易就不可逆轉。", + "reviewWithdrawP": "確認前請檢查您的提款詳細資料。一旦撤回,您的交易將不可逆轉。" }, "unknownError": "未知錯誤", "viewExplorer": "使用區塊瀏覽器查看", diff --git a/packages/web/localizations/zh-tw.json b/packages/web/localizations/zh-tw.json index 10c724b78f..8777da9f6a 100644 --- a/packages/web/localizations/zh-tw.json +++ b/packages/web/localizations/zh-tw.json @@ -908,11 +908,15 @@ "withdraw": "提取", "fromNetwork": "來自網路", "toNetwork": "至網路", + "from": "來自{network}", + "to": "到{network}", "max": "最大限度", "available": "可用的", "transferWith": "轉移與", "transferTo": "傳送到", "receiveAsset": "接收資產", + "transfer": "傳輸{denom}", + "receive": "接收{denom}", "receiveAssetDescription": "當您存入某些資產時,您可以選擇想要在 Osmosis 上接收的資產版本。", "estimatingTime": "預計時間", "calculatingFees": "計算費用", @@ -969,7 +973,13 @@ "estimatedAmountReceived": "預計收到金額", "slippageWarning": "該交易的預期輸出明顯低於輸入金額,這可能導致收到與預期不同的最終金額。", "priceImpactWarning": "此交易的價格影響為{priceImpact} ,這可能會影響最終收到的金額。", - "connect": "連接" + "connect": "連接", + "confirm": "確認", + "cancel": "取消", + "confirmDepositTo": "確認充值至{chain}", + "confirmWithdrawTo": "確認提現至{chain}", + "reviewDepositP": "確認前請檢查您的存款詳細資料。一旦存入,您的交易就不可逆轉。", + "reviewWithdrawP": "確認前請檢查您的提款詳細資料。一旦撤回,您的交易將不可逆轉。" }, "unknownError": "未知錯誤", "viewExplorer": "使用區塊瀏覽器查看", diff --git a/packages/web/server/api/routers/bridge-transfer.ts b/packages/web/server/api/routers/bridge-transfer.ts index b00a9e0c33..4d8691deb0 100644 --- a/packages/web/server/api/routers/bridge-transfer.ts +++ b/packages/web/server/api/routers/bridge-transfer.ts @@ -293,7 +293,7 @@ export const bridgeTransferRouter = createTRPCRouter({ } return { - prettyName: cosmosChain.chain_name, + prettyName: cosmosChain.pretty_name, chainId: cosmosChain.chain_id, chainType, };