diff --git a/app/_locales/de/messages.json b/app/_locales/de/messages.json index 8b1b4aad2..db6d09d94 100644 --- a/app/_locales/de/messages.json +++ b/app/_locales/de/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Kunden-Token hinzufügen" }, - "addCustomTokenByContractAddress": { - "message": "Sie können kein Token finden? Sie können ein beliebiges Token manuell hinzufügen, indem Sie seine Adresse eingeben. Token-Vertragsadressen finden Sie auf $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Dadurch kann dieses Netzwerk innerhalb MetaMask verwendet werden." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Token hinzufügen" }, + "addTokenByContractAddress": { + "message": "Sie können kein Token finden? Sie können ein beliebiges Token manuell hinzufügen, indem Sie seine Adresse eingeben. Token-Vertragsadressen finden Sie auf $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Adresse" }, @@ -548,13 +548,6 @@ "message": "Für eine Transaktion im Wert von $1 muss die Gasgebühr um mindestens 10 % erhöht werden, damit sie vom Netz erkannt wird.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Tausch für ~$1 abbrechen", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Tausch kostenlos abbrechen" - }, "cancelled": { "message": "Abgebrochen" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Verwenden Sie die OpenSea's API, um NFT-Daten abzurufen. Die NFT-Auto-Erkennung basiert auf der OpenSea's API und wird nicht verfügbar sein, wenn diese deaktiviert ist." }, - "enableSmartTransactions": { - "message": "Intelligente Transaktionen ermöglichen" - }, "enableToken": { "message": "$1 aktivieren", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Mir ist klar, dass ich meine Konten und alle dazugehörigen Vermögenswerte verlieren kann, solange ich keine Sicherungskopie meiner Geheimen Wiederherstellungsphrase erstelle." }, - "smartTransaction": { - "message": "Intelligente Transaktionen" - }, "snapContent": { "message": "Diese Inhalte stammen von $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Stark" }, - "stxAreHere": { - "message": "Intelligente Transaktionen sind da!" - }, "stxBenefit1": { "message": "Transaktionskosten minimieren" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Versuchen Sie Ihren Swap erneut. Wir werden hier sein, um Sie beim nächsten Mal vor ähnlichen Risiken zu schützen." }, - "stxDescription": { - "message": "MetaMask-Swap ist jetzt viel intelligenter geworden! Wenn Sie intelligente Transaktionen aktivieren, kann MetaMask Ihren Swap programmgesteuert optimieren, um Ihnen zu helfen:" - }, - "stxErrorNotEnoughFunds": { - "message": "Nicht genügend Mittel für eine intelligente Transaktion." - }, - "stxErrorUnavailable": { - "message": "Intelligente Transaktionen sind vorübergehend nicht verfügbar." - }, "stxFailure": { "message": "Swap fehlgeschlagen" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Ihr Swap wird öffentlich eingereicht ..." }, - "stxSubDescription": { - "message": "* Intelligente Transaktionen versuchen mehrmals, Ihre Transaktion privat zu übermitteln. Wenn alle Versuche fehlschlagen, wird die Transaktion öffentlich übertragen, um sicherzustellen, dass Ihr Swap erfolgreich durchgeführt wird." - }, "stxSuccess": { "message": "Swap abgeschlossen!" }, diff --git a/app/_locales/el/messages.json b/app/_locales/el/messages.json index eff68ba30..9021a3098 100644 --- a/app/_locales/el/messages.json +++ b/app/_locales/el/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Προσθήκη Προσαρμοσμένου Token" }, - "addCustomTokenByContractAddress": { - "message": "Αδυναμία εύρεσης token; Μπορείτε να προσθέσετε χειροκίνητα οποιοδήποτε διακριτικό επικολλώντας τη διεύθυνσή του. Οι διευθύνσεις συμβολαίων Token μπορούν να βρεθούν στο $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Αυτό θα επιτρέψει σε αυτό το δίκτυο να χρησιμοποιηθεί στο MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Προσθήκη Token" }, + "addTokenByContractAddress": { + "message": "Αδυναμία εύρεσης token; Μπορείτε να προσθέσετε χειροκίνητα οποιοδήποτε διακριτικό επικολλώντας τη διεύθυνσή του. Οι διευθύνσεις συμβολαίων Token μπορούν να βρεθούν στο $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Διεύθυνση" }, @@ -548,13 +548,6 @@ "message": "Για να $1 τη συναλλαγή, τα τέλη συναλλαγής πρέπει να αυξηθούν κατά τουλάχιστον 10% ώστε να αναγνωριστούν από το δίκτυο.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Ακυρώστε τη συναλλαγή για ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Ακυρώστε τη συναλλαγή δωρεάν" - }, "cancelled": { "message": "Ακυρώθηκε" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Χρησιμοποιήστε το API OpenSea για λήψη δεδομένων NFT. Η αυτόματη ανίχνευση NFT βασίζεται στο API του OpenSea, και δεν θα είναι διαθέσιμη όταν αυτό είναι απενεργοποιημένο." }, - "enableSmartTransactions": { - "message": "Ενεργοποίηση Έξυπνων Συναλλαγών" - }, "enableToken": { "message": "ενεργοποίηση $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3236,9 +3226,6 @@ "skipAccountSecurityDetails": { "message": "Καταλαβαίνω ότι μέχρι να δημιουργήσω αντίγραφα ασφαλείας για τη Μυστική Φράση Ανάκτησής μου, μπορεί να χάσω τους λογαριασμούς μου και όλα τα περιουσιακά στοιχεία τους." }, - "smartTransaction": { - "message": "Έξυπνη Συναλλαγή" - }, "snapContent": { "message": "Αυτό το περιεχόμενο προέρχεται από το $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3422,9 +3409,6 @@ "strong": { "message": "Ισχυρός" }, - "stxAreHere": { - "message": "Οι Έξυπνες Συναλλαγές είναι εδώ!" - }, "stxBenefit1": { "message": "Ελαχιστοποίηση του κόστους συναλλαγής" }, @@ -3446,15 +3430,6 @@ "stxCancelledSubDescription": { "message": "Προσπαθήστε ξανά να κάνετε ανταλλαγή. Θα είμαστε εδώ για να σας προστατεύσουμε από παρόμοιους κινδύνους και την επόμενη φορά." }, - "stxDescription": { - "message": "Οι Ανταλλαγές MetaMask μόλις έγιναν πολύ πιο έξυπνες! Η ενεργοποίηση των Έξυπνων Συναλλαγών θα επιτρέψει στο MetaMask να βελτιώσει προγραμματικά τις Ανταλλαγές σας ώστε να απολαμβάνετε:" - }, - "stxErrorNotEnoughFunds": { - "message": "Δεν υπάρχουν αρκετοί πόροι για αυτή την έξυπνη συναλλαγή." - }, - "stxErrorUnavailable": { - "message": "Οι Έξυπνες Συναλλαγές είναι προσωρινά μη διαθέσιμες." - }, "stxFailure": { "message": "Η Ανταλλαγή απέτυχε" }, @@ -3468,9 +3443,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Δημόσια υποβολή της Ανταλλαγής σας..." }, - "stxSubDescription": { - "message": "* Οι Έξυπνες Συναλλαγές θα προσπαθήσουν να υποβάλουν τη συναλλαγή σας ιδιωτικά, πολλές φορές. Εάν όλες οι προσπάθειες αποτύχουν, η συναλλαγή θα μεταδοθεί δημόσια για να διασφαλιστεί η επιτυχής πραγματοποίηση της ανταλλαγής σας." - }, "stxSuccess": { "message": "Η ανταλλαγή ολοκληρώθηκε!" }, diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 4ce75852b..9bb43c4cc 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -204,10 +204,6 @@ "addCustomToken": { "message": "Add custom token" }, - "addCustomTokenByContractAddress": { - "message": "Can’t find a token? You can manually add any token by pasting its address. Token contract addresses can be found on $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "This will allow this network to be used within MetaMask." }, @@ -275,6 +271,10 @@ "addToken": { "message": "Add token" }, + "addTokenByContractAddress": { + "message": "Can’t find a token? You can manually add any token by pasting its address. Token contract addresses can be found on $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "addingCustomNetwork": { "message": "Adding Network" }, @@ -438,6 +438,10 @@ "attemptSendingAssets": { "message": "If you attempt to send assets directly from one network to another, this may result in permanent asset loss. Make sure to use a bridge." }, + "attemptToCancelSwap": { + "message": "Attempt to cancel swap for ~$1", + "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Swap" + }, "attemptingConnect": { "message": "Attempting to connect to blockchain." }, @@ -600,13 +604,6 @@ "message": "To $1 a transaction the gas fee must be increased by at least 10% for it to be recognized by the network.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Cancel swap for ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Cancel swap for free" - }, "cancelled": { "message": "Cancelled" }, @@ -1378,8 +1375,8 @@ "enableOpenSeaAPIDescription": { "message": "Use OpenSea's API to fetch NFT data. NFT auto-detection relies on OpenSea's API, and will not be available when this is turned off." }, - "enableSmartTransactions": { - "message": "Enable smart transactions" + "enableSmartSwaps": { + "message": "Enable smart swaps" }, "enableSnap": { "message": "Enable" @@ -1438,6 +1435,9 @@ "enterPasswordContinue": { "message": "Enter password to continue" }, + "enterTokenNameOrAddress": { + "message": "Enter token name or paste address" + }, "enterYourPassword": { "message": "Enter your password" }, @@ -2535,6 +2535,9 @@ "notCurrentAccount": { "message": "Is this the correct account? It's different from the currently selected account in your wallet" }, + "notEnoughBalance": { + "message": "Insufficient balance" + }, "notEnoughGas": { "message": "Not enough gas" }, @@ -2661,6 +2664,16 @@ "message": "Ledger and Firefox Users Experiencing Connection Issues", "description": "Title for a notification in the 'See What's New' popup. Tells users that latest firefox users using U2F may experience connection issues." }, + "notifications21ActionText": { + "message": "Try it out" + }, + "notifications21Description": { + "message": "We've updated Swaps in the MetaMask extension to be easier and faster to use.", + "description": "Description of a notification in the 'See What's New' popup. Describes NFT autodetection feature." + }, + "notifications21Title": { + "message": "Introducing new and refreshed Swaps!" + }, "notifications3ActionText": { "message": "Read more", "description": "The 'call to action' on the button, or link, of the 'Stay secure' notification. Upon clicking, users will be taken to a page about security on the metamask support website." @@ -3004,6 +3017,9 @@ "message": "You have (1) pending transaction.", "description": "$1 is count of pending transactions" }, + "percentage": { + "message": "$1%" + }, "permissionRequest": { "message": "Permission request" }, @@ -3261,6 +3277,9 @@ "queued": { "message": "Queued" }, + "quoteRate": { + "message": "Quote rate" + }, "reAddAccounts": { "message": "re-add any other accounts" }, @@ -3776,8 +3795,23 @@ "skipAccountSecurityDetails": { "message": "I understand that until I back up my Secret Recovery Phrase, I may lose my accounts and all of their assets." }, - "smartTransaction": { - "message": "Smart transaction" + "smartSwap": { + "message": "Smart swap" + }, + "smartSwapsAreHere": { + "message": "Smart Swaps are here!" + }, + "smartSwapsDescription": { + "message": "MetaMask Swaps just got a whole lot smarter! Enabling Smart Swaps will allow MetaMask to programmatically optimize your Swap to help:" + }, + "smartSwapsErrorNotEnoughFunds": { + "message": "Not enough funds for a smart swap." + }, + "smartSwapsErrorUnavailable": { + "message": "Smart Swaps are temporarily unavailable." + }, + "smartSwapsSubDescription": { + "message": "* Smart Swaps will attempt to submit your transaction privately, multiple times. If all attempts fail, the transaction will be broadcast publicly to ensure your Swap successfully goes through." }, "snapConnectionWarning": { "message": "$1 wants to connect to $2. Only continue if you trust this website.", @@ -4036,9 +4070,6 @@ "strong": { "message": "Strong" }, - "stxAreHere": { - "message": "Smart Transactions are here!" - }, "stxBenefit1": { "message": "Minimize transaction costs" }, @@ -4060,15 +4091,6 @@ "stxCancelledSubDescription": { "message": "Try your swap again. We’ll be here to protect you against similar risks next time." }, - "stxDescription": { - "message": "MetaMask Swaps just got a whole lot smarter! Enabling Smart Transactions will allow MetaMask to programmatically optimize your Swap to help:" - }, - "stxErrorNotEnoughFunds": { - "message": "Not enough funds for a smart transaction." - }, - "stxErrorUnavailable": { - "message": "Smart Transactions are temporarily unavailable." - }, "stxFailure": { "message": "Swap failed" }, @@ -4082,9 +4104,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Publicly submitting your Swap..." }, - "stxSubDescription": { - "message": "* Smart Transactions will attempt to submit your transaction privately, multiple times. If all attempts fail, the transaction will be broadcast publicly to ensure your Swap successfully goes through." - }, "stxSuccess": { "message": "Swap complete!" }, @@ -4145,6 +4164,9 @@ "swapAmountReceivedInfo": { "message": "This is the minimum amount you will receive. You may receive more depending on slippage." }, + "swapAnyway": { + "message": "Swap anyway" + }, "swapApproval": { "message": "Approve $1 for swaps", "description": "Used in the transaction display list to describe a transaction that is an approve call on a token that is to be swapped.. $1 is the symbol of a token that has been approved." @@ -4153,6 +4175,12 @@ "message": "You need $1 more $2 to complete this swap", "description": "Tells the user how many more of a given token they need for a specific swap. $1 is an amount of tokens and $2 is the token symbol." }, + "swapAreYouStillThere": { + "message": "Are you still there?" + }, + "swapAreYouStillThereDescription": { + "message": "We’re ready to show you the latest quotes when you want to continue" + }, "swapBuildQuotePlaceHolderText": { "message": "No tokens available matching $1", "description": "Tells the user that a given search string does not match any tokens in our token lists. $1 can be any string of text" @@ -4160,6 +4188,9 @@ "swapConfirmWithHwWallet": { "message": "Confirm with your hardware wallet" }, + "swapContinueSwapping": { + "message": "Continue swapping" + }, "swapContractDataDisabledErrorDescription": { "message": "In the Ethereum app on your Ledger, go to \"Settings\" and allow contract data. Then, try your swap again." }, @@ -4178,6 +4209,9 @@ "swapEditLimit": { "message": "Edit limit" }, + "swapEditTransactionSettings": { + "message": "Edit transaction settings" + }, "swapEnableDescription": { "message": "This is required and gives MetaMask permission to swap your $1.", "description": "Gives the user info about the required approval transaction for swaps. $1 will be the symbol of a token being approved for swaps." @@ -4186,6 +4220,9 @@ "message": "This will $1 for swapping", "description": "$1 is for the 'enableToken' key, e.g. 'enable ETH'" }, + "swapEnterAmount": { + "message": "Enter an amount" + }, "swapEstimatedNetworkFees": { "message": "Estimated network fees" }, @@ -4199,6 +4236,9 @@ "swapFailedErrorTitle": { "message": "Swap failed" }, + "swapFetchingQuote": { + "message": "Fetching quote" + }, "swapFetchingQuoteNofN": { "message": "Fetching quote $1 of $2", "description": "A count of possible quotes shown to the user while they are waiting for quotes to be fetched. $1 is the number of quotes already loaded, and $2 is the total number of resources that we check for quotes. Keep in mind that not all resources will have a quote for a particular swap." @@ -4239,6 +4279,9 @@ "message": "Includes a $1% MetaMask fee.", "description": "Provides information about the fee that metamask takes for swaps. $1 is a decimal number." }, + "swapLearnMore": { + "message": "Learn more about Swaps" + }, "swapLowSlippageError": { "message": "Transaction may fail, max slippage too low." }, @@ -4260,6 +4303,10 @@ "message": "New quotes in $1", "description": "Tells the user the amount of time until the currently displayed quotes are update. $1 is a time that is counting down from 1:00 to 0:00" }, + "swapNoTokensAvailable": { + "message": "No tokens available matching $1", + "description": "Tells the user that a given search string does not match any tokens in our token lists. $1 can be any string of text" + }, "swapOnceTransactionHasProcess": { "message": "Your $1 will be added to your account once this transaction has processed.", "description": "This message communicates the token that is being transferred. It is shown on the awaiting swap screen. The $1 will be a token symbol." @@ -4287,6 +4334,10 @@ "swapQuoteDetails": { "message": "Quote details" }, + "swapQuoteNofM": { + "message": "$1 of $2", + "description": "A count of possible quotes shown to the user while they are waiting for quotes to be fetched. $1 is the number of quotes already loaded, and $2 is the total number of resources that we check for quotes. Keep in mind that not all resources will have a quote for a particular swap." + }, "swapQuoteSource": { "message": "Quote source" }, @@ -4296,6 +4347,9 @@ "swapQuotesExpiredErrorTitle": { "message": "Quotes timeout" }, + "swapQuotesNotAvailableDescription": { + "message": "Reduce the size of your trade or use a different token." + }, "swapQuotesNotAvailableErrorDescription": { "message": "Try adjusting the amount or slippage settings and try again." }, @@ -4332,16 +4386,52 @@ "swapSelectQuotePopoverDescription": { "message": "Below are all the quotes gathered from multiple liquidity sources." }, + "swapSelectToken": { + "message": "Select token" + }, + "swapShowLatestQuotes": { + "message": "Show latest quotes" + }, "swapSlippageNegative": { "message": "Slippage must be greater or equal to zero" }, + "swapSlippageNegativeDescription": { + "message": "Slippage must be greater or equal to zero" + }, + "swapSlippageNegativeTitle": { + "message": "Increase slippage to continue" + }, + "swapSlippageOverLimitDescription": { + "message": "Slippage tolerance must be 15% or less. Anything higher will result in a bad rate." + }, + "swapSlippageOverLimitTitle": { + "message": "Reduce slippage to continue" + }, "swapSlippagePercent": { "message": "$1%", "description": "$1 is the amount of % for slippage" }, + "swapSlippageTooLowDescription": { + "message": "Max slippage is too low which may cause your transaction to fail." + }, + "swapSlippageTooLowTitle": { + "message": "Increase slippage to avoid transaction failure" + }, "swapSlippageTooltip": { "message": "If the price changes between the time your order is placed and confirmed it’s called “slippage”. Your swap will automatically cancel if slippage exceeds your “slippage tolerance” setting." }, + "swapSlippageVeryHighDescription": { + "message": "The slippage entered is considered very high and may result in a bad rate" + }, + "swapSlippageVeryHighTitle": { + "message": "Very high slippage" + }, + "swapSlippageZeroDescription": { + "message": "There are fewer zero-slippage quote providers which will result in a less competitive quote." + }, + "swapSlippageZeroTitle": { + "message": "Sourcing zero-slippage providers" + }, "swapSource": { "message": "Liquidity source" }, @@ -4358,7 +4448,7 @@ "message": "Swap from" }, "swapSwapSwitch": { - "message": "Switch from and to tokens" + "message": "Switch token order" }, "swapSwapTo": { "message": "Swap to" @@ -4366,6 +4456,13 @@ "swapToConfirmWithHwWallet": { "message": "to confirm with your hardware wallet" }, + "swapTokenAddedManuallyDescription": { + "message": "Verify this token on $1 and make sure it is the token you want to trade.", + "description": "$1 points the user to etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"etherscan\"" + }, + "swapTokenAddedManuallyTitle": { + "message": "Token added manually" + }, "swapTokenAvailable": { "message": "Your $1 has been added to your account.", "description": "This message is shown after a swap is successful and communicates the exact amount of tokens the user has received for a swap. The $1 is a decimal number of tokens followed by the token symbol." @@ -4392,6 +4489,13 @@ "message": "Verified on $1 sources.", "description": "Indicates the number of token information sources that recognize the symbol + address. $1 is a decimal number." }, + "swapTokenVerifiedOn1SourceDescription": { + "message": "$1 is only verified on 1 source. Consider verifying it on $2 before proceeding.", + "description": "$1 is a token name, $2 points the user to etherscan as a place they can verify information about a token. $1 is replaced with the translation for \"etherscan\"" + }, + "swapTokenVerifiedOn1SourceTitle": { + "message": "Potentially inauthentic token" + }, "swapTooManyDecimalsError": { "message": "$1 allows up to $2 decimals", "description": "$1 is a token symbol and $2 is the max. number of decimals allowed for the token" @@ -4429,9 +4533,16 @@ "message": "Not enough $1 to complete this transaction", "description": "Tells the user that they don't have enough of a token for a proposed swap. $1 is a token symbol" }, + "swapsNotEnoughToken": { + "message": "Not enough $1", + "description": "Tells the user that they don't have enough of a token for a proposed swap. $1 is a token symbol" + }, "swapsViewInActivity": { "message": "View in activity" }, + "switch": { + "message": "Switch" + }, "switchEthereumChainConfirmationDescription": { "message": "This will switch the selected network within MetaMask to a previously added network:" }, @@ -4734,6 +4845,9 @@ "transactionSecurityCheckDescription": { "message": "We use third-party APIs to detect and display risks involved in unsigned transaction and signature requests before you sign them. These services will have access to your unsigned transaction and signature requests, your account address, and your preferred language." }, + "transactionSettings": { + "message": "Transaction settings" + }, "transactionSubmitted": { "message": "Transaction submitted with estimated gas fee of $1 at $2." }, diff --git a/app/_locales/es/messages.json b/app/_locales/es/messages.json index 17a2744e1..fb2d332bc 100644 --- a/app/_locales/es/messages.json +++ b/app/_locales/es/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Añadir token personalizado" }, - "addCustomTokenByContractAddress": { - "message": "¿No encuentra un token? Puede agregar cualquier token si copia su dirección. Puede encontrar la dirección de contrato del token en $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Esto permitirá que la red se utilice en MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Agregar token" }, + "addTokenByContractAddress": { + "message": "¿No encuentra un token? Puede agregar cualquier token si copia su dirección. Puede encontrar la dirección de contrato del token en $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Dirección" }, @@ -548,13 +548,6 @@ "message": "Para $1 una transacción, la tarifa de gas debe aumentar al menos un 10% para que sea reconocida por la red.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Cancelar el swap por ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Cancelar el swap gratuitamente" - }, "cancelled": { "message": "Cancelado" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Utilice la API de OpenSea para obtener los datos de NFT. La autodetección de NFT depende de la API de OpenSea y no estará disponible si la API está desactivada." }, - "enableSmartTransactions": { - "message": "Habilitar transacciones inteligentes" - }, "enableToken": { "message": "activar $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Entiendo que hasta que no haga una copia de seguridad de mi frase secreta de recuperación, puedo perder mis cuentas y todos los activos asociados." }, - "smartTransaction": { - "message": "Transacción inteligente" - }, "snapContent": { "message": "Este contenido proviene de $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Fuerte" }, - "stxAreHere": { - "message": "¡Las transacciones inteligentes están aquí!" - }, "stxBenefit1": { "message": "Minimizar los costos de transacción" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Intente su swap nuevamente. Estaremos aquí para protegerlo contra riesgos similares la próxima vez." }, - "stxDescription": { - "message": "¡MetaMask Swaps ahora es mucho más inteligente! Habilitar transacciones inteligentes permitirá que MetaMask optimice mediante programación su swap para ayudar:" - }, - "stxErrorNotEnoughFunds": { - "message": "No hay suficientes fondos para una transacción inteligente." - }, - "stxErrorUnavailable": { - "message": "Las transacciones inteligentes no están disponibles temporalmente." - }, "stxFailure": { "message": "Error al canjear" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Enviando su swap de forma pública..." }, - "stxSubDescription": { - "message": "* Transacciones inteligentes intentará enviar su transacción de forma privada varias veces. Si todos los intentos fallan, la transacción se transmitirá públicamente para garantizar que su swap se realice con éxito." - }, "stxSuccess": { "message": "¡Swap finalizado!" }, diff --git a/app/_locales/es_419/messages.json b/app/_locales/es_419/messages.json index 782dbd2ea..bec397e5b 100644 --- a/app/_locales/es_419/messages.json +++ b/app/_locales/es_419/messages.json @@ -103,10 +103,6 @@ "addCustomToken": { "message": "Añadir token personalizado" }, - "addCustomTokenByContractAddress": { - "message": "¿No encuentra un token? Para agregar un token, copie su dirección. Puede encontrar la dirección de contrato del token en $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Esto permitirá que la red se utilice en MetaMask." }, @@ -139,6 +135,10 @@ "addToken": { "message": "Agregar token" }, + "addTokenByContractAddress": { + "message": "¿No encuentra un token? Para agregar un token, copie su dirección. Puede encontrar la dirección de contrato del token en $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Dirección" }, diff --git a/app/_locales/fr/messages.json b/app/_locales/fr/messages.json index 5101c57f4..6aa370f4f 100644 --- a/app/_locales/fr/messages.json +++ b/app/_locales/fr/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Ajouter un jeton personnalisé" }, - "addCustomTokenByContractAddress": { - "message": "Vous ne trouvez pas de jeton ? Vous pouvez ajouter manuellement n’importe quel jeton avec son adresse par copier-coller. Les adresses des contrats de jetons sont disponibles sur $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Cela permettra d’utiliser ce réseau dans MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Ajouter le jeton" }, + "addTokenByContractAddress": { + "message": "Vous ne trouvez pas de jeton ? Vous pouvez ajouter manuellement n’importe quel jeton avec son adresse par copier-coller. Les adresses des contrats de jetons sont disponibles sur $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Adresse" }, @@ -548,13 +548,6 @@ "message": "Pour $1 la transaction, les gas fees doivent être augmentés d’au moins 10 % pour être reconnus par le réseau.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Annuler le swap pour ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Annuler le swap gratuitement" - }, "cancelled": { "message": "Annulé" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Utilisez l’API OpenSea pour récupérer les données de NFT. La détection automatique de NFT repose sur l’API OpenSea et ne sera pas disponible si elle est désactivée." }, - "enableSmartTransactions": { - "message": "Activer les transactions intelligentes" - }, "enableToken": { "message": "activer $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Je suis conscient(e) que tant que je n’aurai pas sauvegardé ma phrase secrète de récupération, je risque de perdre mes comptes et tous leurs actifs." }, - "smartTransaction": { - "message": "Transaction intelligente" - }, "snapContent": { "message": "Ce contenu provient de $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Robuste" }, - "stxAreHere": { - "message": "Les transactions intelligentes sont là !" - }, "stxBenefit1": { "message": "Minimise les frais de transaction" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Réessayez le swap. Nous serons là pour vous protéger contre des risques similaires la prochaine fois." }, - "stxDescription": { - "message": "MetaMask Swaps vient de devenir beaucoup plus intelligent ! Si vous activez les transactions intelligentes, MetaMask pourra optimiser programmatiquement votre swap pour vous aider à :" - }, - "stxErrorNotEnoughFunds": { - "message": "Fonds insuffisants pour une transaction intelligente." - }, - "stxErrorUnavailable": { - "message": "Les transactions intelligentes sont temporairement indisponibles." - }, "stxFailure": { "message": "Échec du swap" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Soumission publique de votre Swap..." }, - "stxSubDescription": { - "message": "* Avec les transactions intelligentes, votre transaction sera soumise plusieurs fois en privé. Si toutes les tentatives échouent, la transaction sera diffusée publiquement pour s’assurer de la réussite de votre swap." - }, "stxSuccess": { "message": "Swap terminé !" }, diff --git a/app/_locales/hi/messages.json b/app/_locales/hi/messages.json index 4fca23854..55e28531b 100644 --- a/app/_locales/hi/messages.json +++ b/app/_locales/hi/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "कस्टम टोकन जोड़ें" }, - "addCustomTokenByContractAddress": { - "message": "टोकन नहीं मिल रहा है? आप किसी भी टोकन का पता पेस्ट करके उसे मैन्युअल रूप से भी जोड़ सकते हैं। टोकन अनुबंध पते $1 पर मिल सकते हैं।", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "इससे इस नेटवर्क को MetaMask के अंदर उपयोग करने की अनुमति मिलेगी।" }, @@ -263,6 +259,10 @@ "addToken": { "message": "टोकन जोड़ें" }, + "addTokenByContractAddress": { + "message": "टोकन नहीं मिल रहा है? आप किसी भी टोकन का पता पेस्ट करके उसे मैन्युअल रूप से भी जोड़ सकते हैं। टोकन अनुबंध पते $1 पर मिल सकते हैं।", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "पता" }, @@ -548,13 +548,6 @@ "message": "किसी लेनदेन को $1 करने के लिए गैस शुल्क में कम से कम 10% की वृद्धि की जानी चाहिए ताकि उसे नेटवर्क द्वारा मान्यता मिल सके।", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "~$1 में स्वैप रद्द करें", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "मुफ्त में स्वैप रद्द करें" - }, "cancelled": { "message": "रद्द किया गया" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "NFT डेटा लाने के लिए OpenSea के API का उपयोग करें। NFT ऑटो-डिटेक्शन OpenSea के API पर निर्भर करता है, और इसके बंद होने पर उपलब्ध नहीं होगा।" }, - "enableSmartTransactions": { - "message": "स्मार्ट लेनदेन को सक्षम करें" - }, "enableToken": { "message": "$1 इनेबल करें", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "मैं समझता हूं कि जब तक मैं अपने सीक्रेट रिकवरी फ्रेज का बैकअप नहीं लेता, मैं अपने खाते और उनकी सभी संपत्ति खो सकता हूं।" }, - "smartTransaction": { - "message": "स्मार्ट लेनदेन" - }, "snapContent": { "message": "यह सामग्री $1 से आ रही है", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "मजबूत" }, - "stxAreHere": { - "message": "स्मार्ट लेनदेन यहां पर हैं!" - }, "stxBenefit1": { "message": "लेनदेन लागतें मिनिमाइज़ करें" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "अपना स्वैप फिर से कोशिश करें। अगली बार भी इस तरह के जोखिमों से आपको बचाने के लिए हम यहां होंगे।" }, - "stxDescription": { - "message": "MetaMask के स्वैप अब और अधिक स्मार्ट हो गए हैं! इन हेतु सहयता के लिए स्मार्ट लेनदेन को सक्षम करने से MetaMask आपके स्वैप को प्रोग्रामेटिक रूप से ऑप्टिमाइज़ कर पाएगा:" - }, - "stxErrorNotEnoughFunds": { - "message": "एक स्मार्ट लेनदेन के लिए पर्याप्त फंड नहीं है।" - }, - "stxErrorUnavailable": { - "message": "स्मार्ट लेनदेन अस्थाई तौर पर अनुपबल्ध हैं।" - }, "stxFailure": { "message": "स्वैप विफल हुआ" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "आपका स्वैप सार्वजनिक रूप से सबमिट किया जा रहा है..." }, - "stxSubDescription": { - "message": "* स्मार्ट लेनदेन आपके लेनदेन को निजी तौर पर, अनेक बार जमा करने का प्रयास करेंगे। यदि सभी प्रयास विफल हो जाते हैं, तो लेनदेन को सार्वजनिक रूप से प्रसारित किया जाएगा ताकि यह सुनिश्चित हो सके कि आपका स्वैप सफलतापूर्वक पूरा हो।" - }, "stxSuccess": { "message": "स्वैप पूरा हुआ!" }, diff --git a/app/_locales/id/messages.json b/app/_locales/id/messages.json index d4babd8b2..baec167e3 100644 --- a/app/_locales/id/messages.json +++ b/app/_locales/id/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Tambahkan token kustom" }, - "addCustomTokenByContractAddress": { - "message": "Tidak dapat menemukan token? Tambahkan token secara manual dengan menempelkan alamatnya. Alamat kontrak token dapat ditemukan di $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Tindakan ini akan membantu jaringan ini agar dapat digunakan dengan MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Tambahkan token" }, + "addTokenByContractAddress": { + "message": "Tidak dapat menemukan token? Tambahkan token secara manual dengan menempelkan alamatnya. Alamat kontrak token dapat ditemukan di $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Alamat" }, @@ -548,13 +548,6 @@ "message": "Untuk $1 suatu transaksi, biaya gas harus dinaikkan minimal 10% agar dapat dikenali oleh jaringan.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Batalkan swap untuk ~$", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Batalkan swap gratis" - }, "cancelled": { "message": "Dibatalkan" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Gunakan API OpenSea untuk mengambil data NFT. Deteksi otomatis NFT bergantung pada API OpenSea, dan tidak akan tersedia saat API ditutup." }, - "enableSmartTransactions": { - "message": "Aktifkan transaksi pintar" - }, "enableToken": { "message": "aktifkan $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Saya memahami bahwa sampai saya mencadangkan Frasa Pemulihan Rahasia, saya dapat kehilangan akun saya dan semua aset yang ada." }, - "smartTransaction": { - "message": "Transaksi pintar" - }, "snapContent": { "message": "Konten ini berasal dari $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Kuat" }, - "stxAreHere": { - "message": "Transaksi Pintar hadir di sini!" - }, "stxBenefit1": { "message": "Meminimalkan biaya transaksi" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Cobalah untuk menukar lagi. Kami akan selalu hadir untuk melindungi Anda dari risiko serupa di lain waktu." }, - "stxDescription": { - "message": "Pertukaran MetaMask menjadi semakin pintar! Mengaktifkan Transaksi Pintar akan memungkinkan MetaMask mengoptimalkan Pertukaran Anda secara terprogram untuk membantu:" - }, - "stxErrorNotEnoughFunds": { - "message": "Dana tidak cukup untuk mengaktifkan transaksi pintar." - }, - "stxErrorUnavailable": { - "message": "Transaksi Pintar tidak tersedia untuk sementara waktu." - }, "stxFailure": { "message": "Pertukaran gagal" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Kirimkan Swap Anda secara publik..." }, - "stxSubDescription": { - "message": "* Transaksi Pintar akan mencoba mengirimkan transaksi Anda secara pribadi, beberapa kali. Jika semua upaya gagal, transaksi akan disiarkan secara publik untuk memastikan Pertukaran telah berhasil dilakukan." - }, "stxSuccess": { "message": "Pertukaran selesai!" }, diff --git a/app/_locales/it/messages.json b/app/_locales/it/messages.json index bf069ec0a..9d3c2fd5a 100644 --- a/app/_locales/it/messages.json +++ b/app/_locales/it/messages.json @@ -158,10 +158,6 @@ "addCustomToken": { "message": "Aggiungi token personalizzato" }, - "addCustomTokenByContractAddress": { - "message": "Non trovi un token? Puoi aggiungere qualsiasi token incollando il suo indirizzo. L'indirizzo del contratto del Token può essere trovato su $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Ciò consentirà a questa rete di essere utilizzata all'interno di MetaMask." }, @@ -204,6 +200,10 @@ "addToken": { "message": "Aggiungi Token" }, + "addTokenByContractAddress": { + "message": "Non trovi un token? Puoi aggiungere qualsiasi token incollando il suo indirizzo. L'indirizzo del contratto del Token può essere trovato su $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Indirizzo" }, @@ -419,13 +419,6 @@ "message": "Per $1 una transazione la commissione di gas deve crescere almeno del 10% per essere riconosciuto dalla rete.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Annulla scambio per ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Annulla scambio gratuitamente" - }, "cancelled": { "message": "Annullata" }, diff --git a/app/_locales/ja/messages.json b/app/_locales/ja/messages.json index 0830623e7..611955387 100644 --- a/app/_locales/ja/messages.json +++ b/app/_locales/ja/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "カスタムトークンを追加" }, - "addCustomTokenByContractAddress": { - "message": "トークンが見つからない場合、アドレスをペーストして手動でトークンを追加できます。トークンコントラクトアドレスは$1にあります。", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "これにより、このネットワークはMetaMask内で使用できるようになります。" }, @@ -263,6 +259,10 @@ "addToken": { "message": "トークンを追加" }, + "addTokenByContractAddress": { + "message": "トークンが見つからない場合、アドレスをペーストして手動でトークンを追加できます。トークンコントラクトアドレスは$1にあります", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "アドレス" }, @@ -548,13 +548,6 @@ "message": "トランザクションを$1するには、ネットワークに認識されるようにガス代を 10% 以上増額する必要があります。", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "$1 以下でスワップをキャンセル", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "無料でスワップをキャンセル" - }, "cancelled": { "message": "キャンセル済み" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "OpenSea APIを使用してNFTデータを取得します。NFT自動検出はOpenSea APIを使用するため、この設定をオフにすると利用できなくなります。" }, - "enableSmartTransactions": { - "message": "スマートトランザクションを有効にする" - }, "enableToken": { "message": "$1を有効にする", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "私は、シークレットリカバリーフレーズをバックアップするまで、アカウントとそのアセットのすべてを失う可能性があることを理解しています。" }, - "smartTransaction": { - "message": "スマートトランザクション" - }, "snapContent": { "message": "このコンテンツは $1 からのものです", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "強" }, - "stxAreHere": { - "message": "スマートトランザクションが利用可能になりました!" - }, "stxBenefit1": { "message": "トランザクションコストを最小化" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "もう一度スワップをお試しください。次回は同様のリスクを避けられるようサポートします。" }, - "stxDescription": { - "message": "MetaMask Swaps がはるかに賢くなりました!スマートトランザクションを有効にすると、MetaMask がプログラムに従ってスワップを最適化できるようになるため、以下のようなメリットがあります。" - }, - "stxErrorNotEnoughFunds": { - "message": "スマートトランザクションに十分な資金がありません。" - }, - "stxErrorUnavailable": { - "message": "スマートトランザクションは一時的に利用できません。" - }, "stxFailure": { "message": "スワップに失敗しました" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "スワップを公開で送信中..." }, - "stxSubDescription": { - "message": "* スマートトランザクションは、非公開でトランザクションのの送信を数回試みます。すべての試みが失敗した場合、スワップが成功するようトランザクションが公開されます。" - }, "stxSuccess": { "message": "スワップ完了!" }, diff --git a/app/_locales/ko/messages.json b/app/_locales/ko/messages.json index 3cf3cb19c..ab2ebe88b 100644 --- a/app/_locales/ko/messages.json +++ b/app/_locales/ko/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "커스텀 토큰 추가" }, - "addCustomTokenByContractAddress": { - "message": "이 토큰을 찾을 수 없으신가요? 토큰 주소를 붙여넣으면 토큰을 직접 추가할 수 있습니다. 토큰의 계약 주소는 $1에서 찾을 수 있습니다.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "이렇게 하면 MetaMask 내에서 이 네트워크를 사용할 수 있습니다." }, @@ -263,6 +259,10 @@ "addToken": { "message": "토큰 추가" }, + "addTokenByContractAddress": { + "message": "이 토큰을 찾을 수 없으신가요? 토큰 주소를 붙여넣으면 토큰을 직접 추가할 수 있습니다. 토큰의 계약 주소는 $1에서 찾을 수 있습니다", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "주소" }, @@ -548,13 +548,6 @@ "message": "거래를 $1하려면 가스비를 최소 10%를 인상해야 네트워크에서 인식될 수 있습니다.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "~$1 비용으로 스왑 취소", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "무료로 스왑 취소" - }, "cancelled": { "message": "취소됨" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "OpenSea의 API를 사용하여 NFT 데이터를 가져옵니다. NFT 자동 감지는 OpenSea의 API에 의존하며 이 API가 꺼져 있으면 사용할 수 없습니다." }, - "enableSmartTransactions": { - "message": "스마트 트랜잭션 활성화" - }, "enableToken": { "message": "$1 활성화", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "본인은 본인의 비밀 복구 구문을 백업하지 않는 한 본인의 계정과 모든 자산을 잃을 수 있다는 사실을 이해합니다." }, - "smartTransaction": { - "message": "스마트 트랜잭션" - }, "snapContent": { "message": "콘텐츠 출처: $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "강함" }, - "stxAreHere": { - "message": "스마트 거래가 가능합니다!" - }, "stxBenefit1": { "message": "거래 비용 최소화하기" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "스왑을 다시 진행하세요. 다음에도 유사한 위험이 발생한다면 보호해 드리겠습니다." }, - "stxDescription": { - "message": "MetaMask 스왑이 더욱 스마트해졌습니다! 스마트 거래를 활성화하면 MetaMask가 프로그램을 통해 스왑을 최적화하여 다음을 도울 수 있습니다." - }, - "stxErrorNotEnoughFunds": { - "message": "스마트 거래 자금 부족" - }, - "stxErrorUnavailable": { - "message": "스마트 거래를 잠시 사용할 수 없습니다." - }, "stxFailure": { "message": "스왑 실패" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "스왑을 공개로 제출하는 중..." }, - "stxSubDescription": { - "message": "*스마트 거래는 비공개로 거래를 제출하기 위해 여러 번 시도할 것입니다. 모든 시도가 실패하면 성공적인 스왑을 위해 거래는 공개적으로 브로드캐스트될 것입니다." - }, "stxSuccess": { "message": "스왑 완료!" }, diff --git a/app/_locales/ph/messages.json b/app/_locales/ph/messages.json index a9787f21c..0aa23709a 100644 --- a/app/_locales/ph/messages.json +++ b/app/_locales/ph/messages.json @@ -42,10 +42,6 @@ "addContact": { "message": "Magdagdag ng contact" }, - "addCustomTokenByContractAddress": { - "message": "Walang makitang token? Puwede kang manual na magdagdag ng anumang token sa pamamagitan ng pag-paste ng address nito. Makikita ang mga address ng kontrata ng token sa $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Bibigyang-daan nito na magamit ang network na ito sa MetaMask." }, @@ -75,6 +71,10 @@ "addToken": { "message": "Magdagdag ng Token" }, + "addTokenByContractAddress": { + "message": "Walang makitang token? Puwede kang manual na magdagdag ng anumang token sa pamamagitan ng pag-paste ng address nito. Makikita ang mga address ng kontrata ng token sa $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "advanced": { "message": "Advanced" }, diff --git a/app/_locales/pt/messages.json b/app/_locales/pt/messages.json index 3daf84053..6289de75b 100644 --- a/app/_locales/pt/messages.json +++ b/app/_locales/pt/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Adicionar token personalizado" }, - "addCustomTokenByContractAddress": { - "message": "Não consegue encontrar um token? Cole o endereço para adicionar manualmente qualquer token. Os endereços de contrato do token se encontram em $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Isso permitirá que essa rede seja usada dentro da MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Adicionar token" }, + "addTokenByContractAddress": { + "message": "Não consegue encontrar um token? Cole o endereço para adicionar manualmente qualquer token. Os endereços de contrato do token se encontram em $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Endereço" }, @@ -548,13 +548,6 @@ "message": "Para $1 uma transação, a taxa de gás deve ser aumentada em pelo menos 10% para que seja reconhecida pela rede.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Cancelar swap por ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Cancelar swap gratuitamente" - }, "cancelled": { "message": "Cancelada" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Use a API OpenSea para recuperar dados de NFTs. A detecção automática de NFTs depende da API OpenSea e não estará disponível quando essa opção estiver desativada." }, - "enableSmartTransactions": { - "message": "Ativar transações inteligentes" - }, "enableToken": { "message": "ativar $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Compreendo que, até fazer o backup da minha Frase de Recuperação Secreta, poderei perder minhas contas e todos os ativos contidos nela." }, - "smartTransaction": { - "message": "Transação inteligente" - }, "snapContent": { "message": "Esse conteúdo vem de $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Forte" }, - "stxAreHere": { - "message": "As transações inteligentes chegaram!" - }, "stxBenefit1": { "message": "Minimize os custos das transações" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Tente fazer sua swap novamente. Estaremos aqui para te proteger contra riscos semelhantes no futuro." }, - "stxDescription": { - "message": "As swaps na MetaMask ficaram muito mais inteligentes! A ativação de Transações Inteligentes permite que o MetaMask otimize programaticamente suas swaps para evitar:" - }, - "stxErrorNotEnoughFunds": { - "message": "Insuficiência de fundos para fazer uma transação inteligente." - }, - "stxErrorUnavailable": { - "message": "Indisponibilidade temporária de Transações Inteligentes." - }, "stxFailure": { "message": "Falha na troca" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Enviando seu swap de forma pública..." }, - "stxSubDescription": { - "message": "* A função de Transações Inteligentes tentará enviar a sua transação várias vezes de forma privada. Se todas as tentativas falharem, a transação será transmitida publicamente para garantir que sua Swap seja realizada com sucesso." - }, "stxSuccess": { "message": "Swap concluído!" }, diff --git a/app/_locales/pt_BR/messages.json b/app/_locales/pt_BR/messages.json index 33f3e50e8..f85a1ccd2 100644 --- a/app/_locales/pt_BR/messages.json +++ b/app/_locales/pt_BR/messages.json @@ -103,10 +103,6 @@ "addCustomToken": { "message": "Adicionar token personalizado" }, - "addCustomTokenByContractAddress": { - "message": "Não consegue encontrar um token? Cole o endereço para adicionar manualmente qualquer token. Os endereços de contrato do token se encontram em $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Isso permitirá que essa rede seja usada dentro da MetaMask." }, @@ -139,6 +135,10 @@ "addToken": { "message": "Adicionar token" }, + "addTokenByContractAddress": { + "message": "Não consegue encontrar um token? Cole o endereço para adicionar manualmente qualquer token. Os endereços de contrato do token se encontram em $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Endereço" }, diff --git a/app/_locales/ru/messages.json b/app/_locales/ru/messages.json index 5a77736dd..98143fa7a 100644 --- a/app/_locales/ru/messages.json +++ b/app/_locales/ru/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Добавить пользовательский токен" }, - "addCustomTokenByContractAddress": { - "message": "Не можете найти токен? Можно вручную добавить любой токен, вставив его адрес. Адреса контракта токена можно найти на $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Это позволит использовать эту сеть в MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Добавить токен" }, + "addTokenByContractAddress": { + "message": "Не можете найти токен? Можно вручную добавить любой токен, вставив его адрес. Адреса контракта токена можно найти на $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Адрес" }, @@ -548,13 +548,6 @@ "message": "Чтобы $1 транзакции плата за газ должна быть увеличена как минимум на 10%. Это позволит обеспечить прием транзакции сетью.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Отменить обмен на ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Отменить обмен бесплатно" - }, "cancelled": { "message": "Отменено" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Используйте API OpenSea для получения данных NFT. Для автоматического обнаружения NFT используется API OpenSea, и такое обнаружение будет недоступно, если этот API отключен." }, - "enableSmartTransactions": { - "message": "Включить смарт-транзакции" - }, "enableToken": { "message": "активирует для $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Я понимаю, что, если я не создам резервную копию своей секретной фразы для восстановления, я могу потерять доступ ко всем своим счетам и всем средствам на них." }, - "smartTransaction": { - "message": "Смарт-транзакция" - }, "snapContent": { "message": "Этот контент поступает от $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Сильный" }, - "stxAreHere": { - "message": "Появились смарт-транзакции!" - }, "stxBenefit1": { "message": "Минимизируйте транзакционные издержки" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Попробуйте обменять еще раз. Мы готовы защитить вас от подобных рисков в следующий раз." }, - "stxDescription": { - "message": "Функция обмена в MetaMask стала намного умнее! Включение смарт-транзакций позволит MetaMask программно оптимизировать ваш обмен, чтобы помочь:" - }, - "stxErrorNotEnoughFunds": { - "message": "Недостаточно средств для смарт-транзакции." - }, - "stxErrorUnavailable": { - "message": "Смарт-транзакции временно недоступны." - }, "stxFailure": { "message": "Обмен не удался" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Публичная отправка вашей операции обмена..." }, - "stxSubDescription": { - "message": "* Смарт-транзакции попытаются несколько раз отправить вашу транзакцию в конфиденциальном порядке. Если все попытки не увенчаются успехом, транзакция будет показана публично, чтобы гарантировать успешное завершение вашего обмена." - }, "stxSuccess": { "message": "Обмен завершен!" }, diff --git a/app/_locales/tl/messages.json b/app/_locales/tl/messages.json index a7fdb7005..df0b61a19 100644 --- a/app/_locales/tl/messages.json +++ b/app/_locales/tl/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Magdagdag ng Custom na Token" }, - "addCustomTokenByContractAddress": { - "message": "Hindi makahanap ng token? Maaari kang manu-manong magdagdag ng anumang token sa pamamagitan ng pag-paste ng address nito. Ang mga address ng token contract ay matatagpuan sa $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Magpapahintulot ito sa network na ito na gamitin sa loob ng MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Magdagdag ng Token" }, + "addTokenByContractAddress": { + "message": "Hindi makahanap ng token? Maaari kang manu-manong magdagdag ng anumang token sa pamamagitan ng pag-paste ng address nito. Ang mga address ng token contract ay matatagpuan sa $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Address" }, @@ -548,13 +548,6 @@ "message": "Sa $1 na transaksyon ang singil sa gas ay dapat tumaas nang hindi bababa sa 10% para ito ay makilala ng network.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Kanselahin ang swap sa halagang ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Kanselahin ang swap nang libre" - }, "cancelled": { "message": "Nakansela" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Gamitin ang API ng Opensea upang kunin ang NFT data. ang NFT auto-detection ay umaasa sa API ng OpenSea, at hindi magiging available kapag ito ay isinara." }, - "enableSmartTransactions": { - "message": "Payagan ang mga smart transaction" - }, "enableToken": { "message": "paganahin ang $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Nauunawaan ko na hanggang sa i-back up ko ang aking Secret Recovery Phrase, maaari kong maiwala ang aking mga account at lahat ng kanilang mga asset." }, - "smartTransaction": { - "message": "Smart Transaction" - }, "snapContent": { "message": "Ang nilalamang ito ay nagmumula sa $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Mahirap" }, - "stxAreHere": { - "message": "Narito na ang mga Smart Transaction!" - }, "stxBenefit1": { "message": "Bawasan ang mga gastos sa transaksyon" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Subukan muli ang iyong pagpapalit. Narito kami para protektahan ka sa mga katulad na panganib sa susunod." }, - "stxDescription": { - "message": "Mas humusay pa ang mga Pagpapalit sa MetaMask! Papayagan ng Pagpapagana sa mga Smart Transaction ang MetaMask na pahusayin ang iyong Pagpapalit gamit ang program para makatulong sa: " - }, - "stxErrorNotEnoughFunds": { - "message": "Hindi sapat na pondo para sa smart transaction." - }, - "stxErrorUnavailable": { - "message": "Pansamantalang hindi available ang mga Smart Transaction." - }, "stxFailure": { "message": "Hindi matagumpay ang pag-swap" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Pampublikong isinusumite ang iyong Swap..." }, - "stxSubDescription": { - "message": "* Susubukan ng mga Smart Transaction na isumite nang pribado ang iyong transaksyon, maraming beses. Kapag nabigo ang lahat ng pagsubok, ipapakita sa publiko ang transaksyon upang matiyak na ang Pagpapalit ay naging matagupay." - }, "stxSuccess": { "message": "Nakumpleto ang pagpapalit!" }, diff --git a/app/_locales/tr/messages.json b/app/_locales/tr/messages.json index 1c30a8383..d629b046c 100644 --- a/app/_locales/tr/messages.json +++ b/app/_locales/tr/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Özel token ekle" }, - "addCustomTokenByContractAddress": { - "message": "Bir tokeni bulamadınız mı? Adresini yapıştırarak dilediğiniz tokeni manuel olarak ekleyebilirsiniz. Token sözleşme adreslerini $1 alanında bulabilirsiniz.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Bu, bu ağın MetaMas dahilinde kullanılmasına olanak tanıyacaktır." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Token ekle" }, + "addTokenByContractAddress": { + "message": "Bir tokeni bulamadınız mı? Adresini yapıştırarak dilediğiniz tokeni manuel olarak ekleyebilirsiniz. Token sözleşme adreslerini $1 alanında bulabilirsiniz", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Adres" }, @@ -548,13 +548,6 @@ "message": "İşlemi $1 için, gaz ücretinin ağ tarafından tanınması amacıyla en az %10 oranında artırılması gerekir.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "~$1 için swap işlemini iptal edin", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Swap işlemini ücretsiz iptal edin" - }, "cancelled": { "message": "İptal edildi" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "NFT verilerini almak için OpenSea API'sini kullanın. NFT otomatik algılama OpenSea API'ye dayalıdır ve bu kapatılırsa mevcut olmayacaktır." }, - "enableSmartTransactions": { - "message": "Akıllı işlemleri etkinleştir" - }, "enableToken": { "message": "şunu etkinleştir: $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Gizli Kurtarma İfademi yedekleyene kadar hesaplarımı ve tüm varlıkları kaybedebileceğimi anlıyorum." }, - "smartTransaction": { - "message": "Akıllı işlem" - }, "snapContent": { "message": "Bu içerik $1 kaynaklıdır", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Güçlü" }, - "stxAreHere": { - "message": "Akıllı İşlemler burada!" - }, "stxBenefit1": { "message": "İşlem maliyetlerini en aza indir" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Takasını tekrar dene. Bir dahaki sefere seni benzer risklere karşı korumak için burada olacağız." }, - "stxDescription": { - "message": "MetaMask Swapları artık çok daha akıllı! Akıllı İşlemleri, MetaMask'in renklerine yardımcı olmak için Swap'ını programlı olarak optimize etme bölümünden yararlanmak:" - }, - "stxErrorNotEnoughFunds": { - "message": "Akıllı işlem için yeterli para yok." - }, - "stxErrorUnavailable": { - "message": "Akıllı İşlemler geçici olarak kullanılamıyor." - }, "stxFailure": { "message": "Takas başarısız oldu" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Swap işlemin herkese açık olarak gönderiliyor..." }, - "stxSubDescription": { - "message": "* Akıllı İşlemler, işlemini birden çok kez özel olarak göndermeye çalışır. Tüm denemeler başarısız olursa Takas'ının başarılı bir şekilde gerçekleşmesini sağlamak için işlem herkese açık olarak yayınlanacaktır." - }, "stxSuccess": { "message": "Takas tamamlandı!" }, diff --git a/app/_locales/vi/messages.json b/app/_locales/vi/messages.json index c5af50467..270272b6c 100644 --- a/app/_locales/vi/messages.json +++ b/app/_locales/vi/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "Thêm token tùy chỉnh" }, - "addCustomTokenByContractAddress": { - "message": "Bạn không tìm thấy token? Bạn có thể dán địa chỉ của bất kỳ token nào để thêm token đó theo cách thủ công. Bạn có thể tìm thấy địa chỉ hợp đồng token trên $1.", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "Thao tác này sẽ cho phép sử dụng mạng này trong MetaMask." }, @@ -263,6 +259,10 @@ "addToken": { "message": "Thêm token" }, + "addTokenByContractAddress": { + "message": "Bạn không tìm thấy token? Bạn có thể dán địa chỉ của bất kỳ token nào để thêm token đó theo cách thủ công. Bạn có thể tìm thấy địa chỉ hợp đồng token trên $1", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "Địa chỉ" }, @@ -548,13 +548,6 @@ "message": "Để $1 một giao dịch, phí gas phải tăng tối thiểu 10% để mạng nhận ra giao dịch này.", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "Hủy hoán đổi với giá ~$1", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "Hủy hoán đổi miễn phí" - }, "cancelled": { "message": "Đã hủy" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "Sử dụng API của OpenSea để tìm nạp dữ liệu NFT. Tính năng tự động phát hiện NFT dựa vào API của OpenSea và sẽ không khả dụng nếu tính năng này bị tắt." }, - "enableSmartTransactions": { - "message": "Bật giao dịch thông minh" - }, "enableToken": { "message": "bật $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "Tôi hiểu rằng nếu chưa sao lưu Cụm Mật Khẩu Khôi Phục Bí Mật của mình, tôi có thể bị mất tài khoản và toàn bộ tài sản bên trong." }, - "smartTransaction": { - "message": "Giao dịch thông minh" - }, "snapContent": { "message": "Nội dung này đến từ $1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "Mạnh" }, - "stxAreHere": { - "message": "Giao dịch thông minh đã ra mắt!" - }, "stxBenefit1": { "message": "Giảm thiểu chi phí giao dịch" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "Hãy thử hoán đổi lại. Chúng tôi ở đây để bảo vệ bạn trước những rủi ro tương tự trong lần tới." }, - "stxDescription": { - "message": "Tính năng Hoán đổi của MetaMask nay đã thông minh hơn rất nhiều! Kích hoạt Giao dịch thông minh sẽ cho phép MetaMask tối ưu quy trình Hoán đổi để giúp bạn:" - }, - "stxErrorNotEnoughFunds": { - "message": "Không có đủ tiền để thực hiện giao dịch thông minh." - }, - "stxErrorUnavailable": { - "message": "Giao dịch thông minh tạm thời không khả dụng." - }, "stxFailure": { "message": "Hoán đổi không thành công" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "Đang công khai gửi yêu cầu Hoán đổi của bạn..." }, - "stxSubDescription": { - "message": "* Giao dịch thông minh sẽ cố gắng gửi giao dịch của bạn nhiều lần theo cách riêng tư. Nếu tất cả các lần thử đều không thành công, giao dịch sẽ được phát công khai để đảm bảo Hoán đổi của bạn được thực hiện thành công." - }, "stxSuccess": { "message": "Hoán đổi hoàn tất!" }, diff --git a/app/_locales/zh_CN/messages.json b/app/_locales/zh_CN/messages.json index 94d2dcf83..192838fc4 100644 --- a/app/_locales/zh_CN/messages.json +++ b/app/_locales/zh_CN/messages.json @@ -195,10 +195,6 @@ "addCustomToken": { "message": "添加自定义代币" }, - "addCustomTokenByContractAddress": { - "message": "找不到代币?您可以通过粘贴其地址手动添加任何代币。代币合约地址可以在 $1 上找到。", - "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" - }, "addEthereumChainConfirmationDescription": { "message": "这将允许在 MetaMask 中使用此网络。" }, @@ -263,6 +259,10 @@ "addToken": { "message": "添加代币" }, + "addTokenByContractAddress": { + "message": "找不到代币?您可以通过粘贴其地址手动添加任何代币。代币合约地址可以在 $1 上找到", + "description": "$1 is a blockchain explorer for a specific network, e.g. Etherscan for Ethereum" + }, "address": { "message": "地址" }, @@ -548,13 +548,6 @@ "message": "若要$1交易,燃料费用必须增加至少10%才能被网络认可。", "description": "$1 is string 'cancel' or 'speed up'" }, - "cancelSwapForFee": { - "message": "以~$1取消兑换", - "description": "$1 could be e.g. $2.98, it is a cost for cancelling a Smart Transaction" - }, - "cancelSwapForFree": { - "message": "免费取消兑换" - }, "cancelled": { "message": "已取消" }, @@ -1200,9 +1193,6 @@ "enableOpenSeaAPIDescription": { "message": "使用 OpenSea 的 API 获取 NFT 数据。NFT 自动检测依赖于 OpenSea 的 API,在后者关闭时自动检测将不可用。" }, - "enableSmartTransactions": { - "message": "启用智能交易" - }, "enableToken": { "message": "启用 $1", "description": "$1 is a token symbol, e.g. ETH" @@ -3239,9 +3229,6 @@ "skipAccountSecurityDetails": { "message": "我明白,在我备份我的账户助记词之前,我可能会丢失我的账户及其所有资产。" }, - "smartTransaction": { - "message": "智能交易" - }, "snapContent": { "message": "此内容来自$1", "description": "This is shown when a snap shows transaction insight information in the confirmation UI. $1 is a link to the snap's settings page with the link text being the name of the snap." @@ -3425,9 +3412,6 @@ "strong": { "message": "强" }, - "stxAreHere": { - "message": "智能交易已推出!" - }, "stxBenefit1": { "message": "将交易成本减至最低" }, @@ -3449,15 +3433,6 @@ "stxCancelledSubDescription": { "message": "再次尝试进行交换。下次我们会在这里保护您免受类似风险。 " }, - "stxDescription": { - "message": "MetaMask Swap变得更加智能!启用智能交易将允许MetaMask从编程上优化您的交换,以帮助:" - }, - "stxErrorNotEnoughFunds": { - "message": "没有足够的资金进行智能交易。" - }, - "stxErrorUnavailable": { - "message": "智能交易暂时不可用。" - }, "stxFailure": { "message": "交换失败" }, @@ -3471,9 +3446,6 @@ "stxPendingPubliclySubmittingSwap": { "message": "正在公开提交您的Swap..." }, - "stxSubDescription": { - "message": "*智能交易将尝试多次隐秘提交您的交易。如果所有尝试都失败,交易将会公开广播,以确保您的交换能成功进行。" - }, "stxSuccess": { "message": "交换完成!" }, diff --git a/app/images/swaps-redesign.svg b/app/images/swaps-redesign.svg new file mode 100644 index 000000000..08bf92a87 --- /dev/null +++ b/app/images/swaps-redesign.svg @@ -0,0 +1,9 @@ + diff --git a/app/scripts/controllers/swaps.js b/app/scripts/controllers/swaps.js index b44e66a21..505b696d7 100644 --- a/app/scripts/controllers/swaps.js +++ b/app/scripts/controllers/swaps.js @@ -104,23 +104,34 @@ const initialState = { }; export default class SwapsController { - constructor({ - getBufferedGasLimit, - networkController, - provider, - getProviderConfig, - getTokenRatesState, - fetchTradesInfo = defaultFetchTradesInfo, - getCurrentChainId, - getEIP1559GasFeeEstimates, - onNetworkStateChange, - }) { + constructor( + { + getBufferedGasLimit, + networkController, + provider, + getProviderConfig, + getTokenRatesState, + fetchTradesInfo = defaultFetchTradesInfo, + getCurrentChainId, + getEIP1559GasFeeEstimates, + onNetworkStateChange, + }, + state, + ) { this.store = new ObservableStore({ - swapsState: { ...initialState.swapsState }, + swapsState: { + ...initialState.swapsState, + swapsFeatureFlags: state?.swapsState?.swapsFeatureFlags || {}, + }, }); this.resetState = () => { - this.store.updateState({ swapsState: { ...initialState.swapsState } }); + this.store.updateState({ + swapsState: { + ...initialState.swapsState, + swapsFeatureFlags: state?.swapsState?.swapsFeatureFlags, + }, + }); }; this._fetchTradesInfo = fetchTradesInfo; @@ -662,6 +673,7 @@ export default class SwapsController { swapsQuoteRefreshTime: swapsState.swapsQuoteRefreshTime, swapsQuotePrefetchingRefreshTime: swapsState.swapsQuotePrefetchingRefreshTime, + swapsFeatureFlags: swapsState.swapsFeatureFlags, }, }); clearTimeout(this.pollingTimeout); diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index eb1464f3f..0af0d6c7d 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -1282,22 +1282,28 @@ export default class MetamaskController extends EventEmitter { }, ); - this.swapsController = new SwapsController({ - getBufferedGasLimit: this.txController.txGasUtil.getBufferedGasLimit.bind( - this.txController.txGasUtil, - ), - networkController: this.networkController, - onNetworkStateChange: (listener) => - this.networkController.store.subscribe(listener), - provider: this.provider, - getProviderConfig: () => - this.networkController.store.getState().providerConfig, - getTokenRatesState: () => this.tokenRatesController.state, - getCurrentChainId: () => - this.networkController.store.getState().providerConfig.chainId, - getEIP1559GasFeeEstimates: - this.gasFeeController.fetchGasFeeEstimates.bind(this.gasFeeController), - }); + this.swapsController = new SwapsController( + { + getBufferedGasLimit: + this.txController.txGasUtil.getBufferedGasLimit.bind( + this.txController.txGasUtil, + ), + networkController: this.networkController, + onNetworkStateChange: (listener) => + this.networkController.store.subscribe(listener), + provider: this.provider, + getProviderConfig: () => + this.networkController.store.getState().providerConfig, + getTokenRatesState: () => this.tokenRatesController.state, + getCurrentChainId: () => + this.networkController.store.getState().providerConfig.chainId, + getEIP1559GasFeeEstimates: + this.gasFeeController.fetchGasFeeEstimates.bind( + this.gasFeeController, + ), + }, + initState.SwapsController, + ); this.smartTransactionsController = new SmartTransactionsController( { onNetworkStateChange: (cb) => { diff --git a/shared/constants/swaps.ts b/shared/constants/swaps.ts index b1686be9b..093ef470b 100644 --- a/shared/constants/swaps.ts +++ b/shared/constants/swaps.ts @@ -15,6 +15,10 @@ export const QUOTES_NOT_AVAILABLE_ERROR = 'quotes-not-avilable'; export const CONTRACT_DATA_DISABLED_ERROR = 'contract-data-disabled'; export const OFFLINE_FOR_MAINTENANCE = 'offline-for-maintenance'; export const SWAPS_FETCH_ORDER_CONFLICT = 'swaps-fetch-order-conflict'; +export const SLIPPAGE_OVER_LIMIT_ERROR = 'slippage-over-limit'; +export const SLIPPAGE_VERY_HIGH_ERROR = 'slippage-very-high'; +export const SLIPPAGE_TOO_LOW_ERROR = 'slippage-too-low'; +export const SLIPPAGE_NEGATIVE_ERROR = 'slippage-negative'; // An address that the metaswap-api recognizes as the default token for the current network, // in place of the token address that ERC-20 tokens have diff --git a/shared/notifications/index.js b/shared/notifications/index.js index 9bf285957..a5a689f3a 100644 --- a/shared/notifications/index.js +++ b/shared/notifications/index.js @@ -106,6 +106,14 @@ export const UI_NOTIFICATIONS = { id: 20, date: null, }, + 21: { + id: 21, + date: null, + image: { + src: 'images/swaps-redesign.svg', + width: '100%', + }, + }, }; export const getTranslatedUINotifications = (t, locale) => { @@ -294,5 +302,16 @@ export const getTranslatedUINotifications = (t, locale) => { ) : '', }, + 21: { + ...UI_NOTIFICATIONS[21], + title: t('notifications21Title'), + description: t('notifications21Description'), + actionText: t('notifications21ActionText'), + date: UI_NOTIFICATIONS[21].date + ? new Intl.DateTimeFormat(formattedLocale).format( + new Date(UI_NOTIFICATIONS[21].date), + ) + : '', + }, }; }; diff --git a/test/e2e/fixture-builder.js b/test/e2e/fixture-builder.js index 28609f2f1..80e25d6cf 100644 --- a/test/e2e/fixture-builder.js +++ b/test/e2e/fixture-builder.js @@ -136,6 +136,11 @@ function defaultFixture() { id: 19, isShown: true, }, + 21: { + date: null, + id: 21, + isShown: true, + }, }, }, AppStateController: { diff --git a/test/e2e/swaps/shared.js b/test/e2e/swaps/shared.js index ef7eb8278..12fbe4ccb 100644 --- a/test/e2e/swaps/shared.js +++ b/test/e2e/swaps/shared.js @@ -24,24 +24,25 @@ const loadExtension = async (driver) => { }; const buildQuote = async (driver, options) => { - await driver.clickElement( - '.wallet-overview__buttons .icon-button:nth-child(3)', - ); - await driver.fill('input[placeholder*="0"]', options.amount); - await driver.delay(veryLargeDelayMs); // Need an extra delay after typing an amount. - await driver.waitForSelector( - '[class="dropdown-input-pair dropdown-input-pair__to"]', - ); - await driver.clickElement('.dropdown-input-pair__to'); + await driver.clickElement('[data-testid="token-overview-button-swap"]'); await driver.fill( - 'input[data-testid="search-list-items"]', + 'input[data-testid="prepare-swap-page-from-token-amount"]', + options.amount, + ); + await driver.delay(veryLargeDelayMs); // Need an extra delay after typing an amount. + await driver.clickElement('[data-testid="prepare-swap-page-swap-to"]'); + await driver.waitForSelector('[id="list-with-search__text-search"]'); + + await driver.fill( + 'input[id="list-with-search__text-search"]', options.swapTo || options.swapToContractAddress, ); + await driver.delay(veryLargeDelayMs); // Need an extra delay after typing an amount. if (options.swapTo) { await driver.wait(async () => { const tokenNames = await driver.findElements( - '.searchable-item-list__primary-label', + '[data-testid="searchable-item-list-primary-label"]', ); if (tokenNames.length === 0) { return false; @@ -51,118 +52,140 @@ const buildQuote = async (driver, options) => { }); } if (options.swapToContractAddress) { - await driver.waitForSelector({ - css: '.searchable-item-list__item button.btn-primary', - text: 'Import', - }); + await driver.waitForSelector( + '[data-testid="searchable-item-list-import-button"]', + ); } - await driver.clickElement('.searchable-item-list__primary-label'); + await driver.clickElement( + '[data-testid="searchable-item-list-primary-label"]', + ); }; const reviewQuote = async (driver, options) => { - await driver.clickElement({ text: 'Review swap', tag: 'button' }); - await driver.waitForSelector({ text: 'Swap', tag: 'button' }); - await driver.waitForSelector({ - css: '[class*="box--align-items-center"]', - text: 'Estimated gas fee', - }); - const sourceValue = await driver.waitForSelector( - '.main-quote-summary__source-row-value', + const summary = await driver.waitForSelector( + '[data-testid="exchange-rate-display-quote-rate"]', ); + const summaryText = await summary.getText(); + assert.equal(summaryText.includes(options.swapFrom), true); + assert.equal(summaryText.includes(options.swapTo), true); + const quote = summaryText.split(`\n`); + + const elementSwapToAmount = await driver.findElement( + '[data-testid="prepare-swap-page-receive-amount"]', + ); + const swapToAmount = await elementSwapToAmount.getText(); + const expectedAmount = parseFloat(quote[3]) * options.amount; + const dotIndex = swapToAmount.indexOf('.'); + const decimals = dotIndex === -1 ? 0 : swapToAmount.length - dotIndex - 1; assert.equal( - await sourceValue.getText(), - options.amount, - 'Error: Quote has wrong amount', + swapToAmount, + expectedAmount.toFixed(decimals), + `Expecting ${expectedAmount.toFixed( + decimals, + )} but got ${swapToAmount} instead`, ); - const sourceSymbol = await driver.waitForSelector( - '.main-quote-summary__source-row-symbol', - ); - assert.equal( - await sourceSymbol.getText(), - options.swapFrom, - 'Error: SwapFrom has wrong symbol', - ); - const swapToSymbol = await driver.waitForSelector( - '.main-quote-summary__destination-row > span', - ); - assert.equal( - await swapToSymbol.getText(), - options.swapTo, - 'Error: SwapTo has wrong symbol', - ); - await driver.waitForSelector( - '[class="exchange-rate-display main-quote-summary__exchange-rate-display"]', - ); - await driver.waitForSelector('[class="fee-card__info-tooltip-container"]'); - await driver.waitForSelector({ - css: '[class="countdown-timer__time"]', - text: '0:23', - }); + + await driver.findElement('[data-testid="review-quote-gas-fee-in-fiat"]'); + + await driver.findElement('[data-testid="info-tooltip"]'); + + if (!options.skipCounter) { + await driver.waitForSelector({ + css: '[data-testid="countdown-timer__timer-container"]', + text: '0:25', + }); + } }; -const waitForTransactionToComplete = async (driver, tokenName) => { - const sucessfulTransactionMessage = await driver.waitForSelector( +const waitForTransactionToComplete = async (driver, options) => { + await driver.waitForSelector({ + css: '[data-testid="awaiting-swap-header"]', + text: 'Processing', + }); + + await driver.waitForSelector( { - css: '[class="awaiting-swap__header"]', + css: '[data-testid="awaiting-swap-header"]', text: 'Transaction complete', }, { timeout: 30000 }, ); - assert.equal( - await sucessfulTransactionMessage.getText(), - 'Transaction complete', - 'Incorrect transaction message', - ); - const sucessfulTransactionToken = await driver.waitForSelector({ - css: '[class="awaiting-swap__amount-and-symbol"]', - text: tokenName, + + await driver.findElement({ + css: '[data-testid="awaiting-swap-main-description"]', + text: `${options.tokenName}`, }); - assert.equal( - await sucessfulTransactionToken.getText(), - tokenName, - 'Incorrect token name', - ); + await driver.clickElement({ text: 'Close', tag: 'button' }); await driver.waitForSelector('[data-testid="home__asset-tab"]'); }; const checkActivityTransaction = async (driver, options) => { await driver.clickElement('[data-testid="home__activity-tab"]'); - const itemsText = await driver.findElements('.list-item__title'); + await driver.waitForSelector('[data-testid="list-item-title"]'); + + const transactionList = await driver.findElements( + '[data-testid="list-item-title"]', + ); + const transactionText = await transactionList[options.index].getText(); assert.equal( - await itemsText[options.index].getText(), + transactionText, `Swap ${options.swapFrom} to ${options.swapTo}`, - 'Title is incorrect', + 'Transaction not found', ); - const amountValues = await driver.findElements( - '.transaction-list-item__primary-currency', - ); - assert.equal( - await amountValues[options.index].getText(), - `-${options.amount} ${options.swapFrom}`, - 'Transaction amount is incorrect', - ); - await itemsText[options.index].click(); + + await driver.findElement({ + css: '[data-testid="list-item-right-content"]', + text: `-${options.amount} ${options.swapFrom}`, + }); + + await transactionList[options.index].click(); await driver.delay(regularDelayMs); - const txStatus = await driver.findElement( - '.transaction-list-item-details__tx-status >div > div:last-child', - ); - assert.equal( - await txStatus.getText(), - `Confirmed`, - `Transaction status is not 'Confirmed'`, - ); - const txAmount = await driver.findElement( - '.transaction-breakdown__value--amount', - ); - assert.equal( - await txAmount.getText(), - `-${options.amount} ${options.swapFrom}`, - 'Transaction breakdown is incorrect', - ); + + await driver.findElement({ + css: '[data-testid="transaction-list-item-details-tx-status"]', + text: `Confirmed`, + }); + + await driver.findElement({ + css: '[data-testid="transaction-breakdown-value-amount"]', + text: `-${options.amount} ${options.swapFrom}`, + }); + await driver.clickElement('[data-testid="popover-close"]'); }; +const checkNotification = async (driver, options) => { + const boxTitle = await driver.findElement( + '[data-testid="mm-banner-base-title"]', + ); + assert.equal(await boxTitle.getText(), options.title, 'Invalid box title'); + const boxContent = await driver.findElement( + '[data-testid="mm-banner-alert-notification-text"]', + ); + const bodyText = await boxContent.getText(); + console.log(`test: ${bodyText}`); + assert.equal( + bodyText.includes(options.text), + true, + 'Invalid box text content', + ); +}; + +const changeExchangeRate = async (driver) => { + await driver.clickElement( + '[data-testid="exchange-rate-display-base-symbol"]', + ); + await driver.waitForSelector({ text: 'Quote details', tag: 'h2' }); + + const networkFees = await driver.findElements( + '[data-testid*="select-quote-popover-row"]', + ); + const random = Math.floor(Math.random() * networkFees.length); + await networkFees[random].click(); + await driver.clickElement({ text: 'Select', tag: 'button' }); +}; + module.exports = { withFixturesOptions, loadExtension, @@ -170,4 +193,6 @@ module.exports = { reviewQuote, waitForTransactionToComplete, checkActivityTransaction, + checkNotification, + changeExchangeRate, }; diff --git a/test/e2e/swaps/swap-eth.spec.js b/test/e2e/swaps/swap-eth.spec.js index 6506fa262..380ce2965 100644 --- a/test/e2e/swaps/swap-eth.spec.js +++ b/test/e2e/swaps/swap-eth.spec.js @@ -6,6 +6,7 @@ const { reviewQuote, waitForTransactionToComplete, checkActivityTransaction, + changeExchangeRate, } = require('./shared'); describe('Swap Eth for another Token', function () { @@ -25,7 +26,7 @@ describe('Swap Eth for another Token', function () { swapTo: 'USDC', }); await reviewQuote(driver, { - amount: '0.001', + amount: 0.001, swapFrom: 'TESTETH', swapTo: 'USDC', }); @@ -36,12 +37,12 @@ describe('Swap Eth for another Token', function () { swapTo: 'DAI', }); await reviewQuote(driver, { - amount: '0.003', + amount: 0.003, swapFrom: 'TESTETH', swapTo: 'DAI', }); await driver.clickElement({ text: 'Swap', tag: 'button' }); - await waitForTransactionToComplete(driver, 'DAI'); + await waitForTransactionToComplete(driver, { tokenName: 'DAI' }); await checkActivityTransaction(driver, { index: 0, amount: '0.003', @@ -57,7 +58,7 @@ describe('Swap Eth for another Token', function () { }, ); }); - it('Completes a Swap between Eth and Dai', async function () { + it('Completes a Swap between ETH and DAI after changing initial rate', async function () { await withFixtures( { ...withFixturesOptions, @@ -70,12 +71,19 @@ describe('Swap Eth for another Token', function () { swapTo: 'DAI', }); await reviewQuote(driver, { - amount: '2', + amount: 2, swapFrom: 'TESTETH', swapTo: 'DAI', }); + await changeExchangeRate(driver); + await reviewQuote(driver, { + amount: 2, + swapFrom: 'TESTETH', + swapTo: 'DAI', + skipCounter: true, + }); await driver.clickElement({ text: 'Swap', tag: 'button' }); - await waitForTransactionToComplete(driver, 'DAI'); + await waitForTransactionToComplete(driver, { tokenName: 'DAI' }); await checkActivityTransaction(driver, { index: 0, amount: '2', diff --git a/test/e2e/swaps/swaps-notifications.spec.js b/test/e2e/swaps/swaps-notifications.spec.js index 02bfe43dd..4d24bf5fe 100644 --- a/test/e2e/swaps/swaps-notifications.spec.js +++ b/test/e2e/swaps/swaps-notifications.spec.js @@ -1,8 +1,12 @@ const { strict: assert } = require('assert'); - const { withFixtures } = require('../helpers'); - -const { withFixturesOptions, loadExtension, buildQuote } = require('./shared'); +const { + withFixturesOptions, + loadExtension, + buildQuote, + reviewQuote, + checkNotification, +} = require('./shared'); describe('Swaps - notifications', function () { async function mockTradesApiPriceSlippageError(mockServer) { @@ -65,33 +69,34 @@ describe('Swaps - notifications', function () { amount: 2, swapTo: 'INUINU', }); - const reviewSwapButton = await driver.findElement( - '[data-testid="page-container-footer-next"]', - ); - assert.equal(await reviewSwapButton.getText(), 'Review swap'); - assert.equal(await reviewSwapButton.isEnabled(), false); - const continueButton = await driver.findClickableElement( - '.actionable-message__action-warning', - ); - assert.equal(await continueButton.getText(), 'Continue'); - await continueButton.click(); - assert.equal(await reviewSwapButton.isEnabled(), true); - await reviewSwapButton.click(); - await driver.waitForSelector({ - css: '[class*="box--align-items-center"]', - text: 'Estimated gas fee', + await checkNotification(driver, { + title: 'Potentially inauthentic token', + text: 'INUINU is only verified on 1 source. Consider verifying it on Etherscan before proceeding.', + }); + await driver.clickElement({ text: 'Continue swapping', tag: 'button' }); + await driver.waitForSelector({ + text: 'Swap', + tag: 'button', + }); + await checkNotification(driver, { + title: 'Check your rate before proceeding', + text: 'Price impact could not be determined due to lack of market price data.', + }); + await driver.clickElement({ text: 'Swap anyway', tag: 'button' }); + await reviewQuote(driver, { + amount: 2, + swapFrom: 'TESTETH', + swapTo: 'INUINU', + skipCounter: true, + }); + const swapButton = await driver.findElement({ + text: 'Swap', + tag: 'button', }); - const swapButton = await driver.findElement( - '[data-testid="page-container-footer-next"]', - ); - assert.equal(await swapButton.isEnabled(), false); - await driver.clickElement({ text: 'I understand', tag: 'button' }); - assert.equal(await swapButton.getText(), 'Swap'); assert.equal(await swapButton.isEnabled(), true); }, ); }); - it('tests a notification for not enough balance', async function () { await withFixtures( { @@ -104,30 +109,26 @@ describe('Swaps - notifications', function () { amount: 50, swapTo: 'USDC', }); - const reviewSwapButton = await driver.findElement( - '[data-testid="page-container-footer-next"]', - ); - assert.equal(await reviewSwapButton.getText(), 'Review swap'); - assert.equal(await reviewSwapButton.isEnabled(), true); - await reviewSwapButton.click(); - await driver.waitForSelector({ - css: '[class*="box--align-items-center"]', - text: 'Estimated gas fee', + await checkNotification(driver, { + title: 'Insufficient balance', + text: 'You need 50 more TESTETH to complete this swap', }); - await driver.waitForSelector({ - css: '[class*="actionable-message__message"]', - text: 'You need 43.4467 more TESTETH to complete this swap', + await reviewQuote(driver, { + swapFrom: 'TESTETH', + swapTo: 'USDC', + amount: 50, + skipCounter: true, + }); + const swapButton = await driver.waitForSelector({ + text: 'Swap', + tag: 'button', }); - const swapButton = await driver.findElement( - '[data-testid="page-container-footer-next"]', - ); assert.equal(await swapButton.getText(), 'Swap'); assert.equal(await swapButton.isEnabled(), false); }, ); }); - - it('tests notifications for verified token on 0 sources and high slippage', async function () { + it('tests notifications for token import', async function () { await withFixtures( { ...withFixturesOptions, @@ -139,39 +140,51 @@ describe('Swaps - notifications', function () { amount: 2, swapToContractAddress: '0x72c9Fb7ED19D3ce51cea5C56B3e023cd918baaDf', }); - await driver.waitForSelector({ - css: '.popover-header', - text: 'Import token?', - }); await driver.clickElement( '[data-testid="page-container__import-button"]', ); - const reviewSwapButton = await driver.findElement( - '[data-testid="page-container-footer-next"]', - ); - assert.equal(await reviewSwapButton.isEnabled(), false); - const continueButton = await driver.findClickableElement( - '.actionable-message__action-danger', - ); - assert.equal(await continueButton.getText(), 'Continue'); - await continueButton.click(); - assert.equal(await reviewSwapButton.isEnabled(), true); - await driver.clickElement('[class="slippage-buttons__header-text"]'); - await driver.clickElement({ text: 'custom', tag: 'button' }); - await driver.fill( - 'input[data-testid="slippage-buttons__custom-slippage"]', - '20', - ); - await driver.waitForSelector({ - css: '[class*="slippage-buttons__error-text"]', - text: 'Slippage amount is too high and will result in a bad rate. Please reduce your slippage tolerance to a value below 15%.', + await checkNotification(driver, { + title: 'Token added manually', + text: 'Verify this token on Etherscan and make sure it is the token you want to trade.', }); - assert.equal(await reviewSwapButton.isEnabled(), false); - await driver.fill( - 'input[data-testid="slippage-buttons__custom-slippage"]', - '4', - ); - assert.equal(await reviewSwapButton.isEnabled(), true); + }, + ); + }); + it('tests notifications for slippage', async function () { + await withFixtures( + { + ...withFixturesOptions, + title: this.test.title, + }, + async ({ driver }) => { + await loadExtension(driver); + await buildQuote(driver, { + amount: '.0001', + swapTo: 'DAI', + }); + await driver.clickElement('[title="Transaction settings"]'); + await driver.clickElement({ text: 'custom', tag: 'button' }); + await driver.fill('input[data-testid*="slippage"]', '0'); + await checkNotification(driver, { + title: 'Sourcing zero-slippage providers', + text: 'There are fewer zero-slippage quote providers which will result in a less competitive quote.', + }); + await driver.fill('input[data-testid*="slippage"]', '1'); + await checkNotification(driver, { + title: 'Increase slippage to avoid transaction failure', + text: 'Max slippage is too low which may cause your transaction to fail.', + }); + await driver.fill('input[data-testid*="slippage"]', '15'); + await checkNotification(driver, { + title: 'Very high slippage', + text: 'The slippage entered is considered very high and may result in a bad rate', + }); + await driver.fill('input[data-testid*="slippage"]', '20'); + await checkNotification(driver, { + title: 'Reduce slippage to continue', + text: 'Slippage tolerance must be 15% or less. Anything higher will result in a bad rate.', + }); + await driver.fill('input[data-testid*="slippage"]', '4'); }, ); }); diff --git a/test/jest/mock-store.js b/test/jest/mock-store.js index 80934403b..ef05b7ba3 100644 --- a/test/jest/mock-store.js +++ b/test/jest/mock-store.js @@ -252,6 +252,7 @@ export const createSwapsMockStore = () => { }, }, selectedAddress: '0x0dcd5d886577d5081b0c52e242ef29e70be3e7bc', + currentLocale: 'en', keyringTypes: [KeyringType.imported, KeyringType.hdKeyTree], keyrings: [ { @@ -288,6 +289,10 @@ export const createSwapsMockStore = () => { mobileActive: true, extensionActive: true, }, + swapRedesign: { + mobileActive: true, + extensionActive: true, + }, }, quotes: { TEST_AGG_1: { diff --git a/ui/components/app/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap b/ui/components/app/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap index a08846c4d..a993864ba 100644 --- a/ui/components/app/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap +++ b/ui/components/app/confirm-gas-display/__snapshots__/confirm-gas-display.test.js.snap @@ -28,6 +28,7 @@ exports[`ConfirmGasDisplay should match snapshot 1`] = `
Content rendered to the right diff --git a/ui/components/ui/list-item/list-item.component.js b/ui/components/ui/list-item/list-item.component.js index 9a13cbaf1..eb851e9f8 100644 --- a/ui/components/ui/list-item/list-item.component.js +++ b/ui/components/ui/list-item/list-item.component.js @@ -38,7 +38,9 @@ export default function ListItem({ {React.isValidElement(title) ? ( title ) : ( -
+ {t('swapGasFeesSummary', [getTranslatedNetworkName()])} +
++ {t('swapGasFeesDetails')} +
+ + > + } + /> +