diff --git a/.env b/.env
index 4dd4f90ced3..859d961f7c0 100644
--- a/.env
+++ b/.env
@@ -12,9 +12,6 @@ VITE_FEATURE_MAYACHAIN=true
VITE_FEATURE_BASE=true
VITE_FEATURE_OPTIMISM=true
VITE_FEATURE_ZCASH=true
-VITE_FEATURE_SAVERS_VAULTS=true
-VITE_FEATURE_SAVERS_VAULTS_DEPOSIT=false
-VITE_FEATURE_SAVERS_VAULTS_WITHDRAW=false
VITE_FEATURE_WALLET_CONNECT_TO_DAPPS_V2=true
VITE_FEATURE_WALLET_CONNECT_TO_DAPPS=true
VITE_FEATURE_ADVANCED_SLIPPAGE=true
@@ -23,9 +20,6 @@ VITE_FEATURE_TREZOR_WALLET=true
VITE_FEATURE_VULTISIG_WALLET=true
VITE_FEATURE_WALLET_CONNECT_V2=true
VITE_FEATURE_WC_DIRECT_CONNECTION=false
-VITE_FEATURE_THORCHAIN_LENDING=true
-VITE_FEATURE_THORCHAIN_LENDING_BORROW=false
-VITE_FEATURE_THORCHAIN_LENDING_REPAY=false
VITE_FEATURE_THORCHAINSWAP_LONGTAIL=true
VITE_FEATURE_THORCHAINSWAP_L1_TO_LONGTAIL=true
VITE_FEATURE_THORCHAIN_LP=true
diff --git a/src/Routes/RoutesCommon.tsx b/src/Routes/RoutesCommon.tsx
index 20e9854772b..372ed36451a 100644
--- a/src/Routes/RoutesCommon.tsx
+++ b/src/Routes/RoutesCommon.tsx
@@ -118,16 +118,6 @@ const Explore = makeSuspenseful(
true,
)
-const LendingPage = makeSuspenseful(
- lazy(() =>
- import('@/pages/Lending/LendingPage').then(({ LendingPage }) => ({
- default: LendingPage,
- })),
- ),
- {},
- true,
-)
-
const PoolsPage = makeSuspenseful(
lazy(() =>
import('@/pages/ThorChainLP/PoolsPage').then(({ PoolsPage }) => ({
@@ -383,20 +373,6 @@ export const routes: Route[] = [
mobileNav: false,
disable: !getConfig().VITE_FEATURE_THORCHAIN_LP,
},
- {
- path: '/lending/*',
- label: getConfig().VITE_FEATURE_CHAINFLIP_LENDING
- ? 'navBar.thorchainLending'
- : 'navBar.lending',
- icon: ,
- main: LendingPage,
- category: RouteCategory.Thorchain,
- priority: 2,
- mobileNav: false,
- disable: !getConfig().VITE_FEATURE_THORCHAIN_LENDING,
- isViewOnly: true,
- isDeprecated: getConfig().VITE_FEATURE_CHAINFLIP_LENDING,
- },
{
path: '/chainflip-lending/*',
label: 'navBar.chainflipLending',
diff --git a/src/assets/savers-vault-top.png b/src/assets/runepool-top.png
similarity index 100%
rename from src/assets/savers-vault-top.png
rename to src/assets/runepool-top.png
diff --git a/src/assets/translations/de/main.json b/src/assets/translations/de/main.json
index 8bbbbe1f817..67daf405b76 100644
--- a/src/assets/translations/de/main.json
+++ b/src/assets/translations/de/main.json
@@ -602,36 +602,18 @@
"claimNow": "jetzt Einfordern",
"claimYour": "Fordern Sie Ihre %{opportunity} an"
},
- "saversVaults": {
- "description": "Verdienen Sie Rendite auf Ihr %{asset} durch die THORChain Savers Vaults. Es gibt keine Sperrzeit und Belohnungen werden automatisch angesammelt. Die Rendite auf THORChain ergibt sich aus Swap-Gebühren und Blockbelohnungen. Die einseitige Rendite ist auf die Hälfte der doppelseitigen Rendite der Liquiditätsanbieter begrenzt.",
- "runePoolDescription": "Mit RUNEPool können Sie mehr %{asset} verdienen, indem Sie Ihr %{asset} mit anderen bündeln. Sie müssen keine bestimmten Pools auswählen, alle sind an der Gesamtleistung beteiligt.",
- "runePoolOverviewDescription": "RUNEPool optimiert die RUNE Nutzung, indem es in alle POL-fähigen Liquiditätspools in THORChain eingezahlt wird. Durch das Pooling von RUNE in diesen Pools verdienen die Teilnehmer den kombinierten APY, sind jedoch dem gesamten vorübergehenden Verlust ausgesetzt. Anstatt einzelne Pools auszuwählen, profitieren Benutzer von der Gesamtleistung und investieren effektiv in einen RUNE-Index und alle POL-fähigen THORChain-Vermögenswerte. Dies vereinfacht die Liquiditätsbereitstellung und reduziert das individuelle Risiko.",
- "vaultCap": "Tresorobergrenze",
- "vaultCapTooltip": "Akt. max. Kapazität für diesen Tresor",
+ "runePool": {
+ "description": "Mit RUNEPool können Sie mehr %{asset} verdienen, indem Sie Ihr %{asset} mit anderen bündeln. Sie müssen keine bestimmten Pools auswählen, alle sind an der Gesamtleistung beteiligt.",
+ "overviewDescription": "RUNEPool optimiert die RUNE Nutzung, indem es in alle POL-fähigen Liquiditätspools in THORChain eingezahlt wird. Durch das Pooling von RUNE in diesen Pools verdienen die Teilnehmer den kombinierten APY, sind jedoch dem gesamten vorübergehenden Verlust ausgesetzt. Anstatt einzelne Pools auszuwählen, profitieren Benutzer von der Gesamtleistung und investieren effektiv in einen RUNE-Index und alle POL-fähigen THORChain-Vermögenswerte. Dies vereinfacht die Liquiditätsbereitstellung und reduziert das individuelle Risiko.",
+ "introducing": "Einführung in RUNEPool",
+ "agree": "Mir ist bewusst, dass bei RUNEPool eine Mindestsperrfrist von 30 Tagen besteht und ein erhöhtes Risiko eines vorübergehenden Verlusts besteht.",
"haltedDepositTitle": "Einzahlungen sind vorübergehend gestoppt.",
"disabledDepositTitle": "Einzahlungen sind vorübergehend deaktiviert.",
"disabledWithdrawTitle": "Auszahlungen sind vorübergehend deaktiviert.",
"withdrawLockedTitle": "Sie müssen %{timeHuman} warten, um abzuheben.",
- "haltedDescription": "Bitte twittern Sie an @THORChain, um die Obergrenzen zu erhöhen!",
- "protocolFee": "Protokollgebühr",
- "dustAmount": "Kleinbetrag",
- "dustAmountTooltip": "Ein Kleinbetrag ist erforderlich, um Ihre Adresse zu identifizieren, und wird für die spätere Verwendung reserviert, wenn Sie eine Auszahlung vornehmen möchten",
- "sendDustBody": "Sie müssen einen Kleinbetrag an diese Adresse senden, um Abheben zu können.",
- "sendDust": "Sende Kleinbetrag",
- "addressToSendTo": "an diese Adresse senden",
- "introducingSaversVaults": "Einführung von Savers Vaults",
- "introducingRunePool": "Einführung in RUNEPool",
- "risksBody": {
- "vaults": "In Bezug auf diesen Artikel für Risiken im Zusammenhang mit Savers Vaults.",
- "runePool": "In Bezug auf diesen Artikel für die mit RUNEPool verbundenen Risiken."
- },
- "timeToBreakEven": {
- "title": "Zeit zum Break-Even",
- "tooltip": "Geschätzte Zeit zur Deckung von Einzahlungsgebühren und Einnahmen."
- },
"cannotDepositWhilePendingTx": "Kann nicht einzahlen, während Txs ausstehen",
"cannotWithdrawWhilePendingTx": "Kann nicht auszahlen, während Txs ausstehen",
- "agreeRunePool": "Mir ist bewusst, dass bei RUNEPool eine Mindestsperrfrist von 30 Tagen besteht und ein erhöhtes Risiko eines vorübergehenden Verlusts besteht."
+ "risksBody": "In Bezug auf diesen Artikel für die mit RUNEPool verbundenen Risiken."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Limit Bestellungen",
"buyCrypto": "Krypto kaufen/verkaufen",
"buyCryptoShort": "Kauf/Verkauf",
- "lending": "Verleihen",
- "thorchainLending": "THORChain Lending",
"chainflipLending": "Chainflip Lending",
"pools": "Pools",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "Benutzerdefiniert"
},
"lending": {
- "lending": "Verleihen",
- "repaymentAvailable": "Rückzahlung möglich",
- "repaymentUnavailable": "Rückzahlung noch nicht möglich",
- "daysUntilRepayment": "%{numDays} Tage bis zur Rückzahlung",
- "repaymentDays": "%{numDays} Tage",
- "lendingBody": "Eine Auflistung aller Pools, die zinslos und ohne Liquidation ausgeliehen werden können.",
- "collateralValue": "Sicherheitenwert",
- "collateralValueDescription": "Aktueller Vermögenswert, der als Sicherheit dient",
- "debtValue": "Schuldenwert",
- "loanToValue": "Beleihungswert",
- "availablePools": "Verfügbare Pools",
- "pool": "Pool",
- "poolDepth": "Pooltiefe",
- "poolDepthDescription": "Die Gesundheit des Pools",
- "status": "Status",
- "statusDescription": "Der Status des Pools",
- "totalDebtBalance": "Gesamtschuldensaldo",
- "totalDebtBalanceDescription": "Kumulierter Schuldenstand im Lending-pool",
- "totalCollateral": "Gesamtsicherheiten",
- "totalCollateralDescription": "Gesamte dem Lending-pool hinzugefügte Sicherheiten",
- "estCollateralizationRatio": "zirka Besicherungsverhältnis",
- "estCollateralizationRatioDescription": "Derzeit gilt eine pauschale Besicherungsquote von 200 %. Zukünftig wird eine dynamische Quote je nach Marktbedingungen einen Ausgleich zwischen der maximalen und minimalen Besicherungsquote schaffen.",
- "collateralizationRatio": "Besicherungsverhältnis",
- "totalBorrowers": "Gesamtzahl der Kreditnehmer",
- "totalBorrowersDescription": "Anzahl der teilnehmenden Kreditnehmer",
- "myLoanInformation": "Meine Kreditinformationen",
- "loanInformation": "Kreditübersicht",
- "poolInformation": "Pool Information",
- "collateralBalance": "Sicherheitensaldo",
- "collateralBalanceDescription": "Gesamtbetrag Ihres Vermögenswertes, der derzeit als Sicherheit gehalten wird",
- "debtBalance": "Schuldenstand",
- "debtBalanceDescription": "Gesamtbetrag der Schulden, die Sie für dieses Darlehen schulden",
- "repaymentLock": "Rückzahlungssperre",
- "repaymentLockDescription": "Mindestlaufzeit, bevor Sie Ihr Darlehen zurückzahlen können",
- "receiveCollateral": "Der Betrag der Sicherheit, den Sie zurückerhalten",
- "borrow": "Ausleihen",
- "repay": "Zurückzahlen",
- "repayAmount": "Rückzahlungsbetrag",
- "unlocked": "Entsperrt",
- "unlockedCollateral": "Freigeschaltete Sicherheiten",
- "depositAsset": "Einzahlen von %{asset}",
"switchAssets": "Vermögenswerte wechseln",
- "outstandingDebt": "Restschuld",
- "outstandingDebtDescription": "Die Höhe der von Ihnen geliehenen Sicherheiten",
- "collateral": "Sicherheit",
- "debt": "Schulden",
- "healthy": "Die Tiefe ist optimal, die Kredite sind effizient.",
- "confirmAndBorrow": "Bestätigen und ausleihen",
- "confirmAndRepay": "Bestätigen und zurückzahlen",
- "borrowAgain": "Nochmals ausleihen",
- "repayAgain": "Nochmals zurückzahlen",
- "transactionInfo": "Transaktionsübersicht",
- "repayNoticeTitle": "Halten!",
- "repayNoticeCta": "Ich verstehe",
- "repayNotice": "Um Ihre Sicherheiten zurückzuerhalten, müssen Sie 100 % Ihrer Schulden zurückzahlen.",
- "feesNotice": "Für die Sicherheiten, die Sie nach vollständiger Rückzahlung Ihrer Schulden zurückerhalten, fallen Gebühren an",
- "refetchQuote": "Angebot erneut abrufen",
- "haltedAlert": "THORFi Dienste (Lending, Savers und RUNEPool) sind derzeit auf THORChain pausiert. Wir entschuldigen uns für etwaige Unannehmlichkeiten.",
- "faq": {
- "title": "FAQ",
- "lending": {
- "title": "Was ist THORChain Lending?",
- "body": "Die Kreditvergabe ermöglicht es Benutzern, native Sicherheiten zu hinterlegen und dann eine Schuld mit einer Besicherungsquote (CR) zu schaffen. Die Schulden lauten immer auf USD (auch bekannt als TOR), unabhängig davon, welchen L1 Vermögenswert der Benutzer erhält"
- },
- "borrowing": {
- "title": "Wie funktioniert die Kreditaufnahme?",
- "body": "Bei der Kreditaufnahme in THORChain nutzen Sie Ihr hinterlegtes Vermögen als Sicherheit für die Aufnahme eines Kredits. Das Darlehen lautet auf USD (TOR) und kann in verschiedenen L1 Vermögenswerten aufgenommen werden. Mit einer dynamischen Besicherungsquote können Sie flexibel Kredite aufnehmen, ohne sich um Zinsen oder Liquidation sorgen zu müssen"
- },
- "repayments": {
- "title": "Wie funktioniert die Rückzahlung?",
- "body": "Die Rückzahlung in THORChain ist flexibel und ermöglicht Ihnen die Rückzahlung jederzeit nach Ablauf Ihrer Rückzahlungssperre und in jedem Vermögenswert, der dann in TOR umgewandelt wird. Der Rückzahlungsbetrag wird von Ihrem Schuldensaldo abgezogen und die anteilige Sicherheit wird Ihnen bei vollständiger Rückzahlung wieder freigegeben"
- }
- },
- "errors": {
- "repaymentsHalted": "Rückzahlungen sind vorübergehend gestoppt.",
- "borrowingHalted": "Ausleihen ist vorübergehend gestoppt.",
- "repaymentsDisabled": "Rückzahlungen sind vorübergehend deaktiviert.",
- "borrowingDisabled": "Ausleihen ist vorübergehend deaktiviert.",
- "amountTooLowToReturnCollateral": "Betrag zu niedrig, um Sicherheiten zurückzugeben",
- "amountTooLowToReturnCollateralTooltip": "Die Rückzahlung ist zu niedrig, um Ihre Sicherheiten zurückzuerhalten. Bitte versuchen Sie es erneut mit einem höheren Betrag oder zahlen Sie einen Teilbetrag zurück (wodurch Sie Ihre Sicherheiten nicht zurückerhalten, Ihre Schulden jedoch verringern).",
- "amountTooSmallUnknownMinimumTooltip": "Der von Ihnen eingegebene Rückzahlungsbetrag ist zu gering. Bitte versuchen Sie es erneut mit einem höheren Betrag.",
- "repaymentUnavailableTooltip": "Eine Rückzahlung Ihres Kredites ist derzeit nicht möglich. Bitte warten Sie, bis die Rückzahlungssperre abgelaufen ist.",
- "repaymentsHaltedTooltip": "Die Rückzahlungen sind vorübergehend ausgesetzt. Bitte versuchen Sie es später noch einmal."
- },
- "quote": {
- "collateral": "Gesamtvermögenswert, der gegen Ihr Darlehen besichert wird",
- "debt": "Gesamtschulden, die Sie basierend auf Ihrem neuen Kreditbetrag schulden",
- "repaymentLock": "Mindestlaufzeit, bevor Sie Ihr Darlehen zurückzahlen können",
- "collateralizationRatio": "Verhältnis Ihres Sicherheitenwertes zum Kreditbetrag",
- "feesPlusSlippage": "Es fielen insgesamt Gebühren an, einschließlich L1 Gebühren, Slippage und THORChain-Liquiditätsgebühren"
- },
- "yourLoans": {
- "yourLoans": "Ihre Kredite",
- "emptyTitle": "Das Land der Nullkredite!",
- "emptyBody": "Offenbar haben Sie im Moment keine Kredite. Ist das ein finanzieller Zen-Zauber oder nur eine Pause vor Ihrem nächsten großen Kreditabenteuer? Wie auch immer, genießen Sie die Ruhe!"
- }
+ "poolInformation": "Pool Information"
},
"chainflipLending": {
"awaitingConfirmTitle": "Bestätigung ausstehend",
@@ -2970,7 +2856,8 @@
"title": "Risiken und Überlegungen",
"body": "Während Liquiditätspools Ertragsmöglichkeiten bieten, ist es wichtig, sich der damit verbundenen Risiken bewusst zu sein, einschließlich vorübergehender Verluste, Schwachstellen bei intelligenten Verträgen und Marktvolatilität. Benutzer sollten vor der Teilnahme gründliche Recherchen durchführen."
}
- }
+ },
+ "haltedDepositTitle": "Einzahlungen sind vorübergehend gestoppt."
},
"warningAcknowledgement": {
"understand": "Ich verstehe",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "Erträge",
"pageSubtitle": "Ertragspotenziale über mehrere Ketten hinweg erkennen und nutzen",
- "actions": {
- },
+ "actions": {},
"yield": "Ertrag",
"apy": "APY",
"apr": "APR",
diff --git a/src/assets/translations/en/main.json b/src/assets/translations/en/main.json
index f0766ee6162..53ffe84af05 100644
--- a/src/assets/translations/en/main.json
+++ b/src/assets/translations/en/main.json
@@ -602,36 +602,18 @@
"claimNow": "Claim Now",
"claimYour": "Claim your %{opportunity}"
},
- "saversVaults": {
- "description": "Earn yield on your %{asset} through the THORChain Savers Vaults. There is no lock up time, and rewards are accumulated automatically. Yield on THORChain comes from swap fees and block rewards. Single-sided yield is capped at half the double-sided yield of liquidity providers.",
- "runePoolDescription": "RUNEPool lets you earn more %{asset} by pooling your %{asset} with others. You don't have to pick specific pools, everyone shares in the overall performance.",
- "runePoolOverviewDescription": "RUNEPool optimizes RUNE usage by depositing it into all POL-enabled liquidity pools in THORChain. By pooling RUNE across these pools, participants earn the combined APY but face exposure to the aggregate impermanent loss. Instead of choosing individual pools, users benefit from the overall performance, effectively investing in a RUNE index and all THORChain POL-enabled assets. This simplifies liquidity provision and reduces individual risk.",
- "vaultCap": "Vault Cap",
- "vaultCapTooltip": "Current maximum capacity for this vault",
+ "runePool": {
+ "description": "RUNEPool lets you earn more %{asset} by pooling your %{asset} with others. You don't have to pick specific pools, everyone shares in the overall performance.",
+ "overviewDescription": "RUNEPool optimizes RUNE usage by depositing it into all POL-enabled liquidity pools in THORChain. By pooling RUNE across these pools, participants earn the combined APY but face exposure to the aggregate impermanent loss. Instead of choosing individual pools, users benefit from the overall performance, effectively investing in a RUNE index and all THORChain POL-enabled assets. This simplifies liquidity provision and reduces individual risk.",
+ "introducing": "Introducing RUNEPool",
+ "agree": "I understand that RUNEPool has both a 30 day minimum lockup and a heightened risk of impermanent loss.",
"haltedDepositTitle": "Deposits are temporarily halted.",
"disabledDepositTitle": "Deposits are temporarily disabled.",
"disabledWithdrawTitle": "Withdraws are temporarily disabled.",
"withdrawLockedTitle": "You have to wait %{timeHuman} to withdraw.",
- "haltedDescription": "Please tweet at @THORChain to raise the caps!",
- "protocolFee": "Protocol Fee",
- "dustAmount": "Dust Amount",
- "dustAmountTooltip": "A tiny amount of dust is required to identify your address, and will be reserved for later use, when you want to make a withdrawal",
- "sendDustBody": "You need to send some dust to this address to be able to withdraw.",
- "sendDust": "Send Dust",
- "addressToSendTo": "Address to Send To",
- "introducingSaversVaults": "Introducing Savers Vaults",
- "introducingRunePool": "Introducing RUNEPool",
- "risksBody": {
- "vaults": "Refer to this article for risks involved with savers vaults.",
- "runePool": "Refer to this article for risks involved with RUNEPool."
- },
- "timeToBreakEven": {
- "title": "Time to break even",
- "tooltip": "Estimated time to cover deposit fees and earnings."
- },
"cannotDepositWhilePendingTx": "Cannot deposit while Txs are pending",
"cannotWithdrawWhilePendingTx": "Cannot withdraw while Txs are pending",
- "agreeRunePool": "I understand that RUNEPool has both a 30 day minimum lockup and a heightened risk of impermanent loss."
+ "risksBody": "Refer to this article for risks involved with RUNEPool."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Limit Orders",
"buyCrypto": "Buy/Sell Crypto",
"buyCryptoShort": "Buy/Sell",
- "lending": "Lending",
- "thorchainLending": "THORChain Lending",
"chainflipLending": "Chainflip Lending",
"pools": "Pools",
"rFOX": "rFOX",
@@ -2346,102 +2326,8 @@
"custom": "Custom"
},
"lending": {
- "lending": "Lending",
- "repaymentAvailable": "Repayment available",
- "repaymentUnavailable": "Repayment not yet available",
- "daysUntilRepayment": "%{numDays} days until repayment",
- "repaymentDays": "%{numDays} days",
- "lendingBody": "A listing of all pools that can be borrowed at zero-interest and zero liquidations.",
- "collateralValue": "Collateral Value",
- "collateralValueDescription": "Current value of your asset used as collateral",
- "debtValue": "Debt Value",
- "loanToValue": "Loan to Value",
- "availablePools": "Available Pools",
- "pool": "Pool",
- "poolDepth": "Pool Depth",
- "poolDepthDescription": "The healthiness of the pool",
- "status": "Status",
- "statusDescription": "The status of the pool",
- "totalDebtBalance": "Total Debt Balance",
- "totalDebtBalanceDescription": "Cumulative Debt Balance in the lending pool",
- "totalCollateral": "Total Collateral",
- "totalCollateralDescription": "Total Collateral added to the lending pool",
- "estCollateralizationRatio": "Est. Collateralization Ratio",
- "estCollateralizationRatioDescription": "A flat Collateralization Ratio of 200% is currently in place. In the future, a dynamic ratio will balance between the maximum and minimum CR based on market conditions.",
- "collateralizationRatio": "Collateralization Ratio",
- "totalBorrowers": "Total Borrowers",
- "totalBorrowersDescription": "Number of borrowers participating",
- "myLoanInformation": "My Loan Information",
- "loanInformation": "Loan Summary",
- "poolInformation": "Pool Information",
- "collateralBalance": "Collateral Balance",
- "collateralBalanceDescription": "Total amount of your asset currently held as collateral",
- "debtBalance": "Debt Balance",
- "debtBalanceDescription": "Total amount of debt you owe for this loan",
- "repaymentLock": "Repayment Lock",
- "repaymentLockDescription": "Minimum period before you can repay your loan",
- "receiveCollateral": "The amount of collateral you will receive back",
- "borrow": "Borrow",
- "repay": "Repay",
- "repayAmount": "Repay Amount",
- "unlocked": "Unlocked",
- "unlockedCollateral": "Unlocked Collateral",
- "depositAsset": "Deposit %{asset}",
"switchAssets": "Switch Assets",
- "outstandingDebt": "Outstanding Debt",
- "outstandingDebtDescription": "The amount of collateral you've borrowed",
- "collateral": "Collateral",
- "debt": "Debt",
- "healthy": "Depth is optimal, loans are efficient.",
- "confirmAndBorrow": "Confirm and Borrow",
- "confirmAndRepay": "Confirm and Repay",
- "borrowAgain": "Borrow Again",
- "repayAgain": "Repay Again",
- "transactionInfo": "Transaction Summary",
- "repayNoticeTitle": "Hold Up!",
- "repayNoticeCta": "I understand",
- "repayNotice": "To get back your collateral you will need to repay 100% of your debt.",
- "feesNotice": "Fees occurred on the collateral you will receive back after repaying 100% of your debt",
- "refetchQuote": "Refetch Quote",
- "haltedAlert": "THORFi services (Lending, Savers and RUNEPool) are currently paused on THORChain. We apologize for any inconvenience.",
- "faq": {
- "title": "FAQ",
- "lending": {
- "title": "What is THORChain Lending?",
- "body": "Lending allows users to deposit native collateral, and then create a debt at a collateralization ratio (CR). The debt is always denominated in USD (aka TOR), regardless of what L1 asset the user receives"
- },
- "borrowing": {
- "title": "How does borrowing work?",
- "body": "Borrowing in THORChain involves using your deposited assets as collateral to take out a loan. The loan is denominated in USD (TOR) and can be received in various L1 assets. With a dynamic collateralization ratio, you can borrow flexibly without the worry of interest or liquidation"
- },
- "repayments": {
- "title": "How does repayment work?",
- "body": "Repayment in THORChain is flexible, allowing you to repay at any time after your repayment lock has elapsed, and in any asset, which is then converted to TOR. The repayment amount is deducted from your debt balance, and proportional collateral is released back to you upon full repayment"
- }
- },
- "errors": {
- "repaymentsHalted": "Repayments are temporarily halted.",
- "borrowingHalted": "Borrowing is temporarily halted.",
- "repaymentsDisabled": "Repayments are temporarily disabled.",
- "borrowingDisabled": "Borrowing is temporarily disabled.",
- "amountTooLowToReturnCollateral": "Amount too low to return collateral",
- "amountTooLowToReturnCollateralTooltip": "The repayment is too low for your collateral to be returned. Please try again with a higher amount, or repay a partial amount (which will not return your collateral, but will decrease your debt).",
- "amountTooSmallUnknownMinimumTooltip": "The repayment amount you have entered is too small. Please try again with a higher amount.",
- "repaymentUnavailableTooltip": "It is not possible to repay your loan yet. Please wait until the repayment lock has elapsed.",
- "repaymentsHaltedTooltip": "Repayments are temporarily halted. Please try again later."
- },
- "quote": {
- "collateral": "Total asset amount which will be secured against your loan",
- "debt": "Total debt you'll owe based on your new loan amount",
- "repaymentLock": "Minimum period before you can repay your loan",
- "collateralizationRatio": "Ratio of your collateral value to the loan amount",
- "feesPlusSlippage": "Total fees occurred, including L1 fees, slippage, and THORChain liquidity fees"
- },
- "yourLoans": {
- "yourLoans": "Your Loans",
- "emptyTitle": "The Land of Zero Loans!",
- "emptyBody": "It appears you don't have any loans at the moment. Is this financial zen or just a break before your next big lending adventure? Either way, enjoy the calm!"
- }
+ "poolInformation": "Pool Information"
},
"chainflipLending": {
"awaitingConfirmTitle": "Awaiting Confirmation",
@@ -2971,7 +2857,8 @@
"title": "Risks and Considerations",
"body": "While liquidity pools offer earning opportunities, it's important to be aware of the risks involved, including impermanent loss, smart contract vulnerabilities, and market volatility. Users should conduct thorough research before participating."
}
- }
+ },
+ "haltedDepositTitle": "Deposits are temporarily halted."
},
"warningAcknowledgement": {
"understand": "I understand",
diff --git a/src/assets/translations/es/main.json b/src/assets/translations/es/main.json
index 0a0a9960ea8..95387650fb0 100644
--- a/src/assets/translations/es/main.json
+++ b/src/assets/translations/es/main.json
@@ -602,36 +602,18 @@
"claimNow": "Reclama ahora",
"claimYour": "Reclame su %{opportunity}"
},
- "saversVaults": {
- "description": "Obtenga rendimiento de su %{asset} a través de las bóvedas de ahorro de THORChain. No hay tiempo de bloqueo y las recompensas se acumulan automáticamente. El rendimiento en THORChain proviene de las tarifas de intercambio y las recompensas en bloque. El rendimiento unilateral tiene un tope de la mitad del rendimiento bilateral de los proveedores de liquidez.",
- "runePoolDescription": "RUNEPool permite ganar más %{asset} si agrupas tus %{asset} con otros. No tienes que elegir grupos específicos, todos comparten el rendimiento general.",
- "runePoolOverviewDescription": "RUNEPool optimiza el uso de RUNE depositándolos en todos los pools de liquidez habilitados para POL en THORChain. Al agrupar RUNE, participantes obtienen APY combinado, pero enfrentan exposición agregada a pérdida impermanente. En lugar de elegir pools individuales, usuarios se benefician del rendimiento general, invirtiendo efectivamente en un índice RUNE y todos los activos habilitados para POL THORChain. Simplifica la provisión de liquidez y reduce riesgo individual.",
- "vaultCap": "Límite de bóveda",
- "vaultCapTooltip": "Capacidad máxima actual para esta bóveda",
+ "runePool": {
+ "description": "RUNEPool permite ganar más %{asset} si agrupas tus %{asset} con otros. No tienes que elegir grupos específicos, todos comparten el rendimiento general.",
+ "overviewDescription": "RUNEPool optimiza el uso de RUNE depositándolos en todos los pools de liquidez habilitados para POL en THORChain. Al agrupar RUNE, participantes obtienen APY combinado, pero enfrentan exposición agregada a pérdida impermanente. En lugar de elegir pools individuales, usuarios se benefician del rendimiento general, invirtiendo efectivamente en un índice RUNE y todos los activos habilitados para POL THORChain. Simplifica la provisión de liquidez y reduce riesgo individual.",
+ "introducing": "Presentamos RUNEPool",
+ "agree": "Entiendo que RUNEPool tiene un bloqueo mínimo de 30 días y un mayor riesgo de pérdida impermanente.",
"haltedDepositTitle": "Los depositos estan temporalmente detenidos.",
"disabledDepositTitle": "Depósitos temporalmente deshabilitados.",
"disabledWithdrawTitle": "Retiros temporalmente deshabilitados.",
"withdrawLockedTitle": "Tienes que esperar %{timeHuman} para retirar.",
- "haltedDescription": "¡Tuitee a @THORChain para aumentar los límites!",
- "protocolFee": "Tarifa de Protocolo",
- "dustAmount": "Cantidad de polvo",
- "dustAmountTooltip": "Se requiere una pequeña cantidad de polvo para identificar su dirección, y se reservará para su uso posterior, cuando desee realizar un retiro",
- "sendDustBody": "Necesitas enviar algo de polvo a esta dirección para poder retirar.",
- "sendDust": "Send Dust",
- "addressToSendTo": "Dirección de envío",
- "introducingSaversVaults": "Presentamos Bóvedas Savers",
- "introducingRunePool": "Presentamos RUNEPool",
- "risksBody": {
- "vaults": "Refiere a Este artículo por los riesgos de las Bovedas Savers.",
- "runePool": "Refiere a Este artículo por los riesgos involucrados con RUNEPool."
- },
- "timeToBreakEven": {
- "title": "Tiempo para evitar pérdidas",
- "tooltip": "Tiempo estimado para cubrir tarifas de depósito y ganancias."
- },
"cannotDepositWhilePendingTx": "No se puede depositar mientras Txs están pendientes",
"cannotWithdrawWhilePendingTx": "No se puede retirar mientras Txs están pendientes",
- "agreeRunePool": "Entiendo que RUNEPool tiene un bloqueo mínimo de 30 días y un mayor riesgo de pérdida impermanente."
+ "risksBody": "Refiere a Este artículo por los riesgos involucrados con RUNEPool."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Órdenes limitadas",
"buyCrypto": "Comprar/Vender Cripto",
"buyCryptoShort": "Comprar/Vender",
- "lending": "Préstamo",
- "thorchainLending": "Préstamos THORChain",
"chainflipLending": "Préstamos Chainflip",
"pools": "Pools",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "Personalizar"
},
"lending": {
- "lending": "Préstamo",
- "repaymentAvailable": "Pago disponible",
- "repaymentUnavailable": "Pago aún no disponible",
- "daysUntilRepayment": "%{numDays} días hasta el pago",
- "repaymentDays": "%{numDays} días",
- "lendingBody": "Una lista de todas las piscinas donde puedes pedir préstamos sin intereses ni liquidaciones.",
- "collateralValue": "Valor colateral",
- "collateralValueDescription": "Valor actual de su activo utilizado como garantía",
- "debtValue": "Valor de la deuda",
- "loanToValue": "Préstamo a valor",
- "availablePools": "Piscinas disponibles",
- "pool": "Piscina",
- "poolDepth": "Profundidad de la piscina",
- "poolDepthDescription": "La salud de su pool",
- "status": "Estado",
- "statusDescription": "El estado del pool",
- "totalDebtBalance": "Saldo total de la deuda",
- "totalDebtBalanceDescription": "Saldo de Deuda Acumulada en conjunto de préstamos",
- "totalCollateral": "Total de garantía colateral",
- "totalCollateralDescription": "Garantía total agregada al conjunto de préstamos",
- "estCollateralizationRatio": "Est. Ratio de colateral",
- "estCollateralizationRatioDescription": "Actualmente existe índice de garantía fijo del 200%. En el futuro, un ratio dinámico equilibrará el CR máximo y mínimo en función de las condiciones del mercado.",
- "collateralizationRatio": "Ratio de garantía colateral",
- "totalBorrowers": "Prestatarios totales",
- "totalBorrowersDescription": "Número de prestatarios participantes",
- "myLoanInformation": "Mi información de préstamo",
- "loanInformation": "Resumen del préstamo",
- "poolInformation": "Información de la piscina",
- "collateralBalance": "Saldo de garantía colateral",
- "collateralBalanceDescription": "Monto total del activo mantenido como garantía",
- "debtBalance": "Saldo de la deuda",
- "debtBalanceDescription": "Monto total de la deuda que debe por el préstamo",
- "repaymentLock": "Bloqueo de repago",
- "repaymentLockDescription": "Período mínimo antes de poder pagar su préstamo",
- "receiveCollateral": "La cantidad de garantía que recibirá",
- "borrow": "Pedir prestado",
- "repay": "Repago",
- "repayAmount": "Monto a Pagar",
- "unlocked": "Desbloqueado",
- "unlockedCollateral": "Colateral Desbloqueado",
- "depositAsset": "Depositar %{asset}",
"switchAssets": "Cambiar Activos",
- "outstandingDebt": "Deuda pendiente",
- "outstandingDebtDescription": "La cantidad de garantía que ha tomado prestada",
- "collateral": "Colateral",
- "debt": "Deuda",
- "healthy": "La profundidad es óptima, los préstamos son eficientes.",
- "confirmAndBorrow": "Confirmar y pedir prestado",
- "confirmAndRepay": "Confirmar y repagar",
- "borrowAgain": "Pedir Prestado de nuevo",
- "repayAgain": "Pagar de nuevo",
- "transactionInfo": "Resumen de Transacciones",
- "repayNoticeTitle": "¡Espera!",
- "repayNoticeCta": "Entiendo",
- "repayNotice": "Para recuperar su garantía colateral deberá pagar el 100% de su deuda.",
- "feesNotice": "Se produjeron tarifas sobre la garantía que recibirá después de pagar 100% de su deuda.",
- "refetchQuote": "Recuperar Cotización",
- "haltedAlert": "Los servicios THORFi (préstamos, Savers y RUNEPool) están actualmente suspendidos en THORChain. Pedimos disculpas por inconvenientes.",
- "faq": {
- "title": "Preguntas más frecuentes",
- "lending": {
- "title": "¿Qué son los préstamos THORChain?",
- "body": "Los préstamos permiten depositar garantías nativas y luego crear una deuda con un índice de garantía (CR). La deuda está denominada en USD (TOR), independiente del activo L1 que reciba."
- },
- "borrowing": {
- "title": "¿Cómo funciona la toma de préstamos?",
- "body": "Prestar en THORChain implica utilizar sus activos depositados como garantía. El préstamo está denominado en USD (TOR) y puede recibirse en varios activos L1. Con un índice de garantía dinámico, puede prestar de manera flexible sin preocuparse por intereses o liquidación."
- },
- "repayments": {
- "title": "¿Cómo funciona el reembolso o repago?",
- "body": "El pago en THORChain es flexible, permite pagar en cualquier momento después de que haya transcurrido su bloqueo, y en cualquier activo, que luego se convierte a TOR. El monto de reembolso se deduce del saldo de su deuda y se devuelve la garantía proporcional al realizar el pago total."
- }
- },
- "errors": {
- "repaymentsHalted": "Pagos suspendidos temporalmente.",
- "borrowingHalted": "Préstamos suspendidos temporalmente.",
- "repaymentsDisabled": "Pagos temporalmente inhabilitados.",
- "borrowingDisabled": "Préstamo temporalmente deshabilitado.",
- "amountTooLowToReturnCollateral": "Monto demasiado bajo para devolver la garantía",
- "amountTooLowToReturnCollateralTooltip": "El pago es demasiado bajo para que se devuelva la garantía. Inténtelo nuevamente con un monto mayor o pague un monto parcial (lo que no devolverá su garantía, pero disminuirá su deuda).",
- "amountTooSmallUnknownMinimumTooltip": "El importe de pago que ha introducido es demasiado pequeño. Inténtelo de nuevo con una cantidad mayor.",
- "repaymentUnavailableTooltip": "Aún no es posible pagar su préstamo. Espere hasta que haya transcurrido el bloqueo de pago.",
- "repaymentsHaltedTooltip": "Pagos suspendidos temporalmente. Por favor, inténte más tarde."
- },
- "quote": {
- "collateral": "Monto total del activo garantizado contra su préstamo",
- "debt": "Deuda total que deberás según el monto de tu nuevo préstamo",
- "repaymentLock": "Período mínimo antes de poder pagar su préstamo",
- "collateralizationRatio": "Relación entre valor de su garantía y monto del préstamo",
- "feesPlusSlippage": "Tarifas totales, incluidas tarifas L1, deslizamiento y tarifas de liquidez THORChain"
- },
- "yourLoans": {
- "yourLoans": "Tus préstamos",
- "emptyTitle": "¡La Tierra de Cero Préstamos!",
- "emptyBody": "No tienes préstamo en este momento. ¿Es esto un zen financiero o un descanso antes de su próxima aventura crediticia? De cualquier manera, ¡disfruta de la calma!"
- }
+ "poolInformation": "Información de la piscina"
},
"chainflipLending": {
"awaitingConfirmTitle": "Pendiente Confirmación",
@@ -2970,7 +2856,8 @@
"title": "Riesgos y Consideraciones",
"body": "Si bien los fondos de liquidez ofrecen oportunidades de ganancias, es importante ser consciente de riesgos, como pérdidas no permanentes, vulnerabilidad de contratos inteligentes y volatilidad de mercado. Debe realizar una investigación exhaustiva antes."
}
- }
+ },
+ "haltedDepositTitle": "Los depositos estan temporalmente detenidos."
},
"warningAcknowledgement": {
"understand": "Entiendo",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "Rendimientos",
"pageSubtitle": "Descubra y gestione oportunidades de rendimiento en múltiples cadenas",
- "actions": {
- },
+ "actions": {},
"yield": "Rendimiento",
"apy": "APY",
"apr": "APR",
diff --git a/src/assets/translations/fr/main.json b/src/assets/translations/fr/main.json
index 970065142e1..f037929f4a4 100644
--- a/src/assets/translations/fr/main.json
+++ b/src/assets/translations/fr/main.json
@@ -602,36 +602,18 @@
"claimNow": "Réclamer maintenant",
"claimYour": "Réclamer vos %{opportunity}"
},
- "saversVaults": {
- "description": "Gagnez du rendement sur vos %{asset} grâce aux THORChain Savers Vaults. Il n'y a pas de temps de verrouillage et les récompenses s'accumulent automatiquement. Le rendement sur THORChain provient des frais d'échange et des récompenses de blocs. Le rendement unilatéral est plafonné à la moitié du rendement bilatéral des fournisseurs de liquidité.",
- "runePoolDescription": "RUNEPool vous permet de gagner des %{asset} en plus en poolant vos %{asset} avec d'autres. Vous n'avez pas à choisir de pools spécifiques, tout le monde partage les performances globales.",
- "runePoolOverviewDescription": "RUNEPool optimise l'utilisation des RUNE en les déposant dans tous les pools de liquidités compatibles POL de THORChain. En regroupant les RUNE dans ces pools, les participants gagnent l'APY combiné mais sont exposés aux pertes impermanentes globales. Au lieu de choisir des pools individuels, les utilisateurs bénéficient de la performance globale, en investissant en réalité dans un indice RUNE et de tous les actifs compatibles POL de THORChain. Cela simplifie la mise à disposition de liquidités et réduit le risque individuel.",
- "vaultCap": "Plafond du Vault",
- "vaultCapTooltip": "Capacité maximale actuelle pour ce Vault",
+ "runePool": {
+ "description": "RUNEPool vous permet de gagner des %{asset} en plus en poolant vos %{asset} avec d'autres. Vous n'avez pas à choisir de pools spécifiques, tout le monde partage les performances globales.",
+ "overviewDescription": "RUNEPool optimise l'utilisation des RUNE en les déposant dans tous les pools de liquidités compatibles POL de THORChain. En regroupant les RUNE dans ces pools, les participants gagnent l'APY combiné mais sont exposés aux pertes impermanentes globales. Au lieu de choisir des pools individuels, les utilisateurs bénéficient de la performance globale, en investissant en réalité dans un indice RUNE et de tous les actifs compatibles POL de THORChain. Cela simplifie la mise à disposition de liquidités et réduit le risque individuel.",
+ "introducing": "Présentation de RUNEPool",
+ "agree": "Je comprends que RUNEPool implique à la fois un verrouillage minimum de 30 jours et un risque accru de pertes impermanentes.",
"haltedDepositTitle": "Les dépôts sont temporairement suspendus.",
"disabledDepositTitle": "Les dépôts sont temporairement désactivés.",
"disabledWithdrawTitle": "Les retraits sont temporairement désactivés.",
"withdrawLockedTitle": "Vous devez attendre %{timeHuman} pour retirer.",
- "haltedDescription": "Veuillez tweeter @THORChain pour augmenter les plafonds !",
- "protocolFee": "Frais de protocole",
- "dustAmount": "Montant de poussière",
- "dustAmountTooltip": "Une infime somme de crypto (de la poussière) est nécessaire pour identifier votre adresse et sera réservée pour une utilisation ultérieure, lorsque vous souhaiterez effectuer un retrait",
- "sendDustBody": "Vous devez envoyer un peu de poussière à cette adresse pour pouvoir effectuer un retrait.",
- "sendDust": "Envoyer de la poussière",
- "addressToSendTo": "Adresse à laquelle envoyer",
- "introducingSaversVaults": "Présentation des Savers Vaults",
- "introducingRunePool": "Présentation de RUNEPool",
- "risksBody": {
- "vaults": "Référez-vous à cet article pour les risques liés aux Savers Vaults.",
- "runePool": "Référez-vous à cet article pour les risques liés à RUNEPool."
- },
- "timeToBreakEven": {
- "title": "Temps avant le seuil de rentabilité",
- "tooltip": "Temps estimé pour couvrir les frais de dépôt et les gains."
- },
"cannotDepositWhilePendingTx": "Impossible de déposer tant que des Txs sont en attente",
"cannotWithdrawWhilePendingTx": "Impossible de retirer tant que des Txs sont en attente",
- "agreeRunePool": "Je comprends que RUNEPool implique à la fois un verrouillage minimum de 30 jours et un risque accru de pertes impermanentes."
+ "risksBody": "Référez-vous à cet article pour les risques liés à RUNEPool."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Ordres à cours limité",
"buyCrypto": "Acheter/Vendre des cryptos",
"buyCryptoShort": "Achat/Vente",
- "lending": "Prêts",
- "thorchainLending": "THORChain Lending",
"chainflipLending": "Chainflip Lending",
"pools": "Pools",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "Personnalisé"
},
"lending": {
- "lending": "Prêts",
- "repaymentAvailable": "Remboursement possible",
- "repaymentUnavailable": "Remboursement pas encore disponible",
- "daysUntilRepayment": "%{numDays} jours jusqu'au remboursement",
- "repaymentDays": "%{numDays} jours",
- "lendingBody": "Une liste de tous les pools pouvant être empruntés à taux zéro et sans liquidation.",
- "collateralValue": "Valeur du collatéral",
- "collateralValueDescription": "Valeur actuelle de votre actif utilisé comme garantie",
- "debtValue": "Valeur de la dette",
- "loanToValue": "Rapport prêt-valeur",
- "availablePools": "Pools disponibles",
- "pool": "Pool",
- "poolDepth": "Profondeur du pool",
- "poolDepthDescription": "Le niveau de santé du pool",
- "status": "Statut",
- "statusDescription": "L'état du pool",
- "totalDebtBalance": "Solde total des dettes",
- "totalDebtBalanceDescription": "Solde cumulatif de la dette dans le pool de prêts",
- "totalCollateral": "Totale des collatéraux",
- "totalCollateralDescription": "Collatéral total ajouté au pool de prêts",
- "estCollateralizationRatio": "Est. du ratio de collatéralisation",
- "estCollateralizationRatioDescription": "Un ratio de collatéralisation (CR) forfaitaire de 200 % est actuellement en place. À l'avenir, un ratio dynamique s'équilibrera entre le CR maximum et minimum en fonction des conditions du marché.",
- "collateralizationRatio": "Ratio de collatéralisation",
- "totalBorrowers": "Total d'emprunteurs",
- "totalBorrowersDescription": "Nombre d'emprunteurs participants",
- "myLoanInformation": "Informations sur mon prêt",
- "loanInformation": "Résumé du prêt",
- "poolInformation": "Informations sur le pool",
- "collateralBalance": "Solde du collatéral",
- "collateralBalanceDescription": "Montant total de votre actif actuellement retenu en collatéral",
- "debtBalance": "Solde de la dette",
- "debtBalanceDescription": "Montant total de la dette que vous devez pour ce prêt",
- "repaymentLock": "Verrou du remboursement",
- "repaymentLockDescription": "Délai minimum avant de pouvoir rembourser votre prêt",
- "receiveCollateral": "Le montant du collatéral que vous recevrez en retour",
- "borrow": "Emprunter",
- "repay": "Rembourser",
- "repayAmount": "Rembourser le montant",
- "unlocked": "Déverrouillé",
- "unlockedCollateral": "Collatéral débloqué",
- "depositAsset": "Déposer des %{asset}",
"switchAssets": "Inverser les actifs",
- "outstandingDebt": "Dette en cours",
- "outstandingDebtDescription": "Le montant du collatéral sur lequel vous avez emprunté",
- "collateral": "Collatéral",
- "debt": "Dette",
- "healthy": "La profondeur est optimale, les prêts sont efficaces.",
- "confirmAndBorrow": "Confirmer et emprunter",
- "confirmAndRepay": "Confirmer et rembourser",
- "borrowAgain": "Emprunter à nouveau",
- "repayAgain": "Rembourser à nouveau",
- "transactionInfo": "Résumé de transaction",
- "repayNoticeTitle": "Attendez !",
- "repayNoticeCta": "Je comprends",
- "repayNotice": "Pour récupérer votre collatéral, vous devrez rembourser 100 % de votre dette.",
- "feesNotice": "Les frais liés au collatéral que vous récupérerez après avoir remboursé 100 % de votre dette",
- "refetchQuote": "Actualiser le devis",
- "haltedAlert": "Les services THORFi (Prêts, Savers et RUNEPool) sont actuellement suspendus sur THORChain. Nous nous excusons pour la gêne occasionnée.",
- "faq": {
- "title": "FAQ",
- "lending": {
- "title": "Qu'est-ce que les prêts THORChain ?",
- "body": "Les prêts permettent aux utilisateurs de déposer un collatéral natif, puis de créer une dette selon un ratio de garantie (CR). La dette est toujours libellée en USD (alias TOR), quel que soit l'actif L1 reçu par l'utilisateur"
- },
- "borrowing": {
- "title": "Comment fonctionne l'emprunt ?",
- "body": "Emprunter avec THORChain implique d'utiliser vos actifs déposés en collatéral pour contracter un prêt. Le prêt est libellé en USD (TOR) et peut être reçu dans divers actifs L1. Avec un ratio de collatéralisation dynamique, vous pouvez emprunter de manière flexible sans vous soucier des intérêts ou de la liquidation"
- },
- "repayments": {
- "title": "Comment fonctionne le remboursement ?",
- "body": "Le remboursement sur THORChain est flexible, vous permettant de rembourser à tout moment après expiration de votre verrou de remboursement, et dans n'importe quel actif qui sera ensuite converti en TOR. Le montant du remboursement est déduit du solde de votre dette et une part proportionnelle du collatéral vous est restituée lors du remboursement intégral"
- }
- },
- "errors": {
- "repaymentsHalted": "Les remboursements sont temporairement interrompus.",
- "borrowingHalted": "Les emprunts sont temporairement interrompus.",
- "repaymentsDisabled": "Les remboursements sont temporairement désactivés.",
- "borrowingDisabled": "Les emprunts sont temporairement désactivés.",
- "amountTooLowToReturnCollateral": "Montant trop petit pour restituer le collatéral",
- "amountTooLowToReturnCollateralTooltip": "Le remboursement est trop petit pour que votre collatéral soit restitué. Veuillez réessayer avec un montant plus élevé ou remboursez un montant partiel (ce qui ne vous rendra pas votre collatéral, mais diminuera votre dette).",
- "amountTooSmallUnknownMinimumTooltip": "Le montant du remboursement que vous avez saisi est trop petit. Veuillez réessayer avec un montant plus grand.",
- "repaymentUnavailableTooltip": "Il n'est pas encore possible de rembourser votre prêt. Veuillez attendre que le délai de remboursement soit écoulé.",
- "repaymentsHaltedTooltip": "Les remboursements sont temporairement interrompus. Veuillez réessayer plus tard."
- },
- "quote": {
- "collateral": "Montant total des actifs qui seront utilisés comme garantie afin de couvrir votre prêt",
- "debt": "Dette totale que vous devrez en fonction du montant de votre nouveau prêt",
- "repaymentLock": "Délai minimum avant de pouvoir rembourser votre prêt",
- "collateralizationRatio": "Rapport entre la valeur de votre collatéral et le montant du prêt",
- "feesPlusSlippage": "Total des frais perçus, y compris les frais L1, le glissement/slippage et les frais de liquidité de THORChain"
- },
- "yourLoans": {
- "yourLoans": "Vos prêts",
- "emptyTitle": "Le pays d'Aucun Prêt !",
- "emptyBody": "Il semble que vous n'ayez aucun prêt pour le moment. Est-ce le zen financier ou juste une pause avant votre prochaine grande aventure d'emprunt ? Quoi qu'il en soit, profitez du calme !"
- }
+ "poolInformation": "Informations sur le pool"
},
"chainflipLending": {
"awaitingConfirmTitle": "En attente de confirmation",
@@ -2970,7 +2856,8 @@
"title": "Risques et considérations",
"body": "Bien que les pools de liquidités offrent des opportunités de gains, il est important d'être conscient des risques impliqués, notamment des pertes impermanentes, des vulnérabilités des contrats intelligents et de la volatilité du marché. Les utilisateurs doivent effectuer des recherches approfondies avant de participer."
}
- }
+ },
+ "haltedDepositTitle": "Les dépôts sont temporairement suspendus."
},
"warningAcknowledgement": {
"understand": "Je comprends",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "Rendements",
"pageSubtitle": "Découvrez et gérez les opportunités de rendements sur plusieurs chaînes",
- "actions": {
- },
+ "actions": {},
"yield": "Rendement",
"apy": "APY",
"apr": "APR",
diff --git a/src/assets/translations/ja/main.json b/src/assets/translations/ja/main.json
index 2279ce95d76..3d958798665 100644
--- a/src/assets/translations/ja/main.json
+++ b/src/assets/translations/ja/main.json
@@ -602,36 +602,18 @@
"claimNow": "今すぐ獲得する",
"claimYour": "%{opportunity}を獲得しましょう"
},
- "saversVaults": {
- "description": "THORChain Savers Vaultを通じて %{asset} の収益を獲得しましょう。ロックアップの時間はなく、報酬は自動的に蓄積されます。 THORChainの利回りはスワップ手数料とブロック報酬から得られます。片面利回りは流動性プロバイダーの両面利回りの半分に制限されています。",
- "runePoolDescription": "RUNEPool では、他のユーザーと %{asset} をプールすることで、より多くの %{asset} を獲得できます。特定のプールを選択する必要はなく、全員が全体のパフォーマンスを共有します。",
- "runePoolOverviewDescription": "RUNEPool は、THORChain のすべての POL 対応流動性プールに RUNE を預けることで、RUNE の使用を最適化します。これらのプールに RUNE をプールすることで、参加者は合計 APY を獲得しますが、総変動損失のリスクにさらされます。個々のプールを選択する代わりに、ユーザーは全体的なパフォーマンスの恩恵を受け、RUNE インデックスとすべての THORChain POL 対応資産に効果的に投資します。これにより、流動性の提供が簡素化され、個々のリスクが軽減されます。",
- "vaultCap": "Vaultキャップ",
- "vaultCapTooltip": "このVaultの現在の最大容量",
+ "runePool": {
+ "description": "RUNEPool では、他のユーザーと %{asset} をプールすることで、より多くの %{asset} を獲得できます。特定のプールを選択する必要はなく、全員が全体のパフォーマンスを共有します。",
+ "overviewDescription": "RUNEPool は、THORChain のすべての POL 対応流動性プールに RUNE を預けることで、RUNE の使用を最適化します。これらのプールに RUNE をプールすることで、参加者は合計 APY を獲得しますが、総変動損失のリスクにさらされます。個々のプールを選択する代わりに、ユーザーは全体的なパフォーマンスの恩恵を受け、RUNE インデックスとすべての THORChain POL 対応資産に効果的に投資します。これにより、流動性の提供が簡素化され、個々のリスクが軽減されます。",
+ "introducing": "RUNEPoolの説明",
+ "agree": "RUNEPool には、最低 30 日間のロックアップと、一時的な損失のリスクの上昇の両方があることを理解しています。",
"haltedDepositTitle": "一時的に入金を停止しております。",
"disabledDepositTitle": "デポジットは一時的に無効になります。",
"disabledWithdrawTitle": "引き出しは一時的に無効になっています。",
"withdrawLockedTitle": "引き出すには%{timeHuman}待つ必要があります。",
- "haltedDescription": "上限を増やすには、@THORChain でツイートしてください。",
- "protocolFee": "プロトコル手数料",
- "dustAmount": "少額",
- "dustAmountTooltip": "アドレスを特定するには少額が必要ですが、後で出金したいときに使用するために保存されます。",
- "sendDustBody": "出金するには、このアドレスに少額を送る必要があります。",
- "sendDust": "少額を送る",
- "addressToSendTo": "送信先アドレス",
- "introducingSaversVaults": "Savers Vaultについて",
- "introducingRunePool": "RUNEPoolの説明",
- "risksBody": {
- "vaults": "参照する この記事 Savers Vaultに伴うリスクについて。",
- "runePool": "参照する この記事 RUNEPool に伴うリスクについて。"
- },
- "timeToBreakEven": {
- "title": "損益分岐点の時間",
- "tooltip": "入金手数料と収益をカバーするまでの推定時間"
- },
"cannotDepositWhilePendingTx": "送信保留中は入金できません",
"cannotWithdrawWhilePendingTx": "送信保留中は出金できません",
- "agreeRunePool": "RUNEPool には、最低 30 日間のロックアップと、一時的な損失のリスクの上昇の両方があることを理解しています。"
+ "risksBody": "参照する この記事 RUNEPool に伴うリスクについて。"
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "指値注文",
"buyCrypto": "暗号通貨の売買",
"buyCryptoShort": "売買",
- "lending": "貸し出し",
- "thorchainLending": "THORChainレンディング",
"chainflipLending": "チェーンフリップ・レンディング",
"pools": "プール",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "カスタム"
},
"lending": {
- "lending": "貸し出し",
- "repaymentAvailable": "返済可能",
- "repaymentUnavailable": "返済はまだできません",
- "daysUntilRepayment": "返済まであと %{numDays} 日",
- "repaymentDays": "%{numDays} 日",
- "lendingBody": "ゼロ金利およびゼロ清算で借りられるすべてのプールのリスト。",
- "collateralValue": "担保価値",
- "collateralValueDescription": "担保として使用される資産の現在価値",
- "debtValue": "負債額",
- "loanToValue": "価値へのローン",
- "availablePools": "利用可能なプール",
- "pool": "プール",
- "poolDepth": "プールの深さ",
- "poolDepthDescription": "プールの状態",
- "status": "状態",
- "statusDescription": "プールの状態",
- "totalDebtBalance": "総負債残高",
- "totalDebtBalanceDescription": "貸付プールの累積債務残高",
- "totalCollateral": "担保総額",
- "totalCollateralDescription": "貸付プールに追加された総担保",
- "estCollateralizationRatio": "EST 担保比率",
- "estCollateralizationRatioDescription": "現在、担保比率は 200% に固定されています。将来的には、市場の状況に基づいて、最大 CRと最小 CRの間で動的に比率が調整される予定です。",
- "collateralizationRatio": "担保比率",
- "totalBorrowers": "総借入者数",
- "totalBorrowersDescription": "参加している借り手の数",
- "myLoanInformation": "ローン情報",
- "loanInformation": "ローン概要",
- "poolInformation": "プール情報",
- "collateralBalance": "担保価値",
- "collateralBalanceDescription": "現在担保として保有している資産の総額",
- "debtBalance": "負債残高",
- "debtBalanceDescription": "このローンに対して負っている負債の総額",
- "repaymentLock": "返済ロック",
- "repaymentLockDescription": "ローンを返済できるまでの最低期間",
- "receiveCollateral": "返金してもらえる担保金額",
- "borrow": "借りる",
- "repay": "返済",
- "repayAmount": "返済額",
- "unlocked": "ロック解除済み",
- "unlockedCollateral": "ロック解除された担保",
- "depositAsset": "入金 %{asset}",
"switchAssets": "アセットの切り替え",
- "outstandingDebt": "負債残高",
- "outstandingDebtDescription": "借りた担保の額",
- "collateral": "担保",
- "debt": "借金",
- "healthy": "深さは最適で、ローンも効率的です。",
- "confirmAndBorrow": "確認して借りる",
- "confirmAndRepay": "確認して返済する",
- "borrowAgain": "もう一度借りる",
- "repayAgain": "もう一度返済する",
- "transactionInfo": "取引概要",
- "repayNoticeTitle": "待つ",
- "repayNoticeCta": "理解しました",
- "repayNotice": "担保を取り戻すには借金を100%返済する必要があります。",
- "feesNotice": "担保に対して発生した手数料は、借金を100%返済した後に返還されます。",
- "refetchQuote": "見積もりを再取得する",
- "haltedAlert": "THORChain では、現在 THORFi サービス (Lending、Savers、RUNEPool) が一時停止中です。ご不便をおかけして申し訳ございません。",
- "faq": {
- "title": "よくある質問",
- "lending": {
- "title": "THORChainレンディングとは何ですか?",
- "body": "融資により、ユーザーはネイティブ担保を預け、担保比率 (CR) で借金を作成できます。ユーザーが受け取るL1資産に関係なく、負債は常にUSD(別名 TOR) 建てです。"
- },
- "borrowing": {
- "title": "借入はどのように機能しますか?",
- "body": "THORChainでの借入には、預けた資産を担保として使用してローンを組むことが含まれます。融資は米ドル (TOR) 建てで、さまざまな L1 資産で受け取ることができます。動的な担保比率により、利息や清算の心配なく柔軟に借入できます。"
- },
- "repayments": {
- "title": "返済はどのように行われますか?",
- "body": "THORChainでの返済は柔軟であり、返済ロックが経過した後はいつでも、任意の資産で返済することができ、その後TORに変換されます。返済額は債務残高から差し引かれ、全額返済後に比例担保が返金されます。"
- }
- },
- "errors": {
- "repaymentsHalted": "返済は一時停止されます。",
- "borrowingHalted": "貸出は一時停止となります。",
- "repaymentsDisabled": "返済は一時的に無効になります。",
- "borrowingDisabled": "借用は一時的に無効になっています。",
- "amountTooLowToReturnCollateral": "担保を返還するには金額が低すぎます",
- "amountTooLowToReturnCollateralTooltip": "返済額が低すぎるため、担保を返却できません。金額を増やして再度お試しいただくか、一部を返済してください (担保は返却されませんが、負債額は減ります)。",
- "amountTooSmallUnknownMinimumTooltip": "入力した返済額が少なすぎます。金額を増やして再度お試しください。",
- "repaymentUnavailableTooltip": "まだローンの返済はできません。返済ロックが経過するまでお待ちください。",
- "repaymentsHaltedTooltip": "返済は一時停止されています。しばらくしてからもう一度お試しください。"
- },
- "quote": {
- "collateral": "ローンに対して担保される資産総額",
- "debt": "新たなローン金額に基づいて支払うべき負債の合計",
- "repaymentLock": "ローンを返済できるまでの最低期間",
- "collateralizationRatio": "融資金額に対する担保価値の比率",
- "feesPlusSlippage": "L1手数料、スリッページ、THORChain流動性手数料を含む、発生した手数料の合計"
- },
- "yourLoans": {
- "yourLoans": "あなたのローン",
- "emptyTitle": "ローンゼロ",
- "emptyBody": "現在、ローンはありません。この時間をお楽しみください!"
- }
+ "poolInformation": "プール情報"
},
"chainflipLending": {
"awaitingConfirmTitle": "確認待ち",
@@ -2970,7 +2856,8 @@
"title": "リスクと考慮事項",
"body": "流動性プールは収益機会を提供しますが、一時的な損失、スマートコントラクトの脆弱性、市場の変動性など、関連するリスクを認識することが重要です。ユーザーは参加する前に十分な調査を行う必要があります。"
}
- }
+ },
+ "haltedDepositTitle": "一時的に入金を停止しております。"
},
"warningAcknowledgement": {
"understand": "承知しました",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "利回り",
"pageSubtitle": "複数のチェーンにわたる収益機会の発見と管理",
- "actions": {
- },
+ "actions": {},
"yield": "利回り",
"apy": "年利",
"apr": "APR",
diff --git a/src/assets/translations/pt/main.json b/src/assets/translations/pt/main.json
index fc4562763c5..b34ba104fa7 100644
--- a/src/assets/translations/pt/main.json
+++ b/src/assets/translations/pt/main.json
@@ -602,36 +602,18 @@
"claimNow": "Resgatar agora",
"claimYour": "Ganhar %{opportunity}"
},
- "saversVaults": {
- "description": "Ganhe recompensas em seu %{asset} através da THORChain Savers Vaults. Não precisa travá-lo e os incentivos são acumulados automaticamente. As recompensas na THORChain vem de taxas de swap e recompensas de blocos. O ganho do single-sided é limitado à metade do ganho obtido pelos provedores de liquidez em pools double-sided.",
- "runePoolDescription": "RUNEPool permite que você ganhe mais %{asset} ao juntar seu %{asset} com outros. Você não precisa escolher pools específicos, todos compartilham o desempenho geral.",
- "runePoolOverviewDescription": "O RUNEPool otimiza o uso do RUNE depositando-o em todos os pools de liquidez habilitados para POL no THORChain. Ao reunir o RUNE entre esses pools, os participantes ganham o APY combinado, mas enfrentam a exposição à perda impermanente agregada. Em vez de escolher pools individuais, os usuários se beneficiam do desempenho geral, investindo efetivamente em um índice RUNE e em todos os ativos habilitados para POL do THORChain. Isso simplifica o fornecimento de liquidez e reduz o risco individual.",
- "vaultCap": "Limite da Vault",
- "vaultCapTooltip": "Capacidade máxima atual para este cofre",
+ "runePool": {
+ "description": "RUNEPool permite que você ganhe mais %{asset} ao juntar seu %{asset} com outros. Você não precisa escolher pools específicos, todos compartilham o desempenho geral.",
+ "overviewDescription": "O RUNEPool otimiza o uso do RUNE depositando-o em todos os pools de liquidez habilitados para POL no THORChain. Ao reunir o RUNE entre esses pools, os participantes ganham o APY combinado, mas enfrentam a exposição à perda impermanente agregada. Em vez de escolher pools individuais, os usuários se beneficiam do desempenho geral, investindo efetivamente em um índice RUNE e em todos os ativos habilitados para POL do THORChain. Isso simplifica o fornecimento de liquidez e reduz o risco individual.",
+ "introducing": "Apresentando RUNEPool",
+ "agree": "Entendo que o RUNEPool tem um bloqueio mínimo de 30 dias e um risco maior de perda impermanente.",
"haltedDepositTitle": "Depósitos estão temporariamente desabilitados. ",
"disabledDepositTitle": "Os depósitos estão temporariamente desativados.",
"disabledWithdrawTitle": "Os saques estão temporariamente desativados.",
"withdrawLockedTitle": "Você tem que esperar %{timeHuman} para sacar.",
- "haltedDescription": "Por favor, twitte em @THORChain para aumentar o limite!",
- "protocolFee": "Taxas do Protocolo",
- "dustAmount": "Saldo Restante",
- "dustAmountTooltip": "Uma pequena quantidade de saldo é necessário para identificar seus endereços, e será separada para um uso posterior, quando você realizar seu saque",
- "sendDustBody": "Você precisar enviar um pouco de suas criptos para este endereço, permitindo a você sacar seu dinheiro. ",
- "sendDust": "Enviar Cripto",
- "addressToSendTo": "Endereço para Enviar",
- "introducingSaversVaults": "Introduzindo a Savers Vault",
- "introducingRunePool": "Apresentando RUNEPool",
- "risksBody": {
- "vaults": "Indique para este artigo para riscos envolvidos com a Savers Vault",
- "runePool": "Indique para este artigo para riscos envolvidos com o RUNEPool."
- },
- "timeToBreakEven": {
- "title": "Tempo para igualar",
- "tooltip": "Tempo estimado para cobrir taxas de depósito e ganhos."
- },
"cannotDepositWhilePendingTx": "Não é possível depositar enquanto as Txs estiverem pendentes",
"cannotWithdrawWhilePendingTx": "Não é possível sacar enquanto as Txs estiverem pendentes",
- "agreeRunePool": "Entendo que o RUNEPool tem um bloqueio mínimo de 30 dias e um risco maior de perda impermanente."
+ "risksBody": "Indique para este artigo para riscos envolvidos com o RUNEPool."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Ordens Limite",
"buyCrypto": "Compre Cripto",
"buyCryptoShort": "Compre/venda",
- "lending": "Empréstimo",
- "thorchainLending": "THORChain Lending",
"chainflipLending": "Chainflip Lending",
"pools": "Pools",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "Customizar"
},
"lending": {
- "lending": "Empréstimo",
- "repaymentAvailable": "Pagamento disponível",
- "repaymentUnavailable": "Reembolso ainda não disponível",
- "daysUntilRepayment": "%{numDays} dias até o pagamento",
- "repaymentDays": "%{numDays} dias",
- "lendingBody": "Uma lista de todas os pools que podem ser emprestados sem custo e zero liquidações.",
- "collateralValue": "Valor colateral",
- "collateralValueDescription": "Valor atual do ativo usado como garantia",
- "debtValue": "Valor da dívida",
- "loanToValue": "Loan to Value",
- "availablePools": "Pools disponíveis",
- "pool": "Pool",
- "poolDepth": "Liquidez da pool",
- "poolDepthDescription": "A saúda da pool",
- "status": "Status",
- "statusDescription": "O estado da pool",
- "totalDebtBalance": "Débito Total",
- "totalDebtBalanceDescription": "Saldo acumulado da dívida no pool de empréstimos",
- "totalCollateral": "Colateral Total",
- "totalCollateralDescription": "Garantia total adicionada ao pool de empréstimos",
- "estCollateralizationRatio": "Relação Estim. da Colateralização",
- "estCollateralizationRatioDescription": "Uma Taxa de Colateralização fixa de 200% está atualmente em vigor. No futuro, uma taxa dinâmica equilibrará entre o CR máximo e mínimo com base nas condições de mercado.",
- "collateralizationRatio": "Relação da Colateralização",
- "totalBorrowers": "Emprestadores Totais",
- "totalBorrowersDescription": "Número de pessoas que emprestam capital participando",
- "myLoanInformation": "Informação do Meu Empréstimo",
- "loanInformation": "Resumo dos Empréstimos",
- "poolInformation": "Informação das Pools",
- "collateralBalance": "Saldo dos Colaterais",
- "collateralBalanceDescription": "Valor total dos seus ativos atualmente mantido como garantia",
- "debtBalance": "Saldo da dívida",
- "debtBalanceDescription": "Valor total do débito que você tem pendente no seu empréstimo",
- "repaymentLock": "Trava do Repagamento",
- "repaymentLockDescription": "Período mínimo antes de você pagar seu empréstimo",
- "receiveCollateral": "O valor da garantia que você receberá de volta",
- "borrow": "Emprestar",
- "repay": "Pagar de volta",
- "repayAmount": "Pagar Quantia",
- "unlocked": "Destravado",
- "unlockedCollateral": "Colateral Desbloqueada",
- "depositAsset": "Deposite %{asset}",
"switchAssets": "Trocar ativos",
- "outstandingDebt": "Débito Pendente",
- "outstandingDebtDescription": "O valor da garantia que você tomou emprestado",
- "collateral": "Garantia",
- "debt": "Dívida",
- "healthy": "A profundidade é ótima, os empréstimos são eficientes.",
- "confirmAndBorrow": "Confirmar e emprestar",
- "confirmAndRepay": "Confirmar e Pagar",
- "borrowAgain": "Emprestar Novamente",
- "repayAgain": "Pagar Novamente",
- "transactionInfo": "Resumo transação",
- "repayNoticeTitle": "Calma ai!",
- "repayNoticeCta": "Eu entendo",
- "repayNotice": "Para recuperar sua garantia, você precisará pagar 100% de sua dívida.",
- "feesNotice": "Taxas cobradas sobre a garantia que você recebeu de volta após pagar 100% de sua dívida",
- "refetchQuote": "Atualizar",
- "haltedAlert": "Os serviços THORFi (Lending, Savers e RUNEPool) estão atualmente pausados no THORChain. Pedimos desculpas por qualquer inconveniente.",
- "faq": {
- "title": "FAQ",
- "lending": {
- "title": "O que é empréstimo THORChain?",
- "body": "Fornecer liquidez permitem que os usuários depositem garantias nativas e, em seguida, criem um débito com proporção de colateralização (CR). A dívida é sempre denominada em USD (também conhecido como TOR), independentemente do ativo L1 que o usuário recebe."
- },
- "borrowing": {
- "title": "Como funciona o empréstimo?",
- "body": "Emprestar no THORChain envolve o uso de seus ativos depositados como garantia para contrair um empréstimo. O empréstimo é denominado em USD (TOR) e pode ser recebido em diversos ativos L1. Com um índice de colateralização dinâmico, você pode emprestar com flexibilidade, sem se preocupar com juros ou liquidação"
- },
- "repayments": {
- "title": "Como funciona o pagamento?",
- "body": "O pagamento na THORChain é flexível, permitindo que você pague a qualquer momento após o término do bloqueio de pagamento e em qualquer ativo, que é então convertido em TOR. O valor do pagamento é deduzido do saldo da sua dívida e a garantia proporcional é devolvida a você após o reembolso total"
- }
- },
- "errors": {
- "repaymentsHalted": "Os reembolsos estão temporariamente suspensos.",
- "borrowingHalted": "Os empréstimos estão temporariamente suspensos.",
- "repaymentsDisabled": "Os reembolsos estão temporariamente desativados.",
- "borrowingDisabled": "O empréstimo está temporariamente desativado.",
- "amountTooLowToReturnCollateral": "Valor muito baixo para devolver o colateral",
- "amountTooLowToReturnCollateralTooltip": "O pagamento é baixo demais para sua garantia ser devolvida. Tente novamente com um valor maior ou pague um valor parcial (o que não devolverá sua garantia, mas diminuirá sua dívida).",
- "amountTooSmallUnknownMinimumTooltip": "O valor do pagamento inserido é muito pequeno. Por favor, tente novamente com um valor maior.",
- "repaymentUnavailableTooltip": "Ainda não é possível pagar o seu empréstimo. Aguarde até que o bloqueio de pagamento termine.",
- "repaymentsHaltedTooltip": "Os pagamentos estão temporariamente suspensos. Por favor, tente novamente mais tarde."
- },
- "quote": {
- "collateral": "Valor total do ativo que será garantido pelo seu empréstimo",
- "debt": "Débito total que você deve com base no valor do novo empréstimo",
- "repaymentLock": "Período mínimo antes de você poder pagar seu empréstimo",
- "collateralizationRatio": "Proporção entre o valor da sua garantia e o valor do empréstimo",
- "feesPlusSlippage": "O total de taxas cobradas, incluindo taxas L1, slippage e taxas de liquidez THORChain"
- },
- "yourLoans": {
- "yourLoans": "Seus Empréstimos",
- "emptyTitle": "A Terra dos Empréstimos Zero!",
- "emptyBody": "Parece que você não tem nenhum empréstimo no momento. Isso é momento zen das suas finanças ou apenas uma pausa antes de sua próxima grande aventura de empréstimo? De qualquer forma, aproveite a calma!"
- }
+ "poolInformation": "Informação das Pools"
},
"chainflipLending": {
"awaitingConfirmTitle": "Aguardando confirmação",
@@ -2970,7 +2856,8 @@
"title": "Riscos e Considerações",
"body": "Embora as pools de liquidez ofereçam oportunidades de ganhos, é importante estar ciente dos riscos envolvidos, incluindo perdas impermanentes, vulnerabilidades de contratos inteligentes e volatilidade do mercado. Os usuários devem realizar uma pesquisa completa antes de participar."
}
- }
+ },
+ "haltedDepositTitle": "Depósitos estão temporariamente desabilitados. "
},
"warningAcknowledgement": {
"understand": "Eu entendo",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "Yields",
"pageSubtitle": "Descubra e gerencie oportunidades de rendimento em várias redes.",
- "actions": {
- },
+ "actions": {},
"yield": "Yield",
"apy": "APY",
"apr": "APR",
diff --git a/src/assets/translations/ru/main.json b/src/assets/translations/ru/main.json
index 0ead9c68aba..76104819ffc 100644
--- a/src/assets/translations/ru/main.json
+++ b/src/assets/translations/ru/main.json
@@ -602,36 +602,18 @@
"claimNow": "Заклеймить сейчас",
"claimYour": "Заклеймить свои %{opportunity}"
},
- "saversVaults": {
- "description": "Получайте доход от вашего %{asset} через хранилища THORChain. Время блокировки отсутствует, а вознаграждения накапливаются автоматически. Доходность THORChain складывается из комиссий за своп и вознаграждений за блокчейн. Односторонняя доходность ограничена половиной двусторонней доходности поставщиков ликвидности.",
- "runePoolDescription": "RUNEPool позволяет вам зарабатывать больше %{asset}, объединяя свои %{asset} с другими. Вам не нужно выбирать конкретные пулы, все участвуют в общей производительности.",
- "runePoolOverviewDescription": "RUNEPool оптимизирует использование RUNE, размещая его во всех пулах ликвидности THORChain, поддерживающих пулы. Объединяя RUNE в этих пулах, участники зарабатывают совокупную APY, но подвергаются риску совокупных непостоянных потерь. Вместо того чтобы выбирать отдельные пулы, пользователи получают выгоду от общей производительности, эффективно инвестируя в индекс RUNE и все активы THORChain с поддержкой пулов. Это упрощает предоставление ликвидности и снижает индивидуальный риск.",
- "vaultCap": "Капитализация хранилища",
- "vaultCapTooltip": "Текущая максимальная вместимость данного хранилища",
+ "runePool": {
+ "description": "RUNEPool позволяет вам зарабатывать больше %{asset}, объединяя свои %{asset} с другими. Вам не нужно выбирать конкретные пулы, все участвуют в общей производительности.",
+ "overviewDescription": "RUNEPool оптимизирует использование RUNE, размещая его во всех пулах ликвидности THORChain, поддерживающих пулы. Объединяя RUNE в этих пулах, участники зарабатывают совокупную APY, но подвергаются риску совокупных непостоянных потерь. Вместо того чтобы выбирать отдельные пулы, пользователи получают выгоду от общей производительности, эффективно инвестируя в индекс RUNE и все активы THORChain с поддержкой пулов. Это упрощает предоставление ликвидности и снижает индивидуальный риск.",
+ "introducing": "Представляем вам RUNEPool",
+ "agree": "Я понимаю, что RUNEPool имеет как минимальную блокировку на 30 дней, так и повышенный риск непостоянной потери.",
"haltedDepositTitle": "Вклады временно приостановлены.",
"disabledDepositTitle": "Депозиты временно отключены.",
"disabledWithdrawTitle": "Вывод средств временно отключен.",
"withdrawLockedTitle": "Чтобы снять деньги, вам придется подождать %{timeHuman}.",
- "haltedDescription": "Пожалуйста, напишите в твиттере @THORChain, чтобы поднять капитализацию!",
- "protocolFee": "Плата за протокол",
- "dustAmount": "Сумма Dust",
- "dustAmountTooltip": "Крошечное количество dust требуется для идентификации вашего адреса и будет зарезервировано для последующего использования, когда вы захотите снять деньги.",
- "sendDustBody": "Чтобы снять деньги, вам нужно отправить на этот адрес немного dust.",
- "sendDust": "Отправить Dust",
- "addressToSendTo": "Адрес, на который необходимо отправить",
- "introducingSaversVaults": "Представляем вашему вниманию хранилища Savers",
- "introducingRunePool": "Представляем вам RUNEPool",
- "risksBody": {
- "vaults": "См. эту статью за риски, связанные с хранилищами сбережений.",
- "runePool": "См. эту статью о рисках, связанных с использованием RUNEPool."
- },
- "timeToBreakEven": {
- "title": "Время выйти на безубыточность",
- "tooltip": "Расчетное время для покрытия комиссионных по вкладу и заработка."
- },
"cannotDepositWhilePendingTx": "Невозможно пополнить счет, пока транзакция находится на рассмотрении",
"cannotWithdrawWhilePendingTx": "Невозможно снять средства, пока транзакция находится на рассмотрении",
- "agreeRunePool": "Я понимаю, что RUNEPool имеет как минимальную блокировку на 30 дней, так и повышенный риск непостоянной потери."
+ "risksBody": "См. эту статью о рисках, связанных с использованием RUNEPool."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Лимитные ордера",
"buyCrypto": "Купить криптовалюту",
"buyCryptoShort": "Купить/Продать",
- "lending": "Кредитование",
- "thorchainLending": "Кредитование THORChain",
"chainflipLending": "Chainflip Lending",
"pools": "Пулы",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "Пользовательский"
},
"lending": {
- "lending": "Кредитование",
- "repaymentAvailable": "Возможность погашения",
- "repaymentUnavailable": "Погашение пока не доступно",
- "daysUntilRepayment": "%{numDays} дней до погашения",
- "repaymentDays": "%{numDays} дней",
- "lendingBody": "Перечень всех пулов, которые могут быть заимствованы под нулевые проценты и с нулевой ликвидацией.",
- "collateralValue": "Размер обеспечения",
- "collateralValueDescription": "Текущая стоимость вашего актива, используемого в качестве залога",
- "debtValue": "Размер долга",
- "loanToValue": "Отношение кредита к стоимости",
- "availablePools": "Доступные пулы",
- "pool": "Пул",
- "poolDepth": "Размер пула",
- "poolDepthDescription": "Состояние пула",
- "status": "Статус",
- "statusDescription": "Состояние пула",
- "totalDebtBalance": "Общий остаток задолженности",
- "totalDebtBalanceDescription": "Остаток накопленной задолженности в кредитном пуле",
- "totalCollateral": "Общее обеспечение",
- "totalCollateralDescription": "Итого Обеспечение, добавленное в кредитный пул",
- "estCollateralizationRatio": "Расчет. Коэффициент обеспеченности",
- "estCollateralizationRatioDescription": "В настоящее время действует единый коэффициент обеспеченности в размере 200%. В будущем динамический коэффициент будет балансировать между максимальным и минимальным КО в зависимости от рыночных условий.",
- "collateralizationRatio": "Коэффициент обеспеченности",
- "totalBorrowers": "Всего заемщиков",
- "totalBorrowersDescription": "Количество участвующих заемщиков",
- "myLoanInformation": "Моя информация о кредите",
- "loanInformation": "Краткая информация о кредите",
- "poolInformation": "Информация о пуле",
- "collateralBalance": "Баланс обеспечения",
- "collateralBalanceDescription": "Общая сумма ваших активов, которые в настоящее время находятся в залоге",
- "debtBalance": "Баланс задолженности",
- "debtBalanceDescription": "Общая сумма долга по этому кредиту",
- "repaymentLock": "Блокировка погашения",
- "repaymentLockDescription": "Минимальный срок, в течение которого вы сможете погасить кредит",
- "receiveCollateral": "Сумма залога, которую вы получите обратно",
- "borrow": "Занять",
- "repay": "Погасить",
- "repayAmount": "Сумма погашения",
- "unlocked": "Разблокировано",
- "unlockedCollateral": "Разблокированный залог",
- "depositAsset": "Deposit %{asset}",
"switchAssets": "Переключить активы",
- "outstandingDebt": "Непогашенная задолженность",
- "outstandingDebtDescription": "Сумма залога, которую вы взяли в кредит",
- "collateral": "Обеспечение",
- "debt": "Долг",
- "healthy": "Глубина оптимальна, кредиты эффективны.",
- "confirmAndBorrow": "Подтверждать и заимствовать",
- "confirmAndRepay": "Подтвердить и погасить",
- "borrowAgain": "Одолжить снова",
- "repayAgain": "Вернуть долг",
- "transactionInfo": "Сводка по сделке",
- "repayNoticeTitle": "Подождите!",
- "repayNoticeCta": "Я понимаю",
- "repayNotice": "Для возврата залога необходимо погасить 100% долга.",
- "feesNotice": "Комиссионные, начисленные на залог, который вы получите обратно после погашения 100% долга",
- "refetchQuote": "Refetch Quote",
- "haltedAlert": "Услуги THORFi (Lending, Savers и RUNEPool) в настоящее время приостановлены на THORChain. Мы приносим извинения за возможные неудобства.",
- "faq": {
- "title": "ЧАСТЫЕ ВОПРОСЫ",
- "lending": {
- "title": "Что такое THORChain кредитование?",
- "body": "Кредитование позволяет пользователям вносить собственный залог, а затем создавать долг с коэффициентом обеспечения (КО). Долг всегда деноминирован в USD (aka TOR), независимо от того, какой актив L1 получает пользователь."
- },
- "borrowing": {
- "title": "Как происходит заимствование?",
- "body": "Заимствование в THORChain подразумевает использование размещенных вами активов в качестве залога для получения кредита. Кредит деноминирован в долларах США (TOR) и может быть получен в различных активах L1. Благодаря динамическому коэффициенту залога вы можете брать займы на гибких условиях, не беспокоясь о процентах или ликвидации."
- },
- "repayments": {
- "title": "Как происходит погашение кредита?",
- "body": "Погашение долга в THORChain является гибким, позволяя вам погасить долг в любое время после истечения срока блокировки погашения и любым активом, который затем конвертируется в TOR. Сумма погашения вычитается из баланса вашего долга, а пропорциональный залог возвращается к вам после полного погашения."
- }
- },
- "errors": {
- "repaymentsHalted": "Выплаты по кредиту временно прекращаются",
- "borrowingHalted": "Заимствования временно прекращены.",
- "repaymentsDisabled": "Погашение временно отключено.",
- "borrowingDisabled": "Займы временно отключены.",
- "amountTooLowToReturnCollateral": "Сумма слишком мала для возврата залога",
- "amountTooLowToReturnCollateralTooltip": "Сумма погашения слишком мала для возврата залога. Пожалуйста, повторите попытку с большей суммой или погасите часть суммы (это не вернет вам залог, но уменьшит ваш долг).",
- "amountTooSmallUnknownMinimumTooltip": "Введенная вами сумма погашения слишком мала. Пожалуйста, повторите попытку с большей суммой.",
- "repaymentUnavailableTooltip": "Погашение кредита пока невозможно. Пожалуйста, подождите, пока не истечет срок блокировки погашения.",
- "repaymentsHaltedTooltip": "Выплаты временно прекращены. Пожалуйста, повторите попытку позже."
- },
- "quote": {
- "collateral": "Общая сумма активов, которые будут обеспечены вашим кредитом",
- "debt": "Общая сумма долга, которую вы должны будете выплатить, исходя из новой суммы кредита",
- "repaymentLock": "Минимальный срок, в течение которого вы сможете погасить кредит",
- "collateralizationRatio": "Отношение стоимости вашего залога к сумме кредита",
- "feesPlusSlippage": "Общая сумма возникших комиссий, включая комиссию за L1, проскальзывание и комиссию за ликвидность THORChain"
- },
- "yourLoans": {
- "yourLoans": "Ваши кредиты",
- "emptyTitle": "Страна нулевых займов!",
- "emptyBody": "Похоже, что сейчас у вас нет ни одного кредита. Это финансовый дзен или просто передышка перед следующим большим кредитным приключением? В любом случае, наслаждайтесь спокойствием!"
- }
+ "poolInformation": "Информация о пуле"
},
"chainflipLending": {
"awaitingConfirmTitle": "Ожидается подтверждение",
@@ -2970,7 +2856,8 @@
"title": "Риски и соображения",
"body": "Несмотря на то что пулы ликвидности предлагают возможности для заработка, важно осознавать связанные с ними риски, включая непостоянный убыток, уязвимость смарт-контрактов и волатильность рынка. Пользователям следует провести тщательное исследование, прежде чем принимать в нем участие."
}
- }
+ },
+ "haltedDepositTitle": "Вклады временно приостановлены."
},
"warningAcknowledgement": {
"understand": "Я понимаю",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "Прибыль",
"pageSubtitle": "Обнаруживайте и управляйте возможностями получения дохода в нескольких сетях",
- "actions": {
- },
+ "actions": {},
"yield": "Доходность",
"apy": "APY",
"apr": "APR",
diff --git a/src/assets/translations/tr/main.json b/src/assets/translations/tr/main.json
index 2da15f2d398..901faa7813d 100644
--- a/src/assets/translations/tr/main.json
+++ b/src/assets/translations/tr/main.json
@@ -602,36 +602,18 @@
"claimNow": "Şimdi Talep Et",
"claimYour": " %{opportunity} Talep Edin"
},
- "saversVaults": {
- "description": "THORChain Saver Vaults aracılığıyla %{asset} üzerinden getiri kazanın. Kilitlenme süresi yoktur ve ödüller otomatik olarak biriktirilir. THORChain'de getiri, takas ücretleri ve blok ödüllerinden gelir. Tek taraflı getiri, likidite sağlayıcılarının çift taraflı getirisinin yarısı ile sınırlandırılmıştır.",
- "runePoolDescription": "RUNEPool, %{asset}'inizi başkalarıyla birleştirerek daha fazla %{asset} kazanmanızı sağlar. Belirli havuzları seçmenize gerek yok, herkes genel performanstan pay alır.",
- "runePoolOverviewDescription": "RUNEPool, RUNE kullanımını THORChain'deki tüm POL-enabled likidite havuzlarına yatırarak optimize eder. RUNE'yi bu havuzlar arasında bir araya getirerek, katılımcılar birleşik APY'yi kazanır ancak toplam geçici kayba maruz kalır. Kullanıcılar, bireysel havuzları seçmek yerine genel performanstan yararlanır ve etkili bir şekilde bir RUNE endeksine ve tüm THORChain POL-enabled varlıklara yatırım yapar. Bu, likidite sağlamayı basitleştirir ve bireysel riski azaltır.",
- "vaultCap": "Kasa Üst Limiti",
- "vaultCapTooltip": "Bu kasa için mevcut maksimum kapasite",
+ "runePool": {
+ "description": "RUNEPool, %{asset}'inizi başkalarıyla birleştirerek daha fazla %{asset} kazanmanızı sağlar. Belirli havuzları seçmenize gerek yok, herkes genel performanstan pay alır.",
+ "overviewDescription": "RUNEPool, RUNE kullanımını THORChain'deki tüm POL-enabled likidite havuzlarına yatırarak optimize eder. RUNE'yi bu havuzlar arasında bir araya getirerek, katılımcılar birleşik APY'yi kazanır ancak toplam geçici kayba maruz kalır. Kullanıcılar, bireysel havuzları seçmek yerine genel performanstan yararlanır ve etkili bir şekilde bir RUNE endeksine ve tüm THORChain POL-enabled varlıklara yatırım yapar. Bu, likidite sağlamayı basitleştirir ve bireysel riski azaltır.",
+ "introducing": "RUNEPool'u Tanıtımı",
+ "agree": "RUNEPool'un hem 30 günlük asgari bir kilitleme süresine sahip olduğunu hem de kalıcı olmayan kayıp riskinin yüksek olduğunu anlıyorum.",
"haltedDepositTitle": "Para yatırma işlemleri geçici olarak durdurulmuştur.",
"disabledDepositTitle": "Para yatırma işlemleri geçici olarak devre dışı bırakıldı.",
"disabledWithdrawTitle": "Para çekme işlemleri geçici olarak devre dışı bırakıldı.",
"withdrawLockedTitle": "Para çekmek için %{timeHuman} beklemeniz gerekiyor.",
- "haltedDescription": "Lütfen @THORChain adresine tweet atarak üst sınırınızı yükseltin!",
- "protocolFee": "Protokol Ücreti",
- "dustAmount": "Toz Bakiye",
- "dustAmountTooltip": "Adresinizi tanımlamak için küçük bir miktar toz gereklidir ve daha sonra para çekmek istediğinizde kullanılmak üzere saklanacaktır",
- "sendDustBody": "Para çekebilmek için bu adrese biraz toz göndermeniz gerekiyor.",
- "sendDust": "Toz Gönder",
- "addressToSendTo": "Gönderilecek Adres",
- "introducingSaversVaults": "Saver Vaults Giriş",
- "introducingRunePool": "RUNEPool'u Tanıtımı",
- "risksBody": {
- "vaults": "Saver Vaults ile ilgili riskler için bu makaleye bakın.",
- "runePool": "Saver Vaults ile ilgili riskler için bu makaleye RUNEPool ile ilgili riskler için."
- },
- "timeToBreakEven": {
- "title": "Eşitiliği bozma",
- "tooltip": "Para yatırma ücretlerini ve kazançları karşılamak için tahmini süre."
- },
"cannotDepositWhilePendingTx": "Tx'ler beklemedeyken para yatırılamaz",
"cannotWithdrawWhilePendingTx": "Tx'ler beklemedeyken çekim yapılamaz",
- "agreeRunePool": "RUNEPool'un hem 30 günlük asgari bir kilitleme süresine sahip olduğunu hem de kalıcı olmayan kayıp riskinin yüksek olduğunu anlıyorum."
+ "risksBody": "Saver Vaults ile ilgili riskler için bu makaleye RUNEPool ile ilgili riskler için."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Limit Emirleri",
"buyCrypto": "Kripto Al/Sat",
"buyCryptoShort": "Al/Sat",
- "lending": "Borç Verme",
- "thorchainLending": "THORChain Lending",
"chainflipLending": "Chainflip Lending",
"pools": "Havuzlar",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "Özel"
},
"lending": {
- "lending": "Borç Verme",
- "repaymentAvailable": "Geri ödeme mevcut",
- "repaymentUnavailable": "Geri ödeme henüz mümkün değil",
- "daysUntilRepayment": "Geri ödemeye %{numDays} gün kaldı",
- "repaymentDays": "%{numDays} gün",
- "lendingBody": "Sıfır faiz ve sıfır tasfiyeyle ödünç alınabilecek tüm havuzların listesi.",
- "collateralValue": "Teminat Değeri",
- "collateralValueDescription": "Teminat olarak kullanılan varlığınızın güncel değeri",
- "debtValue": "Borç Değeri",
- "loanToValue": "Kredi Değeri",
- "availablePools": "Mevcut Havuzlar",
- "pool": "Havuz",
- "poolDepth": "Havuz Derinliği",
- "poolDepthDescription": "Havuzun sağlığı",
- "status": "Durum",
- "statusDescription": "Havuzun durumu",
- "totalDebtBalance": "Toplam Borç Bakiyesi",
- "totalDebtBalanceDescription": "Kredi havuzundaki kümülatif borç bakiyesi",
- "totalCollateral": "Toplam Teminat",
- "totalCollateralDescription": "Kredi havuzuna eklenen Toplam Teminat",
- "estCollateralizationRatio": "Tahmini Teminat Oranı",
- "estCollateralizationRatioDescription": "Şu anda %200'lük sabit bir Teminat Oranı mevcuttur. Gelecekte, piyasa koşullarına bağlı olarak maksimum ve minimum CR arasında dinamik bir oran dengelenecektir.",
- "collateralizationRatio": "Teminat Oranı",
- "totalBorrowers": "Tüm Borçlular",
- "totalBorrowersDescription": "Katılan borçlu sayısı",
- "myLoanInformation": "Kredi Bilgilerim",
- "loanInformation": "Kredi Özeti",
- "poolInformation": "Havuz Bilgileri",
- "collateralBalance": "Teminat Bakiyesi",
- "collateralBalanceDescription": "Halihazırda teminat olarak tutulan varlığınızın toplam tutarı",
- "debtBalance": "Borç Bakiyesi",
- "debtBalanceDescription": "Bu kredi için borçlu olduğunuz toplam borç tutarı",
- "repaymentLock": "Geri Ödeme Kilidi",
- "repaymentLockDescription": "Kredinizi geri ödeyebilmeniz için gereken minimum süre",
- "receiveCollateral": "Geri alacağınız teminat miktarı",
- "borrow": "Borç Al",
- "repay": "Geri Öde",
- "repayAmount": "Geri Ödeme Tutarı",
- "unlocked": "Kilitli değil",
- "unlockedCollateral": "Kilidi Açılmış Teminat",
- "depositAsset": "Depozit %{asset}",
"switchAssets": "Varlıkları Değiştir",
- "outstandingDebt": "Ödenmemiş Borç",
- "outstandingDebtDescription": "Ödünç aldığınız teminat miktarı",
- "collateral": "Teminat",
- "debt": "Borç",
- "healthy": "Derinlik optimaldir, krediler etkilidir.",
- "confirmAndBorrow": "Onayla ve Borç Al",
- "confirmAndRepay": "Onayla ve Geri Öde",
- "borrowAgain": "Tekrar Ödünç Al",
- "repayAgain": "Tekrar Öde",
- "transactionInfo": "İşlem Özeti",
- "repayNoticeTitle": "Gecikti!",
- "repayNoticeCta": "Anladım",
- "repayNotice": "Teminatınızı geri alabilmeniz için borcunuzun %100'ünü ödemeniz gerekecektir.",
- "feesNotice": "Borcunuzun %100'ünü ödedikten sonra geri alacağınız teminat üzerinden oluşan ücretler",
- "refetchQuote": "Teklifi Yeniden Al",
- "haltedAlert": "THORFi hizmetleri (Lending, Savers ve RUNEPool) şu anda THORChain'de duraklatıldı. Herhangi bir rahatsızlıktan dolayı özür dileriz.",
- "faq": {
- "title": "FAQ",
- "lending": {
- "title": "THORChain Lending Nedir?",
- "body": "Borç verme, kullanıcıların yerel teminat yatırmasına ve ardından teminatlandırma oranında (CR) borç oluşturmasına olanak tanır. Kullanıcının hangi L1 varlığını aldığına bakılmaksızın borç her zaman USD (diğer adıyla TOR) cinsinden ifade edilir."
- },
- "borrowing": {
- "title": "Borçlanma nasıl çalışır?",
- "body": "THORChain'de borç almak, yatırılan varlıklarınızı kredi almak için teminat olarak kullanmayı içerir. Kredi USD (TOR) cinsindendir ve çeşitli L1 varlıklarında alınabilir. Dinamik teminat oranıyla faiz veya tasfiye endişesi olmadan esnek bir şekilde borçlanabilirsiniz"
- },
- "repayments": {
- "title": "Geri ödeme nasıl çalışır?",
- "body": "THORChain'de geri ödeme esnektir; istediğiniz zaman herhangi bir varlıkta geri ödeme yapmanıza olanak tanır ve bu daha sonra TOR'a dönüştürülür. Geri ödeme tutarı borç bakiyenizden düşülerek, tamamı geri ödendiğinde orantılı teminat tarafınıza iade edilir."
- }
- },
- "errors": {
- "repaymentsHalted": "Geri ödemeler geçici olarak durduruldu.",
- "borrowingHalted": "Borçlanma geçici olarak durduruldu.",
- "repaymentsDisabled": "Geri ödemeler geçici olarak devre dışı bırakıldı.",
- "borrowingDisabled": "Ödünç alma geçici olarak devre dışı bırakıldı.",
- "amountTooLowToReturnCollateral": "Teminatın iadesi için tutar çok düşük",
- "amountTooLowToReturnCollateralTooltip": "Geri ödeme teminatınız iade edilemeyecek kadar düşük. Lütfen daha yüksek bir tutarla tekrar deneyin veya kısmi bir tutar ödeyin (bu, teminatınızı iade etmeyecek ancak borcunuzu azaltacaktır).",
- "amountTooSmallUnknownMinimumTooltip": "Girdiğiniz geri ödeme tutarı çok küçük. Lütfen daha yüksek bir tutarla tekrar deneyin.",
- "repaymentUnavailableTooltip": "Kredinizi geri ödemeniz henüz mümkün değil. Lütfen geri ödeme kilidi bitene kadar bekleyin.",
- "repaymentsHaltedTooltip": "Geri ödemeler geçici olarak durduruldu. Lütfen daha sonra tekrar deneyiniz."
- },
- "quote": {
- "collateral": "Kredinize karşılık teminat altına alınacak toplam varlık tutarı",
- "debt": "Yeni kredi tutarınıza göre borçlu olacağınız toplam borç tutarı",
- "repaymentLock": "Kredinizi geri ödeyebilmeniz için gereken minimum süre",
- "collateralizationRatio": "Teminat değerinizin kredi tutarına oranı",
- "feesPlusSlippage": "L1 ücretleri, kayma ve THORChain likidite ücretleri dahil olmak üzere oluşan toplam ücretler"
- },
- "yourLoans": {
- "yourLoans": "Kredileriniz",
- "emptyTitle": "Sıfır Krediler Ülkesi!",
- "emptyBody": "Şu anda herhangi bir krediniz yok gibi görünüyor. Bu finansal zen mi, yoksa bir sonraki büyük borç verme maceranızdan önce sadece bir mola mı? Her iki durumda da sakinliğin tadını çıkarın!"
- }
+ "poolInformation": "Havuz Bilgileri"
},
"chainflipLending": {
"awaitingConfirmTitle": "Onay bekleniyor",
@@ -2970,7 +2856,8 @@
"title": "Riskler ve Hususlar",
"body": "Likidite havuzları kazanç fırsatları sunarken, kalıcı kayıplar, akıllı sözleşme zayıflıkları ve piyasa dalgalanmaları dahil olmak üzere ilgili risklerin farkında olmak önemlidir. Kullanıcılar katılmadan önce kapsamlı bir araştırma yapmalıdır."
}
- }
+ },
+ "haltedDepositTitle": "Para yatırma işlemleri geçici olarak durdurulmuştur."
},
"warningAcknowledgement": {
"understand": "Anladım",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "Getiriler",
"pageSubtitle": "Birden fazla zincirde getiri fırsatlarını keşfedin ve yönetin.",
- "actions": {
- },
+ "actions": {},
"yield": "Getiri",
"apy": "APY",
"apr": "APR",
diff --git a/src/assets/translations/uk/main.json b/src/assets/translations/uk/main.json
index 1fe8227ace1..e3ed7310e86 100644
--- a/src/assets/translations/uk/main.json
+++ b/src/assets/translations/uk/main.json
@@ -602,36 +602,18 @@
"claimNow": "Вивести зараз",
"claimYour": "Отримайте свою %{opportunity}"
},
- "saversVaults": {
- "description": "Отримуйте дохід від вашого %{asset} через Сховища заощаджень THORChain. Час блокування відсутній, а винагороди накопичуються автоматично. Прибутковість THORChain складається з комісійних за свопи та винагороди за блокчейн. Одностороння дохідність обмежена половиною двосторонньої дохідності постачальників ліквідності.",
- "runePoolDescription": "RUNEPool дозволяє вам заробляти більше %{asset}, об'єднуючи свій %{asset} з іншими. Вам не потрібно обирати конкретні пули, всі беруть участь у загальній продуктивності.",
- "runePoolOverviewDescription": "RUNEPool оптимізує використання RUNE, розміщуючи його в усіх пулах ліквідності THORChain з підтримкою пулів. Об'єднуючи RUNE в цих пулах, учасники заробляють комбінований APY, але наражаються на ризик сукупних непостійних втрат. Замість того, щоб обирати окремі пули, користувачі отримують вигоду від загальної ефективності, ефективно інвестуючи в індекс RUNE і всі активи THORChain з підтримкою пулів. RUNEPool оптимізує використання RUNE, вкладаючи його в усі пули ліквідності з підтримкою пулів в THORChain. Об'єднуючи RUNE в цих пулах, учасники заробляють комбінований APY, але наражаються на ризик сукупних непостійних втрат. Замість того, щоб обирати окремі пули, користувачі отримують вигоду від загальної ефективності, ефективно інвестуючи в індекс RUNE і всі активи THORChain з підтримкою POL. Це спрощує забезпечення ліквідності та знижує індивідуальний ризик.",
- "vaultCap": "Капіталізація Сховища",
- "vaultCapTooltip": "Поточна максимальна місткість цього сховища",
+ "runePool": {
+ "description": "RUNEPool дозволяє вам заробляти більше %{asset}, об'єднуючи свій %{asset} з іншими. Вам не потрібно обирати конкретні пули, всі беруть участь у загальній продуктивності.",
+ "overviewDescription": "RUNEPool оптимізує використання RUNE, розміщуючи його в усіх пулах ліквідності THORChain з підтримкою пулів. Об'єднуючи RUNE в цих пулах, учасники заробляють комбінований APY, але наражаються на ризик сукупних непостійних втрат. Замість того, щоб обирати окремі пули, користувачі отримують вигоду від загальної ефективності, ефективно інвестуючи в індекс RUNE і всі активи THORChain з підтримкою пулів. RUNEPool оптимізує використання RUNE, вкладаючи його в усі пули ліквідності з підтримкою пулів в THORChain. Об'єднуючи RUNE в цих пулах, учасники заробляють комбінований APY, але наражаються на ризик сукупних непостійних втрат. Замість того, щоб обирати окремі пули, користувачі отримують вигоду від загальної ефективності, ефективно інвестуючи в індекс RUNE і всі активи THORChain з підтримкою POL. Це спрощує забезпечення ліквідності та знижує індивідуальний ризик.",
+ "introducing": "Представляємо RUNEPool",
+ "agree": "Я розумію, що RUNEPool має мінімальний 30-денний термін блокування і підвищений ризик непостійних втрат.",
"haltedDepositTitle": "Вклади тимчасово зупинені.",
"disabledDepositTitle": "Депозити тимчасово не працюють.",
"disabledWithdrawTitle": "Виведення коштів тимчасово відключено.",
"withdrawLockedTitle": "Ви повинні дочекатися %{timeHuman}, щоб вивести кошти.",
- "haltedDescription": "Будь ласка, напишіть у твіттері @THORChain, щоб підняти наш рівень!",
- "protocolFee": "Плата за протокол",
- "dustAmount": "Сума Dust",
- "dustAmountTooltip": "Крихітна кількість dust необхідна для ідентифікації вашої адреси, і буде зарезервована для подальшого використання, коли ви захочете здійснити зняття коштів",
- "sendDustBody": "Вам потрібно відправити трохи dust на цю адресу, щоб мати можливість вилучити кошти.",
- "sendDust": "Надіслати Dust",
- "addressToSendTo": "Адреса, на яку надсилати",
- "introducingSaversVaults": "Представляємо Сховища заощаджень",
- "introducingRunePool": "Представляємо RUNEPool",
- "risksBody": {
- "vaults": "Подивіться на цю статтю щодо ризиків, пов'язаних з використанням ощадних сховищ.",
- "runePool": "Подивіться на цю статтю за ризики, пов'язані з RUNEPool."
- },
- "timeToBreakEven": {
- "title": "Час для виходу на беззбитковість",
- "tooltip": "Орієнтовний час для покриття депозитних комісій та отримання прибутку."
- },
"cannotDepositWhilePendingTx": "Неможливо внести депозит, доки триває обробка транзакцій",
"cannotWithdrawWhilePendingTx": "Неможливо вивести кошти, доки триває обробка транзакцій",
- "agreeRunePool": "Я розумію, що RUNEPool має мінімальний 30-денний термін блокування і підвищений ризик непостійних втрат."
+ "risksBody": "Подивіться на цю статтю за ризики, пов'язані з RUNEPool."
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "Лімітні ордери",
"buyCrypto": "Купити / продати криптовалюту",
"buyCryptoShort": "Купити/продати",
- "lending": "Кредитування",
- "thorchainLending": "THORChain Lending",
"chainflipLending": "Chainflip Lending",
"pools": "Пули",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "Спеціальний"
},
"lending": {
- "lending": "Кредитування",
- "repaymentAvailable": "Доступне погашення",
- "repaymentUnavailable": "Погашення ще не доступне",
- "daysUntilRepayment": "%{numDays} днів до погашення",
- "repaymentDays": "%{numDays} днів",
- "lendingBody": "Перелік усіх пулів, які можна позичити під нульову відсоткову ставку та з нульовою ліквідацією.",
- "collateralValue": "Вартість застави",
- "collateralValueDescription": "Поточна вартість вашого активу, що використовується як застава",
- "debtValue": "Сума боргу",
- "loanToValue": "Кредит до капіталу",
- "availablePools": "Доступні пули",
- "pool": "Пул",
- "poolDepth": "Обсяг пулу",
- "poolDepthDescription": "Здоров'я пулу",
- "status": "Статус",
- "statusDescription": "Статус пулу",
- "totalDebtBalance": "Загальний залишок боргу",
- "totalDebtBalanceDescription": "Кумулятивний залишок заборгованості в кредитному пулі",
- "totalCollateral": "Загальна сума застави",
- "totalCollateralDescription": "Загальна сума застави, доданої до кредитного пулу",
- "estCollateralizationRatio": "Приблизний коефіцієнт забезпечення",
- "estCollateralizationRatioDescription": "Наразі діє фіксований коефіцієнт забезпечення на рівні 200%. У майбутньому динамічний коефіцієнт буде балансувати між максимальним та мінімальним КЗ, виходячи з ринкових умов.",
- "collateralizationRatio": "коефіцієнт забезпечення",
- "totalBorrowers": "Всього позичальників",
- "totalBorrowersDescription": "Кількість позичальників, які беруть участь",
- "myLoanInformation": "Інформація про мій кредит",
- "loanInformation": "Короткий огляд кредиту",
- "poolInformation": "Інформація про пул",
- "collateralBalance": "Баланс застави",
- "collateralBalanceDescription": "Загальна сума вашого активу, що наразі перебуває у заставі",
- "debtBalance": "Залишок боргу",
- "debtBalanceDescription": "Загальна сума заборгованості за цим кредитом",
- "repaymentLock": "Блокування виплат",
- "repaymentLockDescription": "Мінімальний термін, протягом якого ви можете погасити кредит",
- "receiveCollateral": "Сума застави, яку ви отримаєте назад",
- "borrow": "Позичити",
- "repay": "Погасити",
- "repayAmount": "Сума до погашення",
- "unlocked": "Розблоковано",
- "unlockedCollateral": "Розблокована застава",
- "depositAsset": "Внести %{asset}",
"switchAssets": "Переключити активи",
- "outstandingDebt": "Непогашена заборгованість",
- "outstandingDebtDescription": "Сума застави, яку ви взяли в борг",
- "collateral": "Забезпечення",
- "debt": "Борг",
- "healthy": "Глибина оптимальна, кредити ефективні.",
- "confirmAndBorrow": "Підтвердити та позичити",
- "confirmAndRepay": "Підтвердити та погасити",
- "borrowAgain": "Позичте ще раз",
- "repayAgain": "Погасити ще раз",
- "transactionInfo": "Підсумки транзакції",
- "repayNoticeTitle": "Зачекайте!",
- "repayNoticeCta": "Я розумію",
- "repayNotice": "Щоб отримати заставу, вам потрібно буде погасити 100% боргу.",
- "feesNotice": "Комісії, що виникли у зв'язку із заставою, ви отримаєте назад після погашення 100% вашого боргу",
- "refetchQuote": "Refetch Quote",
- "haltedAlert": "Сервіси THORFi (Lending, Savers та RUNEPool) наразі призупинені на THORChain. Приносимо вибачення за тимчасові незручності.",
- "faq": {
- "title": "Поширенні запитання",
- "lending": {
- "title": "Що таке THORCHCHain кредитування?",
- "body": "Кредитування дозволяє користувачам вносити власну заставу, а потім створювати борг за коефіцієнтом забезпечення (CR). Борг завжди деномінований у доларах США (так званий TOR), незалежно від того, який актив L1 отримує користувач"
- },
- "borrowing": {
- "title": "Як працює позика?",
- "body": "Позики в THORChain передбачають використання ваших депонованих активів в якості застави для отримання кредиту. Кредит деномінований в доларах США (TOR) і може бути отриманий в різних активах L1. Завдяки динамічному коефіцієнту забезпечення ви можете гнучко позичати, не турбуючись про відсотки або ліквідацію"
- },
- "repayments": {
- "title": "Як відбувається погашення?",
- "body": "Погашення в THORchain є гнучким, що дозволяє вам погашати борг у будь-який час після закінчення терміну дії блокування і будь-яким активом, який потім конвертується в TOR. Сума погашення вираховується з балансу вашого боргу, а пропорційне забезпечення повертається вам після повного погашення."
- }
- },
- "errors": {
- "repaymentsHalted": "Виплати тимчасово припинені.",
- "borrowingHalted": "Запозичення тимчасово призупинено.",
- "repaymentsDisabled": "Погашення тимчасово відключено.",
- "borrowingDisabled": "Кредитування тимчасово відключено.",
- "amountTooLowToReturnCollateral": "Занадто мала сума для повернення застави",
- "amountTooLowToReturnCollateralTooltip": "Сума погашення занадто мала, щоб повернути заставу. Будь ласка, спробуйте ще раз з більшою сумою або погасіть частково (це не поверне вам заставу, але зменшить ваш борг).",
- "amountTooSmallUnknownMinimumTooltip": "Введена сума погашення занадто мала. Будь ласка, спробуйте ще раз з більшою сумою.",
- "repaymentUnavailableTooltip": "Погасити кредит поки що неможливо. Будь ласка, зачекайте, поки закінчиться блокування погашення.",
- "repaymentsHaltedTooltip": "Погашення тимчасово призупинено. Будь ласка, спробуйте пізніше."
- },
- "quote": {
- "collateral": "Загальна сума активів, які будуть забезпечені під заставу вашого кредиту",
- "debt": "Загальний борг, який ви будете винні, виходячи з нової суми кредиту",
- "repaymentLock": "Мінімальний термін, протягом якого ви можете погасити кредит",
- "collateralizationRatio": "Співвідношення вартості застави до суми кредиту",
- "feesPlusSlippage": "Загальна сума комісій, включаючи комісію L1, прослизання та комісію за ліквідність THORChain"
- },
- "yourLoans": {
- "yourLoans": "Ваші позики",
- "emptyTitle": "Країна нульових кредитів!",
- "emptyBody": "Схоже, що у вас немає жодних кредитів на даний момент. Це фінансовий дзен чи просто перерва перед наступною великою кредитною пригодою? У будь-якому випадку, насолоджуйтеся спокоєм!"
- }
+ "poolInformation": "Інформація про пул"
},
"chainflipLending": {
"awaitingConfirmTitle": "Очікується підтвердження",
@@ -2970,7 +2856,8 @@
"title": "Ризики та рекомендації",
"body": "Хоча пули ліквідності пропонують можливості для заробітку, важливо усвідомлювати ризики, пов'язані з ними, включаючи непостійні втрати, вразливість смарт-контрактів і волатильність ринку. Користувачі повинні провести ретельне дослідження перед тим, як брати участь у пулах."
}
- }
+ },
+ "haltedDepositTitle": "Вклади тимчасово зупинені."
},
"warningAcknowledgement": {
"understand": "Я розумію.",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "Дохідність",
"pageSubtitle": "Відкривайте та керуйте можливостями отримання прибутку в декількох мережах",
- "actions": {
- },
+ "actions": {},
"yield": "Прибутковість",
"apy": "APY",
"apr": "APR",
diff --git a/src/assets/translations/zh/main.json b/src/assets/translations/zh/main.json
index 50618da93cc..904bd63c5d2 100644
--- a/src/assets/translations/zh/main.json
+++ b/src/assets/translations/zh/main.json
@@ -602,36 +602,18 @@
"claimNow": "立即领取",
"claimYour": "认领你的 %{opportunity}"
},
- "saversVaults": {
- "description": "通过 THORChain 储户金库 赚取你的 %{asset} 收益。无锁定时间,奖励自动累积。 THORChain 上的收益来兑换费用和区块奖励。单面收益率上限为流动性提供者双面收益率的一半。",
- "runePoolDescription": "RUNEPool 可让你通过与他人共享 %{asset} 来赚取更多 %{asset}。你不必选择特定的池子,每个人都可以分享整体表现。",
- "runePoolOverviewDescription": "RUNEPool 通过将 RUNE 存入 THORChain 中所有支持 POL 的流动性池来优化 RUNE 的使用。通过在这些池中汇集 RUNE,参与者可以获得综合 APY,但面临总无常损失的风险。用户无需选择单个池,而是从整体表现中受益,有效地投资于 RUNE 指数和所有支持 THORChain POL 的资产。这简化了流动性提供并降低了个人风险。",
- "vaultCap": "金库容量",
- "vaultCapTooltip": "该金库当前的最大容量",
+ "runePool": {
+ "description": "RUNEPool 可让你通过与他人共享 %{asset} 来赚取更多 %{asset}。你不必选择特定的池子,每个人都可以分享整体表现。",
+ "overviewDescription": "RUNEPool 通过将 RUNE 存入 THORChain 中所有支持 POL 的流动性池来优化 RUNE 的使用。通过在这些池中汇集 RUNE,参与者可以获得综合 APY,但面临总无常损失的风险。用户无需选择单个池,而是从整体表现中受益,有效地投资于 RUNE 指数和所有支持 THORChain POL 的资产。这简化了流动性提供并降低了个人风险。",
+ "introducing": "介绍 RUNEPool",
+ "agree": "我知道 RUNEPool 有 30 天的最低锁定期,并且存在较高的无常损失风险。",
"haltedDepositTitle": "充值暂时停止。",
"disabledDepositTitle": "暂时禁止存款。",
"disabledWithdrawTitle": "暂时禁止提款。",
"withdrawLockedTitle": "您必须等待 %{timeHuman} 才能提款。",
- "haltedDescription": "请 @THORChain 发推文以提高上限!",
- "protocolFee": "协议费用",
- "dustAmount": "Dust 数量",
- "dustAmountTooltip": "需要少量 DUST 来识别你的地址,并将保留以供以后提款时使用",
- "sendDustBody": "你需要发送一些 dust 到该地址才能提现。",
- "sendDust": "发送 Dust",
- "addressToSendTo": "接收地址",
- "introducingSaversVaults": "介绍储户金库",
- "introducingRunePool": "介绍 RUNEPool",
- "risksBody": {
- "vaults": "参考 这篇文章 以了解与储户金库相关的风险。",
- "runePool": "参考 这篇文章 以了解与 RUNEPool 相关的风险。"
- },
- "timeToBreakEven": {
- "title": "收支平衡的时候",
- "tooltip": "预计收益能支付手续费的时间"
- },
"cannotDepositWhilePendingTx": "交易待处理时无法充值",
"cannotWithdrawWhilePendingTx": "交易待处理时无法提现",
- "agreeRunePool": "我知道 RUNEPool 有 30 天的最低锁定期,并且存在较高的无常损失风险。"
+ "risksBody": "参考 这篇文章 以了解与 RUNEPool 相关的风险。"
}
},
"memoNote": {
@@ -717,8 +699,6 @@
"limitOrder": "限价订单",
"buyCrypto": "购买/出售 加密货币",
"buyCryptoShort": "购买/出售",
- "lending": "贷款",
- "thorchainLending": "THORChain Lending",
"chainflipLending": "Chainflip Lending",
"pools": "流动性池",
"rFOX": "rFOX",
@@ -2345,102 +2325,8 @@
"custom": "自定义"
},
"lending": {
- "lending": "贷款",
- "repaymentAvailable": "可还款",
- "repaymentUnavailable": "还款尚未到账",
- "daysUntilRepayment": "距离还款还有 %{numDays} 天",
- "repaymentDays": "%{numDays} 天",
- "lendingBody": "所有可以零利息和零清算借款的资金池的列表。",
- "collateralValue": "抵押品价值",
- "collateralValueDescription": "用作抵押品的资产的当前价值",
- "debtValue": "债务价值",
- "loanToValue": "贷款价值",
- "availablePools": "可用池",
- "pool": "借贷池",
- "poolDepth": "池深度",
- "poolDepthDescription": "池的健康状况",
- "status": "状态",
- "statusDescription": "池的状态",
- "totalDebtBalance": "总债务余额",
- "totalDebtBalanceDescription": "贷款池累计债务余额",
- "totalCollateral": "抵押品总额",
- "totalCollateralDescription": "添加到借贷池的总抵押品",
- "estCollateralizationRatio": "预估抵押比例",
- "estCollateralizationRatioDescription": "目前抵押率固定为 200%,未来将根据市场情况,动态平衡抵押率的上限和下限。",
- "collateralizationRatio": "抵押比例",
- "totalBorrowers": "借款人总数",
- "totalBorrowersDescription": "参与借款人数量",
- "myLoanInformation": "我的借贷信息",
- "loanInformation": "借贷概要",
- "poolInformation": "池信息",
- "collateralBalance": "抵押品余额",
- "collateralBalanceDescription": "你当前作为抵押品持有的资产总额",
- "debtBalance": "债务余额",
- "debtBalanceDescription": "你为此贷款所欠的债务总额",
- "repaymentLock": "还款锁定",
- "repaymentLockDescription": "你可以偿还贷款的最短期限",
- "receiveCollateral": "你将收到的抵押品金额",
- "borrow": "借贷",
- "repay": "还款",
- "repayAmount": "还款金额",
- "unlocked": "解锁",
- "unlockedCollateral": "解锁抵押品",
- "depositAsset": "充值 %{asset}",
"switchAssets": "转换资产",
- "outstandingDebt": "未尝债务",
- "outstandingDebtDescription": "你借入的抵押品金额",
- "collateral": "抵押品",
- "debt": "债务",
- "healthy": "深度最佳,贷款高效。",
- "confirmAndBorrow": "确认并借用",
- "confirmAndRepay": "确认并偿还",
- "borrowAgain": "再次借用",
- "repayAgain": "再次偿还",
- "transactionInfo": "交易概要",
- "repayNoticeTitle": "等等!",
- "repayNoticeCta": "我理解",
- "repayNotice": "要拿回抵押品,你需要偿还 100% 的债务。",
- "feesNotice": "偿还 100% 债务后你将收到的抵押品费用",
- "refetchQuote": "重新获取报价",
- "haltedAlert": "THORChain 上的 THORFi 服务(借贷、储蓄和 RUNEPool)目前已暂停。我们对造成的任何不便深表歉意。",
- "faq": {
- "title": "常见问题",
- "lending": {
- "title": "什么是 THORChain 借贷?",
- "body": "借贷允许用户存入原生抵押品,然后以抵押率(CR)创建债务。无论用户收到什么 L1 资产,债务始终以美元(又名 TOR)计价"
- },
- "borrowing": {
- "title": "借贷如何运作?",
- "body": "在 THORChain 中借款涉及使用你存入的资产作为抵押品来获取贷款。贷款以美元(TOR)计价,可以多种 L1 资产形式收取。动态抵押比例,灵活借贷,无利息、爆仓之忧"
- },
- "repayments": {
- "title": "还款如何运作?",
- "body": "THORChain 中的还款非常灵活,允许您在还款锁定到期后随时以任何资产进行还款,然后将其转换为 TOR。还款金额从你的债务余额中扣除,全额还款后按比例返还抵押品"
- }
- },
- "errors": {
- "repaymentsHalted": "还款暂时停止。",
- "borrowingHalted": "借款暂时停止。",
- "repaymentsDisabled": "还款功能暂时禁用。",
- "borrowingDisabled": "暂时禁止借贷。",
- "amountTooLowToReturnCollateral": "金额太低,无法退还抵押品",
- "amountTooLowToReturnCollateralTooltip": "还款金额太低,无法退还你的抵押品。请尝试以更高的金额再试一次,或偿还部分金额(这不会退还你的抵押品,但会减少你的债务)。",
- "amountTooSmallUnknownMinimumTooltip": "你输入的还款金额太小。请输入更高的金额重试。",
- "repaymentUnavailableTooltip": "你目前无法偿还贷款。请等到还款锁定期结束。",
- "repaymentsHaltedTooltip": "还款暂时停止。请稍后重试。"
- },
- "quote": {
- "collateral": "将作为你的贷款担保的总资产金额",
- "debt": "根据你的新贷款金额,你所欠的债务总额",
- "repaymentLock": "你可以偿还贷款的最短期限",
- "collateralizationRatio": "你的抵押品价值与贷款金额的比率",
- "feesPlusSlippage": "发生的总费用,包括 L1 费用、滑点费用和 THORChain 流动性费用"
- },
- "yourLoans": {
- "yourLoans": "你的贷款",
- "emptyTitle": "零贷款之地!",
- "emptyBody": "你目前似乎没有任何贷款。这是金融禅宗还是只是您下一次大型贷款冒险之前的休息?不管怎样,享受平静吧!"
- }
+ "poolInformation": "池信息"
},
"chainflipLending": {
"awaitingConfirmTitle": "等待确认中",
@@ -2970,7 +2856,8 @@
"title": "风险和注意事项",
"body": "虽然流动性池提供了盈利机会,但重要的是要意识到所涉及的风险,包括无常损失、智能合约漏洞和市场波动。用户在参与之前应进行彻底的研究。"
}
- }
+ },
+ "haltedDepositTitle": "充值暂时停止。"
},
"warningAcknowledgement": {
"understand": "我理解",
@@ -3475,8 +3362,7 @@
"yieldXYZ": {
"pageTitle": "收益",
"pageSubtitle": "发现并管理跨多条链的收益机会",
- "actions": {
- },
+ "actions": {},
"yield": "收益",
"apy": "APY",
"apr": "APR",
diff --git a/src/components/EarnDashboard/components/PositionDetails/StakingPositionsByProvider.tsx b/src/components/EarnDashboard/components/PositionDetails/StakingPositionsByProvider.tsx
index 6ca6d2b399c..e69f588aaea 100644
--- a/src/components/EarnDashboard/components/PositionDetails/StakingPositionsByProvider.tsx
+++ b/src/components/EarnDashboard/components/PositionDetails/StakingPositionsByProvider.tsx
@@ -1,7 +1,7 @@
import { ArrowForwardIcon, ExternalLinkIcon } from '@chakra-ui/icons'
import { Button, Flex, Tag, useMediaQuery } from '@chakra-ui/react'
import type { AssetId } from '@shapeshiftoss/caip'
-import { fromAssetId, thorchainAssetId } from '@shapeshiftoss/caip'
+import { fromAssetId } from '@shapeshiftoss/caip'
import type { Asset, MarketData } from '@shapeshiftoss/types'
import { BigAmount } from '@shapeshiftoss/utils'
import qs from 'qs'
@@ -198,7 +198,7 @@ export const StakingPositionsByProvider: React.FC
) : (
diff --git a/src/components/Layout/Header/Header.tsx b/src/components/Layout/Header/Header.tsx
index 5bcbe78e0fe..eca9a356be2 100644
--- a/src/components/Layout/Header/Header.tsx
+++ b/src/components/Layout/Header/Header.tsx
@@ -122,12 +122,6 @@ export const Header = memo(() => {
: []),
{ label: 'navBar.tcy', path: '/tcy', icon: TCYIcon },
{ label: 'navBar.pools', path: '/pools', icon: TbPool },
- {
- label: isChainflipLendingEnabled ? 'navBar.thorchainLending' : 'navBar.lending',
- path: '/lending',
- icon: TbBuildingBank,
- isDeprecated: isChainflipLendingEnabled,
- },
...(isChainflipLendingEnabled
? [
{
diff --git a/src/components/StakingVaults/PositionTable.tsx b/src/components/StakingVaults/PositionTable.tsx
index cd277609143..4e41556f3a7 100644
--- a/src/components/StakingVaults/PositionTable.tsx
+++ b/src/components/StakingVaults/PositionTable.tsx
@@ -64,6 +64,7 @@ export const PositionTable: React.FC = ({
}, [basePositions, chainId])
const [processedRows, setProcessedRows] = useState([])
+ const [hasProcessedRows, setHasProcessedRows] = useState(false)
const [, startTransition] = useTransition()
const filterRowsBySearchTerm = useCallback(
@@ -96,6 +97,7 @@ export const PositionTable: React.FC = ({
? filterRowsBySearchTerm(filteredByChain, searchQuery)
: filteredByChain
setProcessedRows(targetRows)
+ setHasProcessedRows(true)
})
}, [filteredByChain, filterRowsBySearchTerm, isSearching, searchQuery])
@@ -192,8 +194,8 @@ export const PositionTable: React.FC = ({
}, [searchQuery])
const isInitialProcessing = useMemo(
- () => !processedRows.length && !isLoading && filteredByChain.length > 0,
- [filteredByChain.length, isLoading, processedRows.length],
+ () => !hasProcessedRows && !isLoading && filteredByChain.length > 0,
+ [filteredByChain.length, hasProcessedRows, isLoading],
)
if (isInitialProcessing) {
diff --git a/src/components/Sweep.tsx b/src/components/Sweep.tsx
index b769945505a..872f8a6149d 100644
--- a/src/components/Sweep.tsx
+++ b/src/components/Sweep.tsx
@@ -11,10 +11,10 @@ import { AssetIcon } from './AssetIcon'
import { handleSend } from './Modals/Send/utils'
import { Row } from '@/components/Row/Row'
+import { useGetEstimatedFeesQuery } from '@/hooks/queries/useGetEstimatedFeesQuery'
import { useWallet } from '@/hooks/useWallet/useWallet'
import { sleep } from '@/lib/poll/poll'
import { assertGetUtxoChainAdapter } from '@/lib/utils/utxo'
-import { useGetEstimatedFeesQuery } from '@/pages/Lending/hooks/useGetEstimatedFeesQuery'
import { selectAssetById } from '@/state/slices/selectors'
import { useAppSelector } from '@/state/store'
diff --git a/src/config.ts b/src/config.ts
index 7ce3704f299..969c282f496 100644
--- a/src/config.ts
+++ b/src/config.ts
@@ -153,9 +153,6 @@ const validators = {
VITE_FEATURE_ZCASH: bool({ default: false }),
VITE_FEATURE_ZRX_SWAP: bool({ default: false }),
VITE_FEATURE_THOR_SWAP: bool({ default: false }),
- VITE_FEATURE_SAVERS_VAULTS: bool({ default: false }),
- VITE_FEATURE_SAVERS_VAULTS_DEPOSIT: bool({ default: false }),
- VITE_FEATURE_SAVERS_VAULTS_WITHDRAW: bool({ default: false }),
VITE_FEATURE_CUSTOM_TOKEN_IMPORT: bool({ default: false }),
VITE_FEATURE_QUICK_BUY: bool({ default: false }),
// A flag encapsulating all WalletConnect to dApps - v1 and v2
@@ -222,9 +219,6 @@ const validators = {
VITE_EXPERIMENTAL_CUSTOM_SEND_NONCE: bool({ default: false }),
VITE_SNAP_ID: str(),
VITE_SNAP_VERSION: str(),
- VITE_FEATURE_THORCHAIN_LENDING: bool({ default: false }),
- VITE_FEATURE_THORCHAIN_LENDING_BORROW: bool({ default: false }),
- VITE_FEATURE_THORCHAIN_LENDING_REPAY: bool({ default: false }),
VITE_FEATURE_THORCHAIN_LP: bool({ default: false }),
VITE_FEATURE_THORCHAIN_LP_DEPOSIT: bool({ default: false }),
VITE_FEATURE_THORCHAIN_LP_WITHDRAW: bool({ default: false }),
diff --git a/src/features/defi/contexts/DefiManagerProvider/DefiCommon.ts b/src/features/defi/contexts/DefiManagerProvider/DefiCommon.ts
index e9579b2eab5..16226876d3c 100644
--- a/src/features/defi/contexts/DefiManagerProvider/DefiCommon.ts
+++ b/src/features/defi/contexts/DefiManagerProvider/DefiCommon.ts
@@ -13,7 +13,6 @@ export enum DefiAction {
Withdraw = 'withdraw',
GetStarted = 'get-started',
Claim = 'claim',
- SendDust = 'send-dust',
}
export enum DefiStep {
diff --git a/src/features/defi/contexts/DefiManagerProvider/utils.ts b/src/features/defi/contexts/DefiManagerProvider/utils.ts
index d8107bf7048..a0714022c8f 100644
--- a/src/features/defi/contexts/DefiManagerProvider/utils.ts
+++ b/src/features/defi/contexts/DefiManagerProvider/utils.ts
@@ -1,6 +1,6 @@
import { CosmosManager } from '@/features/defi/providers/cosmos/components/CosmosManager/CosmosManager'
import { FoxFarmingManager } from '@/features/defi/providers/fox-farming/components/FoxFarmingManager/FoxFarmingManager'
-import { ThorchainSaversManager } from '@/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/ThorchainSaversManager'
+import { RunePoolManager } from '@/features/defi/providers/runepool/components/RunePoolManager/RunePoolManager'
import { DefiProvider, DefiType } from '@/state/slices/opportunitiesSlice/types'
export const DefiProviderToDefiModuleResolverByDeFiType = {
@@ -10,8 +10,8 @@ export const DefiProviderToDefiModuleResolverByDeFiType = {
[`${DefiProvider.rFOX}`]: {
[`${DefiType.Staking}`]: FoxFarmingManager,
},
- [DefiProvider.ThorchainSavers]: {
- [`${DefiType.Staking}`]: ThorchainSaversManager,
+ [DefiProvider.RunePool]: {
+ [`${DefiType.Staking}`]: RunePoolManager,
},
[DefiProvider.CosmosSdk]: CosmosManager,
}
diff --git a/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositCommon.ts b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositCommon.ts
new file mode 100644
index 00000000000..907a4f1d9cb
--- /dev/null
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositCommon.ts
@@ -0,0 +1,45 @@
+import type { DepositValues } from '@/features/defi/components/Deposit/Deposit'
+import type { StakingEarnOpportunityType } from '@/state/slices/opportunitiesSlice/types'
+
+type RunePoolDepositValues = DepositValues & {
+ txStatus: string
+ networkFeeCryptoBaseUnit: string
+ estimatedGasCryptoPrecision?: string
+ sendMax?: boolean
+}
+
+export type RunePoolDepositState = {
+ opportunity: StakingEarnOpportunityType | null
+ deposit: RunePoolDepositValues
+ loading: boolean
+ txid: string | null
+}
+
+export enum RunePoolDepositActionType {
+ SET_OPPORTUNITY = 'SET_OPPORTUNITY',
+ SET_DEPOSIT = 'SET_DEPOSIT',
+ SET_LOADING = 'SET_LOADING',
+ SET_TXID = 'SET_TXID',
+}
+
+type SetOpportunityAction = {
+ type: RunePoolDepositActionType.SET_OPPORTUNITY
+ payload: StakingEarnOpportunityType
+}
+
+type SetDeposit = {
+ type: RunePoolDepositActionType.SET_DEPOSIT
+ payload: Partial
+}
+
+type SetLoading = {
+ type: RunePoolDepositActionType.SET_LOADING
+ payload: boolean
+}
+
+type SetTxid = {
+ type: RunePoolDepositActionType.SET_TXID
+ payload: string
+}
+
+export type RunePoolDepositActions = SetOpportunityAction | SetDeposit | SetLoading | SetTxid
diff --git a/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositContext.ts b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositContext.ts
new file mode 100644
index 00000000000..7f6bf5c0fe2
--- /dev/null
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositContext.ts
@@ -0,0 +1,10 @@
+import { createContext } from 'react'
+
+import type { RunePoolDepositActions, RunePoolDepositState } from './DepositCommon'
+
+interface IDepositContext {
+ state: RunePoolDepositState | null
+ dispatch: React.Dispatch | null
+}
+
+export const DepositContext = createContext({ state: null, dispatch: null })
diff --git a/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositReducer.ts b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositReducer.ts
new file mode 100644
index 00000000000..360e1b3e61e
--- /dev/null
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/DepositReducer.ts
@@ -0,0 +1,33 @@
+import type { RunePoolDepositActions, RunePoolDepositState } from './DepositCommon'
+import { RunePoolDepositActionType } from './DepositCommon'
+
+export const initialState: RunePoolDepositState = {
+ txid: null,
+ opportunity: null,
+ loading: false,
+ deposit: {
+ fiatAmount: '',
+ cryptoAmount: '',
+ slippage: '',
+ txStatus: 'pending',
+ networkFeeCryptoBaseUnit: '',
+ },
+}
+
+export const reducer = (
+ state: RunePoolDepositState,
+ action: RunePoolDepositActions,
+): RunePoolDepositState => {
+ switch (action.type) {
+ case RunePoolDepositActionType.SET_OPPORTUNITY:
+ return { ...state, opportunity: { ...state.opportunity, ...action.payload } }
+ case RunePoolDepositActionType.SET_DEPOSIT:
+ return { ...state, deposit: { ...state.deposit, ...action.payload } }
+ case RunePoolDepositActionType.SET_LOADING:
+ return { ...state, loading: action.payload }
+ case RunePoolDepositActionType.SET_TXID:
+ return { ...state, txid: action.payload }
+ default:
+ return state
+ }
+}
diff --git a/src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Deposit/ThorchainSaversDeposit.tsx b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/RunePoolDeposit.tsx
similarity index 57%
rename from src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Deposit/ThorchainSaversDeposit.tsx
rename to src/features/defi/providers/runepool/components/RunePoolManager/Deposit/RunePoolDeposit.tsx
index 2d9dc87cbe3..92468e78ea7 100644
--- a/src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Deposit/ThorchainSaversDeposit.tsx
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/RunePoolDeposit.tsx
@@ -1,27 +1,23 @@
import { Center } from '@chakra-ui/react'
import type { AccountId } from '@shapeshiftoss/caip'
-import { thorchainAssetId, toAssetId, usdtAssetId } from '@shapeshiftoss/caip'
-import type { Asset } from '@shapeshiftoss/types'
-import { skipToken, useQuery } from '@tanstack/react-query'
+import { fromAccountId, toAssetId } from '@shapeshiftoss/caip'
import qs from 'qs'
import { useCallback, useEffect, useMemo, useReducer } from 'react'
import { useTranslate } from 'react-polyglot'
import { useSelector } from 'react-redux'
import { useNavigate } from 'react-router-dom'
-import { Approve } from './components/Approve'
import { Confirm } from './components/Confirm'
import { Deposit } from './components/Deposit'
import { Status } from './components/Status'
-import { ThorchainSaversDepositActionType } from './DepositCommon'
+import { RunePoolDepositActionType } from './DepositCommon'
import { DepositContext } from './DepositContext'
import { initialState, reducer } from './DepositReducer'
import type { AccountDropdownProps } from '@/components/AccountDropdown/AccountDropdown'
import { CircularProgress } from '@/components/CircularProgress/CircularProgress'
-import type { DefiStepProps, StepComponentProps } from '@/components/DeFi/components/Steps'
+import type { DefiStepProps } from '@/components/DeFi/components/Steps'
import { Steps } from '@/components/DeFi/components/Steps'
-import { Sweep } from '@/components/Sweep'
import { DefiModalContent } from '@/features/defi/components/DefiModal/DefiModalContent'
import { DefiModalHeader } from '@/features/defi/components/DefiModal/DefiModalHeader'
import type {
@@ -30,10 +26,6 @@ import type {
} from '@/features/defi/contexts/DefiManagerProvider/DefiCommon'
import { DefiAction, DefiStep } from '@/features/defi/contexts/DefiManagerProvider/DefiCommon'
import { useBrowserRouter } from '@/hooks/useBrowserRouter/useBrowserRouter'
-import { useWallet } from '@/hooks/useWallet/useWallet'
-import { getThorchainFromAddress } from '@/lib/utils/thorchain'
-import { isUtxoChainId } from '@/lib/utils/utxo'
-import { getThorchainSaversPosition } from '@/state/slices/opportunitiesSlice/resolvers/thorchainsavers/utils'
import type { StakingId } from '@/state/slices/opportunitiesSlice/types'
import { serializeUserStakingId, toOpportunityId } from '@/state/slices/opportunitiesSlice/utils'
import {
@@ -42,22 +34,18 @@ import {
selectHighestStakingBalanceAccountIdByStakingId,
selectIsPortfolioLoading,
selectMarketDataByAssetIdUserCurrency,
- selectPortfolioAccountMetadataByAccountId,
} from '@/state/slices/selectors'
import { useAppSelector } from '@/state/store'
-type ThorchainSaversDepositProps = {
+type RunePoolDepositProps = {
accountId: AccountId | undefined
onAccountIdChange: AccountDropdownProps['onChange']
}
-export const ThorchainSaversDeposit: React.FC = ({
+export const RunePoolDeposit: React.FC = ({
accountId,
onAccountIdChange: handleAccountIdChange,
}) => {
- const {
- state: { wallet },
- } = useWallet()
const [state, dispatch] = useReducer(reducer, initialState)
const translate = useTranslate()
const { query, location } = useBrowserRouter()
@@ -72,9 +60,6 @@ export const ThorchainSaversDeposit: React.FC = ({
const asset = useAppSelector(state => selectAssetById(state, assetId))
const marketData = useAppSelector(state => selectMarketDataByAssetIdUserCurrency(state, assetId))
- const isRunePool = assetId === thorchainAssetId
-
- // user info
const loading = useSelector(selectIsPortfolioLoading)
const opportunityId: StakingId | undefined = useMemo(
@@ -102,20 +87,10 @@ export const ThorchainSaversDeposit: React.FC = ({
)
useEffect(() => {
- ;(() => {
- if (!opportunityData) return
- dispatch({ type: ThorchainSaversDepositActionType.SET_OPPORTUNITY, payload: opportunityData })
- })()
+ if (!opportunityData) return
+ dispatch({ type: RunePoolDepositActionType.SET_OPPORTUNITY, payload: opportunityData })
}, [opportunityData])
- const underlyingAssetId = useMemo(
- () => opportunityData?.underlyingAssetId ?? '',
- [opportunityData?.underlyingAssetId],
- )
- const underlyingAsset: Asset | undefined = useAppSelector(state =>
- selectAssetById(state, underlyingAssetId),
- )
-
const handleBack = useCallback(() => {
navigate({
pathname: location.pathname,
@@ -126,33 +101,10 @@ export const ThorchainSaversDeposit: React.FC = ({
})
}, [navigate, location, query])
- const accountFilter = useMemo(() => ({ accountId }), [accountId])
- const accountMetadata = useAppSelector(state =>
- selectPortfolioAccountMetadataByAccountId(state, accountFilter),
- )
-
- const { data: fromAddress } = useQuery({
- queryKey: ['thorchainFromAddress', accountId, assetId],
- queryFn:
- accountId && wallet && accountMetadata
- ? () =>
- getThorchainFromAddress({
- accountId,
- assetId,
- getPosition: getThorchainSaversPosition,
- accountMetadata,
- wallet,
- })
- : skipToken,
- })
-
- const makeHandleSweepBack = useCallback(
- (onNext: StepComponentProps['onNext']) => () => onNext(DefiStep.Info),
- [],
- )
- const makeHandleSweepSeen = useCallback(
- (onNext: StepComponentProps['onNext']) => () => onNext(DefiStep.Confirm),
- [],
+ // RUNE is not a UTXO asset - the account address *is* the from address
+ const fromAddress = useMemo(
+ () => (accountId ? fromAccountId(accountId).account : undefined),
+ [accountId],
)
const StepConfig: DefiStepProps = useMemo(() => {
@@ -160,7 +112,7 @@ export const ThorchainSaversDeposit: React.FC = ({
[DefiStep.Info]: {
label: translate('defi.steps.deposit.info.title'),
description: translate('defi.steps.deposit.info.description', {
- asset: underlyingAsset?.symbol ?? '',
+ asset: asset?.symbol ?? '',
}),
component: ownProps => (
= ({
/>
),
},
- ...(isUtxoChainId(chainId)
- ? {
- [DefiStep.Sweep]: {
- label: translate('modals.send.consolidate.consolidateFunds'),
- component: ({ onNext }) => (
-
- ),
- },
- }
- : {}),
- ...(assetId === usdtAssetId
- ? {
- [DefiStep.AllowanceReset]: {
- label: translate('trade.resetAllowance'),
- component: ownProps => ,
- props: {},
- },
- }
- : {}),
- [DefiStep.Approve]: {
- label: translate('defi.steps.approve.title'),
- component: ownProps => ,
- props: {},
- },
[DefiStep.Confirm]: {
label: translate('defi.steps.confirm.title'),
component: ownProps => ,
@@ -210,17 +132,7 @@ export const ThorchainSaversDeposit: React.FC = ({
component: ownProps => ,
},
}
- }, [
- translate,
- underlyingAsset?.symbol,
- chainId,
- assetId,
- accountId,
- fromAddress,
- handleAccountIdChange,
- makeHandleSweepBack,
- makeHandleSweepSeen,
- ])
+ }, [translate, asset?.symbol, accountId, fromAddress, handleAccountIdChange])
const value = useMemo(() => ({ state, dispatch }), [state])
@@ -236,9 +148,7 @@ export const ThorchainSaversDeposit: React.FC = ({
diff --git a/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Confirm.tsx b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Confirm.tsx
new file mode 100644
index 00000000000..01a28f8d571
--- /dev/null
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Confirm.tsx
@@ -0,0 +1,327 @@
+import { Alert, AlertIcon, Box, Skeleton, Stack, useToast } from '@chakra-ui/react'
+import type { AccountId } from '@shapeshiftoss/caip'
+import { fromAccountId, toAssetId } from '@shapeshiftoss/caip'
+import { SwapperName } from '@shapeshiftoss/swapper'
+import { BigAmount } from '@shapeshiftoss/utils'
+import { useCallback, useContext, useEffect, useMemo } from 'react'
+import { useTranslate } from 'react-polyglot'
+
+import { RunePoolDepositActionType } from '../DepositCommon'
+import { DepositContext } from '../DepositContext'
+
+import { Amount } from '@/components/Amount/Amount'
+import { AssetIcon } from '@/components/AssetIcon'
+import type { StepComponentProps } from '@/components/DeFi/components/Steps'
+import { HelperTooltip } from '@/components/HelperTooltip/HelperTooltip'
+import { Row } from '@/components/Row/Row'
+import { RawText, Text } from '@/components/Text'
+import type { TextPropTypes } from '@/components/Text/Text'
+import { Confirm as ReusableConfirm } from '@/features/defi/components/Confirm/Confirm'
+import { Summary } from '@/features/defi/components/Summary'
+import type {
+ DefiParams,
+ DefiQueryParams,
+} from '@/features/defi/contexts/DefiManagerProvider/DefiCommon'
+import { DefiStep } from '@/features/defi/contexts/DefiManagerProvider/DefiCommon'
+import { useBrowserRouter } from '@/hooks/useBrowserRouter/useBrowserRouter'
+import { useWallet } from '@/hooks/useWallet/useWallet'
+import { bnOrZero } from '@/lib/bignumber/bignumber'
+import { trackOpportunityEvent } from '@/lib/mixpanel/helpers'
+import { getMixPanel } from '@/lib/mixpanel/mixPanelSingleton'
+import { MixPanelEvent } from '@/lib/mixpanel/types'
+import { RUNEPOOL_DEPOSIT_MEMO } from '@/lib/utils/thorchain/constants'
+import { useSendThorTx } from '@/lib/utils/thorchain/hooks/useSendThorTx'
+import { useIsTradingActive } from '@/react-queries/hooks/useIsTradingActive'
+import {
+ selectAssetById,
+ selectAssets,
+ selectFeeAssetById,
+ selectMarketDataByAssetIdUserCurrency,
+ selectPortfolioCryptoBalanceByFilter,
+} from '@/state/slices/selectors'
+import { useAppSelector } from '@/state/store'
+
+type ConfirmProps = { accountId: AccountId | undefined } & StepComponentProps
+
+export const Confirm: React.FC = ({ accountId, onNext }) => {
+ const { state, dispatch: contextDispatch } = useContext(DepositContext)
+ const translate = useTranslate()
+ const mixpanel = getMixPanel()
+ const { query } = useBrowserRouter()
+ const { chainId, assetNamespace, assetReference } = query
+ const opportunity = useMemo(() => state?.opportunity, [state])
+ const assets = useAppSelector(selectAssets)
+
+ const assetId = toAssetId({
+ chainId,
+ assetNamespace,
+ assetReference,
+ })
+
+ const asset = useAppSelector(state => selectAssetById(state, assetId))
+ const feeAsset = useAppSelector(state => selectFeeAssetById(state, assetId))
+ if (!asset) throw new Error(`Asset not found for AssetId ${assetId}`)
+ if (!feeAsset) throw new Error(`Fee asset not found for AssetId ${assetId}`)
+
+ const feeMarketData = useAppSelector(state =>
+ selectMarketDataByAssetIdUserCurrency(state, feeAsset.assetId),
+ )
+
+ const {
+ state: { wallet },
+ } = useWallet()
+
+ const toast = useToast()
+
+ const feeAssetBalanceFilter = useMemo(
+ () => ({ assetId: feeAsset.assetId, accountId }),
+ [accountId, feeAsset.assetId],
+ )
+
+ const feeAssetBalance = useAppSelector(s =>
+ selectPortfolioCryptoBalanceByFilter(s, feeAssetBalanceFilter),
+ )
+
+ // RUNE is not a UTXO asset - the account address *is* the from address
+ const fromAddress = useMemo(
+ () => (accountId ? fromAccountId(accountId).account : undefined),
+ [accountId],
+ )
+
+ const { isEstimatedFeesDataLoading, estimatedFeesData } = useSendThorTx({
+ accountId: accountId ?? null,
+ assetId,
+ amountCryptoBaseUnit: BigAmount.fromPrecision({
+ value: state?.deposit.cryptoAmount,
+ precision: asset.precision,
+ }).toBaseUnit(),
+ action: 'depositRunepool',
+ memo: RUNEPOOL_DEPOSIT_MEMO,
+ fromAddress: fromAddress ?? null,
+ })
+
+ const { amountMinusFeesCryptoBaseUnit, amountMinusFeesCryptoPrecision } = useMemo(() => {
+ const depositAmount = BigAmount.fromPrecision({
+ value: state?.deposit.cryptoAmount,
+ precision: asset.precision,
+ })
+
+ if (!estimatedFeesData)
+ return {
+ amountMinusFeesCryptoBaseUnit: undefined,
+ amountMinusFeesCryptoPrecision: undefined,
+ }
+
+ // RUNE is its own fee asset, so a max deposit needs fees deducted from the sent amount
+ if (state?.deposit.sendMax) {
+ const amountMinusFees = depositAmount.minus(
+ BigAmount.fromBaseUnit({
+ value: estimatedFeesData.txFeeCryptoBaseUnit,
+ precision: asset.precision,
+ }),
+ )
+ return {
+ amountMinusFeesCryptoBaseUnit: amountMinusFees,
+ amountMinusFeesCryptoPrecision: amountMinusFees.toPrecision(),
+ }
+ }
+
+ return {
+ amountMinusFeesCryptoBaseUnit: depositAmount,
+ amountMinusFeesCryptoPrecision: state?.deposit.cryptoAmount,
+ }
+ }, [state?.deposit.cryptoAmount, state?.deposit.sendMax, asset.precision, estimatedFeesData])
+
+ const { executeTransaction } = useSendThorTx({
+ accountId: accountId ?? null,
+ assetId,
+ amountCryptoBaseUnit: amountMinusFeesCryptoBaseUnit?.toBaseUnit() ?? null,
+ action: 'depositRunepool',
+ memo: RUNEPOOL_DEPOSIT_MEMO,
+ fromAddress: fromAddress ?? null,
+ enableEstimateFees: Boolean(!state?.deposit.sendMax),
+ })
+
+ const estimatedGasCryptoPrecision = useMemo(() => {
+ if (!estimatedFeesData) return
+ return BigAmount.fromBaseUnit({
+ value: estimatedFeesData.txFeeCryptoBaseUnit,
+ precision: feeAsset.precision,
+ }).toPrecision()
+ }, [estimatedFeesData, feeAsset.precision])
+
+ useEffect(() => {
+ if (!contextDispatch) return
+ if (!estimatedFeesData) return
+ if (!estimatedGasCryptoPrecision) return
+
+ contextDispatch({
+ type: RunePoolDepositActionType.SET_DEPOSIT,
+ payload: {
+ estimatedGasCryptoPrecision,
+ networkFeeCryptoBaseUnit: estimatedFeesData.txFeeCryptoBaseUnit,
+ },
+ })
+ }, [contextDispatch, estimatedFeesData, estimatedGasCryptoPrecision])
+
+ const { isTradingActive, refetch: refetchIsTradingActive } = useIsTradingActive({
+ assetId,
+ swapperName: SwapperName.Thorchain,
+ })
+
+ const handleDeposit = useCallback(async () => {
+ if (!contextDispatch || !accountId || !assetId) return
+ try {
+ if (!(fromAddress && wallet && opportunity)) return
+
+ if (!state?.deposit.cryptoAmount) {
+ throw new Error('Cannot send 0-value RUNEPool Tx')
+ }
+
+ contextDispatch({ type: RunePoolDepositActionType.SET_LOADING, payload: true })
+
+ // Was the pool active when it was fetched at the time of the component mount
+ // If it wasn't, it's definitely not going to become active again in the few seconds it takes to go from mount to sign click
+ if (isTradingActive === false) {
+ throw new Error(`THORChain pool halted for assetId: ${assetId}`)
+ }
+
+ // Refetch the trading active state JIT to ensure the pool didn't just become halted
+ const _isTradingActive = await refetchIsTradingActive()
+ if (_isTradingActive === false) {
+ throw new Error(`THORChain pool halted for assetId: ${assetId}`)
+ }
+
+ const _txId = await executeTransaction()
+ if (!_txId) throw new Error('failed to broadcast transaction')
+
+ contextDispatch({ type: RunePoolDepositActionType.SET_TXID, payload: _txId })
+ onNext(DefiStep.Status)
+ trackOpportunityEvent(
+ MixPanelEvent.DepositConfirm,
+ {
+ opportunity,
+ fiatAmounts: [state.deposit.fiatAmount],
+ cryptoAmounts: [{ assetId, amountCryptoPrecision: state.deposit.cryptoAmount }],
+ },
+ assets,
+ )
+ } catch (error) {
+ console.error(error)
+ toast({
+ position: 'top-right',
+ description: translate('common.transactionFailedBody'),
+ title: translate('common.transactionFailed'),
+ status: 'error',
+ })
+ } finally {
+ contextDispatch({ type: RunePoolDepositActionType.SET_LOADING, payload: false })
+ }
+ }, [
+ contextDispatch,
+ accountId,
+ assetId,
+ fromAddress,
+ wallet,
+ opportunity,
+ state?.deposit.cryptoAmount,
+ state?.deposit.fiatAmount,
+ isTradingActive,
+ refetchIsTradingActive,
+ executeTransaction,
+ onNext,
+ assets,
+ toast,
+ translate,
+ ])
+
+ const handleCancel = useCallback(() => {
+ onNext(DefiStep.Info)
+ }, [onNext])
+
+ const hasEnoughBalanceForGas = useMemo(
+ () =>
+ feeAssetBalance
+ .minus(
+ BigAmount.fromPrecision({
+ value: state?.deposit.estimatedGasCryptoPrecision ?? 0,
+ precision: feeAsset.precision,
+ }),
+ )
+ .gte(0),
+ [feeAssetBalance, state?.deposit.estimatedGasCryptoPrecision, feeAsset],
+ )
+
+ useEffect(() => {
+ if (!hasEnoughBalanceForGas) {
+ mixpanel?.track(MixPanelEvent.InsufficientFunds)
+ }
+ }, [hasEnoughBalanceForGas, mixpanel])
+
+ const notEnoughGasTranslation: TextPropTypes['translation'] = useMemo(
+ () => ['modals.confirm.notEnoughGas', { assetSymbol: feeAsset.symbol }],
+ [feeAsset.symbol],
+ )
+
+ if (!state || !contextDispatch) return null
+
+ return (
+
+
+
+
+
+
+
+
+
+ {asset.name}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {!hasEnoughBalanceForGas && (
+
+
+
+
+ )}
+
+ )
+}
diff --git a/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Deposit.tsx b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Deposit.tsx
new file mode 100644
index 00000000000..de2a7343c21
--- /dev/null
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Deposit.tsx
@@ -0,0 +1,341 @@
+import type { AccountId } from '@shapeshiftoss/caip'
+import { toAssetId } from '@shapeshiftoss/caip'
+import type { Asset } from '@shapeshiftoss/types'
+import { BigAmount } from '@shapeshiftoss/utils'
+import { useCallback, useContext, useMemo, useState } from 'react'
+import { useTranslate } from 'react-polyglot'
+import { useNavigate } from 'react-router'
+
+import { RunePoolDepositActionType } from '../DepositCommon'
+import { DepositContext } from '../DepositContext'
+
+import type { AccountDropdownProps } from '@/components/AccountDropdown/AccountDropdown'
+import { InfoAcknowledgement } from '@/components/Acknowledgement/InfoAcknowledgement'
+import type { StepComponentProps } from '@/components/DeFi/components/Steps'
+import type { DepositValues } from '@/features/defi/components/Deposit/Deposit'
+import { Deposit as ReusableDeposit } from '@/features/defi/components/Deposit/Deposit'
+import type {
+ DefiParams,
+ DefiQueryParams,
+} from '@/features/defi/contexts/DefiManagerProvider/DefiCommon'
+import { DefiStep } from '@/features/defi/contexts/DefiManagerProvider/DefiCommon'
+import { useBrowserRouter } from '@/hooks/useBrowserRouter/useBrowserRouter'
+import { useNotificationToast } from '@/hooks/useNotificationToast'
+import { bn, bnOrZero } from '@/lib/bignumber/bignumber'
+import { trackOpportunityEvent } from '@/lib/mixpanel/helpers'
+import { MixPanelEvent } from '@/lib/mixpanel/types'
+import { RUNEPOOL_DEPOSIT_MEMO } from '@/lib/utils/thorchain/constants'
+import { useSendThorTx } from '@/lib/utils/thorchain/hooks/useSendThorTx'
+import { useThorchainMimirTimes } from '@/lib/utils/thorchain/hooks/useThorchainMimirTimes'
+import { formatSecondsToDuration } from '@/lib/utils/time'
+import { serializeUserStakingId, toOpportunityId } from '@/state/slices/opportunitiesSlice/utils'
+import {
+ selectAssetById,
+ selectAssets,
+ selectEarnUserStakingOpportunityByUserStakingId,
+ selectHighestStakingBalanceAccountIdByStakingId,
+ selectMarketDataByAssetIdUserCurrency,
+ selectPortfolioCryptoBalanceByFilter,
+} from '@/state/slices/selectors'
+import { useAppSelector } from '@/state/store'
+
+type DepositProps = StepComponentProps & {
+ accountId?: AccountId | undefined
+ onAccountIdChange: AccountDropdownProps['onChange']
+ fromAddress: string | undefined
+}
+
+const percentOptions = [0.25, 0.5, 0.75, 1]
+
+export const Deposit: React.FC = ({
+ accountId,
+ onAccountIdChange: handleAccountIdChange,
+ fromAddress,
+ onNext,
+}) => {
+ const { state, dispatch: contextDispatch } = useContext(DepositContext)
+
+ const toast = useNotificationToast({ desktopPosition: 'top-right' })
+ const translate = useTranslate()
+ const [shouldShowInfoAcknowledgement, setShouldShowInfoAcknowledgement] = useState(false)
+ const [depositValues, setDepositValues] = useState()
+ const [inputValues, setInputValues] = useState<{
+ fiatAmount: string
+ cryptoAmount: string
+ } | null>(null)
+ const navigate = useNavigate()
+ const { query } = useBrowserRouter()
+ const { chainId, assetNamespace, assetReference } = query
+ const assets = useAppSelector(selectAssets)
+
+ const assetId = toAssetId({
+ chainId,
+ assetNamespace,
+ assetReference,
+ })
+
+ const opportunityId = useMemo(
+ () => (assetId ? toOpportunityId({ chainId, assetNamespace, assetReference }) : undefined),
+ [assetId, assetNamespace, assetReference, chainId],
+ )
+ const highestBalanceAccountIdFilter = useMemo(
+ () => ({ stakingId: opportunityId }),
+ [opportunityId],
+ )
+ const highestBalanceAccountId = useAppSelector(state =>
+ selectHighestStakingBalanceAccountIdByStakingId(state, highestBalanceAccountIdFilter),
+ )
+ const opportunityDataFilter = useMemo(
+ () => ({
+ userStakingId: serializeUserStakingId(
+ accountId ?? highestBalanceAccountId ?? '',
+ opportunityId ?? '',
+ ),
+ }),
+ [accountId, highestBalanceAccountId, opportunityId],
+ )
+
+ const opportunityData = useAppSelector(state =>
+ selectEarnUserStakingOpportunityByUserStakingId(state, opportunityDataFilter),
+ )
+
+ const asset: Asset | undefined = useAppSelector(state => selectAssetById(state, assetId))
+ if (!asset) throw new Error(`Asset not found for AssetId ${assetId}`)
+
+ const assetMarketData = useAppSelector(state =>
+ selectMarketDataByAssetIdUserCurrency(state, assetId),
+ )
+
+ const balanceFilter = useMemo(() => ({ assetId, accountId }), [accountId, assetId])
+ const balanceCryptoBaseUnit = useAppSelector(state =>
+ selectPortfolioCryptoBalanceByFilter(state, balanceFilter),
+ ).toBaseUnit()
+
+ const { data: thorchainMimirTimes, isLoading: isThorchainMimirTimesLoading } =
+ useThorchainMimirTimes()
+
+ const { estimatedFeesData, isEstimatedFeesDataLoading, outboundFeeCryptoBaseUnit } =
+ useSendThorTx({
+ assetId,
+ accountId: accountId ?? null,
+ amountCryptoBaseUnit: BigAmount.fromPrecision({
+ value: inputValues?.cryptoAmount,
+ precision: asset.precision,
+ }).toBaseUnit(),
+ memo: RUNEPOOL_DEPOSIT_MEMO,
+ fromAddress: fromAddress ?? null,
+ action: 'depositRunepool',
+ enableEstimateFees: Boolean(bnOrZero(inputValues?.cryptoAmount).gt(0)),
+ })
+
+ const handleContinue = useCallback(
+ (formValues: DepositValues) => {
+ if (!accountId) return
+ if (!inputValues) return
+ if (!opportunityData) return
+ if (!contextDispatch) return
+ if (!estimatedFeesData) return
+
+ contextDispatch({ type: RunePoolDepositActionType.SET_DEPOSIT, payload: formValues })
+ contextDispatch({ type: RunePoolDepositActionType.SET_LOADING, payload: true })
+
+ try {
+ contextDispatch({
+ type: RunePoolDepositActionType.SET_DEPOSIT,
+ payload: {
+ estimatedGasCryptoPrecision: BigAmount.fromBaseUnit({
+ value: estimatedFeesData.txFeeCryptoBaseUnit,
+ precision: asset.precision,
+ }).toPrecision(),
+ networkFeeCryptoBaseUnit: estimatedFeesData.txFeeCryptoBaseUnit,
+ },
+ })
+
+ onNext(DefiStep.Confirm)
+ trackOpportunityEvent(
+ MixPanelEvent.DepositContinue,
+ {
+ opportunity: opportunityData,
+ fiatAmounts: [formValues.fiatAmount],
+ cryptoAmounts: [{ assetId, amountCryptoPrecision: formValues.cryptoAmount }],
+ },
+ assets,
+ )
+ } catch (error) {
+ console.error(error)
+ toast({
+ description: translate('common.somethingWentWrongBody'),
+ title: translate('common.somethingWentWrong'),
+ status: 'error',
+ })
+ } finally {
+ contextDispatch({ type: RunePoolDepositActionType.SET_LOADING, payload: false })
+ }
+ },
+ [
+ accountId,
+ inputValues,
+ opportunityData,
+ contextDispatch,
+ estimatedFeesData,
+ asset.precision,
+ onNext,
+ assetId,
+ assets,
+ toast,
+ translate,
+ ],
+ )
+
+ const handleCancel = useCallback(() => {
+ navigate(-1)
+ }, [navigate])
+
+ const balanceCryptoPrecision = useMemo(
+ () =>
+ bn(
+ BigAmount.fromBaseUnit({
+ value: balanceCryptoBaseUnit,
+ precision: asset.precision,
+ }).toPrecision(),
+ ),
+ [balanceCryptoBaseUnit, asset.precision],
+ )
+ const fiatAmountAvailable = useMemo(
+ () => bnOrZero(balanceCryptoPrecision).times(bnOrZero(assetMarketData?.price)),
+ [balanceCryptoPrecision, assetMarketData?.price],
+ )
+
+ const validateCryptoAmount = useCallback(
+ (value: string) => {
+ const valueCryptoPrecision = bnOrZero(value)
+ if (balanceCryptoPrecision.isZero() || balanceCryptoPrecision.lt(value))
+ return 'common.insufficientFunds'
+ if (valueCryptoPrecision.isEqualTo(0)) return ''
+
+ // RUNE is its own fee asset, so the outbound fee is denominated in RUNE directly
+ const isBelowOutboundFee =
+ bnOrZero(outboundFeeCryptoBaseUnit).gt(0) &&
+ bn(BigAmount.fromPrecision({ value, precision: asset.precision }).toBaseUnit()).lt(
+ outboundFeeCryptoBaseUnit ?? '0',
+ )
+
+ if (isBelowOutboundFee) {
+ const minLimitCryptoPrecision = BigAmount.fromBaseUnit({
+ value: outboundFeeCryptoBaseUnit ?? '0',
+ precision: asset.precision,
+ }).toPrecision()
+ return translate('trade.errors.amountTooSmall', {
+ minLimit: `${minLimitCryptoPrecision} ${asset.symbol}`,
+ })
+ }
+
+ return true
+ },
+ [asset.precision, asset.symbol, balanceCryptoPrecision, outboundFeeCryptoBaseUnit, translate],
+ )
+
+ const validateFiatAmount = useCallback(
+ (value: string) => {
+ const fiatBalance = balanceCryptoPrecision.times(bnOrZero(assetMarketData?.price))
+ if (fiatBalance.isZero() || fiatBalance.lt(value)) return 'common.insufficientFunds'
+
+ return true
+ },
+ [assetMarketData?.price, balanceCryptoPrecision],
+ )
+
+ const handlePercentClick = useCallback(
+ (percent: number) => {
+ const percentageCryptoAmount = balanceCryptoPrecision.times(percent).dp(asset.precision)
+ const percentageFiatAmount = percentageCryptoAmount.times(bnOrZero(assetMarketData?.price))
+
+ if (contextDispatch) {
+ contextDispatch({
+ type: RunePoolDepositActionType.SET_DEPOSIT,
+ payload: { sendMax: percent === 1 },
+ })
+ }
+
+ return Promise.resolve({
+ percentageCryptoAmount: percentageCryptoAmount.toFixed(),
+ percentageFiatAmount: percentageFiatAmount.toFixed(),
+ })
+ },
+ [asset.precision, assetMarketData?.price, balanceCryptoPrecision, contextDispatch],
+ )
+
+ const handleInputChange = useCallback(
+ ({ fiatAmount, cryptoAmount }: { fiatAmount: string; cryptoAmount: string }) => {
+ setInputValues({ fiatAmount, cryptoAmount })
+ },
+ [],
+ )
+
+ const cryptoInputValidation = useMemo(
+ () => ({
+ required: true,
+ validate: { validateCryptoAmount },
+ }),
+ [validateCryptoAmount],
+ )
+
+ const fiatInputValidation = useMemo(
+ () => ({
+ required: true,
+ validate: { validateFiatAmount },
+ }),
+ [validateFiatAmount],
+ )
+
+ const handleContinueOrAcknowledgement = useCallback(
+ (formValues: DepositValues) => {
+ setDepositValues(formValues)
+ if (thorchainMimirTimes?.runePoolDepositMaturityTime) {
+ setShouldShowInfoAcknowledgement(true)
+ return
+ }
+
+ handleContinue(formValues)
+ },
+ [thorchainMimirTimes?.runePoolDepositMaturityTime, handleContinue],
+ )
+
+ const handleAcknowledge = useCallback(() => {
+ if (!depositValues) return
+ handleContinue(depositValues)
+ }, [depositValues, handleContinue])
+
+ if (!state || !contextDispatch || !opportunityData) return null
+
+ return (
+ <>
+
+
+ >
+ )
+}
diff --git a/src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Deposit/components/Status.tsx b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Status.tsx
similarity index 81%
rename from src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Deposit/components/Status.tsx
rename to src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Status.tsx
index 1204460123c..f25e6402c0d 100644
--- a/src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Deposit/components/Status.tsx
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Deposit/components/Status.tsx
@@ -1,14 +1,13 @@
import { CheckIcon, CloseIcon, ExternalLinkIcon } from '@chakra-ui/icons'
import { Box, Button, Link, Stack } from '@chakra-ui/react'
import type { AccountId } from '@shapeshiftoss/caip'
-import { thorchainAssetId } from '@shapeshiftoss/caip'
import { TxStatus as TxStatusType } from '@shapeshiftoss/unchained-client'
import { BigAmount } from '@shapeshiftoss/utils'
import { useCallback, useContext, useEffect } from 'react'
import { useTranslate } from 'react-polyglot'
import { useNavigate } from 'react-router-dom'
-import { ThorchainSaversDepositActionType } from '../DepositCommon'
+import { RunePoolDepositActionType } from '../DepositCommon'
import { DepositContext } from '../DepositContext'
import { Amount } from '@/components/Amount/Amount'
@@ -21,7 +20,6 @@ import { Summary } from '@/features/defi/components/Summary'
import { TxStatus } from '@/features/defi/components/TxStatus/TxStatus'
import { bnOrZero } from '@/lib/bignumber/bignumber'
import { trackOpportunityEvent } from '@/lib/mixpanel/helpers'
-import { getMixPanel } from '@/lib/mixpanel/mixPanelSingleton'
import { MixPanelEvent } from '@/lib/mixpanel/types'
import { waitForThorchainUpdate } from '@/lib/utils/thorchain'
import { opportunitiesApi } from '@/state/slices/opportunitiesSlice/opportunitiesApiSlice'
@@ -42,7 +40,6 @@ const externalLinkIcon =
export const Status: React.FC = ({ accountId }) => {
const translate = useTranslate()
- const mixpanel = getMixPanel()
const { state, dispatch: contextDispatch } = useContext(DepositContext)
const navigate = useNavigate()
@@ -52,8 +49,6 @@ export const Status: React.FC = ({ accountId }) => {
const assets = useAppSelector(selectAssets)
const assetId = state?.opportunity?.assetId
- const isRunePool = assetId === thorchainAssetId
-
const asset = useAppSelector(state => selectAssetById(state, assetId ?? ''))
const feeAsset = useAppSelector(state => selectFeeAssetById(state, assetId ?? ''))
@@ -63,9 +58,6 @@ export const Status: React.FC = ({ accountId }) => {
const feeMarketData = useAppSelector(state =>
selectMarketDataByAssetIdUserCurrency(state, feeAsset?.assetId ?? ''),
)
- const marketData = useAppSelector(state =>
- selectMarketDataByAssetIdUserCurrency(state, assetId ?? ''),
- )
useEffect(() => {
if (!(contextDispatch && state?.txid?.length && accountId)) return
@@ -85,7 +77,7 @@ export const Status: React.FC = ({ accountId }) => {
[
{
accountId,
- defiProvider: DefiProvider.ThorchainSavers,
+ defiProvider: DefiProvider.RunePool,
defiType: DefiType.Staking,
},
],
@@ -95,7 +87,7 @@ export const Status: React.FC = ({ accountId }) => {
}
contextDispatch({
- type: ThorchainSaversDepositActionType.SET_DEPOSIT,
+ type: RunePoolDepositActionType.SET_DEPOSIT,
payload: {
txStatus: thorchainTxStatus === TxStatusType.Confirmed ? 'success' : 'failed',
},
@@ -105,8 +97,10 @@ export const Status: React.FC = ({ accountId }) => {
}, [accountId, appDispatch, contextDispatch, getOpportunitiesUserData, state?.txid])
const handleViewPosition = useCallback(() => {
- navigate('/wallet/earn')
- }, [navigate])
+ if (!accountId) return
+ // The full-page earn dashboard is mobile-only - the account page shows the position on both layouts
+ navigate(`/accounts/${accountId}`)
+ }, [accountId, navigate])
const handleCancel = useCallback(() => {
navigate(-1)
@@ -128,7 +122,6 @@ export const Status: React.FC = ({ accountId }) => {
}, [
assets,
assetId,
- mixpanel,
state?.opportunity,
state?.deposit.cryptoAmount,
state?.deposit.fiatAmount,
@@ -144,7 +137,7 @@ export const Status: React.FC = ({ accountId }) => {
statusText: StatusTextEnum.success,
statusIcon: ,
statusBody: translate('modals.deposit.status.success', {
- opportunity: isRunePool ? `RUNEPool` : `${asset.name} Vault`,
+ opportunity: 'RUNEPool',
}),
statusBg: 'green.500',
}
@@ -168,7 +161,9 @@ export const Status: React.FC = ({ accountId }) => {
return (
= ({ accountId }) => {
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Overview/ThorchainSaversEmpty.tsx b/src/features/defi/providers/runepool/components/RunePoolManager/Overview/RunePoolEmpty.tsx
similarity index 74%
rename from src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Overview/ThorchainSaversEmpty.tsx
rename to src/features/defi/providers/runepool/components/RunePoolManager/Overview/RunePoolEmpty.tsx
index d4eeb9825a1..a098eb18d01 100644
--- a/src/features/defi/providers/thorchain-savers/components/ThorchainSaversManager/Overview/ThorchainSaversEmpty.tsx
+++ b/src/features/defi/providers/runepool/components/RunePoolManager/Overview/RunePoolEmpty.tsx
@@ -10,12 +10,11 @@ import {
useColorModeValue,
} from '@chakra-ui/react'
import type { AssetId } from '@shapeshiftoss/caip'
-import { thorchainAssetId } from '@shapeshiftoss/caip'
import type { ChangeEvent } from 'react'
import { useCallback, useMemo, useState } from 'react'
import { useTranslate } from 'react-polyglot'
-import SaversVaultTop from '@/assets/savers-vault-top.png'
+import RunePoolTop from '@/assets/runepool-top.png'
import { AssetIcon } from '@/components/AssetIcon'
import { FiatRampAction } from '@/components/Modals/FiatRamps/FiatRampsCommon'
import { RawText, Text } from '@/components/Text'
@@ -32,7 +31,7 @@ import {
} from '@/state/slices/selectors'
import { useAppSelector } from '@/state/store'
-type ThorchainSaversEmptyProps = {
+type RunePoolEmptyProps = {
assetId: AssetId
onClick?: () => void
}
@@ -41,7 +40,7 @@ type ThorchainSaversEmptyProps = {
const RUNEPOOL_ARTICLE_LINK =
'https://gitlab.com/thorchain/thornode/-/blob/develop/docs/concepts/rune-pool.md'
-export const ThorchainSaversEmpty = ({ assetId, onClick }: ThorchainSaversEmptyProps) => {
+export const RunePoolEmpty = ({ assetId, onClick }: RunePoolEmptyProps) => {
const translate = useTranslate()
const { open: openFiatRamp } = useModal('fiatRamps')
const asset = useAppSelector(state => selectAssetById(state, assetId))
@@ -57,7 +56,6 @@ export const ThorchainSaversEmpty = ({ assetId, onClick }: ThorchainSaversEmptyP
)
const backgroundColor = useColorModeValue('gray.100', 'darkNeutralAlpha.700')
const checkboxBackground = useColorModeValue('white', 'transparent')
- const isRunePool = assetId === thorchainAssetId
const checkboxStyles = useMemo(
() => ({
@@ -89,26 +87,17 @@ export const ThorchainSaversEmpty = ({ assetId, onClick }: ThorchainSaversEmptyP
[asset?.symbol],
)
- const saversVaultDescriptionTranslation: TextPropTypes['translation'] = useMemo(
- () => [
- isRunePool
- ? 'defi.modals.saversVaults.runePoolDescription'
- : 'defi.modals.saversVaults.description',
- { asset: asset?.symbol },
- ],
- [asset?.symbol, isRunePool],
+ const descriptionTranslation: TextPropTypes['translation'] = useMemo(
+ () => ['defi.modals.runePool.description', { asset: asset?.symbol }],
+ [asset?.symbol],
)
- const risksBodyTranslationComponents: TextPropTypes['components'] = useMemo(() => {
- // @TODO: update the RUNEPool link when a better article exists
- const linkHref = isRunePool
- ? RUNEPOOL_ARTICLE_LINK
- : 'https://medium.com/thorchain/thorchain-savers-vaults-fc3f086b4057'
-
- return {
- link: ,
- }
- }, [isRunePool, linkColor])
+ const risksBodyTranslationComponents: TextPropTypes['components'] = useMemo(
+ () => ({
+ link: ,
+ }),
+ [linkColor],
+ )
const renderFooter = useMemo(() => {
if (!asset) return
@@ -125,19 +114,17 @@ export const ThorchainSaversEmpty = ({ assetId, onClick }: ThorchainSaversEmptyP
{translate('common.buyNow')}
- {isRunePool ? (
-
-
- {translate('defi.modals.saversVaults.agreeRunePool')}
-
-
- ) : null}
+
+
+ {translate('defi.modals.runePool.agree')}
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -254,38 +217,6 @@ export const Status: React.FC = ({ accountId }) => {
- {!isRunePool ? (
-
-
-
-
-
-
-
-
-
-
-
-
-
- ) : null}