From cc3c72accf981d82e6e175b86a0f74dbbcdeaf88 Mon Sep 17 00:00:00 2001 From: Andrei Ashikhmin Date: Sat, 19 Oct 2024 16:32:22 +0700 Subject: [PATCH 1/6] fix: reduce updateBalance calls --- DashSyncCurrentCommit | 2 +- DashWallet.xcodeproj/project.pbxproj | 60 ++++++++++--------- .../Models/CoinJoin/CoinJoinService.swift | 25 +++++--- Podfile | 20 ++++--- Podfile.lock | 36 +++++------ 5 files changed, 81 insertions(+), 62 deletions(-) diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index 64bf52c50..0f980e285 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -03698d4a7b17cda10bfbbd104fd7557fddf13b76 +1b5af0dbe136f129e590264f5b446b4471b175b1 diff --git a/DashWallet.xcodeproj/project.pbxproj b/DashWallet.xcodeproj/project.pbxproj index baa210dfa..1432df1ea 100644 --- a/DashWallet.xcodeproj/project.pbxproj +++ b/DashWallet.xcodeproj/project.pbxproj @@ -1051,7 +1051,7 @@ C9D2C70C2A320AA000D15901 /* DWUpholdLogoutTutorialViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A9FFE652230FF4600956D5F /* DWUpholdLogoutTutorialViewController.m */; }; C9D2C70D2A320AA000D15901 /* CBAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47CF46A429654E190067B6EE /* CBAccount.swift */; }; C9D2C70E2A320AA000D15901 /* Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AF180429070B720025803E /* Types.swift */; }; - C9D2C70F2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C70F2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C7112A320AA000D15901 /* Coinbase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4774DCDA28F3FA9C008CF87D /* Coinbase.swift */; }; C9D2C7122A320AA000D15901 /* SyncModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F452072A11F28600825057 /* SyncModel.swift */; }; C9D2C7132A320AA000D15901 /* ReceiveContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAA29DC1098001BC549 /* ReceiveContentView.swift */; }; @@ -1071,7 +1071,7 @@ C9D2C7242A320AA000D15901 /* WKWebView+CrowdNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110D1780298BA9AF005BEB30 /* WKWebView+CrowdNode.swift */; }; C9D2C7252A320AA000D15901 /* SyncingActivityMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47FA3AFE29350929008D58DC /* SyncingActivityMonitor.swift */; }; C9D2C7262A320AA000D15901 /* EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAF29DC27F4001BC549 /* EmptyView.swift */; }; - C9D2C7272A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C7272A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C7282A320AA000D15901 /* DWQRScanModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AC92C891FEB0B8B008CAEE0 /* DWQRScanModel.m */; }; C9D2C72A2A320AA000D15901 /* SyncView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F451F62A0CAE1300825057 /* SyncView.swift */; }; C9D2C72B2A320AA000D15901 /* SuccessfulOperationStatusViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47522F4F2927CB9000EE143E /* SuccessfulOperationStatusViewController.swift */; }; @@ -1103,7 +1103,7 @@ C9D2C7492A320AA000D15901 /* DWCurrencyObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AA87CF926E5681100F0CEA6 /* DWCurrencyObject.m */; }; C9D2C74A2A320AA000D15901 /* ShortcutsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94F5E8F29D4060A0034FD57 /* ShortcutsView.swift */; }; C9D2C74B2A320AA000D15901 /* DWFormSectionModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A9FFE3E2230FF4600956D5F /* DWFormSectionModel.m */; }; - C9D2C74C2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C74C2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C74D2A320AA000D15901 /* CoinbasePlaceBuyOrderResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFA628C896BC000427E7 /* CoinbasePlaceBuyOrderResponse.swift */; }; C9D2C74E2A320AA000D15901 /* ExploreMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BDC28C1305E00490F5E /* ExploreMapView.swift */; }; C9D2C74F2A320AA000D15901 /* DWSeedPhraseRow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AD1CE9322DD078600C99324 /* DWSeedPhraseRow.m */; }; @@ -1127,7 +1127,7 @@ C9D2C7642A320AA000D15901 /* BasePageSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F2C67C28602D4F00C2B774 /* BasePageSheetViewController.swift */; }; C9D2C7662A320AA000D15901 /* CrowdNodeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 119E8D0329051F9900D406C1 /* CrowdNodeRequest.swift */; }; C9D2C7672A320AA000D15901 /* CoinbaseExchangeRateResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFAF28C896BC000427E7 /* CoinbaseExchangeRateResponse.swift */; }; - C9D2C7692A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C7692A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C76A2A320AA000D15901 /* CrowdNodePortalItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 117728A2297A7D24006F1553 /* CrowdNodePortalItem.swift */; }; C9D2C76B2A320AA000D15901 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C661B528FE75A700028A8D /* BaseViewController.swift */; }; C9D2C76C2A320AA000D15901 /* AccountListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4751CABF296EFD2900F63AC4 /* AccountListController.swift */; }; @@ -1179,13 +1179,13 @@ C9D2C7A62A320AA000D15901 /* PointOfUseInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8C1028C5430300490F5E /* PointOfUseInfoViewController.swift */; }; C9D2C7A72A320AA000D15901 /* ActionButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C661B328FDCF7800028A8D /* ActionButtonViewController.swift */; }; C9D2C7A82A320AA000D15901 /* BuySellServiceItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4774DCE428F4668B008CF87D /* BuySellServiceItemCell.swift */; }; - C9D2C7AA2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C7AA2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C7AB2A320AA000D15901 /* DWBaseFormTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A7A7BC82347E0D700451078 /* DWBaseFormTableViewCell.m */; }; C9D2C7AC2A320AA000D15901 /* AccountCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4751CAC6296FAEBB00F63AC4 /* AccountCell.swift */; }; C9D2C7AD2A320AA000D15901 /* DWTransactionListDataProviderStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A913EA723A79AD2006A2A59 /* DWTransactionListDataProviderStub.m */; }; C9D2C7B02A320AA000D15901 /* DWExploreHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BE128C1305E00490F5E /* DWExploreHeaderView.m */; }; C9D2C7B12A320AA000D15901 /* CoinbaseBaseIDForCurrencyResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFA028C896BC000427E7 /* CoinbaseBaseIDForCurrencyResponse.swift */; }; - C9D2C7B22A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C7B22A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C7B32A320AA000D15901 /* SpecifyAmountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AC8412297822E000BD1B49 /* SpecifyAmountViewController.swift */; }; C9D2C7B42A320AA000D15901 /* DWUpholdTransactionObject+DWView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFCB9C323BE76EC00FF59A6 /* DWUpholdTransactionObject+DWView.m */; }; C9D2C7B62A320AA000D15901 /* CrowdNodeDepositTx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 114CFECF296469D9005F421B /* CrowdNodeDepositTx.swift */; }; @@ -1198,7 +1198,7 @@ C9D2C7BF2A320AA000D15901 /* TerritoriesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A50F3D29192F8D00C70123 /* TerritoriesListViewController.swift */; }; C9D2C7C02A320AA000D15901 /* HomeHeaderModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F4520A2A1209D100825057 /* HomeHeaderModel.swift */; }; C9D2C7C12A320AA000D15901 /* TerritoryListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C6E6DF2919578C003FEDF2 /* TerritoryListModel.swift */; }; - C9D2C7C22A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C7C22A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C7C32A320AA000D15901 /* DWDPRegistrationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFF01DA243F4559003718DC /* DWDPRegistrationStatus.m */; }; C9D2C7C42A320AA000D15901 /* CurrencyExchanger_Objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 472D13EC299E6579006903F1 /* CurrencyExchanger_Objc.m */; }; C9D2C7C52A320AA000D15901 /* GiftCardInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8C0D28C540C100490F5E /* GiftCardInfoViewController.swift */; }; @@ -1206,7 +1206,7 @@ C9D2C7C72A320AA000D15901 /* BuySellPortalModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 478A2C7028DC554200AD1420 /* BuySellPortalModel.swift */; }; C9D2C7C92A320AA000D15901 /* BuyDashViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 478C98252942DC2700FAA0F0 /* BuyDashViewController.swift */; }; C9D2C7CA2A320AA000D15901 /* DWModalDismissalAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A0C69CF23143435001B8C90 /* DWModalDismissalAnimation.m */; }; - C9D2C7CB2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C7CB2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C7CD2A320AA000D15901 /* UIViewController+DashWallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47CDEECD294A3CF2008AE06D /* UIViewController+DashWallet.swift */; }; C9D2C7CE2A320AA000D15901 /* CrowdNodeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 470617D5299A671900DCC667 /* CrowdNodeCell.swift */; }; C9D2C7CF2A320AA000D15901 /* MerchantListLocationOffCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BD128C1305E00490F5E /* MerchantListLocationOffCell.swift */; }; @@ -1310,7 +1310,7 @@ C9D2C8472A320AA000D15901 /* DWBaseTransactionListDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A913EAD23A7AC86006A2A59 /* DWBaseTransactionListDataProvider.m */; }; C9D2C8482A320AA000D15901 /* CoinbaseTransactionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFA828C896BC000427E7 /* CoinbaseTransactionsRequest.swift */; }; C9D2C8492A320AA000D15901 /* DWAppRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A9CEBAC22E1DA4000A50237 /* DWAppRootViewController.m */; }; - C9D2C84A2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C84A2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C84B2A320AA000D15901 /* UITableView+DashWallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F005FE297164600029EB10 /* UITableView+DashWallet.swift */; }; C9D2C84C2A320AA000D15901 /* TransferAmountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C661B128FDC72700028A8D /* TransferAmountViewController.swift */; }; C9D2C84D2A320AA000D15901 /* ShortcutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94F5E8D29D404850034FD57 /* ShortcutCell.swift */; }; @@ -1335,7 +1335,7 @@ C9D2C8642A320AA000D15901 /* AppliedFiltersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C6E6E4291A68B6003FEDF2 /* AppliedFiltersView.swift */; }; C9D2C8652A320AA000D15901 /* DWCaptureSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A7A7BAD234770C900451078 /* DWCaptureSessionManager.m */; }; C9D2C8662A320AA000D15901 /* DWDataMigrationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A11F59E2194BD6200E7B563 /* DWDataMigrationManager.m */; }; - C9D2C86A2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C86A2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C86B2A320AA000D15901 /* AmountPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472D13E5299E3C81006903F1 /* AmountPreviewView.swift */; }; C9D2C86C2A320AA000D15901 /* ModalNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759D513292FEFFB002F20DC /* ModalNavigationController.swift */; }; C9D2C86E2A320AA000D15901 /* TransferAmountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A50F3A2913BC0900C70123 /* TransferAmountModel.swift */; }; @@ -1370,7 +1370,7 @@ C9D2C8952A320AA000D15901 /* ConvertCryptoOrderPreviewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4751CACF2970224D00F63AC4 /* ConvertCryptoOrderPreviewModel.swift */; }; C9D2C8972A320AA000D15901 /* RatesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A2E3A82972B15F0032A63B /* RatesProvider.swift */; }; C9D2C8982A320AA000D15901 /* CBAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A2A2E8293E612900938DB7 /* CBAuth.swift */; }; - C9D2C8992A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C8992A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C89A2A320AA000D15901 /* CoinbaseCreateAddressesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFAE28C896BC000427E7 /* CoinbaseCreateAddressesRequest.swift */; }; C9D2C89B2A320AA000D15901 /* DWImportWalletInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A10EB342358996700C38B61 /* DWImportWalletInfoViewController.m */; }; C9D2C89D2A320AA000D15901 /* SyncingAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F451ED2A0BF1F500825057 /* SyncingAlertContentView.swift */; }; @@ -1424,7 +1424,7 @@ C9D2C8DD2A320AA000D15901 /* AtmDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BD528C1305E00490F5E /* AtmDataProvider.swift */; }; C9D2C8DE2A320AA000D15901 /* GettingStartedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110C67942921147F006B580C /* GettingStartedViewController.swift */; }; C9D2C8DF2A320AA000D15901 /* NetworkUnavailableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477A963D292CD27D0013605B /* NetworkUnavailableView.swift */; }; - C9D2C8E02A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C9D2C8E02A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C9D2C8E12A320AA000D15901 /* DWLockScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A63004D2328F37C00827825 /* DWLockScreenViewController.m */; }; C9D2C8E22A320AA000D15901 /* UpholdTransferViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4789D2302981069700BAFEFA /* UpholdTransferViewController.swift */; }; C9D2C8E32A320AA000D15901 /* DWVerifySeedPhraseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AD1CE8322DC9B5D00C99324 /* DWVerifySeedPhraseViewController.m */; }; @@ -1488,7 +1488,7 @@ C9D2C9272A320AA000D15901 /* SyncView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A4E531922EA382B00E5168A /* SyncView.xib */; }; C9D2C9292A320AA000D15901 /* BackupInfoItemView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9F42FB529DD8702001BC549 /* BackupInfoItemView.xib */; }; C9D2C92A2A320AA000D15901 /* explore.db in Resources */ = {isa = PBXBuildFile; fileRef = 47AE8BAF28BFF28400490F5E /* explore.db */; }; - C9D2C92B2A320AA000D15901 /* (null) in Resources */ = {isa = PBXBuildFile; }; + C9D2C92B2A320AA000D15901 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; C9D2C92C2A320AA000D15901 /* Coinbase.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0F3693812919A70B007F4E91 /* Coinbase.storyboard */; }; C9D2C92E2A320AA000D15901 /* ImportWalletInfo.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2A10EB3D2358BDA500C38B61 /* ImportWalletInfo.storyboard */; }; C9D2C92F2A320AA000D15901 /* ReceiveContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9F42FAC29DC115A001BC549 /* ReceiveContentView.xib */; }; @@ -1546,7 +1546,7 @@ C9FAABB52AB793CE00878224 /* BuySellPortal.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C9FAABB42AB793CE00878224 /* BuySellPortal.storyboard */; }; C9FAABB72AB799AE00878224 /* UpholdPortalModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FAABB62AB799AE00878224 /* UpholdPortalModel.swift */; }; CC5F88E358330F8EE192D5BE /* libPods-DashWalletScreenshotsUITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CDD4C961516ED20BC9F01FA /* libPods-DashWalletScreenshotsUITests.a */; }; - DE3A167A235B79D705C0A962 /* (null) in Frameworks */ = {isa = PBXBuildFile; }; + DE3A167A235B79D705C0A962 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; FB248B5D1F73803100405AE0 /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB248B5C1F73803100405AE0 /* UserNotifications.framework */; }; FB248B631F79BB7C00405AE0 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB248B621F79BB7C00405AE0 /* SafariServices.framework */; }; FB2E5537218BA161003A1B7C /* DWVersionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FB2E5536218BA161003A1B7C /* DWVersionManager.m */; }; @@ -3128,7 +3128,7 @@ 222E7F561C46E9B8009AB45D /* Security.framework in Frameworks */, 222040C61C1A1940005CE1C3 /* WebKit.framework in Frameworks */, 22B6A4481C0E963900673913 /* libbz2.tbd in Frameworks */, - DE3A167A235B79D705C0A962 /* (null) in Frameworks */, + DE3A167A235B79D705C0A962 /* BuildFile in Frameworks */, A90D08EA4AA9019A2D806A9C /* libPods-dashwallet.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -8025,7 +8025,7 @@ C9D2C9272A320AA000D15901 /* SyncView.xib in Resources */, C9D2C9292A320AA000D15901 /* BackupInfoItemView.xib in Resources */, C9D2C92A2A320AA000D15901 /* explore.db in Resources */, - C9D2C92B2A320AA000D15901 /* (null) in Resources */, + C9D2C92B2A320AA000D15901 /* BuildFile in Resources */, C9D2C92C2A320AA000D15901 /* Coinbase.storyboard in Resources */, 75889B892AD2DF0200C17F5D /* CoinJoin.storyboard in Resources */, C9D2C92E2A320AA000D15901 /* ImportWalletInfo.storyboard in Resources */, @@ -8345,6 +8345,7 @@ "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf_Privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.swift.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/gRPC/gRPCCertificates.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", ); @@ -8356,6 +8357,7 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleUtilities_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FBLPromises_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Protobuf_Privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SQLite.swift.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gRPCCertificates.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", ); @@ -8413,6 +8415,7 @@ "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUtilities/GoogleUtilities_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/PromisesObjC/FBLPromises_Privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf_Privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/SQLite.swift/SQLite.swift.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/gRPC/gRPCCertificates.bundle", ); name = "[CP] Copy Pods Resources"; @@ -8423,6 +8426,7 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleUtilities_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FBLPromises_Privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Protobuf_Privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SQLite.swift.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gRPCCertificates.bundle", ); runOnlyForDeploymentPostprocessing = 0; @@ -9236,7 +9240,7 @@ 75A8C1672AE5734A0042256E /* UsernameRequest.swift in Sources */, C9D2C70D2A320AA000D15901 /* CBAccount.swift in Sources */, C9D2C70E2A320AA000D15901 /* Types.swift in Sources */, - C9D2C70F2A320AA000D15901 /* (null) in Sources */, + C9D2C70F2A320AA000D15901 /* BuildFile in Sources */, C943B33B2A408CED00AF23C5 /* DWUploadAvatarChildView.m in Sources */, C9D2C7112A320AA000D15901 /* Coinbase.swift in Sources */, C9D2C7122A320AA000D15901 /* SyncModel.swift in Sources */, @@ -9267,7 +9271,7 @@ C9D2C7242A320AA000D15901 /* WKWebView+CrowdNode.swift in Sources */, C9D2C7252A320AA000D15901 /* SyncingActivityMonitor.swift in Sources */, C9D2C7262A320AA000D15901 /* EmptyView.swift in Sources */, - C9D2C7272A320AA000D15901 /* (null) in Sources */, + C9D2C7272A320AA000D15901 /* BuildFile in Sources */, C9D2C7282A320AA000D15901 /* DWQRScanModel.m in Sources */, C943B3292A408CED00AF23C5 /* DWExternalSourceViewController.m in Sources */, C9D2C72A2A320AA000D15901 /* SyncView.swift in Sources */, @@ -9322,7 +9326,7 @@ C943B50B2A40A54600AF23C5 /* DWDPSearchItemsFactory.m in Sources */, C9D2C74A2A320AA000D15901 /* ShortcutsView.swift in Sources */, C9D2C74B2A320AA000D15901 /* DWFormSectionModel.m in Sources */, - C9D2C74C2A320AA000D15901 /* (null) in Sources */, + C9D2C74C2A320AA000D15901 /* BuildFile in Sources */, C9D2C74D2A320AA000D15901 /* CoinbasePlaceBuyOrderResponse.swift in Sources */, C9D2C74E2A320AA000D15901 /* ExploreMapView.swift in Sources */, C943B32F2A408CED00AF23C5 /* DWSaveAlertViewController.m in Sources */, @@ -9365,7 +9369,7 @@ C9D2C7662A320AA000D15901 /* CrowdNodeRequest.swift in Sources */, 75EBAA0A2BB9791B004488E3 /* Icon.swift in Sources */, C9D2C7672A320AA000D15901 /* CoinbaseExchangeRateResponse.swift in Sources */, - C9D2C7692A320AA000D15901 /* (null) in Sources */, + C9D2C7692A320AA000D15901 /* BuildFile in Sources */, C9D2C76A2A320AA000D15901 /* CrowdNodePortalItem.swift in Sources */, C943B4C82A40A54600AF23C5 /* DWSearchStateViewController.m in Sources */, C9D2C76B2A320AA000D15901 /* BaseViewController.swift in Sources */, @@ -9450,7 +9454,7 @@ C9D2C7A72A320AA000D15901 /* ActionButtonViewController.swift in Sources */, C9D2C7A82A320AA000D15901 /* BuySellServiceItemCell.swift in Sources */, C956AF122A5B5949002FAB75 /* PasteboardContentView.swift in Sources */, - C9D2C7AA2A320AA000D15901 /* (null) in Sources */, + C9D2C7AA2A320AA000D15901 /* BuildFile in Sources */, C943B5002A40A54600AF23C5 /* DWDPTxItemView.m in Sources */, C9D2C7AB2A320AA000D15901 /* DWBaseFormTableViewCell.m in Sources */, C9D2C7AC2A320AA000D15901 /* AccountCell.swift in Sources */, @@ -9461,7 +9465,7 @@ C9D2C7B02A320AA000D15901 /* DWExploreHeaderView.m in Sources */, 759609242C455B2000F3BF04 /* SendIntro.swift in Sources */, C9D2C7B12A320AA000D15901 /* CoinbaseBaseIDForCurrencyResponse.swift in Sources */, - C9D2C7B22A320AA000D15901 /* (null) in Sources */, + C9D2C7B22A320AA000D15901 /* BuildFile in Sources */, C9D2C7B32A320AA000D15901 /* SpecifyAmountViewController.swift in Sources */, C943B4EA2A40A54600AF23C5 /* DWUserProfileViewController.m in Sources */, C943B5922A40ED7B00AF23C5 /* DWTextField.m in Sources */, @@ -9483,7 +9487,7 @@ C9D2C7C02A320AA000D15901 /* HomeHeaderModel.swift in Sources */, C943B5942A40ED7B00AF23C5 /* DWPlanetarySystemView.m in Sources */, C9D2C7C12A320AA000D15901 /* TerritoryListModel.swift in Sources */, - C9D2C7C22A320AA000D15901 /* (null) in Sources */, + C9D2C7C22A320AA000D15901 /* BuildFile in Sources */, C9D2C7C32A320AA000D15901 /* DWDPRegistrationStatus.m in Sources */, C9D2C7C42A320AA000D15901 /* CurrencyExchanger_Objc.m in Sources */, 7573C2E12B01103900F4C347 /* VotingFilterItemSelectableCell.swift in Sources */, @@ -9496,7 +9500,7 @@ C9D2C7C92A320AA000D15901 /* BuyDashViewController.swift in Sources */, C956AF0D2A5B592E002FAB75 /* TappableLabel.swift in Sources */, C9D2C7CA2A320AA000D15901 /* DWModalDismissalAnimation.m in Sources */, - C9D2C7CB2A320AA000D15901 /* (null) in Sources */, + C9D2C7CB2A320AA000D15901 /* BuildFile in Sources */, C9D2C7CD2A320AA000D15901 /* UIViewController+DashWallet.swift in Sources */, C9D2C7CE2A320AA000D15901 /* CrowdNodeCell.swift in Sources */, 751B61C62ADFFD0A00D1C2EF /* IntegrationViewController+Coinbase.swift in Sources */, @@ -9651,7 +9655,7 @@ 75A664D82B09F1EA007EFD16 /* VotingInfoViewController.swift in Sources */, C943B3372A408CED00AF23C5 /* DWEditProfileTextFieldCell.m in Sources */, C9D2C8492A320AA000D15901 /* DWAppRootViewController.m in Sources */, - C9D2C84A2A320AA000D15901 /* (null) in Sources */, + C9D2C84A2A320AA000D15901 /* BuildFile in Sources */, 7513DA882AB175E0005D55F6 /* TopperViewModel.swift in Sources */, C9D2C84B2A320AA000D15901 /* UITableView+DashWallet.swift in Sources */, C9D2C84C2A320AA000D15901 /* TransferAmountViewController.swift in Sources */, @@ -9685,7 +9689,7 @@ C9D2C8652A320AA000D15901 /* DWCaptureSessionManager.m in Sources */, C9D2C8662A320AA000D15901 /* DWDataMigrationManager.m in Sources */, 7502A4872AE401EF00ACDDD3 /* UsernameVotingViewController.swift in Sources */, - C9D2C86A2A320AA000D15901 /* (null) in Sources */, + C9D2C86A2A320AA000D15901 /* BuildFile in Sources */, C943B51F2A40A54600AF23C5 /* DWSuccessInvitationView.m in Sources */, C9D2C86B2A320AA000D15901 /* AmountPreviewView.swift in Sources */, 75CDD7812C0898E400F433D2 /* Shape.swift in Sources */, @@ -9742,7 +9746,7 @@ C9D2C8972A320AA000D15901 /* RatesProvider.swift in Sources */, C9D2C8982A320AA000D15901 /* CBAuth.swift in Sources */, C943B51C2A40A54600AF23C5 /* SuccessInvitationViewController.swift in Sources */, - C9D2C8992A320AA000D15901 /* (null) in Sources */, + C9D2C8992A320AA000D15901 /* BuildFile in Sources */, C9D2C89A2A320AA000D15901 /* CoinbaseCreateAddressesRequest.swift in Sources */, C943B3382A408CED00AF23C5 /* DWEditProfileAvatarView.m in Sources */, C943B5582A40DA3700AF23C5 /* DWFullScreenModalControllerViewController.m in Sources */, @@ -9824,7 +9828,7 @@ C943B50E2A40A54600AF23C5 /* DWConfirmInvitationContentView.m in Sources */, C9D2C8DE2A320AA000D15901 /* GettingStartedViewController.swift in Sources */, C9D2C8DF2A320AA000D15901 /* NetworkUnavailableView.swift in Sources */, - C9D2C8E02A320AA000D15901 /* (null) in Sources */, + C9D2C8E02A320AA000D15901 /* BuildFile in Sources */, 751B61C32ADFF9AE00D1C2EF /* UpholdPortalModel.swift in Sources */, C943B4FC2A40A54600AF23C5 /* DWDPEstablishedContactNotificationObject.m in Sources */, C9D2C8E12A320AA000D15901 /* DWLockScreenViewController.m in Sources */, diff --git a/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift b/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift index eeaab59d9..e7f301f60 100644 --- a/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift +++ b/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift @@ -89,6 +89,7 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { private var coinJoinManager: DSCoinJoinManager? = nil private var hasAnonymizableBalance: Bool = false private var timeSkew: TimeInterval = 0 + private var savedBalance: UInt64 = 0 private var workingChain: ChainType private var chainModeKey: String { @@ -148,7 +149,7 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { } let account = DWEnvironment.sharedInstance().currentAccount - updateBalance(balance: account.balance) + await updateBalance(balance: account.balance) updateState(mode: mode, timeSkew: self.timeSkew, hasAnonymizableBalance: self.hasAnonymizableBalance, networkStatus: self.networkStatus, chain: DWEnvironment.sharedInstance().currentChain) } @@ -164,7 +165,7 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { coinJoinManager.start() } - private func startMixing() { + private func startMixing() async { guard let coinJoinManager = self.coinJoinManager else { return } if !coinJoinManager.startMixing() { @@ -172,7 +173,7 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { } else { coinJoinManager.refreshUnusedKeys() coinJoinManager.initMasternodeGroup() - coinJoinManager.doAutomaticDenominating(withReport: true) + await coinJoinManager.doAutomaticDenominating(withDryRun: false) } } @@ -214,12 +215,13 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { return self.coinJoinManager } - private func updateBalance(balance: UInt64) { + private func updateBalance(balance: UInt64) async { guard let coinJoinManager = self.coinJoinManager else { return } + self.savedBalance = balance coinJoinManager.updateOptions(withAmount: balance) DSLogger.log("CoinJoin: total balance: \(balance)") - let canDenominate = coinJoinManager.doAutomaticDenominating(withDryRun: true) + let canDenominate = await coinJoinManager.doAutomaticDenominating(withDryRun: true) let coinJoinBalance = coinJoinManager.getBalance() DSLogger.log("CoinJoin: mixed balance: \(coinJoinBalance.anonymized)") @@ -308,7 +310,9 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { if state == .mixing && previousMixingStatus != .mixing { // start mixing prepareMixing() - startMixing() + Task { + await startMixing() + } } else if previousMixingStatus == .mixing && state != .mixing { // finish mixing stopMixing() @@ -368,7 +372,14 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { private func configureObservers() { NotificationCenter.default.publisher(for: NSNotification.Name.DSWalletBalanceDidChange) .sink { [weak self] _ in - self?.updateBalance(balance: DWEnvironment.sharedInstance().currentAccount.balance) + guard let self = self else { return } + let balance = DWEnvironment.sharedInstance().currentAccount.balance + + if self.savedBalance != balance { + Task { + await self.updateBalance(balance: balance) + } + } } .store(in: &cancellableBag) diff --git a/Podfile b/Podfile index 82fe377e5..8bb4be213 100644 --- a/Podfile +++ b/Podfile @@ -5,8 +5,8 @@ target 'dashwallet' do pod 'DashSync', :path => '../DashSync/' pod 'DashSharedCore', :path => '../dash-shared-core/' - pod 'SQLite.swift', '~> 0.13.3' - pod 'SQLiteMigrationManager.swift' + pod 'SQLite.swift', '~> 0.15.3' + pod 'SQLiteMigrationManager.swift', '0.8.3' pod 'CloudInAppMessaging', '0.1.0' pod 'FirebaseStorage', '8.15.0' pod 'Firebase/DynamicLinks' @@ -29,8 +29,8 @@ target 'dashpay' do pod 'DashSync', :path => '../DashSync/' pod 'DashSharedCore', :path => '../dash-shared-core/' - pod 'SQLite.swift', '~> 0.13.3' - pod 'SQLiteMigrationManager.swift' + pod 'SQLite.swift', '~> 0.15.3' + pod 'SQLiteMigrationManager.swift', '0.8.3' pod 'CloudInAppMessaging', '0.1.0' pod 'FirebaseStorage', '8.15.0' pod 'Firebase/DynamicLinks' @@ -85,10 +85,14 @@ post_install do |installer| end - # Hide warnings for specific pods - if ["gRPC"].include? target.name - target.build_configurations.each do |config| - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' + # Ensure the GCC_WARN_INHIBIT_ALL_WARNINGS flag is removed for BoringSSL-GRPC and BoringSSL-GRPC-iOS + if ['BoringSSL-GRPC', 'BoringSSL-GRPC-iOS'].include? target.name + target.source_build_phase.files.each do |file| + if file.settings && file.settings['COMPILER_FLAGS'] + flags = file.settings['COMPILER_FLAGS'].split + flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' } + file.settings['COMPILER_FLAGS'] = flags.join(' ') + end end end diff --git a/Podfile.lock b/Podfile.lock index e4d7ba00e..8d678b336 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -565,7 +565,7 @@ PODS: - abseil/base/base_internal - abseil/base/config - abseil/meta/type_traits - - Alamofire (5.9.1) + - Alamofire (5.10.0) - BlueCryptor (1.0.32) - BlueECC (1.2.5) - BlueRSA (1.0.200) @@ -591,7 +591,7 @@ PODS: - "!ProtoCompiler-gRPCPlugin (~> 1.0)" - DAPI-GRPC/Messages - gRPC-ProtoRPC - - DashSharedCore (0.4.16) + - DashSharedCore (0.4.17) - DashSync (0.1.0): - CocoaLumberjack (= 3.7.2) - DAPI-GRPC (= 0.22.0-dev.8) @@ -709,17 +709,17 @@ PODS: - nanopb/decode (2.30908.0) - nanopb/encode (2.30908.0) - PromisesObjC (2.4.0) - - Protobuf (3.27.2) + - Protobuf (3.28.2) - SDWebImage (5.13.2): - SDWebImage/Core (= 5.13.2) - SDWebImage/Core (5.13.2) - - SQLite.swift (0.13.3): - - SQLite.swift/standard (= 0.13.3) - - SQLite.swift/standard (0.13.3) - - SQLiteMigrationManager.swift (0.8.1): - - SQLiteMigrationManager.swift/standard (= 0.8.1) - - SQLiteMigrationManager.swift/standard (0.8.1): - - SQLite.swift (~> 0.13.0) + - SQLite.swift (0.15.3): + - SQLite.swift/standard (= 0.15.3) + - SQLite.swift/standard (0.15.3) + - SQLiteMigrationManager.swift (0.8.3): + - SQLiteMigrationManager.swift/standard (= 0.8.3) + - SQLiteMigrationManager.swift/standard (0.8.3): + - SQLite.swift (~> 0.15.3) - SSZipArchive (2.4.3) - SwiftJWT (3.6.200): - BlueCryptor (~> 1.0) @@ -746,8 +746,8 @@ DEPENDENCIES: - MMSegmentSlider (from `https://github.com/podkovyrin/MMSegmentSlider`, commit `2d91366`) - Moya (~> 15.0) - SDWebImage (= 5.13.2) - - SQLite.swift (~> 0.13.3) - - SQLiteMigrationManager.swift + - SQLite.swift (~> 0.15.3) + - SQLiteMigrationManager.swift (= 0.8.3) - SSZipArchive - SwiftJWT (= 3.6.200) - TOCropViewController (= 2.6.1) @@ -823,7 +823,7 @@ SPEC CHECKSUMS: "!ProtoCompiler": e9c09244955a8565817aa59a4787b6bb849a63c6 "!ProtoCompiler-gRPCPlugin": 755f0ee414a0d5f0028e0dcfe98c23bdbc3e6fa3 abseil: 926fb7a82dc6d2b8e1f2ed7f3a718bce691d1e46 - Alamofire: f36a35757af4587d8e4f4bfa223ad10be2422b8c + Alamofire: cd0b98508df05796dd2ff278f3bb055a631b5390 BlueCryptor: b0aee3d9b8f367b49b30de11cda90e1735571c24 BlueECC: 0d18e93347d3ec6d41416de21c1ffa4d4cd3c2cc BlueRSA: dfeef51db96bcc4edec654956c1581adbda4e6a3 @@ -832,7 +832,7 @@ SPEC CHECKSUMS: CocoaImageHashing: 8656031d0899abe6c1c415827de43e9798189c53 CocoaLumberjack: b7e05132ff94f6ae4dfa9d5bce9141893a21d9da DAPI-GRPC: 138d62523bbfe7e88a39896f1053c0bc12390d9f - DashSharedCore: 81d3327cbea4103114b768eed4d36e742417b63b + DashSharedCore: ae839c5f91a4e581a27090898f52ac512e0fee0c DashSync: 2438dbf626f13a8633ccc19c718c1c223c8ee831 DSDynamicOptions: 347cc5d2c4e080eb3de6a86719ad3d861b82adfc DWAlertController: 5f4cd8adf90336331c054857f709f5f8d4b16a5b @@ -857,10 +857,10 @@ SPEC CHECKSUMS: Moya: 138f0573e53411fb3dc17016add0b748dfbd78ee nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - Protobuf: fb2c13674723f76ff6eede14f78847a776455fa2 + Protobuf: 28c89b24435762f60244e691544ed80f50d82701 SDWebImage: 72f86271a6f3139cc7e4a89220946489d4b9a866 - SQLite.swift: 903bfa3bc9ab06345fdfbb578e34f47cfcf417da - SQLiteMigrationManager.swift: 5383578f5bc8955c06695e8bf04835ee0e6673a8 + SQLite.swift: 8d054987f02728cc912b0eb5a9659650573a65a2 + SQLiteMigrationManager.swift: b63bb5eaf834f8e8cc78b37fdf2ce064e35914cd SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef SwiftJWT: 88c412708f58c169d431d344c87bc79a87c830ae tinycbor: d4d71dddda1f8392fbb4249f63faf8552f327590 @@ -868,6 +868,6 @@ SPEC CHECKSUMS: TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863 UIViewController-KeyboardAdditions: a691dc7e63a49854d341455a778ee8497dfc4662 -PODFILE CHECKSUM: f2fa4cb9f3987af3acdd6a2624930750c1c1ddee +PODFILE CHECKSUM: b535dc7a434729d93abcb2df19da65e1f1e302e4 COCOAPODS: 1.15.2 From 7b5e2054890efa33e66bf00399a711542c057ab7 Mon Sep 17 00:00:00 2001 From: Andrei Ashikhmin Date: Sat, 19 Oct 2024 16:35:06 +0700 Subject: [PATCH 2/6] chore: XCode 16 fixes --- .../Explore Dash/Extensions/SQLite+ExloreDash.swift | 2 +- .../Explore Dash/Infrastructure/DAO Impl/AtmDAO.swift | 1 + .../Infrastructure/DAO Impl/MerchantDAO.swift | 1 + .../ExploreDatabaseConnection.swift | 2 +- .../Model/Entites/ExplorePointOfUse.swift | 1 + .../Models/Taxes/Address/AddressUserInfo.swift | 4 ++-- DashWallet/Sources/Models/Taxes/Tx/TxUserInfo.swift | 11 ++++++----- 7 files changed, 13 insertions(+), 9 deletions(-) diff --git a/DashWallet/Sources/Models/Explore Dash/Extensions/SQLite+ExloreDash.swift b/DashWallet/Sources/Models/Explore Dash/Extensions/SQLite+ExloreDash.swift index 601638887..cf6f85188 100644 --- a/DashWallet/Sources/Models/Explore Dash/Extensions/SQLite+ExloreDash.swift +++ b/DashWallet/Sources/Models/Explore Dash/Extensions/SQLite+ExloreDash.swift @@ -32,7 +32,7 @@ protocol RowDecodable { // MARK: - String + RowDecodable extension String: RowDecodable { - private static let territory = Expression("territory") + private static let territory = SQLite.Expression("territory") init(row: Row) { self.init(row[String.territory]!) diff --git a/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/AtmDAO.swift b/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/AtmDAO.swift index 7299f75d8..bc1a3ba2c 100644 --- a/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/AtmDAO.swift +++ b/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/AtmDAO.swift @@ -18,6 +18,7 @@ import CoreLocation import Foundation import SQLite +private typealias Expression = SQLite.Expression class AtmDAO: PointOfUseDAO { typealias Item = ExplorePointOfUse diff --git a/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/MerchantDAO.swift b/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/MerchantDAO.swift index 2b7d2229b..de30146e5 100644 --- a/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/MerchantDAO.swift +++ b/DashWallet/Sources/Models/Explore Dash/Infrastructure/DAO Impl/MerchantDAO.swift @@ -18,6 +18,7 @@ import CoreLocation import Foundation import SQLite +private typealias Expression = SQLite.Expression // MARK: - MerchantDAO diff --git a/DashWallet/Sources/Models/Explore Dash/Infrastructure/Database Connection/ExploreDatabaseConnection.swift b/DashWallet/Sources/Models/Explore Dash/Infrastructure/Database Connection/ExploreDatabaseConnection.swift index 23987bc2d..31ff726d5 100644 --- a/DashWallet/Sources/Models/Explore Dash/Infrastructure/Database Connection/ExploreDatabaseConnection.swift +++ b/DashWallet/Sources/Models/Explore Dash/Infrastructure/Database Connection/ExploreDatabaseConnection.swift @@ -71,6 +71,6 @@ class ExploreDatabaseConnection { } func execute(query: String) throws -> [Item] { - try db.prepare(query).prepareRowIterator().map { Item(row: $0) } + try db.prepareRowIterator(query).map { Item(row: $0) } } } diff --git a/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift b/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift index 3496fdf33..daf9ec686 100644 --- a/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift +++ b/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift @@ -17,6 +17,7 @@ import Foundation import SQLite +private typealias Expression = SQLite.Expression // MARK: - ExplorePointOfUse + Hashable diff --git a/DashWallet/Sources/Models/Taxes/Address/AddressUserInfo.swift b/DashWallet/Sources/Models/Taxes/Address/AddressUserInfo.swift index fe4015842..1c699c473 100644 --- a/DashWallet/Sources/Models/Taxes/Address/AddressUserInfo.swift +++ b/DashWallet/Sources/Models/Taxes/Address/AddressUserInfo.swift @@ -48,6 +48,6 @@ extension AddressUserInfo { extension AddressUserInfo { static var table: Table { Table("address_userinfo") } - static var txCategoryColumn: Expression { Expression("taxCategory") } - static var addressColumn: Expression { Expression("address") } + static var txCategoryColumn: SQLite.Expression { SQLite.Expression("taxCategory") } + static var addressColumn: SQLite.Expression { SQLite.Expression("address") } } diff --git a/DashWallet/Sources/Models/Taxes/Tx/TxUserInfo.swift b/DashWallet/Sources/Models/Taxes/Tx/TxUserInfo.swift index e201f3c14..bda193242 100644 --- a/DashWallet/Sources/Models/Taxes/Tx/TxUserInfo.swift +++ b/DashWallet/Sources/Models/Taxes/Tx/TxUserInfo.swift @@ -18,6 +18,7 @@ import Foundation import SQLite + extension TxUserInfoTaxCategory { var stringValue: String { switch self { @@ -109,11 +110,11 @@ extension TxUserInfo { extension TxUserInfo { static var table: Table { Table("tx_userinfo") } - static var txCategoryColumn: Expression { Expression("taxCategory") } - static var txHashColumn: Expression { Expression("txHash") } - static var txRateColumn: Expression { .init("rate") } - static var txRateCurrencyCodeColumn: Expression { .init("rateCurrencyCode") } - static var txRateMaximumFractionDigitsColumn: Expression { .init("rateMaximumFractionDigits") } + static var txCategoryColumn: SQLite.Expression { Expression("taxCategory") } + static var txHashColumn: SQLite.Expression { Expression("txHash") } + static var txRateColumn: SQLite.Expression { .init("rate") } + static var txRateCurrencyCodeColumn: SQLite.Expression { .init("rateCurrencyCode") } + static var txRateMaximumFractionDigitsColumn: SQLite.Expression { .init("rateMaximumFractionDigits") } } @objc From a9bae3c1504ee2b9db2db8109e2c6cc27ee41aa2 Mon Sep 17 00:00:00 2001 From: Andrei Ashikhmin Date: Mon, 21 Oct 2024 18:58:06 +0700 Subject: [PATCH 3/6] feat: join dashpay bottom sheet dialog --- DashWallet.xcodeproj/project.pbxproj | 94 +++++++++++------ .../username.letter.imageset/Contents.json | 23 +++++ .../username.letter.imageset/username.png | Bin 0 -> 646 bytes .../username.letter.imageset/username@2x.png | Bin 0 -> 1161 bytes .../username.letter.imageset/username@3x.png | Bin 0 -> 1677 bytes .../Models/CoinJoin/CoinJoinService.swift | 10 -- DashWallet/Sources/Models/UsernamePrefs.swift | 45 +++++++++ .../Models/Usernames/UsernamePrefs.swift | 45 +++++++++ .../Voting/DAO/UsernameRequestsDAO.swift | 2 +- .../Models/Voting/UsernameRequest.swift | 15 +-- .../Sources/UI/DashPay/DWDashPayConstants.m | 4 +- .../UI/DashPay/Items/Objects/DWDPTxObject.m | 4 +- .../JoinDashPayInfoDialog.swift | 28 ++++++ .../CreateUsername/JoinDashPayScreen.swift | 55 ++++++++++ .../Setup/CreateUsername/MixDashDialog.swift | 58 +++++++++++ .../RequestUsernameViewController.swift | 2 +- .../Usernames/RequestUsernameViewModel.swift | 18 +++- .../WelcomeToDashpayViewController.swift | 2 +- .../Sources/UI/Home/HomeViewController.swift | 5 - .../Home Header View/HomeHeaderView.swift | 15 +-- .../Sources/UI/Home/Views/HomeView.swift | 95 +++++------------- .../Sources/UI/Home/Views/HomeViewModel.swift | 6 +- .../UI/SwiftUI Components/Button.swift | 32 +++++- .../FeatureSingleItem.swift | 58 +++++++++++ .../SwiftUI Components/FeatureTopText.swift | 2 - .../UI/SwiftUI Components/TextIntro.swift | 65 ++++++++---- 26 files changed, 512 insertions(+), 171 deletions(-) create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/Contents.json create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/username.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/username@2x.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/username@3x.png create mode 100644 DashWallet/Sources/Models/UsernamePrefs.swift create mode 100644 DashWallet/Sources/Models/Usernames/UsernamePrefs.swift create mode 100644 DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayInfoDialog.swift create mode 100644 DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift create mode 100644 DashWallet/Sources/UI/DashPay/Setup/CreateUsername/MixDashDialog.swift create mode 100644 DashWallet/Sources/UI/SwiftUI Components/FeatureSingleItem.swift diff --git a/DashWallet.xcodeproj/project.pbxproj b/DashWallet.xcodeproj/project.pbxproj index 8c29ca591..532b0b48e 100644 --- a/DashWallet.xcodeproj/project.pbxproj +++ b/DashWallet.xcodeproj/project.pbxproj @@ -567,6 +567,11 @@ 754495DF2AE91D3500492817 /* UsernameRequestCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754495DE2AE91D3500492817 /* UsernameRequestCell.swift */; }; 754BEA122C0B6BD700E8C93C /* HomeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754BEA112C0B6BD700E8C93C /* HomeViewModel.swift */; }; 754BEA132C0B6BD700E8C93C /* HomeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754BEA112C0B6BD700E8C93C /* HomeViewModel.swift */; }; + 754C27C72CC3C0B900BA7B9F /* UsernamePrefs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754C27C52CC3C0B900BA7B9F /* UsernamePrefs.swift */; }; + 754C27CC2CC3C15B00BA7B9F /* FeatureSingleItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754C27CB2CC3C14F00BA7B9F /* FeatureSingleItem.swift */; }; + 754C27CD2CC3C15B00BA7B9F /* FeatureSingleItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754C27CB2CC3C14F00BA7B9F /* FeatureSingleItem.swift */; }; + 754C27CF2CC3C7AF00BA7B9F /* MixDashDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754C27CE2CC3C7AB00BA7B9F /* MixDashDialog.swift */; }; + 754C27D12CC3C82900BA7B9F /* JoinDashPayInfoDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754C27D02CC3C82300BA7B9F /* JoinDashPayInfoDialog.swift */; }; 755049A92C846299008FA7EB /* DWAboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 755049A72C846299008FA7EB /* DWAboutViewController.m */; }; 755049AA2C846299008FA7EB /* DWAboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 755049A72C846299008FA7EB /* DWAboutViewController.m */; }; 755049AC2C846576008FA7EB /* MenuItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755049AB2C846576008FA7EB /* MenuItemModel.swift */; }; @@ -616,6 +621,7 @@ 759609242C455B2000F3BF04 /* SendIntro.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759609222C455B2000F3BF04 /* SendIntro.swift */; }; 759ADD572BF3447400767ACD /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759ADD562BF3447400767ACD /* Button.swift */; }; 759ADD582BF3447400767ACD /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759ADD562BF3447400767ACD /* Button.swift */; }; + 759AFDE02CC63571007072D2 /* JoinDashPayScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759AFDDF2CC6356D007072D2 /* JoinDashPayScreen.swift */; }; 759C8F9F2B593589004B1305 /* CrowdNodeAPYView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */; }; 759C8FA02B593589004B1305 /* CrowdNodeAPYView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */; }; 75A0A3F32CA7DBCF003ED48B /* TimeUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A0A3F22CA7DBCF003ED48B /* TimeUtils.swift */; }; @@ -1052,7 +1058,7 @@ C9D2C70C2A320AA000D15901 /* DWUpholdLogoutTutorialViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A9FFE652230FF4600956D5F /* DWUpholdLogoutTutorialViewController.m */; }; C9D2C70D2A320AA000D15901 /* CBAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47CF46A429654E190067B6EE /* CBAccount.swift */; }; C9D2C70E2A320AA000D15901 /* Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AF180429070B720025803E /* Types.swift */; }; - C9D2C70F2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C70F2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C7112A320AA000D15901 /* Coinbase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4774DCDA28F3FA9C008CF87D /* Coinbase.swift */; }; C9D2C7122A320AA000D15901 /* SyncModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F452072A11F28600825057 /* SyncModel.swift */; }; C9D2C7132A320AA000D15901 /* ReceiveContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAA29DC1098001BC549 /* ReceiveContentView.swift */; }; @@ -1072,7 +1078,7 @@ C9D2C7242A320AA000D15901 /* WKWebView+CrowdNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110D1780298BA9AF005BEB30 /* WKWebView+CrowdNode.swift */; }; C9D2C7252A320AA000D15901 /* SyncingActivityMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47FA3AFE29350929008D58DC /* SyncingActivityMonitor.swift */; }; C9D2C7262A320AA000D15901 /* EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAF29DC27F4001BC549 /* EmptyView.swift */; }; - C9D2C7272A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C7272A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C7282A320AA000D15901 /* DWQRScanModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AC92C891FEB0B8B008CAEE0 /* DWQRScanModel.m */; }; C9D2C72A2A320AA000D15901 /* SyncView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F451F62A0CAE1300825057 /* SyncView.swift */; }; C9D2C72B2A320AA000D15901 /* SuccessfulOperationStatusViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47522F4F2927CB9000EE143E /* SuccessfulOperationStatusViewController.swift */; }; @@ -1104,7 +1110,7 @@ C9D2C7492A320AA000D15901 /* DWCurrencyObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AA87CF926E5681100F0CEA6 /* DWCurrencyObject.m */; }; C9D2C74A2A320AA000D15901 /* ShortcutsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94F5E8F29D4060A0034FD57 /* ShortcutsView.swift */; }; C9D2C74B2A320AA000D15901 /* DWFormSectionModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A9FFE3E2230FF4600956D5F /* DWFormSectionModel.m */; }; - C9D2C74C2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C74C2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C74D2A320AA000D15901 /* CoinbasePlaceBuyOrderResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFA628C896BC000427E7 /* CoinbasePlaceBuyOrderResponse.swift */; }; C9D2C74E2A320AA000D15901 /* ExploreMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BDC28C1305E00490F5E /* ExploreMapView.swift */; }; C9D2C74F2A320AA000D15901 /* DWSeedPhraseRow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AD1CE9322DD078600C99324 /* DWSeedPhraseRow.m */; }; @@ -1128,7 +1134,7 @@ C9D2C7642A320AA000D15901 /* BasePageSheetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F2C67C28602D4F00C2B774 /* BasePageSheetViewController.swift */; }; C9D2C7662A320AA000D15901 /* CrowdNodeRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 119E8D0329051F9900D406C1 /* CrowdNodeRequest.swift */; }; C9D2C7672A320AA000D15901 /* CoinbaseExchangeRateResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFAF28C896BC000427E7 /* CoinbaseExchangeRateResponse.swift */; }; - C9D2C7692A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C7692A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C76A2A320AA000D15901 /* CrowdNodePortalItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 117728A2297A7D24006F1553 /* CrowdNodePortalItem.swift */; }; C9D2C76B2A320AA000D15901 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C661B528FE75A700028A8D /* BaseViewController.swift */; }; C9D2C76C2A320AA000D15901 /* AccountListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4751CABF296EFD2900F63AC4 /* AccountListController.swift */; }; @@ -1180,13 +1186,13 @@ C9D2C7A62A320AA000D15901 /* PointOfUseInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8C1028C5430300490F5E /* PointOfUseInfoViewController.swift */; }; C9D2C7A72A320AA000D15901 /* ActionButtonViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C661B328FDCF7800028A8D /* ActionButtonViewController.swift */; }; C9D2C7A82A320AA000D15901 /* BuySellServiceItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4774DCE428F4668B008CF87D /* BuySellServiceItemCell.swift */; }; - C9D2C7AA2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C7AA2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C7AB2A320AA000D15901 /* DWBaseFormTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A7A7BC82347E0D700451078 /* DWBaseFormTableViewCell.m */; }; C9D2C7AC2A320AA000D15901 /* AccountCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4751CAC6296FAEBB00F63AC4 /* AccountCell.swift */; }; C9D2C7AD2A320AA000D15901 /* DWTransactionListDataProviderStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A913EA723A79AD2006A2A59 /* DWTransactionListDataProviderStub.m */; }; C9D2C7B02A320AA000D15901 /* DWExploreHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BE128C1305E00490F5E /* DWExploreHeaderView.m */; }; C9D2C7B12A320AA000D15901 /* CoinbaseBaseIDForCurrencyResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFA028C896BC000427E7 /* CoinbaseBaseIDForCurrencyResponse.swift */; }; - C9D2C7B22A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C7B22A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C7B32A320AA000D15901 /* SpecifyAmountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AC8412297822E000BD1B49 /* SpecifyAmountViewController.swift */; }; C9D2C7B42A320AA000D15901 /* DWUpholdTransactionObject+DWView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFCB9C323BE76EC00FF59A6 /* DWUpholdTransactionObject+DWView.m */; }; C9D2C7B62A320AA000D15901 /* CrowdNodeDepositTx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 114CFECF296469D9005F421B /* CrowdNodeDepositTx.swift */; }; @@ -1199,7 +1205,7 @@ C9D2C7BF2A320AA000D15901 /* TerritoriesListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A50F3D29192F8D00C70123 /* TerritoriesListViewController.swift */; }; C9D2C7C02A320AA000D15901 /* HomeHeaderModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F4520A2A1209D100825057 /* HomeHeaderModel.swift */; }; C9D2C7C12A320AA000D15901 /* TerritoryListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C6E6DF2919578C003FEDF2 /* TerritoryListModel.swift */; }; - C9D2C7C22A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C7C22A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C7C32A320AA000D15901 /* DWDPRegistrationStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFF01DA243F4559003718DC /* DWDPRegistrationStatus.m */; }; C9D2C7C42A320AA000D15901 /* CurrencyExchanger_Objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 472D13EC299E6579006903F1 /* CurrencyExchanger_Objc.m */; }; C9D2C7C52A320AA000D15901 /* GiftCardInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8C0D28C540C100490F5E /* GiftCardInfoViewController.swift */; }; @@ -1207,7 +1213,7 @@ C9D2C7C72A320AA000D15901 /* BuySellPortalModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 478A2C7028DC554200AD1420 /* BuySellPortalModel.swift */; }; C9D2C7C92A320AA000D15901 /* BuyDashViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 478C98252942DC2700FAA0F0 /* BuyDashViewController.swift */; }; C9D2C7CA2A320AA000D15901 /* DWModalDismissalAnimation.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A0C69CF23143435001B8C90 /* DWModalDismissalAnimation.m */; }; - C9D2C7CB2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C7CB2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C7CD2A320AA000D15901 /* UIViewController+DashWallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47CDEECD294A3CF2008AE06D /* UIViewController+DashWallet.swift */; }; C9D2C7CE2A320AA000D15901 /* CrowdNodeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 470617D5299A671900DCC667 /* CrowdNodeCell.swift */; }; C9D2C7CF2A320AA000D15901 /* MerchantListLocationOffCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BD128C1305E00490F5E /* MerchantListLocationOffCell.swift */; }; @@ -1310,7 +1316,7 @@ C9D2C8472A320AA000D15901 /* DWBaseTransactionListDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A913EAD23A7AC86006A2A59 /* DWBaseTransactionListDataProvider.m */; }; C9D2C8482A320AA000D15901 /* CoinbaseTransactionsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFA828C896BC000427E7 /* CoinbaseTransactionsRequest.swift */; }; C9D2C8492A320AA000D15901 /* DWAppRootViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A9CEBAC22E1DA4000A50237 /* DWAppRootViewController.m */; }; - C9D2C84A2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C84A2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C84B2A320AA000D15901 /* UITableView+DashWallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47F005FE297164600029EB10 /* UITableView+DashWallet.swift */; }; C9D2C84C2A320AA000D15901 /* TransferAmountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C661B128FDC72700028A8D /* TransferAmountViewController.swift */; }; C9D2C84D2A320AA000D15901 /* ShortcutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C94F5E8D29D404850034FD57 /* ShortcutCell.swift */; }; @@ -1335,7 +1341,7 @@ C9D2C8642A320AA000D15901 /* AppliedFiltersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47C6E6E4291A68B6003FEDF2 /* AppliedFiltersView.swift */; }; C9D2C8652A320AA000D15901 /* DWCaptureSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A7A7BAD234770C900451078 /* DWCaptureSessionManager.m */; }; C9D2C8662A320AA000D15901 /* DWDataMigrationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A11F59E2194BD6200E7B563 /* DWDataMigrationManager.m */; }; - C9D2C86A2A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C86A2A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C86B2A320AA000D15901 /* AmountPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472D13E5299E3C81006903F1 /* AmountPreviewView.swift */; }; C9D2C86C2A320AA000D15901 /* ModalNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4759D513292FEFFB002F20DC /* ModalNavigationController.swift */; }; C9D2C86E2A320AA000D15901 /* TransferAmountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A50F3A2913BC0900C70123 /* TransferAmountModel.swift */; }; @@ -1370,7 +1376,7 @@ C9D2C8952A320AA000D15901 /* ConvertCryptoOrderPreviewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4751CACF2970224D00F63AC4 /* ConvertCryptoOrderPreviewModel.swift */; }; C9D2C8972A320AA000D15901 /* RatesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A2E3A82972B15F0032A63B /* RatesProvider.swift */; }; C9D2C8982A320AA000D15901 /* CBAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47A2A2E8293E612900938DB7 /* CBAuth.swift */; }; - C9D2C8992A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C8992A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C89A2A320AA000D15901 /* CoinbaseCreateAddressesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F6EDFAE28C896BC000427E7 /* CoinbaseCreateAddressesRequest.swift */; }; C9D2C89B2A320AA000D15901 /* DWImportWalletInfoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A10EB342358996700C38B61 /* DWImportWalletInfoViewController.m */; }; C9D2C89D2A320AA000D15901 /* SyncingAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F451ED2A0BF1F500825057 /* SyncingAlertContentView.swift */; }; @@ -1424,7 +1430,7 @@ C9D2C8DD2A320AA000D15901 /* AtmDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47AE8BD528C1305E00490F5E /* AtmDataProvider.swift */; }; C9D2C8DE2A320AA000D15901 /* GettingStartedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110C67942921147F006B580C /* GettingStartedViewController.swift */; }; C9D2C8DF2A320AA000D15901 /* NetworkUnavailableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477A963D292CD27D0013605B /* NetworkUnavailableView.swift */; }; - C9D2C8E02A320AA000D15901 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; + C9D2C8E02A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C8E12A320AA000D15901 /* DWLockScreenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A63004D2328F37C00827825 /* DWLockScreenViewController.m */; }; C9D2C8E22A320AA000D15901 /* UpholdTransferViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4789D2302981069700BAFEFA /* UpholdTransferViewController.swift */; }; C9D2C8E32A320AA000D15901 /* DWVerifySeedPhraseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AD1CE8322DC9B5D00C99324 /* DWVerifySeedPhraseViewController.m */; }; @@ -1488,7 +1494,7 @@ C9D2C9272A320AA000D15901 /* SyncView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A4E531922EA382B00E5168A /* SyncView.xib */; }; C9D2C9292A320AA000D15901 /* BackupInfoItemView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9F42FB529DD8702001BC549 /* BackupInfoItemView.xib */; }; C9D2C92A2A320AA000D15901 /* explore.db in Resources */ = {isa = PBXBuildFile; fileRef = 47AE8BAF28BFF28400490F5E /* explore.db */; }; - C9D2C92B2A320AA000D15901 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + C9D2C92B2A320AA000D15901 /* (null) in Resources */ = {isa = PBXBuildFile; }; C9D2C92C2A320AA000D15901 /* Coinbase.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0F3693812919A70B007F4E91 /* Coinbase.storyboard */; }; C9D2C92E2A320AA000D15901 /* ImportWalletInfo.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2A10EB3D2358BDA500C38B61 /* ImportWalletInfo.storyboard */; }; C9D2C92F2A320AA000D15901 /* ReceiveContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9F42FAC29DC115A001BC549 /* ReceiveContentView.xib */; }; @@ -1546,7 +1552,7 @@ C9FAABB52AB793CE00878224 /* BuySellPortal.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C9FAABB42AB793CE00878224 /* BuySellPortal.storyboard */; }; C9FAABB72AB799AE00878224 /* UpholdPortalModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9FAABB62AB799AE00878224 /* UpholdPortalModel.swift */; }; CC5F88E358330F8EE192D5BE /* libPods-DashWalletScreenshotsUITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0CDD4C961516ED20BC9F01FA /* libPods-DashWalletScreenshotsUITests.a */; }; - DE3A167A235B79D705C0A962 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; + DE3A167A235B79D705C0A962 /* (null) in Frameworks */ = {isa = PBXBuildFile; }; FB248B5D1F73803100405AE0 /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB248B5C1F73803100405AE0 /* UserNotifications.framework */; }; FB248B631F79BB7C00405AE0 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB248B621F79BB7C00405AE0 /* SafariServices.framework */; }; FB2E5537218BA161003A1B7C /* DWVersionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FB2E5536218BA161003A1B7C /* DWVersionManager.m */; }; @@ -2448,6 +2454,10 @@ 754495DC2AE91B6300492817 /* GroupedRequestCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupedRequestCell.swift; sourceTree = ""; }; 754495DE2AE91D3500492817 /* UsernameRequestCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsernameRequestCell.swift; sourceTree = ""; }; 754BEA112C0B6BD700E8C93C /* HomeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewModel.swift; sourceTree = ""; }; + 754C27C52CC3C0B900BA7B9F /* UsernamePrefs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsernamePrefs.swift; sourceTree = ""; }; + 754C27CB2CC3C14F00BA7B9F /* FeatureSingleItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureSingleItem.swift; sourceTree = ""; }; + 754C27CE2CC3C7AB00BA7B9F /* MixDashDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixDashDialog.swift; sourceTree = ""; }; + 754C27D02CC3C82300BA7B9F /* JoinDashPayInfoDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinDashPayInfoDialog.swift; sourceTree = ""; }; 755049A72C846299008FA7EB /* DWAboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DWAboutViewController.m; sourceTree = ""; }; 755049A82C846299008FA7EB /* DWAboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DWAboutViewController.h; sourceTree = ""; }; 755049AB2C846576008FA7EB /* MenuItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuItemModel.swift; sourceTree = ""; }; @@ -2486,6 +2496,7 @@ 759816E519357D6F005060EA /* BRBubbleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BRBubbleView.h; sourceTree = ""; }; 759816E619357D6F005060EA /* BRBubbleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BRBubbleView.m; sourceTree = ""; }; 759ADD562BF3447400767ACD /* Button.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = ""; }; + 759AFDDF2CC6356D007072D2 /* JoinDashPayScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinDashPayScreen.swift; sourceTree = ""; }; 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrowdNodeAPYView.swift; sourceTree = ""; }; 75A0A3F22CA7DBCF003ED48B /* TimeUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeUtils.swift; sourceTree = ""; }; 75A664D72B09F1EA007EFD16 /* VotingInfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VotingInfoViewController.swift; sourceTree = ""; }; @@ -3123,7 +3134,7 @@ 222E7F561C46E9B8009AB45D /* Security.framework in Frameworks */, 222040C61C1A1940005CE1C3 /* WebKit.framework in Frameworks */, 22B6A4481C0E963900673913 /* libbz2.tbd in Frameworks */, - DE3A167A235B79D705C0A962 /* BuildFile in Frameworks */, + DE3A167A235B79D705C0A962 /* (null) in Frameworks */, A90D08EA4AA9019A2D806A9C /* libPods-dashwallet.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3953,6 +3964,7 @@ 471A2602289ACCD20056B7B2 /* Taxes */, 2A9FFDF62230FF2B00956D5F /* Uphold */, 2A11F58021947CBE00E7B563 /* DataMigration */, + 754C27C62CC3C0B900BA7B9F /* Usernames */, 2A913E6323A11DCF006A2A59 /* URL Handling */, FB2E5535218BA161003A1B7C /* DWVersionManager.h */, FB2E5536218BA161003A1B7C /* DWVersionManager.m */, @@ -6040,12 +6052,21 @@ path = Cells; sourceTree = ""; }; + 754C27C62CC3C0B900BA7B9F /* Usernames */ = { + isa = PBXGroup; + children = ( + 754C27C52CC3C0B900BA7B9F /* UsernamePrefs.swift */, + ); + path = Usernames; + sourceTree = ""; + }; 7566F4882BB6CAD6005238D2 /* SwiftUI Components */ = { isa = PBXGroup; children = ( 75EBAA082BB9791B004488E3 /* Icon.swift */, 7566F4892BB6CAF2005238D2 /* MenuItem.swift */, 75EBAA0B2BB9792F004488E3 /* FeatureTopText.swift */, + 754C27CB2CC3C14F00BA7B9F /* FeatureSingleItem.swift */, 75EBAA0E2BB99036004488E3 /* TextIntro.swift */, 75EBAA112BB99B6B004488E3 /* BottomSheet.swift */, 75BDE7AB2BF3287400556791 /* Toast.swift */, @@ -6077,6 +6098,7 @@ 759609192C4550F400F3BF04 /* Setup */ = { isa = PBXGroup; children = ( + 759AFDE12CC64776007072D2 /* CreateUsername */, 7596091B2C45511A00F3BF04 /* Model */, 759063E72C411029002F2AA9 /* DashPaySetupFlowController.swift */, ); @@ -6124,6 +6146,16 @@ path = Credits; sourceTree = ""; }; + 759AFDE12CC64776007072D2 /* CreateUsername */ = { + isa = PBXGroup; + children = ( + 759AFDDF2CC6356D007072D2 /* JoinDashPayScreen.swift */, + 754C27D02CC3C82300BA7B9F /* JoinDashPayInfoDialog.swift */, + 754C27CE2CC3C7AB00BA7B9F /* MixDashDialog.swift */, + ); + path = CreateUsername; + sourceTree = ""; + }; 75A8C1612AE571E30042256E /* Voting */ = { isa = PBXGroup; children = ( @@ -8016,7 +8048,7 @@ C9D2C9272A320AA000D15901 /* SyncView.xib in Resources */, C9D2C9292A320AA000D15901 /* BackupInfoItemView.xib in Resources */, C9D2C92A2A320AA000D15901 /* explore.db in Resources */, - C9D2C92B2A320AA000D15901 /* BuildFile in Resources */, + C9D2C92B2A320AA000D15901 /* (null) in Resources */, C9D2C92C2A320AA000D15901 /* Coinbase.storyboard in Resources */, 75889B892AD2DF0200C17F5D /* CoinJoin.storyboard in Resources */, C9D2C92E2A320AA000D15901 /* ImportWalletInfo.storyboard in Resources */, @@ -8682,6 +8714,7 @@ 47F2C6822860319400C2B774 /* TxReclassifyTransactionsInfoViewController.swift in Sources */, 2A4E535C22F335C200E5168A /* DWTransactionListDataProvider.m in Sources */, 2A1B7DA82323AF4300BA8C6A /* DWModalPopupTransition.m in Sources */, + 754C27CC2CC3C15B00BA7B9F /* FeatureSingleItem.swift in Sources */, 2A7F3B1B238C646600DEA3EF /* DWAdvancedSecurityViewController.m in Sources */, 4751CAD6297024ED00F63AC4 /* OrderPreviewModel.swift in Sources */, 2A885FD6244DFEF100B9F679 /* UIView+DWFindConstraints.m in Sources */, @@ -9233,7 +9266,7 @@ 75A8C1672AE5734A0042256E /* UsernameRequest.swift in Sources */, C9D2C70D2A320AA000D15901 /* CBAccount.swift in Sources */, C9D2C70E2A320AA000D15901 /* Types.swift in Sources */, - C9D2C70F2A320AA000D15901 /* BuildFile in Sources */, + C9D2C70F2A320AA000D15901 /* (null) in Sources */, C943B33B2A408CED00AF23C5 /* DWUploadAvatarChildView.m in Sources */, C9D2C7112A320AA000D15901 /* Coinbase.swift in Sources */, C9D2C7122A320AA000D15901 /* SyncModel.swift in Sources */, @@ -9265,7 +9298,7 @@ C9D2C7252A320AA000D15901 /* SyncingActivityMonitor.swift in Sources */, 75EE38D82CBFE52E00845FFF /* ContactsPlaceholderViewController.swift in Sources */, C9D2C7262A320AA000D15901 /* EmptyView.swift in Sources */, - C9D2C7272A320AA000D15901 /* BuildFile in Sources */, + C9D2C7272A320AA000D15901 /* (null) in Sources */, C9D2C7282A320AA000D15901 /* DWQRScanModel.m in Sources */, C943B3292A408CED00AF23C5 /* DWExternalSourceViewController.m in Sources */, C9D2C72A2A320AA000D15901 /* SyncView.swift in Sources */, @@ -9320,8 +9353,9 @@ C943B50B2A40A54600AF23C5 /* DWDPSearchItemsFactory.m in Sources */, C9D2C74A2A320AA000D15901 /* ShortcutsView.swift in Sources */, C9D2C74B2A320AA000D15901 /* DWFormSectionModel.m in Sources */, + 754C27CF2CC3C7AF00BA7B9F /* MixDashDialog.swift in Sources */, 753261B42CBD2761003CDE00 /* JoinDashPayView.swift in Sources */, - C9D2C74C2A320AA000D15901 /* BuildFile in Sources */, + C9D2C74C2A320AA000D15901 /* (null) in Sources */, C9D2C74D2A320AA000D15901 /* CoinbasePlaceBuyOrderResponse.swift in Sources */, C9D2C74E2A320AA000D15901 /* ExploreMapView.swift in Sources */, C943B32F2A408CED00AF23C5 /* DWSaveAlertViewController.m in Sources */, @@ -9362,14 +9396,16 @@ C943B54E2A40B6B500AF23C5 /* DWColoredButton.m in Sources */, C9D2C7662A320AA000D15901 /* CrowdNodeRequest.swift in Sources */, 75EBAA0A2BB9791B004488E3 /* Icon.swift in Sources */, + 754C27C72CC3C0B900BA7B9F /* UsernamePrefs.swift in Sources */, C9D2C7672A320AA000D15901 /* CoinbaseExchangeRateResponse.swift in Sources */, - C9D2C7692A320AA000D15901 /* BuildFile in Sources */, + C9D2C7692A320AA000D15901 /* (null) in Sources */, C9D2C76A2A320AA000D15901 /* CrowdNodePortalItem.swift in Sources */, C943B4C82A40A54600AF23C5 /* DWSearchStateViewController.m in Sources */, C9D2C76B2A320AA000D15901 /* BaseViewController.swift in Sources */, C9D2C76C2A320AA000D15901 /* AccountListController.swift in Sources */, 753261B02CBC11BF003CDE00 /* WelcomeViewController.swift in Sources */, C9D2C76D2A320AA000D15901 /* DWUpholdTransactionObject.m in Sources */, + 754C27CD2CC3C15B00BA7B9F /* FeatureSingleItem.swift in Sources */, C943B5052A40A54600AF23C5 /* DWDPIncomingRequestCell.m in Sources */, C9D2C76E2A320AA000D15901 /* DWBaseSeedViewController.m in Sources */, C943B51D2A40A54600AF23C5 /* InvitationBottomView.swift in Sources */, @@ -9449,7 +9485,7 @@ C9D2C7A72A320AA000D15901 /* ActionButtonViewController.swift in Sources */, C9D2C7A82A320AA000D15901 /* BuySellServiceItemCell.swift in Sources */, C956AF122A5B5949002FAB75 /* PasteboardContentView.swift in Sources */, - C9D2C7AA2A320AA000D15901 /* BuildFile in Sources */, + C9D2C7AA2A320AA000D15901 /* (null) in Sources */, C943B5002A40A54600AF23C5 /* DWDPTxItemView.m in Sources */, C9D2C7AB2A320AA000D15901 /* DWBaseFormTableViewCell.m in Sources */, C9D2C7AC2A320AA000D15901 /* AccountCell.swift in Sources */, @@ -9460,7 +9496,7 @@ C9D2C7B02A320AA000D15901 /* DWExploreHeaderView.m in Sources */, 759609242C455B2000F3BF04 /* SendIntro.swift in Sources */, C9D2C7B12A320AA000D15901 /* CoinbaseBaseIDForCurrencyResponse.swift in Sources */, - C9D2C7B22A320AA000D15901 /* BuildFile in Sources */, + C9D2C7B22A320AA000D15901 /* (null) in Sources */, C9D2C7B32A320AA000D15901 /* SpecifyAmountViewController.swift in Sources */, C943B4EA2A40A54600AF23C5 /* DWUserProfileViewController.m in Sources */, C943B5922A40ED7B00AF23C5 /* DWTextField.m in Sources */, @@ -9482,7 +9518,7 @@ C9D2C7C02A320AA000D15901 /* HomeHeaderModel.swift in Sources */, C943B5942A40ED7B00AF23C5 /* DWPlanetarySystemView.m in Sources */, C9D2C7C12A320AA000D15901 /* TerritoryListModel.swift in Sources */, - C9D2C7C22A320AA000D15901 /* BuildFile in Sources */, + C9D2C7C22A320AA000D15901 /* (null) in Sources */, C9D2C7C32A320AA000D15901 /* DWDPRegistrationStatus.m in Sources */, C9D2C7C42A320AA000D15901 /* CurrencyExchanger_Objc.m in Sources */, 7573C2E12B01103900F4C347 /* VotingFilterItemSelectableCell.swift in Sources */, @@ -9495,7 +9531,7 @@ C9D2C7C92A320AA000D15901 /* BuyDashViewController.swift in Sources */, C956AF0D2A5B592E002FAB75 /* TappableLabel.swift in Sources */, C9D2C7CA2A320AA000D15901 /* DWModalDismissalAnimation.m in Sources */, - C9D2C7CB2A320AA000D15901 /* BuildFile in Sources */, + C9D2C7CB2A320AA000D15901 /* (null) in Sources */, C9D2C7CD2A320AA000D15901 /* UIViewController+DashWallet.swift in Sources */, C9D2C7CE2A320AA000D15901 /* CrowdNodeCell.swift in Sources */, 751B61C62ADFFD0A00D1C2EF /* IntegrationViewController+Coinbase.swift in Sources */, @@ -9626,12 +9662,14 @@ C9D2C8352A320AA000D15901 /* DWWindow.m in Sources */, 753130982B4944130069C9B7 /* UpholdError.swift in Sources */, C9D2C8362A320AA000D15901 /* BalanceNotifier.swift in Sources */, + 754C27D12CC3C82900BA7B9F /* JoinDashPayInfoDialog.swift in Sources */, C9D2C8372A320AA000D15901 /* DWSeedWordModel.m in Sources */, C9D2C8382A320AA000D15901 /* DWRootModel.m in Sources */, C9D2C8392A320AA000D15901 /* BaseAmountViewController.swift in Sources */, C9D2C83A2A320AA000D15901 /* SendingToView.swift in Sources */, C9D2C83B2A320AA000D15901 /* TxUserInfoDAO.swift in Sources */, C9D2C83C2A320AA000D15901 /* DWModalContentView.m in Sources */, + 759AFDE02CC63571007072D2 /* JoinDashPayScreen.swift in Sources */, C9D2C83D2A320AA000D15901 /* DWUpholdConstants.m in Sources */, C9D2C83F2A320AA000D15901 /* CoinbaseSwapeTradeResponse.swift in Sources */, C943B4FF2A40A54600AF23C5 /* DWDPGenericContactRequestItemView.m in Sources */, @@ -9648,7 +9686,7 @@ 75A664D82B09F1EA007EFD16 /* VotingInfoViewController.swift in Sources */, C943B3372A408CED00AF23C5 /* DWEditProfileTextFieldCell.m in Sources */, C9D2C8492A320AA000D15901 /* DWAppRootViewController.m in Sources */, - C9D2C84A2A320AA000D15901 /* BuildFile in Sources */, + C9D2C84A2A320AA000D15901 /* (null) in Sources */, 7513DA882AB175E0005D55F6 /* TopperViewModel.swift in Sources */, C9D2C84B2A320AA000D15901 /* UITableView+DashWallet.swift in Sources */, C9D2C84C2A320AA000D15901 /* TransferAmountViewController.swift in Sources */, @@ -9681,7 +9719,7 @@ C9D2C8652A320AA000D15901 /* DWCaptureSessionManager.m in Sources */, C9D2C8662A320AA000D15901 /* DWDataMigrationManager.m in Sources */, 7502A4872AE401EF00ACDDD3 /* UsernameVotingViewController.swift in Sources */, - C9D2C86A2A320AA000D15901 /* BuildFile in Sources */, + C9D2C86A2A320AA000D15901 /* (null) in Sources */, C943B51F2A40A54600AF23C5 /* DWSuccessInvitationView.m in Sources */, C9D2C86B2A320AA000D15901 /* AmountPreviewView.swift in Sources */, 75CDD7812C0898E400F433D2 /* Shape.swift in Sources */, @@ -9738,7 +9776,7 @@ C9D2C8972A320AA000D15901 /* RatesProvider.swift in Sources */, C9D2C8982A320AA000D15901 /* CBAuth.swift in Sources */, C943B51C2A40A54600AF23C5 /* SuccessInvitationViewController.swift in Sources */, - C9D2C8992A320AA000D15901 /* BuildFile in Sources */, + C9D2C8992A320AA000D15901 /* (null) in Sources */, C9D2C89A2A320AA000D15901 /* CoinbaseCreateAddressesRequest.swift in Sources */, C943B3382A408CED00AF23C5 /* DWEditProfileAvatarView.m in Sources */, C943B5582A40DA3700AF23C5 /* DWFullScreenModalControllerViewController.m in Sources */, @@ -9820,7 +9858,7 @@ C943B50E2A40A54600AF23C5 /* DWConfirmInvitationContentView.m in Sources */, C9D2C8DE2A320AA000D15901 /* GettingStartedViewController.swift in Sources */, C9D2C8DF2A320AA000D15901 /* NetworkUnavailableView.swift in Sources */, - C9D2C8E02A320AA000D15901 /* BuildFile in Sources */, + C9D2C8E02A320AA000D15901 /* (null) in Sources */, 751B61C32ADFF9AE00D1C2EF /* UpholdPortalModel.swift in Sources */, C943B4FC2A40A54600AF23C5 /* DWDPEstablishedContactNotificationObject.m in Sources */, C9D2C8E12A320AA000D15901 /* DWLockScreenViewController.m in Sources */, diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/Contents.json b/DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/Contents.json new file mode 100644 index 000000000..3f840a7e5 --- /dev/null +++ b/DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "username.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "username@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "username@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/username.png b/DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/username.png new file mode 100644 index 0000000000000000000000000000000000000000..8df51ad924dfe9970198432017f5587f292062d8 GIT binary patch literal 646 zcmV;10(t$3P)j!U|fqYJa1ASH!S_niW7+0IY!QAQ1%d>wjVo=gt@$ zi0ugoj&zl=J@=7wUkYtVrXAqZ4;a(qQv^eC$e=Lc^B6ifL%ca_GNI}X-$f{j0bu%A z4=EiD>m02*7~So|*qCIXQEzeI!fd1%zkS}q~VXk)-#fM*YYkRh2g$= zX;K)?r%OX@6*|~%9A=X6VnZshiG?hLn;}vCcP8@Dcydi@bZMx_5PvzsmRePup zf5If2OEkfl)ESpv(WfXlO04iKy&%ZVuvs5t-C7O7hO70uUeRULp~@QdS$%F69p0Xn z74ia##+n#bXDrhm@S}yfp6ow!tNTubjADI_;ENGf0Ex g?4gilE)Ca!2fyykBo^HxU;qFB07*qoM6N<$f`^tNssI20 literal 0 HcmV?d00001 diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/username@2x.png b/DashWallet/Resources/AppAssets.xcassets/Usernames/username.letter.imageset/username@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b0c3de766d8d1b733798cb40903c804cad0737 GIT binary patch literal 1161 zcmV;41a|w0P)^dj z26lILP`)aZot>ZV>2GGbdtl%KoyQu$Rucs50fRc0cpw4G)JKDXkAHnE9|IQ;Sbq%X z+dh;816z>LV(SEZI7FcuU;_ptY}*H38QCgRTmd!PA5KBYGl<2_B9) zgc}??1FIDv$_O@u^-*ROJm5HX`}ufPrR5aTe9z6rwSrYn;9|RPd}VC#?N1XJ{{fo> zArIj4<0x62R)7{P@sCWnS(xI&-cK&<^cvVq;R!Xh6DAN>p!4?%HdA;F+6iwbXVIbs zgQG%LW6C^51fGQaW^NVyid`G!ExmKVeB29qHbtZ%Z|u$fem7hnm&#Bvx!DR+(CIb zQDBNEZ!cD2+S!scsstm|wj`=yCuKs$!IJV`>`5fv5{=qVeUPlwAzBT+MtcQJu7kEn zFSBic%JWiQfKL>%H)EFTkOkeg)cB}?d;nWW7dwe8v6$trDspfPw&0K+{C3jCnemME zC0Z=$Y70s!f?b?|vNP*gfMJ&TVrM^AmZvXMcEL7I;FVo&?VBWB2PIt4%xuREf=UY- z(*&aI+`0oH$A(Uivm3H>9Vv^`SZexe1^6pv;EL@AOvbm~{BebsC+C@g>CE@i3aALb z;BLTpM+r?JHz5e}XYwj6(soi;eHFuC=6glbD(c3C7T|j%a`S`E9=1rmFMJ`LXK@vD zuMYuoKjQhObEEE3AMRn;y3^h$tI$DH+Dmi}O`W4;aasW~kB~>OX<%?~NXU-I2fPVjFR-V-GJ*F?Y+LG~>r9Xb`(b(mew2Z~byq;iJ4UgVl} z_-0CwZ$_I*j%(I@3d}&43zSD)mm+G`@hrM@ebF5SStAHA*ROsf;pWuVbh(2n`efn7 zMgFF?(7t~ow1{1LQvcZFUM0E;3cl#V1!l@f%(HTps`O$sW9nd>s_0LO-kkmX~=?PKFbJPY`he!wG;BVA&yC<825UIDwTD;G6(%fP4bvSc#WWwl*{E zs&2{ppr287ey(d5#X@)7Ps_Ux}2uX6&0P0)F#1=i<1VjTuZmDAu@yvS#`t)_E z9uhtJ{t=Pvq5bR%0TJ*G3nhE9PgiU;+_iTE`q`Y zQQKWco5~9)8BiR93t%p8x&JI>a^*~{^LdYibBTv19EMHq8ov)pX?<}4v2bMC#p+k7 zDl|~TwYryr6f?1jaMp(u&+%Kcx9Dw)1*Cn>HP(+I32A$gknASLtCe=h>j<0Mg}O%z zb^&GSLv_eSiOF@mv%Mi-KsvyRvF>m(eL8rVci8NMlxa~E`k2UZ+GY*XruDd}BQd>v zS3swOeLM!!nn#=3{`|`(4XTvfl}6BVo5{EMQrn;sg-{Pxci>=Db`43QYg*I4-ZWZ* z?+^+WfUx98>b?|IeSDD|1s!G8!@Nr=8a zMSEkYH7HAW5ES_rN+Zt^67J<;Y+~Hh3yG+o8DD2VIA#AcMB+U{GLnfFkniT+?1g*z z&RM*Gh|GViHaTl<5{81iz!Vcjs%;Yz35%)77Jb>757wqWyM$>jO#`>}t!Okz5DxCA zo6x4!z~~nFD!W!@?^BVmq z_Le(`YvfaQ(xGCDA(@DICDMK{o_eK$lN{fu&oM+01ZhyXMDV>b5ffQ-S7WSZmIZUx z;WWsaT1=VO_m@O|Y?g{H!Vp&*UMLEu7DqXwbBXG7#)cztu9@j`1u?TQ0+N=MN6P)& zW056*6*7pk4kMt*795IS@()>#r3jLG2y_NFULEzK%-v82o`F}bJm=mST#p7rebKMO zH`dgGs4^-ixhmi>6QFuIE%Rbw1HTec&7Ubmw`cGR2}q>>!xy&H!Uf(_5BY&KDDtO4 zA<_b$8NL+cgEHBptQB6!%iI|?RdE}m5Mrq6LB?xPhMzs*ZjAeYmt<2%{kBIJ7<#yX zy=x)U3;GKcbFkWswvETw%sPXfm!cm9q|wNZ-J6-T_EKv0xn|_s z#wAy`cFeKQuRrClUduEIY*95^f$P*`{HGQW`wF+q z<%irOWzB0sY&A2NtMOELGReihIFm6s!H6=^gqzn=>E8=W~sJBnvz+Ft# z#n>O|EtxI2K<_dfyM&+Vu@5&}J?~T=?uO8M;xobH{8 zw=9Bp=+)FN!%!{iFz|e~s6Ag)@m$>YQB$Vb0oDzHLi<;X^~H4QVts^^(!I17?>1!0 z)mnMTNklw}|1iys%_^0WRqV(qfYKVYm(iNp)3}0%5Cq<= zTu{mpQ%&cn>7*^~zGJv5LFpChoH`t5xziv^oz@pxPo~}3ln?R`X9GQKD5PdaAz)eEWLYd|p XfJ8P~Y8OP000000NkvXXu0mjfRm~aE literal 0 HcmV?d00001 diff --git a/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift b/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift index bee69a30e..e7f301f60 100644 --- a/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift +++ b/DashWallet/Sources/Models/CoinJoin/CoinJoinService.swift @@ -61,7 +61,6 @@ private let kDefaultRounds: Int32 = 4 private let kDefaultSessions: Int32 = 6 private let kDefaultDenominationGoal: Int32 = 50 private let kDefaultDenominationHardcap: Int32 = 300 -private let kCoinJoinMixDashShown = "coinJoinMixDashShownKey" private let kCoinJoinMainnetMode = "coinJoinModeMainnetKey" private let kCoinJoinTestnetMode = "coinJoinModeTestnetKey" let kMaxAllowedAheadTimeskew: TimeInterval = 5 @@ -115,15 +114,6 @@ class CoinJoinService: NSObject, NetworkReachabilityHandling { } } - private var _mixDashShown: Bool? = nil - var mixDashShown: Bool { - get { _mixDashShown ?? UserDefaults.standard.bool(forKey: kCoinJoinMixDashShown) } - set(value) { - _mixDashShown = value - UserDefaults.standard.set(value, forKey: kCoinJoinMixDashShown) - } - } - @Published private(set) var mode: CoinJoinMode = .none @Published var mixingState: MixingStatus = .notStarted @Published private(set) var progress = CoinJoinProgress(progress: 0.0, totalBalance: 0, coinJoinBalance: 0) diff --git a/DashWallet/Sources/Models/UsernamePrefs.swift b/DashWallet/Sources/Models/UsernamePrefs.swift new file mode 100644 index 000000000..8dbd7bb40 --- /dev/null +++ b/DashWallet/Sources/Models/UsernamePrefs.swift @@ -0,0 +1,45 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2023 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +private let kCoinJoinMixDashShown = "coinJoinMixDashShownKey" +private let kJoinDashPayInfoShown = "joinDashPayInfoShownKey" + +// MARK: - UsernamePrefs + +class UsernamePrefs { + public static let shared: UsernamePrefs = .init() + + private var _mixDashShown: Bool? = nil + var mixDashShown: Bool { + get { _mixDashShown ?? UserDefaults.standard.bool(forKey: kCoinJoinMixDashShown) } + set(value) { + _mixDashShown = value + UserDefaults.standard.set(value, forKey: kCoinJoinMixDashShown) + } + } + + private var _joinDashPayInfoShown: Bool? = nil + var joinDashPayInfoShown: Bool { + get { _joinDashPayInfoShown ?? UserDefaults.standard.bool(forKey: kJoinDashPayInfoShown) } + set(value) { + _joinDashPayInfoShown = value + UserDefaults.standard.set(value, forKey: kJoinDashPayInfoShown) + } + } +} diff --git a/DashWallet/Sources/Models/Usernames/UsernamePrefs.swift b/DashWallet/Sources/Models/Usernames/UsernamePrefs.swift new file mode 100644 index 000000000..8dbd7bb40 --- /dev/null +++ b/DashWallet/Sources/Models/Usernames/UsernamePrefs.swift @@ -0,0 +1,45 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2023 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +private let kCoinJoinMixDashShown = "coinJoinMixDashShownKey" +private let kJoinDashPayInfoShown = "joinDashPayInfoShownKey" + +// MARK: - UsernamePrefs + +class UsernamePrefs { + public static let shared: UsernamePrefs = .init() + + private var _mixDashShown: Bool? = nil + var mixDashShown: Bool { + get { _mixDashShown ?? UserDefaults.standard.bool(forKey: kCoinJoinMixDashShown) } + set(value) { + _mixDashShown = value + UserDefaults.standard.set(value, forKey: kCoinJoinMixDashShown) + } + } + + private var _joinDashPayInfoShown: Bool? = nil + var joinDashPayInfoShown: Bool { + get { _joinDashPayInfoShown ?? UserDefaults.standard.bool(forKey: kJoinDashPayInfoShown) } + set(value) { + _joinDashPayInfoShown = value + UserDefaults.standard.set(value, forKey: kJoinDashPayInfoShown) + } + } +} diff --git a/DashWallet/Sources/Models/Voting/DAO/UsernameRequestsDAO.swift b/DashWallet/Sources/Models/Voting/DAO/UsernameRequestsDAO.swift index 0ac618046..5b817e1f6 100644 --- a/DashWallet/Sources/Models/Voting/DAO/UsernameRequestsDAO.swift +++ b/DashWallet/Sources/Models/Voting/DAO/UsernameRequestsDAO.swift @@ -181,7 +181,7 @@ extension UsernameRequestsDAOImpl { guard let self = self else { return continuation.resume(returning: []) } do { - let results = try self.db.prepare(query, bindings).prepareRowIterator().map { Item(row: $0) } + let results = try self.db.prepareRowIterator(query, bindings: bindings).map { Item(row: $0) } continuation.resume(returning: results) } catch { continuation.resume(throwing: error) diff --git a/DashWallet/Sources/Models/Voting/UsernameRequest.swift b/DashWallet/Sources/Models/Voting/UsernameRequest.swift index 5824f51c6..59c1a8e4e 100644 --- a/DashWallet/Sources/Models/Voting/UsernameRequest.swift +++ b/DashWallet/Sources/Models/Voting/UsernameRequest.swift @@ -17,6 +17,7 @@ import Foundation import SQLite +private typealias Expression = SQLite.Expression // MARK: - GroupedUsernames @@ -60,11 +61,11 @@ struct UsernameRequest: RowDecodable, Hashable { extension UsernameRequest { static var table: Table { Table("username_requests") } - static var requestId: Expression { Expression("requestId") } - static var username: Expression { Expression("username") } - static var createdAt: Expression { Expression("createdAt") } - static var identity: Expression { Expression("identity") } - static var votes: Expression { Expression("votes") } - static var isApproved: Expression { Expression("isApproved") } - static var link: Expression { .init("link") } + static var requestId: SQLite.Expression { Expression("requestId") } + static var username: SQLite.Expression { Expression("username") } + static var createdAt: SQLite.Expression { Expression("createdAt") } + static var identity: SQLite.Expression { Expression("identity") } + static var votes: SQLite.Expression { Expression("votes") } + static var isApproved: SQLite.Expression { Expression("isApproved") } + static var link: SQLite.Expression { .init("link") } } diff --git a/DashWallet/Sources/UI/DashPay/DWDashPayConstants.m b/DashWallet/Sources/UI/DashPay/DWDashPayConstants.m index b1051f878..cb37e0dca 100644 --- a/DashWallet/Sources/UI/DashPay/DWDashPayConstants.m +++ b/DashWallet/Sources/UI/DashPay/DWDashPayConstants.m @@ -19,8 +19,8 @@ #import -uint64_t DWDP_MIN_BALANCE_TO_CREATE_USERNAME = (DUFFS / 100); // 0.01 Dash -uint64_t DWDP_MIN_BALANCE_TO_CREATE_INVITE = (DUFFS / 100); // 0.01 Dash +uint64_t DWDP_MIN_BALANCE_TO_CREATE_USERNAME = (DUFFS / 100) * 3; // 0.03 Dash +uint64_t DWDP_MIN_BALANCE_TO_CREATE_INVITE = (DUFFS / 100); // 0.01 Dash NSInteger DW_MIN_USERNAME_LENGTH = 3; NSInteger DW_MAX_USERNAME_LENGTH = 24; diff --git a/DashWallet/Sources/UI/DashPay/Items/Objects/DWDPTxObject.m b/DashWallet/Sources/UI/DashPay/Items/Objects/DWDPTxObject.m index 378fa5a77..1b7d65222 100644 --- a/DashWallet/Sources/UI/DashPay/Items/Objects/DWDPTxObject.m +++ b/DashWallet/Sources/UI/DashPay/Items/Objects/DWDPTxObject.m @@ -51,10 +51,10 @@ - (instancetype)initWithTransaction:(DSTransaction *)tx _dataProvider = dataProvider; _blockchainIdentity = blockchainIdentity; _username = blockchainIdentity.currentDashpayUsername; - + BOOL hasDisplayName = blockchainIdentity.displayName.length > 0; _displayName = hasDisplayName ? blockchainIdentity.displayName : nil; - + _subtitle = [dataProvider shortDateStringForTransaction:tx]; _dataItem = [dataProvider transactionDataForTransaction:tx]; } diff --git a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayInfoDialog.swift b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayInfoDialog.swift new file mode 100644 index 000000000..a607511d7 --- /dev/null +++ b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayInfoDialog.swift @@ -0,0 +1,28 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2024 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI + +public struct JoinDashPayInfoDialog: View { + @Environment(\.presentationMode) private var presentationMode + + public var body: some View { + BottomSheet(showBackButton: Binding.constant(false)) { + JoinDashPayScreen() + } + } +} diff --git a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift new file mode 100644 index 000000000..5cd708019 --- /dev/null +++ b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift @@ -0,0 +1,55 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2024 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI + +public struct JoinDashPayScreen: View { + @StateObject private var viewModel = RequestUsernameViewModel.shared + + public var body: some View { + TextIntro( + buttonLabel: NSLocalizedString("Continue", comment: ""), + action: { }, // TODO: navlink + isActionEnabled: viewModel.hasMinimumRequiredBalance, + inProgress: .constant(false), + topText: { + FeatureTopText( + title: NSLocalizedString("Join DashPay", comment: ""), + text: NSLocalizedString("Forget about long crypto addresses, create the username, find friends and add them to your contacts", comment: "") + ) + }, + features: {[ + FeatureSingleItem(iconName: .custom("username.letter"), title: NSLocalizedString("Create a username", comment: ""), description: NSLocalizedString("Pay to usernames. No more alphanumeric addresses.", comment: "")), + FeatureSingleItem(iconName: .custom("friends.add"), title: NSLocalizedString("Add your friends & family", comment: ""), description: NSLocalizedString("Invite your family, find your friends by searching their usernames.", comment: "")), + FeatureSingleItem(iconName: .custom("profile.personalized"), title: NSLocalizedString("Personalise profile", comment: ""), description: NSLocalizedString("Upload your picture, personalize your identity.", comment: "")) + ]}, + info: getInfo() + ) + } + + private func getInfo() -> String? { + if viewModel.hasRecommendedBalance { + return nil + } + + if viewModel.hasMinimumRequiredBalance { + return String.localizedStringWithFormat(NSLocalizedString("You have %@ Dash.\nSome usernames cost up to %@ Dash.", comment: "Usernames"), viewModel.balance, viewModel.recommendedBalance) + } + + return String.localizedStringWithFormat(NSLocalizedString("You need to have more than %@ Dash to create a username", comment: "Usernames"), viewModel.minimumRequiredBalance) + } +} diff --git a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/MixDashDialog.swift b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/MixDashDialog.swift new file mode 100644 index 000000000..0c6126435 --- /dev/null +++ b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/MixDashDialog.swift @@ -0,0 +1,58 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2024 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI + +public struct MixDashDialog: View { + @Environment(\.presentationMode) private var presentationMode + var positiveAction: () -> Void + var negativeAction: () -> Void + + public var body: some View { + BottomSheet(showBackButton: Binding.constant(false)) { + VStack(spacing: 0) { + FeatureTopText( + title: NSLocalizedString("Mix your Dash Coins", comment: "CoinJoin"), + text: NSLocalizedString("To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username.", comment: "CoinJoin"), + alignment: .leading + ) + + Spacer() + + ButtonsGroup( + orientation: .horizontal, + style: .regular, + size: .large, + positiveButtonText: NSLocalizedString("Mix coins", comment: "CoinJoin"), + positiveButtonAction: { + presentationMode.wrappedValue.dismiss() + positiveAction() + }, + negativeButtonText: NSLocalizedString("Skip", comment: ""), + negativeButtonAction: { + presentationMode.wrappedValue.dismiss() + negativeAction() + } + ) + .padding(.top, 20) + .padding(.bottom, 10) + } + .padding(.horizontal, 20) + .frame(maxHeight: .infinity) + } + } +} diff --git a/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift b/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift index 7b470afde..9aa0027cf 100644 --- a/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift +++ b/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift @@ -169,7 +169,7 @@ extension RequestUsernameViewController { } func configureObservers() { - viewModel.$hasEnoughBalance + viewModel.$hasMinimumRequiredBalance .removeDuplicates() .receive(on: DispatchQueue.main) .sink(receiveValue: { [weak self] hasEnough in diff --git a/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewModel.swift b/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewModel.swift index 6a449a78d..e33ab6b2f 100644 --- a/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewModel.swift +++ b/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewModel.swift @@ -34,18 +34,26 @@ public class RequestUsernameVMObjcWrapper: NSObject { } } -class RequestUsernameViewModel { +private let kRecommendedBalance = DUFFS / 4 + +class RequestUsernameViewModel: ObservableObject { private var cancellableBag = Set() private let dao: UsernameRequestsDAO = UsernameRequestsDAOImpl.shared private let prefs = VotingPrefs.shared var completionHandler: ((Bool) -> ())? var enteredUsername: String = "" - @Published private(set) var hasEnoughBalance = false + @Published private(set) var hasMinimumRequiredBalance = false + @Published private(set) var hasRecommendedBalance = false @Published private(set) var currentUsernameRequest: UsernameRequest? = nil + @Published private(set) var balance: String = "" var minimumRequiredBalance: String { - return DWDP_MIN_BALANCE_TO_CREATE_USERNAME.formattedDashAmount + return DWDP_MIN_BALANCE_TO_CREATE_USERNAME.dashAmount.formattedDashAmountWithoutCurrencySymbol + } + + var recommendedBalance: String { + return kRecommendedBalance.dashAmount.formattedDashAmountWithoutCurrencySymbol } var minimumRequiredBalanceFiat: String { @@ -151,6 +159,8 @@ class RequestUsernameViewModel { private func checkBalance() { let balance = DWEnvironment.sharedInstance().currentAccount.balance - hasEnoughBalance = balance >= DWDP_MIN_BALANCE_TO_CREATE_USERNAME + self.balance = balance.dashAmount.formattedDashAmountWithoutCurrencySymbol + hasMinimumRequiredBalance = balance >= DWDP_MIN_BALANCE_TO_CREATE_USERNAME + hasRecommendedBalance = balance >= kRecommendedBalance } } diff --git a/DashWallet/Sources/UI/DashPay/Usernames/WelcomeToDashpayViewController.swift b/DashWallet/Sources/UI/DashPay/Usernames/WelcomeToDashpayViewController.swift index d684f875f..761671b2e 100644 --- a/DashWallet/Sources/UI/DashPay/Usernames/WelcomeToDashpayViewController.swift +++ b/DashWallet/Sources/UI/DashPay/Usernames/WelcomeToDashpayViewController.swift @@ -61,7 +61,7 @@ extension WelcomeToDashPayViewController { } func configureObservers() { - viewModel.$hasEnoughBalance + viewModel.$hasMinimumRequiredBalance .removeDuplicates() .receive(on: DispatchQueue.main) .sink(receiveValue: { [weak self] hasEnough in diff --git a/DashWallet/Sources/UI/Home/HomeViewController.swift b/DashWallet/Sources/UI/Home/HomeViewController.swift index 986e5b5ab..4d7564500 100644 --- a/DashWallet/Sources/UI/Home/HomeViewController.swift +++ b/DashWallet/Sources/UI/Home/HomeViewController.swift @@ -307,11 +307,6 @@ extension HomeViewController: HomeViewDelegate { present(controller, animated: true, completion: nil) } - func homeViewShowDashPayRegistrationFlow(_ homeView: HomeView?) { - let action = ShortcutAction(type: .createUsername) - performAction(for: action, sender: homeView) - } - func homeView(_ homeView: HomeView, showReclassifyYourTransactionsFlowWithTransaction transaction: DSTransaction) { showReclassifyYourTransactionsIfPossible(with: transaction) } diff --git a/DashWallet/Sources/UI/Home/Views/Home Header View/HomeHeaderView.swift b/DashWallet/Sources/UI/Home/Views/Home Header View/HomeHeaderView.swift index bc6b8bc98..767b019c2 100644 --- a/DashWallet/Sources/UI/Home/Views/Home Header View/HomeHeaderView.swift +++ b/DashWallet/Sources/UI/Home/Views/Home Header View/HomeHeaderView.swift @@ -24,10 +24,6 @@ private let kAvatarSize = CGSize(width: 72.0, height: 72.0) protocol HomeHeaderViewDelegate: AnyObject { func homeHeaderView(_ headerView: HomeHeaderView, retrySyncButtonAction sender: UIView) func homeHeaderViewDidUpdateContents(_ headerView: HomeHeaderView) - - #if DASHPAY - func homeHeaderViewJoinDashPayAction(_ headerView: HomeHeaderView) - #endif } // MARK: - HomeHeaderView @@ -84,7 +80,7 @@ final class HomeHeaderView: UIView { votingView.translatesAutoresizingMaskIntoConstraints = false votingView.isHidden = true votingView.onAction = { [weak self] in - self?.joinDashPayAction() + // TODO: show dashpay flow } votingView.onClose = { [weak self] in guard let self = self else { return } @@ -143,15 +139,6 @@ final class HomeHeaderView: UIView { required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } - - #if DASHPAY - - @objc - func joinDashPayAction() { - delegate?.homeHeaderViewJoinDashPayAction(self) - } - - #endif func parentScrollViewDidScroll(_ scrollView: UIScrollView) { } diff --git a/DashWallet/Sources/UI/Home/Views/HomeView.swift b/DashWallet/Sources/UI/Home/Views/HomeView.swift index 4ba780539..d109efd7f 100644 --- a/DashWallet/Sources/UI/Home/Views/HomeView.swift +++ b/DashWallet/Sources/UI/Home/Views/HomeView.swift @@ -23,7 +23,6 @@ import SwiftUI protocol HomeViewDelegate: AnyObject { func homeView(_ homeView: HomeView, showTxFilter sender: UIView) func homeView(_ homeView: HomeView, showSyncingStatus sender: UIView) - func homeViewShowDashPayRegistrationFlow(_ homeView: HomeView?) func homeViewShowCoinJoin(_ homeView: HomeView?) func homeView(_ homeView: HomeView, showReclassifyYourTransactionsFlowWithTransaction transaction: DSTransaction) @@ -173,7 +172,7 @@ final class HomeView: UIView, DWHomeModelUpdatesObserver, DWDPRegistrationErrorR if model?.dashPayModel.canRetry() ?? false { model?.dashPayModel.retry() } else { - delegate?.homeViewShowDashPayRegistrationFlow(self) + // TODO } } @@ -201,7 +200,7 @@ final class HomeView: UIView, DWHomeModelUpdatesObserver, DWDPRegistrationErrorR private func setIdentity(dpInfoHidden: Bool, model: DWHomeProtocol) { headerView.isVotingViewHidden = true - viewModel.showJoinDashpay = !dpInfoHidden +// viewModel.showJoinDashpay = !dpInfoHidden let status = model.dashPayModel.registrationStatus let completed = model.dashPayModel.registrationCompleted @@ -221,7 +220,7 @@ final class HomeView: UIView, DWHomeModelUpdatesObserver, DWDPRegistrationErrorR let wasClosed = VotingPrefs.shared.votingPanelClosed let now = Date().timeIntervalSince1970 headerView.isVotingViewHidden = dpInfoHidden || wasClosed || now < VotingConstants.votingEndTime - viewModel.showJoinDashpay = false +// viewModel.showJoinDashpay = false let dao = UsernameRequestsDAOImpl.shared Task { @@ -244,12 +243,6 @@ extension HomeView: HomeHeaderViewDelegate { func homeHeaderViewDidUpdateContents(_ view: HomeHeaderView) { setNeedsLayout() } - - #if DASHPAY - func homeHeaderViewJoinDashPayAction(_ headerView: HomeHeaderView) { - delegate?.homeViewShowDashPayRegistrationFlow(self) - } - #endif } // MARK: SyncingHeaderViewDelegate @@ -282,7 +275,8 @@ struct TxPreviewModel: Identifiable, Equatable { struct HomeViewContent: View { @State private var selectedTxDataItem: TransactionListDataItem? = nil - @State private var showShouldMixDialog: Bool = false + @State private var shouldShowMixDialog: Bool = false + @State private var shouldShowDashPayFlow: Bool = false @State private var navigateToDashPayFlow: Bool = false @State private var navigateToCoinJoin: Bool = false @@ -321,9 +315,9 @@ struct HomeViewContent: View { if viewModel.shouldShowMixDashDialog { self.navigateToDashPayFlow = false self.navigateToCoinJoin = false - showShouldMixDialog = true + self.shouldShowMixDialog = true } else { - delegate?.homeViewShowDashPayRegistrationFlow(nil) + self.shouldShowDashPayFlow = true } } } @@ -362,35 +356,35 @@ struct HomeViewContent: View { .sheet(item: $selectedTxDataItem) { item in TransactionDetailsSheet(item: item) } - .sheet(isPresented: $showShouldMixDialog, onDismiss: { + .sheet(isPresented: $shouldShowMixDialog, onDismiss: { viewModel.shouldShowMixDashDialog = false if navigateToDashPayFlow { navigateToDashPayFlow = false - delegate?.homeViewShowDashPayRegistrationFlow(nil) + shouldShowDashPayFlow = true } else if navigateToCoinJoin { navigateToCoinJoin = false delegate?.homeViewShowCoinJoin(nil) } }) { + let mixDashDialog = MixDashDialog( + positiveAction: { self.navigateToCoinJoin = true }, + negativeAction: { self.navigateToDashPayFlow = true } + ) + if #available(iOS 16.0, *) { - MixDashDialog( - positiveAction: { - self.navigateToCoinJoin = true - }, - negativeAction: { - self.navigateToDashPayFlow = true - } - ).presentationDetents([.height(250)]) + mixDashDialog.presentationDetents([.height(250)]) } else { - MixDashDialog( - positiveAction: { - self.navigateToCoinJoin = true - }, - negativeAction: { - self.navigateToDashPayFlow = true - } - ) + mixDashDialog + } + } + .sheet(isPresented: $shouldShowDashPayFlow) { + let joinDashPayDialog = JoinDashPayInfoDialog() + + if #available(iOS 16.0, *) { + joinDashPayDialog.presentationDetents([.height(600)]) + } else { + joinDashPayDialog } } .onAppear { @@ -508,42 +502,3 @@ struct TransactionDetailsSheet: View { } } -public struct MixDashDialog: View { - @Environment(\.presentationMode) private var presentationMode - var positiveAction: () -> Void - var negativeAction: () -> Void - - public var body: some View { - BottomSheet(showBackButton: Binding.constant(false)) { - VStack(spacing: 0) { - FeatureTopText( - title: NSLocalizedString("Mix your Dash Coins", comment: "CoinJoin"), - text: NSLocalizedString("To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username.", comment: "CoinJoin"), - alignment: .leading - ) - - Spacer() - - ButtonsGroup( - orientation: .horizontal, - style: .regular, - size: .large, - positiveButtonText: NSLocalizedString("Mix coins", comment: "CoinJoin"), - positiveButtonAction: { - presentationMode.wrappedValue.dismiss() - positiveAction() - }, - negativeButtonText: NSLocalizedString("Skip", comment: ""), - negativeButtonAction: { - presentationMode.wrappedValue.dismiss() - negativeAction() - } - ) - .padding(.top, 20) - .padding(.bottom, 10) - } - .padding(.horizontal, 20) - .frame(maxHeight: .infinity) - } - } -} diff --git a/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift b/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift index 97a5f7e61..b5b691734 100644 --- a/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift +++ b/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift @@ -36,7 +36,7 @@ class HomeViewModel: ObservableObject { @Published private(set) var coinJoinItem = CoinJoinMenuItemModel(title: NSLocalizedString("Mixing", comment: "CoinJoin"), isOn: false, state: .notStarted, progress: 0.0, mixed: 0.0, total: 0.0) @Published var showTimeSkewAlertDialog: Bool = false @Published private(set) var timeSkew: TimeInterval = 0 - @Published var showJoinDashpay: Bool = false + @Published var showJoinDashpay: Bool = true private var model: SyncModel = SyncModelImpl() @@ -45,8 +45,8 @@ class HomeViewModel: ObservableObject { } var shouldShowMixDashDialog: Bool { - get { coinJoinService.mode == .none || !coinJoinService.mixDashShown } - set(value) { coinJoinService.mixDashShown = !value } + get { coinJoinService.mode == .none || !UsernamePrefs.shared.mixDashShown } + set(value) { UsernamePrefs.shared.mixDashShown = !value } } init() { diff --git a/DashWallet/Sources/UI/SwiftUI Components/Button.swift b/DashWallet/Sources/UI/SwiftUI Components/Button.swift index b937d9966..ba33344b3 100644 --- a/DashWallet/Sources/UI/SwiftUI Components/Button.swift +++ b/DashWallet/Sources/UI/SwiftUI Components/Button.swift @@ -24,6 +24,7 @@ struct DashButton: View { var style: Style = .filled var size: Size = .large var stretch: Bool = true + var isEnabled: Bool = true var action: () -> Void enum Style { @@ -72,18 +73,26 @@ struct DashButton: View { .if(stretch) { view in view.frame(maxWidth: .infinity) } + .frame(minHeight: minimumHeight) .background(backgroundColor) .overlay( RoundedRectangle(cornerRadius: cornerRadius) .stroke(borderColor, lineWidth: 2) ) .cornerRadius(cornerRadius) - }.background(GeometryReader { geometry in + .opacity(isEnabled ? 1.0 : 0.5) + } + .disabled(!isEnabled) + .background(GeometryReader { geometry in Color.clear }) } private var backgroundColor: Color { + if !isEnabled { + return Color.black.opacity(0.2) + } + switch style { case .filled: return overridenBackgroundColor ?? Color.dashBlue @@ -93,6 +102,10 @@ struct DashButton: View { } private var foregroundColor: Color { + if !isEnabled { + return Color.black.opacity(0.6) + } + switch style { case .filled: return Color.white @@ -102,6 +115,10 @@ struct DashButton: View { } private var borderColor: Color { + if !isEnabled { + return Color.clear + } + switch style { case .outlined: return Color.tertiaryText.opacity(0.25) @@ -174,6 +191,19 @@ struct DashButton: View { return 6 } } + + private var minimumHeight: CGFloat { + switch size { + case .large: + return 48 + case .medium: + return 42 + case .small: + return 32 + default: + return 28 + } + } } private struct OverrideForegroundColorKey: EnvironmentKey { diff --git a/DashWallet/Sources/UI/SwiftUI Components/FeatureSingleItem.swift b/DashWallet/Sources/UI/SwiftUI Components/FeatureSingleItem.swift new file mode 100644 index 000000000..dbdfe0548 --- /dev/null +++ b/DashWallet/Sources/UI/SwiftUI Components/FeatureSingleItem.swift @@ -0,0 +1,58 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2024 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI + +struct FeatureSingleItem: View { + let iconName: IconName + let title: String + let description: String + + var body: some View { + HStack(alignment: .top, spacing: 12) { + ZStack { + Icon(name: iconName) + .frame(width: 24, height: 24) + } + .frame(width: 40, height: 40) + + VStack(alignment: .leading, spacing: 5) { + Text(title) + .font(.headline) + .foregroundColor(.primaryText) + + Text(description) + .font(.subheadline) + .foregroundColor(.secondaryText) + } + .padding(.top, 10) + } + } +} + +// Preview +struct FeatureSingleItem_Previews: PreviewProvider { + static var previews: some View { + FeatureSingleItem( + iconName: .system("person.circle"), + title: "Create a username", + description: "Pay to usernames. No more alphanumeric addresses." + ) + .previewLayout(.sizeThatFits) + .padding() + } +} diff --git a/DashWallet/Sources/UI/SwiftUI Components/FeatureTopText.swift b/DashWallet/Sources/UI/SwiftUI Components/FeatureTopText.swift index 9105b799c..ee3994212 100644 --- a/DashWallet/Sources/UI/SwiftUI Components/FeatureTopText.swift +++ b/DashWallet/Sources/UI/SwiftUI Components/FeatureTopText.swift @@ -39,8 +39,6 @@ struct FeatureTopText: View { .lineSpacing(3) .foregroundColor(.secondaryText) - // TODO: features - if let label = label { DashButton(text: label, trailingIcon: labelIcon, style: .plain, size: .small, stretch: false) { linkAction?() diff --git a/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift b/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift index 61ed1a6ef..779213c3a 100644 --- a/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift +++ b/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift @@ -18,41 +18,66 @@ import SwiftUI struct TextIntro: View { - let icon: IconName + var icon: IconName? = nil var buttonLabel: String? = nil var action: (() -> Void)? = nil + var isActionEnabled: Bool = true var inProgress: Binding? = nil @ViewBuilder var topText: () -> FeatureTopText + var features: () -> [FeatureSingleItem] = {[]} + var info: String? = nil var body: some View { ZStack(alignment: Alignment(horizontal: .center, vertical: .top)) { VStack(alignment: .leading, spacing: 0) { - Icon(name: icon) - .frame(maxWidth: .infinity, maxHeight: 100, alignment: .center) + if let icon = icon { + Icon(name: icon) + .frame(maxWidth: .infinity, maxHeight: 100, alignment: .center) + .padding(.bottom, 24) + } + + topText() + .frame(maxWidth: .infinity, alignment: .top) - topText().padding(.top, 24) - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) + if !features().isEmpty { + VStack(spacing: 0) { + ForEach(0.. Date: Mon, 21 Oct 2024 21:27:37 +0700 Subject: [PATCH 4/6] feat: what is voting info screen --- DashWallet.xcodeproj/project.pbxproj | 16 ++++--- .../CreateUsername/JoinDashPayScreen.swift | 46 +++++++++++-------- .../CreateUsername/VotingInfoScreen.swift | 40 ++++++++++++++++ .../Sources/UI/Home/Views/HomeView.swift | 2 +- .../ProvideAmountViewController.swift | 2 +- .../ConfirmPaymentViewController.swift | 4 +- .../UI/Payments/Pay/PayViewController.swift | 2 +- .../Receive/ReceiveViewController.swift | 2 +- .../UI/SwiftUI Components/TextIntro.swift | 15 +++--- .../{EmptyView.swift => EmptyUIView.swift} | 2 +- 10 files changed, 93 insertions(+), 38 deletions(-) create mode 100644 DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift rename DashWallet/Sources/UI/Views/{EmptyView.swift => EmptyUIView.swift} (96%) diff --git a/DashWallet.xcodeproj/project.pbxproj b/DashWallet.xcodeproj/project.pbxproj index 532b0b48e..a7fbcd85a 100644 --- a/DashWallet.xcodeproj/project.pbxproj +++ b/DashWallet.xcodeproj/project.pbxproj @@ -622,6 +622,7 @@ 759ADD572BF3447400767ACD /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759ADD562BF3447400767ACD /* Button.swift */; }; 759ADD582BF3447400767ACD /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759ADD562BF3447400767ACD /* Button.swift */; }; 759AFDE02CC63571007072D2 /* JoinDashPayScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759AFDDF2CC6356D007072D2 /* JoinDashPayScreen.swift */; }; + 759AFDE32CC67E8E007072D2 /* VotingInfoScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759AFDE22CC67E89007072D2 /* VotingInfoScreen.swift */; }; 759C8F9F2B593589004B1305 /* CrowdNodeAPYView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */; }; 759C8FA02B593589004B1305 /* CrowdNodeAPYView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */; }; 75A0A3F32CA7DBCF003ED48B /* TimeUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A0A3F22CA7DBCF003ED48B /* TimeUtils.swift */; }; @@ -1077,7 +1078,7 @@ C9D2C7222A320AA000D15901 /* DWPreviewSeedPhraseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A4431DA22D675CD009BAF7F /* DWPreviewSeedPhraseViewController.m */; }; C9D2C7242A320AA000D15901 /* WKWebView+CrowdNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 110D1780298BA9AF005BEB30 /* WKWebView+CrowdNode.swift */; }; C9D2C7252A320AA000D15901 /* SyncingActivityMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47FA3AFE29350929008D58DC /* SyncingActivityMonitor.swift */; }; - C9D2C7262A320AA000D15901 /* EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAF29DC27F4001BC549 /* EmptyView.swift */; }; + C9D2C7262A320AA000D15901 /* EmptyUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAF29DC27F4001BC549 /* EmptyUIView.swift */; }; C9D2C7272A320AA000D15901 /* (null) in Sources */ = {isa = PBXBuildFile; }; C9D2C7282A320AA000D15901 /* DWQRScanModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AC92C891FEB0B8B008CAEE0 /* DWQRScanModel.m */; }; C9D2C72A2A320AA000D15901 /* SyncView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F451F62A0CAE1300825057 /* SyncView.swift */; }; @@ -1531,7 +1532,7 @@ C9F42FA929DC09CF001BC549 /* Style.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FA829DC09CF001BC549 /* Style.swift */; }; C9F42FAB29DC1098001BC549 /* ReceiveContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAA29DC1098001BC549 /* ReceiveContentView.swift */; }; C9F42FAD29DC115A001BC549 /* ReceiveContentView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9F42FAC29DC115A001BC549 /* ReceiveContentView.xib */; }; - C9F42FB029DC27F4001BC549 /* EmptyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAF29DC27F4001BC549 /* EmptyView.swift */; }; + C9F42FB029DC27F4001BC549 /* EmptyUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FAF29DC27F4001BC549 /* EmptyUIView.swift */; }; C9F42FB229DD5141001BC549 /* BackupInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FB129DD5141001BC549 /* BackupInfoViewController.swift */; }; C9F42FB429DD86FB001BC549 /* BackupInfoItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F42FB329DD86FB001BC549 /* BackupInfoItemView.swift */; }; C9F42FB629DD8702001BC549 /* BackupInfoItemView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9F42FB529DD8702001BC549 /* BackupInfoItemView.xib */; }; @@ -2497,6 +2498,7 @@ 759816E619357D6F005060EA /* BRBubbleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BRBubbleView.m; sourceTree = ""; }; 759ADD562BF3447400767ACD /* Button.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Button.swift; sourceTree = ""; }; 759AFDDF2CC6356D007072D2 /* JoinDashPayScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinDashPayScreen.swift; sourceTree = ""; }; + 759AFDE22CC67E89007072D2 /* VotingInfoScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VotingInfoScreen.swift; sourceTree = ""; }; 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrowdNodeAPYView.swift; sourceTree = ""; }; 75A0A3F22CA7DBCF003ED48B /* TimeUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeUtils.swift; sourceTree = ""; }; 75A664D72B09F1EA007EFD16 /* VotingInfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VotingInfoViewController.swift; sourceTree = ""; }; @@ -3035,7 +3037,7 @@ C9F42FA829DC09CF001BC549 /* Style.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Style.swift; sourceTree = ""; }; C9F42FAA29DC1098001BC549 /* ReceiveContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReceiveContentView.swift; sourceTree = ""; }; C9F42FAC29DC115A001BC549 /* ReceiveContentView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReceiveContentView.xib; sourceTree = ""; }; - C9F42FAF29DC27F4001BC549 /* EmptyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyView.swift; sourceTree = ""; }; + C9F42FAF29DC27F4001BC549 /* EmptyUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyUIView.swift; sourceTree = ""; }; C9F42FB129DD5141001BC549 /* BackupInfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupInfoViewController.swift; sourceTree = ""; }; C9F42FB329DD86FB001BC549 /* BackupInfoItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupInfoItemView.swift; sourceTree = ""; }; C9F42FB529DD8702001BC549 /* BackupInfoItemView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = BackupInfoItemView.xib; sourceTree = ""; }; @@ -3813,7 +3815,7 @@ 2ADC9D1A24603C4F001D7C0D /* UISearchBar+DWAdditions.h */, 2ADC9D1B24603C4F001D7C0D /* UISearchBar+DWAdditions.m */, 47AE8C1428C6378E00490F5E /* HairlineView.swift */, - C9F42FAF29DC27F4001BC549 /* EmptyView.swift */, + C9F42FAF29DC27F4001BC549 /* EmptyUIView.swift */, C9F451F82A0CB08900825057 /* ProgressView.swift */, C9F451FC2A0CC4A300825057 /* BadgeView.swift */, C94D98202A4CC78F00F3BEE1 /* DashInputField.swift */, @@ -6149,6 +6151,7 @@ 759AFDE12CC64776007072D2 /* CreateUsername */ = { isa = PBXGroup; children = ( + 759AFDE22CC67E89007072D2 /* VotingInfoScreen.swift */, 759AFDDF2CC6356D007072D2 /* JoinDashPayScreen.swift */, 754C27D02CC3C82300BA7B9F /* JoinDashPayInfoDialog.swift */, 754C27CE2CC3C7AB00BA7B9F /* MixDashDialog.swift */, @@ -8625,7 +8628,7 @@ C956AF2F2A5D5F6B002FAB75 /* UpholdConfirmViewController.swift in Sources */, 110D1781298BA9AF005BEB30 /* WKWebView+CrowdNode.swift in Sources */, 47FA3AFF29350929008D58DC /* SyncingActivityMonitor.swift in Sources */, - C9F42FB029DC27F4001BC549 /* EmptyView.swift in Sources */, + C9F42FB029DC27F4001BC549 /* EmptyUIView.swift in Sources */, 757514E32B15DF7C0026AD8E /* ShadowView.swift in Sources */, 2AC92C8A1FEB0B8B008CAEE0 /* DWQRScanModel.m in Sources */, C9F451F72A0CAE1300825057 /* SyncView.swift in Sources */, @@ -9215,6 +9218,7 @@ C9D2C6E82A320AA000D15901 /* ExploreDash.swift in Sources */, C9D2C6EB2A320AA000D15901 /* UpholdAmountModel.swift in Sources */, C943B4DF2A40A54600AF23C5 /* DWGetStartedContentViewController.m in Sources */, + 759AFDE32CC67E8E007072D2 /* VotingInfoScreen.swift in Sources */, C943B4F42A40A54600AF23C5 /* DWDPUserObject.m in Sources */, C9D2C6EC2A320AA000D15901 /* DWModalInteractiveTransition.m in Sources */, C943B31D2A408CED00AF23C5 /* DWUserProfileContainerView.m in Sources */, @@ -9297,7 +9301,7 @@ C9D2C7242A320AA000D15901 /* WKWebView+CrowdNode.swift in Sources */, C9D2C7252A320AA000D15901 /* SyncingActivityMonitor.swift in Sources */, 75EE38D82CBFE52E00845FFF /* ContactsPlaceholderViewController.swift in Sources */, - C9D2C7262A320AA000D15901 /* EmptyView.swift in Sources */, + C9D2C7262A320AA000D15901 /* EmptyUIView.swift in Sources */, C9D2C7272A320AA000D15901 /* (null) in Sources */, C9D2C7282A320AA000D15901 /* DWQRScanModel.m in Sources */, C943B3292A408CED00AF23C5 /* DWExternalSourceViewController.m in Sources */, diff --git a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift index 5cd708019..cac45e4bc 100644 --- a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift +++ b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift @@ -19,26 +19,36 @@ import SwiftUI public struct JoinDashPayScreen: View { @StateObject private var viewModel = RequestUsernameViewModel.shared + @State private var navigateToVotingInfo = false public var body: some View { - TextIntro( - buttonLabel: NSLocalizedString("Continue", comment: ""), - action: { }, // TODO: navlink - isActionEnabled: viewModel.hasMinimumRequiredBalance, - inProgress: .constant(false), - topText: { - FeatureTopText( - title: NSLocalizedString("Join DashPay", comment: ""), - text: NSLocalizedString("Forget about long crypto addresses, create the username, find friends and add them to your contacts", comment: "") - ) - }, - features: {[ - FeatureSingleItem(iconName: .custom("username.letter"), title: NSLocalizedString("Create a username", comment: ""), description: NSLocalizedString("Pay to usernames. No more alphanumeric addresses.", comment: "")), - FeatureSingleItem(iconName: .custom("friends.add"), title: NSLocalizedString("Add your friends & family", comment: ""), description: NSLocalizedString("Invite your family, find your friends by searching their usernames.", comment: "")), - FeatureSingleItem(iconName: .custom("profile.personalized"), title: NSLocalizedString("Personalise profile", comment: ""), description: NSLocalizedString("Upload your picture, personalize your identity.", comment: "")) - ]}, - info: getInfo() - ) + ZStack { + TextIntro( + buttonLabel: NSLocalizedString("Continue", comment: ""), + action: { navigateToVotingInfo = true }, + isActionEnabled: viewModel.hasMinimumRequiredBalance, + inProgress: .constant(false), + topText: { + FeatureTopText( + title: NSLocalizedString("Join DashPay", comment: ""), + text: NSLocalizedString("Forget about long crypto addresses, create the username, find friends and add them to your contacts", comment: "") + ) + }, + features: {[ + FeatureSingleItem(iconName: .custom("username.letter"), title: NSLocalizedString("Create a username", comment: ""), description: NSLocalizedString("Pay to usernames. No more alphanumeric addresses.", comment: "")), + FeatureSingleItem(iconName: .custom("friends.add"), title: NSLocalizedString("Add your friends & family", comment: ""), description: NSLocalizedString("Invite your family, find your friends by searching their usernames.", comment: "")), + FeatureSingleItem(iconName: .custom("profile.personalized"), title: NSLocalizedString("Personalise profile", comment: ""), description: NSLocalizedString("Upload your picture, personalize your identity.", comment: "")) + ]}, + info: getInfo() + ) + + NavigationLink( + destination: VotingInfoScreen().navigationBarHidden(true), + isActive: $navigateToVotingInfo + ) { + EmptyView() + } + } } private func getInfo() -> String? { diff --git a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift new file mode 100644 index 000000000..9b90182f4 --- /dev/null +++ b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift @@ -0,0 +1,40 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2024 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI + +public struct VotingInfoScreen: View { + public var body: some View { + TextIntro( + buttonLabel: NSLocalizedString("Continue", comment: ""), + action: { }, // TODO: navlink + inProgress: .constant(false), + topText: { + FeatureTopText( + title: NSLocalizedString("What is username voting?", comment: "Usernames"), + text: NSLocalizedString("The Dash network has to vote to approve some usernames before they are created", comment: "Usernames") + ) + }, + features: {[ + FeatureSingleItem(iconName: .custom("username.letter"), title: NSLocalizedString("Voting is only required in some cases", comment: "Usernames"), description: NSLocalizedString("Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved", comment: "Usernames")), + FeatureSingleItem(iconName: .custom("friends.add"), title: NSLocalizedString("Some usernames can be blocked", comment: "Usernames"), description: NSLocalizedString("If enough of the network feels that a username is inappropriate, they can block it", comment: "Usernames")), + FeatureSingleItem(iconName: .custom("profile.personalized"), title: NSLocalizedString("In case your request is not approved", comment: "Usernames"), description: NSLocalizedString("Pay now and if not approved, you can create a different name without paying again", comment: "Usernames")), + FeatureSingleItem(iconName: .custom("profile.personalized"), title: NSLocalizedString("Keep your passphrase safe", comment: "Usernames"), description: NSLocalizedString("In case you lose your passphrase you will lose your right to your requested username.", comment: "Usernames")) + ]} + ) + } +} diff --git a/DashWallet/Sources/UI/Home/Views/HomeView.swift b/DashWallet/Sources/UI/Home/Views/HomeView.swift index d109efd7f..db6178e9f 100644 --- a/DashWallet/Sources/UI/Home/Views/HomeView.swift +++ b/DashWallet/Sources/UI/Home/Views/HomeView.swift @@ -382,7 +382,7 @@ struct HomeViewContent: View { let joinDashPayDialog = JoinDashPayInfoDialog() if #available(iOS 16.0, *) { - joinDashPayDialog.presentationDetents([.height(600)]) + joinDashPayDialog.presentationDetents([.height(660)]) } else { joinDashPayDialog } diff --git a/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift b/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift index 85a591f41..2e405b087 100644 --- a/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift +++ b/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift @@ -93,7 +93,7 @@ final class ProvideAmountViewController: SendAmountViewController { destination: destination, balanceLabel: balanceLabel, model: self.model as! SendAmountModel, - avatarView: { UIViewWrapper(uiView: avatarView ?? EmptyView()) } + avatarView: { UIViewWrapper(uiView: avatarView ?? EmptyUIView()) } ) let swiftUIController = UIHostingController(rootView: intro) swiftUIController.view.backgroundColor = UIColor.dw_secondaryBackground() diff --git a/DashWallet/Sources/UI/Payments/Pay/Confirm/ConfirmPaymentViewController.swift b/DashWallet/Sources/UI/Payments/Pay/Confirm/ConfirmPaymentViewController.swift index cb69e172f..4837cc0a3 100644 --- a/DashWallet/Sources/UI/Payments/Pay/Confirm/ConfirmPaymentViewController.swift +++ b/DashWallet/Sources/UI/Payments/Pay/Confirm/ConfirmPaymentViewController.swift @@ -113,8 +113,8 @@ extension ConfirmPaymentViewController { tableView.dataSource = self tableView.layoutMargins = view.layoutMargins tableView.registerClass(for: TitleValueCell.self) - tableView.tableHeaderView = EmptyView(frame: .init(x: 0, y: 0, width: 1, height: CGFloat.leastNonzeroMagnitude)) - tableView.tableFooterView = EmptyView(frame: .init(x: 0, y: 0, width: 1, height: CGFloat.leastNonzeroMagnitude)) + tableView.tableHeaderView = EmptyUIView(frame: .init(x: 0, y: 0, width: 1, height: CGFloat.leastNonzeroMagnitude)) + tableView.tableFooterView = EmptyUIView(frame: .init(x: 0, y: 0, width: 1, height: CGFloat.leastNonzeroMagnitude)) view.addSubview(tableView) let bottomButtonsStack = UIStackView() diff --git a/DashWallet/Sources/UI/Payments/Pay/PayViewController.swift b/DashWallet/Sources/UI/Payments/Pay/PayViewController.swift index fa830fca3..4dc14d0e2 100644 --- a/DashWallet/Sources/UI/Payments/Pay/PayViewController.swift +++ b/DashWallet/Sources/UI/Payments/Pay/PayViewController.swift @@ -89,7 +89,7 @@ extension PayViewController { tableView.rowHeight = 59 tableView.delegate = self tableView.dataSource = self - tableView.tableFooterView = EmptyView() + tableView.tableFooterView = EmptyUIView() tableView.tableHeaderView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 0.0, height: CGFloat.leastNormalMagnitude)) tableView.isScrollEnabled = false tableView.separatorStyle = .none diff --git a/DashWallet/Sources/UI/Payments/Receive/ReceiveViewController.swift b/DashWallet/Sources/UI/Payments/Receive/ReceiveViewController.swift index 85423c7d7..320594960 100644 --- a/DashWallet/Sources/UI/Payments/Receive/ReceiveViewController.swift +++ b/DashWallet/Sources/UI/Payments/Receive/ReceiveViewController.swift @@ -104,7 +104,7 @@ extension ReceiveViewController { importPrivateKeyButton.isHidden = !allowedToImportPrivateKey mainStackView.addArrangedSubview(importPrivateKeyButton) - mainStackView.addArrangedSubview(EmptyView()) + mainStackView.addArrangedSubview(EmptyUIView()) NSLayoutConstraint.activate([ mainStackView.topAnchor.constraint(equalTo: view.topAnchor), diff --git a/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift b/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift index 779213c3a..8d12c7f78 100644 --- a/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift +++ b/DashWallet/Sources/UI/SwiftUI Components/TextIntro.swift @@ -40,15 +40,16 @@ struct TextIntro: View { .frame(maxWidth: .infinity, alignment: .top) if !features().isEmpty { - VStack(spacing: 0) { - ForEach(0.. Date: Wed, 23 Oct 2024 21:42:45 +0700 Subject: [PATCH 5/6] feat: what is voting on Menu & contacts screen --- DashSyncCurrentCommit | 2 +- DashWallet.xcodeproj/project.pbxproj | 6 ++ .../icon.passphrase.imageset/Contents.json | 6 +- .../icon.passphrase.imageset/icon.png | Bin 0 -> 477 bytes .../icon.passphrase.imageset/icon@2x.png | Bin 0 -> 821 bytes .../icon.passphrase.imageset/icon@3x.png | Bin 0 -> 1047 bytes .../icon.passphrase.imageset/passphrase.png | Bin 560 -> 0 bytes .../passphrase@2x.png | Bin 923 -> 0 bytes .../passphrase@3x.png | Bin 1251 -> 0 bytes .../voting.blocked.imageset/Contents.json | 23 +++++++ .../voting.blocked.png | Bin 0 -> 571 bytes .../voting.blocked@2x.png | Bin 0 -> 1002 bytes .../voting.blocked@3x.png | Bin 0 -> 1457 bytes .../voting.list.imageset/Contents.json | 23 +++++++ .../voting.list.imageset/feature.list.png | Bin 0 -> 356 bytes .../voting.list.imageset/feature.list@2x.png | Bin 0 -> 559 bytes .../voting.list.imageset/feature.list@3x.png | Bin 0 -> 764 bytes .../UIHostingController+DashWallet.swift | 32 ++++++++++ .../ContactsPlaceholderViewController.swift | 37 ++++++----- .../JoinDashPayInfoDialog.swift | 6 +- .../CreateUsername/JoinDashPayScreen.swift | 3 +- .../CreateUsername/VotingInfoScreen.swift | 37 ++++++----- .../Setup/DashPaySetupFlowController.swift | 6 +- .../RequestUsernameViewController.swift | 6 +- .../Usernames/UsernameRequests.storyboard | 10 +-- .../Sources/UI/Home/HomeViewController.swift | 7 ++- .../Sources/UI/Home/Views/HomeView.swift | 58 +++++++++++++----- .../Sources/UI/Home/Views/HomeViewModel.swift | 2 + .../Menu/Main/Views/MainMenuContentView.swift | 30 +++++---- DashWallet/ar.lproj/Localizable.strings | 33 ++++++++++ DashWallet/bg.lproj/Localizable.strings | 33 ++++++++++ DashWallet/ca.lproj/Localizable.strings | 33 ++++++++++ DashWallet/cs.lproj/Localizable.strings | 33 ++++++++++ DashWallet/da.lproj/Localizable.strings | 33 ++++++++++ DashWallet/de.lproj/Localizable.strings | 33 ++++++++++ DashWallet/el.lproj/Localizable.strings | 33 ++++++++++ DashWallet/en.lproj/Localizable.strings | 33 ++++++++++ DashWallet/eo.lproj/Localizable.strings | 33 ++++++++++ DashWallet/es.lproj/Localizable.strings | 33 ++++++++++ DashWallet/et.lproj/Localizable.strings | 33 ++++++++++ DashWallet/fa.lproj/Localizable.strings | 33 ++++++++++ DashWallet/fi.lproj/Localizable.strings | 33 ++++++++++ DashWallet/fil.lproj/Localizable.strings | 33 ++++++++++ DashWallet/fr.lproj/Localizable.strings | 33 ++++++++++ DashWallet/hr.lproj/Localizable.strings | 33 ++++++++++ DashWallet/hu.lproj/Localizable.strings | 33 ++++++++++ DashWallet/id.lproj/Localizable.strings | 33 ++++++++++ DashWallet/it.lproj/Localizable.strings | 33 ++++++++++ DashWallet/ja.lproj/Localizable.strings | 33 ++++++++++ DashWallet/ko.lproj/Localizable.strings | 33 ++++++++++ DashWallet/mk.lproj/Localizable.strings | 33 ++++++++++ DashWallet/ms.lproj/Localizable.strings | 33 ++++++++++ DashWallet/nb.lproj/Localizable.strings | 33 ++++++++++ DashWallet/nl.lproj/Localizable.strings | 33 ++++++++++ DashWallet/pl.lproj/Localizable.strings | 33 ++++++++++ DashWallet/pt.lproj/Localizable.strings | 33 ++++++++++ DashWallet/ro.lproj/Localizable.strings | 33 ++++++++++ DashWallet/ru.lproj/Localizable.strings | 33 ++++++++++ DashWallet/sk.lproj/Localizable.strings | 33 ++++++++++ DashWallet/sl.lproj/Localizable.strings | 33 ++++++++++ DashWallet/sl_SI.lproj/Localizable.strings | 33 ++++++++++ DashWallet/sq.lproj/Localizable.strings | 33 ++++++++++ DashWallet/sr.lproj/Localizable.strings | 33 ++++++++++ DashWallet/sv.lproj/Localizable.strings | 33 ++++++++++ DashWallet/th.lproj/Localizable.strings | 33 ++++++++++ DashWallet/tr.lproj/Localizable.strings | 33 ++++++++++ DashWallet/uk.lproj/Localizable.strings | 33 ++++++++++ DashWallet/vi.lproj/Localizable.strings | 33 ++++++++++ DashWallet/zh-Hans.lproj/Localizable.strings | 33 ++++++++++ .../zh-Hant-TW.lproj/Localizable.strings | 33 ++++++++++ DashWallet/zh.lproj/Localizable.strings | 33 ++++++++++ DashWallet/zh_TW.lproj/Localizable.strings | 33 ++++++++++ 72 files changed, 1638 insertions(+), 75 deletions(-) create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/icon.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/icon@2x.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/icon@3x.png delete mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/passphrase.png delete mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/passphrase@2x.png delete mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/passphrase@3x.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/Contents.json create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/voting.blocked.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/voting.blocked@2x.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/voting.blocked@3x.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/Contents.json create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/feature.list.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/feature.list@2x.png create mode 100644 DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/feature.list@3x.png create mode 100644 DashWallet/Sources/Categories/UIHostingController+DashWallet.swift diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index 0f980e285..9254313bd 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -1b5af0dbe136f129e590264f5b446b4471b175b1 +09eee81df1a1a89cdcd77dd8965edb1f78b2eb84 diff --git a/DashWallet.xcodeproj/project.pbxproj b/DashWallet.xcodeproj/project.pbxproj index a7fbcd85a..effac1c73 100644 --- a/DashWallet.xcodeproj/project.pbxproj +++ b/DashWallet.xcodeproj/project.pbxproj @@ -657,6 +657,8 @@ 75CDD7872C08D61300F433D2 /* DashAmount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75CDD7852C08D61300F433D2 /* DashAmount.swift */; }; 75CED09E2ACFD0ED0095F10C /* CoinbaseDepositRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75CED09D2ACFD0ED0095F10C /* CoinbaseDepositRequest.swift */; }; 75CED0A02ACFED200095F10C /* CoinbaseDepositResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75CED09F2ACFED200095F10C /* CoinbaseDepositResponse.swift */; }; + 75D5D5332CC928630049ED7B /* UIHostingController+DashWallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D5D5322CC9285B0049ED7B /* UIHostingController+DashWallet.swift */; }; + 75D5D5342CC928630049ED7B /* UIHostingController+DashWallet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D5D5322CC9285B0049ED7B /* UIHostingController+DashWallet.swift */; }; 75D5F3CE191EC270004AB296 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 75D5F3CD191EC270004AB296 /* main.m */; }; 75D6561C2B07935000D1A902 /* WelcomeToDashpayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D6561B2B07935000D1A902 /* WelcomeToDashpayViewController.swift */; }; 75D6561D2B07936100D1A902 /* UsernameRequests.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 75D656192B0792F500D1A902 /* UsernameRequests.storyboard */; }; @@ -2522,6 +2524,7 @@ 75CE50B51B5216F100DBC18C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = DashWalletTests/Info.plist; sourceTree = SOURCE_ROOT; }; 75CED09D2ACFD0ED0095F10C /* CoinbaseDepositRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoinbaseDepositRequest.swift; sourceTree = ""; }; 75CED09F2ACFED200095F10C /* CoinbaseDepositResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoinbaseDepositResponse.swift; sourceTree = ""; }; + 75D5D5322CC9285B0049ED7B /* UIHostingController+DashWallet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIHostingController+DashWallet.swift"; sourceTree = ""; }; 75D5F3BE191EC270004AB296 /* dashwallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dashwallet.app; sourceTree = BUILT_PRODUCTS_DIR; }; 75D5F3C9191EC270004AB296 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 75D5F3CD191EC270004AB296 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; @@ -5010,6 +5013,7 @@ 47E4B7B6292F85E800CE0EB6 /* Numbers+Dash.swift */, 47EE171629560DC200BA1986 /* ErrorPresentable.swift */, 47CDEECD294A3CF2008AE06D /* UIViewController+DashWallet.swift */, + 75D5D5322CC9285B0049ED7B /* UIHostingController+DashWallet.swift */, 47EE17182959CDC200BA1986 /* ColorizedText.swift */, 4730586D295AB3BD004641DA /* UIDevice+Compatibility.swift */, 4730586F295AD62B004641DA /* NavigationBarAppearanceCustomizable.swift */, @@ -8541,6 +8545,7 @@ 477F50102950A55A003C7508 /* Coinbase+Error.swift in Sources */, 2A63003F2327B4BB00827825 /* DWPaymentOutput+DWView.m in Sources */, 750CED602C94BFD7000FB837 /* SettingsViewModel.swift in Sources */, + 75D5D5342CC928630049ED7B /* UIHostingController+DashWallet.swift in Sources */, 2ACD53EE234C9D8E00650AD3 /* UIView+DWRecursiveSubview.m in Sources */, 11860923297598B400279FCC /* AddressStatus.swift in Sources */, C91E919729FBACE6003E7883 /* ExtendedPublicKeysModel.swift in Sources */, @@ -9537,6 +9542,7 @@ C9D2C7CA2A320AA000D15901 /* DWModalDismissalAnimation.m in Sources */, C9D2C7CB2A320AA000D15901 /* (null) in Sources */, C9D2C7CD2A320AA000D15901 /* UIViewController+DashWallet.swift in Sources */, + 75D5D5332CC928630049ED7B /* UIHostingController+DashWallet.swift in Sources */, C9D2C7CE2A320AA000D15901 /* CrowdNodeCell.swift in Sources */, 751B61C62ADFFD0A00D1C2EF /* IntegrationViewController+Coinbase.swift in Sources */, C9D2C7CF2A320AA000D15901 /* MerchantListLocationOffCell.swift in Sources */, diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/Contents.json b/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/Contents.json index dbf1aa660..add923b2a 100644 --- a/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/Contents.json +++ b/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/Contents.json @@ -1,17 +1,17 @@ { "images" : [ { - "filename" : "passphrase.png", + "filename" : "icon.png", "idiom" : "universal", "scale" : "1x" }, { - "filename" : "passphrase@2x.png", + "filename" : "icon@2x.png", "idiom" : "universal", "scale" : "2x" }, { - "filename" : "passphrase@3x.png", + "filename" : "icon@3x.png", "idiom" : "universal", "scale" : "3x" } diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/icon.png b/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1a315cb74a0d4f9c5e36ef2838151dea487aeacd GIT binary patch literal 477 zcmV<30V4j1P)A+++*I)C=1A81(>B^ufFnlNFwEakMaj z(1(wK)llh1Gsv^Z){VHNus{kCMW&`26 z1(C#XgL{+%w|-(+n#Kp$!CWBU0hoUZvFXqI{%=BB;dbsXV7RRW{w~xJsm0T8O z45Gr*V z6O%wlIueR9-wK+3-LKR1d;d!VM~=AvgQ>@*^Ba1O~eH2^uYw z!wf!N;%#G^_{F`ufzn-MV+6T$B-8`9MCTbB7H(Hh`Y+tMo5Ojg3srL^kjv;_QK!i} zkruOu*r5erfkU8Gd|spT$2%}Y*$6rZmOqKKY2^1q>yHwb%`5saq(RHs34sZO)lNjC z%f>aGfk7rexDWSz-Rz;FqT;w&X`%PuI}{mSLFh0RYYKJJ8o+rpOIW${XHYmNYa5x7 zV_ZDm94bG|yX4A?$oy$&L6J&-rpPrCD`VVj=}L=Oo<>5R`_qQCyVF7WO}#w#Rc`n&);y-#dgh2GJB2VUZDV#A!e z47N25t*5c?UtkJn&=YSOYn#9nvZV!BXMr}^M3AnZj3aH*yQcnA`3-Ht?-hWd1Z*$+8&SRozuo{0FQK zaZq5>A;PXhLRv5ROLQ#1yvD3rCJ z;6g&F;YNwU5y(5~!4l80Z_@mzsHiwD)>?=!7wE#kv{>Ig%M`wLHb<{Og7k9E&3S0d zH#B1Hd>Lj zi_bllusphv5VjqL(kaETUM z6rd9Qdlm@Yuq<(XfvHN0dW5o}MPykL!6g(M39ZjiHssp5v0cOMSmydnLe5SoQeROP z6uQ=&=xuH2EJz%agF2n0IVsw!wdm^5FKnO$CiEFmAKN&novd7Uzt*Ae?c8JGQ%)R< zX&Zq+AP@)y9y4O8h4sg6vdSvkb~15OTs_!+Z;dq-W_L;^?kGv5Y5&enfBd-vt$J{A z@W7iK~{GcVBp>uHG3{pJv6TK_h; zTP2now6a|svR~=$OFm&H%(6;WhVTVX;{HqXexXm{i_F4IYx^ZP$sfA#!CY@!mnHp= z;2Pd$WpP7DRzg4|X8#THGJb`cdo-GfFjH_VoCIDQ+tu8o*z$#s z3Nza|%w82%WEvbGw|A^IBj8)8`5+c%u7#7WfXP-BR%HGXW)WP#XZ}?}jXg_QxGBt1 z;go-4lY3QV9n^bBgj$56BGQMXsW4l9^!z@@quY0R9!*pJbydLkLh_6y5C{YUfj}8? zBh1{x$=dm%%4_ACgK?AkJc#v#n@W#}J|hxl-Rng0XnaATYNB{dC`c`9kT^IBTwUfP z;Y=&c*zy%KI7~IJJ+z_l8UE^n(h4(0hgFebcg_El+YI9ORvYk2SzgJU8LHQmXuv-n zgxN!(bOhgc5oWGoHDam{s?4|s$?xQ9jHI^;EmsJkpffE2Hz&9X5GHi1M^Ag(@ z;vo@t7v(lVif{-vyL=0)tGmkO{#{*7=-jNsavQ~np!$E%_^q4gPduaZX6-iRT2qdoF3ZIWQ|IhTm{We&YF&bYnxHmMV;A|$+7=u+N^9I13Rt|BkWJ4EAW^jUYQIwRLF`N#{K=!w_o#0000PK4t8x1HEX__v7S@r*q)p84jRc?84DuRCCE%fDqLhYLkDlpY)oy19RG zQzq^0GSMV;azUzASz9b{3opA8xr^Db~goHpPC5YzEd6PQt!T~JY8@JxI`qVuF#S(Ofsp`z`R%G`b2?3oNpGiw<#YjL6xHhR8v&$@xY4vL$9Tam;mX3#@ym!&0eKYosf}{@gLx; z-2UsE0+ikYllAuop~28+m9?eXpn^t)h*>-!Eau5QASqmmKRYt(&A<#Vu8NZDndtE3 zipw4OFWqrV0|)zjyQ?lRo@=I>Q|<6cl^oht_#5p9p4c|*J$ z$|Ez03%Ad|2YajKnU`9Kj`i!#TrrU1T&=`vj3Gy5CH`k+T)x}Qrih?nx?%0g^o;-{Xh>O;rg4gUKE@Gt=fsaOJV(y>7`CK)u*Xnt*i@d4@lJ*|e zV;g10VO!-cu8YL9!@WCJ)+d$qyY`^6ZDH_^rE(TRA&n6eIZ)-CkIV4xRH6JK9mZF> z@NkB`;6^bcBO{~j<$Rpag~=34){Bxz>_~^ z>sc{gZfYkbob1{7K+G39LNxl1pu{R6MVR?SLA9#Vwc#paOr&a-dXs(M$2w{U#X@%2 zr&1T0%eU9p$<3#H-W|H7&&bFK1qH5*FwBzDXfc@v zop6eO9#+Kc7sio+;%Sgp(0E${#Wl=;bb`i&EzF3tg2po&+UW$1IciXNJkp@tcA`P! xA%WuQJ>JmXwHBo7EX))+WK_-5VS(al@CS@bE^sgbe&YZD002ovPDHLkV1j@JyUPFo diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/passphrase@3x.png b/DashWallet/Resources/AppAssets.xcassets/Usernames/icon.passphrase.imageset/passphrase@3x.png deleted file mode 100644 index afce2277c50e8595ef8e9b2cb8c87d9e582a19d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1251 zcmV<91RVQ`P)>1EO< z=t?bc8$_cPygP?8Yo`g#?%He3IJ?q(QlxlicgJ&fXZM_cewlE=_kZjF`W_eo%Fmhn z9YfXj(fuHtwDVVwU#@9ZePX@FL@Ss90#2FuhlBOyqw!~<|Dq3#d#E0v1h1VJyuIJf zH(29G*n)6$u)efS`0hnVK0ZWMAq?=@YCElI_sOdOvHn^94PX=EZ6zJ=pvo{>GGo?K z+jQIl96WkhZ7Jz^4OK^HjKKue3EWZ`J!q>9>$#7?Ox06Vo!Ua`7|fdxPN0E8%=@S| zM_F&xTf^az3^IgmINn$I;==)SMT2K%iyC&bntSc{&rqYb)!;Gq4?cZ&KyNmfH&ZOR zoWdRXG*gl|H<)A!@-Mi*dN|GQNm`;~libVLD8MY3v`6blCTQ?@JRXn7 zgjZhweZB#rAazg0;f4A+4d#6RoS%1?$xbp|uz&QQtw1kyBvH1M%##sK2N&gC61b7H zOhzRQCLA52rrHOeEQWbI?LB$5g(yCpRi@7CUlDJ9y}q1Zy!W5Cpp)@f?_a8`O?Qgu6MdEx3j#r+@CiJsXN=xH?(K zB-3<01h`pNjC3BNFzNc1dG630r1%NSu6r4svog)PGbDu{YVL;_-Mq9*@W4DL0o1unqI{D6`(4#?YJysLVSe zdUhNr#n#C%PyhZ<3fB&7!Fm&)f0SABIP>Pt1IOlRk(Yu?Mh|tk> zWu6|dFkQ#guc&a)3?k&-b!ncyleUp#9iZ~KG*1)%mA09oO8+95gi*QOnWq!iG&EmQ%Lbrf%&_INxVkH_PwJXaFn3$t;$ zs&RvuWcq1V33pSB0{89n7L*gSu}voaRK`4^Ihc)YBEcIrr!DDRqUK;Wwn>nsEYBMe zGP$sM`exx4N`O&-tEI>iy@wK@oZ3EJz~%V9vRLEZ>}(ZXj_<3+X5(t8u|}yjiggK4 zBeU_aEmNSpcOFR+tkIRA^-vQ2XP!=~hp6sqopm;hB)>2W%aFTWBu4^P)Isw+04LBJh&RBU3ng_SVJA0`oknA9Sh(m1 z>nV&VW3Um+YD#x`PN-0&IUyq z-Z?To@~-95LJ|lyqi0m3gw*JR&%(jEPu_E4;~K`PIQ0Bh*uNOp9^zy7u*}RA%m5Kr zR-29Ln1J>?0IrY%O5t?n>EUJ|pkuDXB8kf(9UOy=ZJm=a2cGiEDH_-0T=FjU1@$ZD z1#`eyT+S<>+#=?L>vk^`LmgvI5Yt{pig+vj4Qfk`JD3VvF$<;$L?^cgDy=u~6P4|U zY%m60MhPgS08jWzdM_O43NmBXZA^nGCkk<4b|gg95g*K$7c5Le+@C;OG2sz&Lh^X4 zvROZs{u2eWUsrkCmIRTFw2>LH(XxMgQNaG0oD$S~QrmEXUJ$nIP(Ulm_mq$lOk4_W zVrZhRwHh^?u$g|7_pkkAOr$J38`woYx)8RJ2f$#S|^Q`~VXwx5>AxBwPRh002ov JPDHLkV1fyb^c4UA literal 0 HcmV?d00001 diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/voting.blocked@2x.png b/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/voting.blocked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..45b222d326ab6a7e71aa3e6b01e84c4525b1e9a0 GIT binary patch literal 1002 zcmVOCKXea@Yu;Gfb76oL|_)#1x^4t0dNAF8{iWJP5{|u!9y$(dxtqeloiFJ z3Kx~i!m?)4qu46PHnztIBYjmamE;+zd%EY*-Gm6Zv~6pwma;)=4hlAuN)wP){A+3E z20uX+D0z{R6V7D$n~O(67?L}CHC?aWZz@GL-`W@kVr3wUk5R^00WG-a{mzqA8*L-} zI0$~bE8wjve04I))|`{QJ1;P!(wx?A{Yd7^&6zCDl8;HFe+X%K6O zehqHl=ho}wosUp>jpgw-uNHHw{TlXE;3m70mlAtV=`uagE7?Kdwmo>zg|zTWsRCkv zgxa1do$Pk|ud4#uZS=?^MhJn8H{Xx<+n;wRpeL;M`Db#QUQ~HvziXe^9dm#u&uI*W z*QA4$u#Nu|(04!mI3Zq4iPdLcv;3-cQ7zYU;(S%%pQz)iHj+hXg+KukViO626nzM;33Q(j|An6s33Q(j9R&(LfRFN& z87UHSp639~A)yGK2jjfGSuljx-l`%TA|gly2>|U07K~8oaq~`a>&jo6EjcbCn2ZsrQa4Xr@csDr|~-a8O6jdy;6A#}Z%)0>zD zGhCj@jspEc1Q6l%ka;F|oQSF%`@#^5Q-~V`<9^*y81_xBVByb@Pqn+GI|`VuHGF;Ul9FQfh7xzX;UuYm%Sj>CsD zDk3RxEundw36Byc*jm`H3Bd!@}pVw~l(8#y6>rW%#KEC`BY#71AHy{F<%1A-;obH=zWc#d^k5rZ396A2xn(vvAqM`$-DDq2x Y0cSINO)>t%=Kufz07*qoM6N<$f*7pH)&Kwi literal 0 HcmV?d00001 diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/voting.blocked@3x.png b/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.blocked.imageset/voting.blocked@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3ea41c2e3ad9e5dc201aaf90309ac098e23488 GIT binary patch literal 1457 zcmV;i1y1^jP)BxR}$NjUb=Xo*YCX+VSwCO+iA}$WZ(xGCR$=f znt)8@WwZWVc|0%AalxF2AcunBSIh{M2UvT0fLi-_m^4p0j&as!j$g!!SsrOGzN=H#91Sl zJJV@ZS_B%hFwKNQy?B3l1P$~o(Cs&y7W;gPCMP=rxWu&gBKOut4|FY1#m^i_Kl2JB z41tb~)bpcmXTGikx?BF%EK~Ukqh~d7xU)RF){Sox=nyreJSu;{_=uxWKj??sLv_oFbZZDsj-C})^ zigVOdKEdKB(q-YjQQtN0gjj)85Qy=b%DaO(;}r`BaW6*>v76=fUAam=#S{_ekD@Jz zC|1!)MaD>x2JuKB74KjghSp=u>(%wc=7SAGYz)^}y2;O`K3l9`*fv;@Cp;B~o0wkG zrP6&vl-(c@Gw))`kslrfA`!$((n-@25+Vs0^9GSDhcL9E`g){ko{2y>7$7XzBxbE^ zNohSxhFpJ{(1aA{ypZzu7HxZA4NmpQ8Tr^N&Ya5MTU%U5H!B<3?8j#redcTzLqvDj z(sAiI9&&~)j$&R~FNIB2deA7)=pcQnwjr)jAU2;Wp9~7M@RrwNK@&o!5|8PFkfoOz6WU@QG^K#UN3w#oC)j$x(5TBgd=>eVFn>U&|>CgQXu0yPOv? zTKp3UkpzT~LgqaNI~2wVCYe!Wkq8vS48sw|GcOS+234yU^WnOQY$P;et3MApX~GXk zXdnPxsK-#CAn>wCXn@%}SC64U4~xuXnAKrd7vBF@RuNnv;Q``W_iIfcBNb%j!%z}k zBZgbQ_pBz6n$4K#1XE6+){%8Iq&w#3Jk=~d%~s?x2j}$%8U&hpD&Wb)tm{qLE z#q{Au?R$MBP?*zY+QXC~3l3{h$0Jj&m44x=8EUfhbre@{h|Mxp$|vKtajqNOg`eIn z#=RJuv{yr|Vs?`}tGRJQt4hl}rP{`*cIsgg@%)zyKif~Hds>!#LVv_Oc}`n?r&i)9 z+Nz5!4=r3iJ0f?^tIGU_UDU zArBTMc69dYL_@a9rx#?(xF5ZdeG{lkXjLSwD%=m!yIA3L4RVwyp3MIByX~*<0yPuf zqK1NuPh<+FC3yvDVm2dgVBq560v%b{lsPK?sQL&BvQ$3EF53S9YO6s^r6nLF00000 LNkvXXu0mjfLj9KJ literal 0 HcmV?d00001 diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/Contents.json b/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/Contents.json new file mode 100644 index 000000000..5d7b7aeea --- /dev/null +++ b/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "feature.list.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "feature.list@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "feature.list@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/feature.list.png b/DashWallet/Resources/AppAssets.xcassets/Usernames/voting.list.imageset/feature.list.png new file mode 100644 index 0000000000000000000000000000000000000000..c6eb3f0e4930a8cec8746ec258ef231375c483ba GIT binary patch literal 356 zcmV-q0h|7bP)J{lz@@VkG{!d~B52~~#f2Xv zguIY{-kYC)gsfNqIZ3Ba@7>cfqJq`w+3VHkuRA_hvtp!Qq*x)6UkY*-PPU)mKG@3? zW0I>k5^t|>w1m453Y66lxBI8p4Gb0mdC9esVnxX?j&!YJbENb02-BdQv^Kt5NMkiC zexWj4kobDRL7^^XhB5a#{MHUr?BqO8PxDCQKAM`wHJN7l)k3rdS6|!BPf24($%Lop zj%i}-8J--P)eWXurR>X?G?rQGlls~w9FHtZ^nV9TB}mb^_9>nK00005#zz&+OphSpq$*7Z7ffY16fE|<_&>cWqq)s!e1hM;^(hm(k z8C9|)A1PAwVh^r=@A`!yp2ZMo0qB9xBZL0<|^5$MY$FkN$gY25Vxxc|3wD z%mr%Kyf;KpNf1AnLFIN=piat<1g&ZhMRlhKz`Y2t2iSYzY`NoY3Uq0P0CmLG3G(># ztI3Cr4nGqR=9M1rcyZo9mo^^;y5}_*e1%9h2~bP}X7PnTgvR=9+6Kg;)p5@k(&xANVs z8_jB@5kv~w9s&)XKq^A5{6Jy8K`O$e{6K?wFRKGc;|lJC6HjOP?8J1$&z?g9YcEg< zdpgTTDW#NBN~t~JX{5y0sBCuOFMOpG|2D zg-kQ&j{U!zGkB_p{%ph84rFl)zh0Cd=;h4`29Ss__E2r2mypW(n9fLx3kX(zpbHv8 uDr5WQ2kO?)TT>S`M>M+`gH8B<@B9Vhd({l}LX$550000 Void public var body: some View { BottomSheet(showBackButton: Binding.constant(false)) { - JoinDashPayScreen() + JoinDashPayScreen { + presentationMode.wrappedValue.dismiss() + action() + } } } } diff --git a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift index cac45e4bc..36506d3d2 100644 --- a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift +++ b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/JoinDashPayScreen.swift @@ -20,6 +20,7 @@ import SwiftUI public struct JoinDashPayScreen: View { @StateObject private var viewModel = RequestUsernameViewModel.shared @State private var navigateToVotingInfo = false + var action: () -> Void public var body: some View { ZStack { @@ -43,7 +44,7 @@ public struct JoinDashPayScreen: View { ) NavigationLink( - destination: VotingInfoScreen().navigationBarHidden(true), + destination: VotingInfoScreen(action: action).navigationBarHidden(true), isActive: $navigateToVotingInfo ) { EmptyView() diff --git a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift index 9b90182f4..819ad09f7 100644 --- a/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift +++ b/DashWallet/Sources/UI/DashPay/Setup/CreateUsername/VotingInfoScreen.swift @@ -18,23 +18,26 @@ import SwiftUI public struct VotingInfoScreen: View { + var action: () -> Void + public var body: some View { - TextIntro( - buttonLabel: NSLocalizedString("Continue", comment: ""), - action: { }, // TODO: navlink - inProgress: .constant(false), - topText: { - FeatureTopText( - title: NSLocalizedString("What is username voting?", comment: "Usernames"), - text: NSLocalizedString("The Dash network has to vote to approve some usernames before they are created", comment: "Usernames") - ) - }, - features: {[ - FeatureSingleItem(iconName: .custom("username.letter"), title: NSLocalizedString("Voting is only required in some cases", comment: "Usernames"), description: NSLocalizedString("Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved", comment: "Usernames")), - FeatureSingleItem(iconName: .custom("friends.add"), title: NSLocalizedString("Some usernames can be blocked", comment: "Usernames"), description: NSLocalizedString("If enough of the network feels that a username is inappropriate, they can block it", comment: "Usernames")), - FeatureSingleItem(iconName: .custom("profile.personalized"), title: NSLocalizedString("In case your request is not approved", comment: "Usernames"), description: NSLocalizedString("Pay now and if not approved, you can create a different name without paying again", comment: "Usernames")), - FeatureSingleItem(iconName: .custom("profile.personalized"), title: NSLocalizedString("Keep your passphrase safe", comment: "Usernames"), description: NSLocalizedString("In case you lose your passphrase you will lose your right to your requested username.", comment: "Usernames")) - ]} - ) + ZStack { + TextIntro( + buttonLabel: NSLocalizedString("Continue", comment: ""), + action: action, + inProgress: .constant(false), + topText: { + FeatureTopText( + title: NSLocalizedString("What is username voting?", comment: "Usernames"), + text: NSLocalizedString("The Dash network has to vote to approve some usernames before they are created", comment: "Usernames") + ) + }, + features: {[ + FeatureSingleItem(iconName: .custom("voting.list"), title: NSLocalizedString("Voting is only required in some cases", comment: "Usernames"), description: NSLocalizedString("Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved", comment: "Usernames")), + FeatureSingleItem(iconName: .custom("voting.blocked"), title: NSLocalizedString("Some usernames can be blocked", comment: "Usernames"), description: NSLocalizedString("If enough of the network feels that a username is inappropriate, they can block it", comment: "Usernames")), + FeatureSingleItem(iconName: .custom("icon.passphrase"), title: NSLocalizedString("Keep your passphrase safe", comment: "Usernames"), description: NSLocalizedString("In case you lose your passphrase you will lose your right to your requested username.", comment: "Usernames")) + ]} + ) + } } } diff --git a/DashWallet/Sources/UI/DashPay/Setup/DashPaySetupFlowController.swift b/DashWallet/Sources/UI/DashPay/Setup/DashPaySetupFlowController.swift index ce668e916..e57f79b22 100644 --- a/DashWallet/Sources/UI/DashPay/Setup/DashPaySetupFlowController.swift +++ b/DashWallet/Sources/UI/DashPay/Setup/DashPaySetupFlowController.swift @@ -17,7 +17,7 @@ import UIKit -protocol DWDashPaySetupFlowControllerDelegate: AnyObject { +protocol DashPaySetupFlowControllerDelegate: AnyObject { func dashPaySetupFlowController(_ controller: DashPaySetupFlowController, didConfirmUsername username: String) } @@ -27,7 +27,7 @@ class DashPaySetupFlowController: UIViewController, NavigationFullscreenable, DW private(set) var dashPayModel: DWDashPayProtocol private(set) var invitationURL: URL? private(set) var definedUsername: String? - weak var confirmationDelegate: DWDashPaySetupFlowControllerDelegate? + weak var confirmationDelegate: DashPaySetupFlowControllerDelegate? private var headerHeightConstraint: NSLayoutConstraint! private var containerController: DWContainerViewController! private var createUsernameViewController: DWCreateUsernameViewController! @@ -55,7 +55,7 @@ class DashPaySetupFlowController: UIViewController, NavigationFullscreenable, DW super.init(nibName: nil, bundle: nil) } - init(confirmationDelegate: DWDashPaySetupFlowControllerDelegate) { + init(confirmationDelegate: DashPaySetupFlowControllerDelegate) { self.dashPayModel = DWDashPaySetupModel() self.confirmationDelegate = confirmationDelegate super.init(nibName: nil, bundle: nil) diff --git a/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift b/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift index 9aa0027cf..94f89cc9c 100644 --- a/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift +++ b/DashWallet/Sources/UI/DashPay/Usernames/RequestUsernameViewController.swift @@ -50,8 +50,10 @@ final class RequestUsernameViewController: UIViewController { return label }() - static func controller() -> RequestUsernameViewController { - RequestUsernameViewController() + static func controller(isFullScreen: Bool = false) -> RequestUsernameViewController { + let vc = RequestUsernameViewController() + vc.modalPresentationStyle = isFullScreen ? .fullScreen : .formSheet + return vc } override func viewDidLoad() { diff --git a/DashWallet/Sources/UI/DashPay/Usernames/UsernameRequests.storyboard b/DashWallet/Sources/UI/DashPay/Usernames/UsernameRequests.storyboard index b772f9f29..6a1f27863 100644 --- a/DashWallet/Sources/UI/DashPay/Usernames/UsernameRequests.storyboard +++ b/DashWallet/Sources/UI/DashPay/Usernames/UsernameRequests.storyboard @@ -1,9 +1,9 @@ - + - + @@ -854,11 +854,11 @@ - + - + @@ -870,7 +870,7 @@ - + diff --git a/DashWallet/Sources/UI/Home/HomeViewController.swift b/DashWallet/Sources/UI/Home/HomeViewController.swift index 4d7564500..86509834a 100644 --- a/DashWallet/Sources/UI/Home/HomeViewController.swift +++ b/DashWallet/Sources/UI/Home/HomeViewController.swift @@ -293,11 +293,16 @@ extension HomeViewController: RootEditProfileViewControllerDelegate { // MARK: - HomeViewDelegate extension HomeViewController: HomeViewDelegate { - func homeViewShowCoinJoin(_ homeView: HomeView?) { + func homeViewShowCoinJoin() { let controller = CoinJoinLevelsViewController.controller(isFullScreen: true) present(controller, animated: true, completion: nil) } + func homeViewRequestUsername() { + let action = ShortcutAction(type: .createUsername) + performAction(for: action, sender: nil) + } + func homeView(_ homeView: HomeView, showTxFilter sender: UIView) { showTxFilter(withSender: sender, displayModeProvider: model, shouldShowRewards: true) } diff --git a/DashWallet/Sources/UI/Home/Views/HomeView.swift b/DashWallet/Sources/UI/Home/Views/HomeView.swift index db6178e9f..5aacbb166 100644 --- a/DashWallet/Sources/UI/Home/Views/HomeView.swift +++ b/DashWallet/Sources/UI/Home/Views/HomeView.swift @@ -23,11 +23,12 @@ import SwiftUI protocol HomeViewDelegate: AnyObject { func homeView(_ homeView: HomeView, showTxFilter sender: UIView) func homeView(_ homeView: HomeView, showSyncingStatus sender: UIView) - func homeViewShowCoinJoin(_ homeView: HomeView?) + func homeViewShowCoinJoin() func homeView(_ homeView: HomeView, showReclassifyYourTransactionsFlowWithTransaction transaction: DSTransaction) #if DASHPAY func homeView(_ homeView: HomeView, didUpdateProfile identity: DSBlockchainIdentity?, unreadNotifications: UInt) + func homeViewRequestUsername() #endif } @@ -276,9 +277,10 @@ struct TxPreviewModel: Identifiable, Equatable { struct HomeViewContent: View { @State private var selectedTxDataItem: TransactionListDataItem? = nil @State private var shouldShowMixDialog: Bool = false - @State private var shouldShowDashPayFlow: Bool = false + @State private var shouldShowJoinDashPayInfo: Bool = false @State private var navigateToDashPayFlow: Bool = false @State private var navigateToCoinJoin: Bool = false + @State private var skipToCreateUsername: Bool = false @StateObject var viewModel: HomeViewModel weak var delegate: HomeViewDelegate? @@ -307,9 +309,10 @@ struct HomeViewContent: View { ) .padding(.horizontal, 15) .id(viewModel.coinJoinItem.id) - .onTapGesture { delegate?.homeViewShowCoinJoin(nil) } + .onTapGesture { delegate?.homeViewShowCoinJoin() } } + #if DASHPAY if viewModel.showJoinDashpay { JoinDashPayView { if viewModel.shouldShowMixDashDialog { @@ -317,10 +320,11 @@ struct HomeViewContent: View { self.navigateToCoinJoin = false self.shouldShowMixDialog = true } else { - self.shouldShowDashPayFlow = true + self.shouldShowJoinDashPayInfo = true } } } + #endif syncingHeader() .frame(height: 50) @@ -356,20 +360,21 @@ struct HomeViewContent: View { .sheet(item: $selectedTxDataItem) { item in TransactionDetailsSheet(item: item) } + #if DASHPAY .sheet(isPresented: $shouldShowMixDialog, onDismiss: { viewModel.shouldShowMixDashDialog = false - - if navigateToDashPayFlow { - navigateToDashPayFlow = false - shouldShowDashPayFlow = true - } else if navigateToCoinJoin { - navigateToCoinJoin = false - delegate?.homeViewShowCoinJoin(nil) - } + finishMixDialogNavigation() }) { let mixDashDialog = MixDashDialog( positiveAction: { self.navigateToCoinJoin = true }, - negativeAction: { self.navigateToDashPayFlow = true } + negativeAction: { + if UsernamePrefs.shared.joinDashPayInfoShown { + skipToCreateUsername = true + } else { + UsernamePrefs.shared.joinDashPayInfoShown = true + navigateToDashPayFlow = true + } + } ) if #available(iOS 16.0, *) { @@ -378,15 +383,23 @@ struct HomeViewContent: View { mixDashDialog } } - .sheet(isPresented: $shouldShowDashPayFlow) { - let joinDashPayDialog = JoinDashPayInfoDialog() + .sheet(isPresented: $shouldShowJoinDashPayInfo, onDismiss: { + if navigateToDashPayFlow { + navigateToDashPayFlow = false + delegate?.homeViewRequestUsername() + } + }) { + let joinDashPayDialog = JoinDashPayInfoDialog { + navigateToDashPayFlow = true + } if #available(iOS 16.0, *) { - joinDashPayDialog.presentationDetents([.height(660)]) + joinDashPayDialog.presentationDetents([.height(600)]) } else { joinDashPayDialog } } + #endif .onAppear { viewModel.checkTimeSkew() } @@ -466,6 +479,19 @@ struct HomeViewContent: View { return r } } + + private func finishMixDialogNavigation() { + if navigateToDashPayFlow { + navigateToDashPayFlow = false + shouldShowJoinDashPayInfo = true + } else if navigateToCoinJoin { + navigateToCoinJoin = false + delegate?.homeViewShowCoinJoin() + } else if skipToCreateUsername { + skipToCreateUsername = false + delegate?.homeViewRequestUsername() + } + } } struct TransactionDetailsSheet: View { diff --git a/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift b/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift index b5b691734..a60a230c7 100644 --- a/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift +++ b/DashWallet/Sources/UI/Home/Views/HomeViewModel.swift @@ -44,10 +44,12 @@ class HomeViewModel: ObservableObject { get { coinJoinService.mode } } + #if DASHPAY var shouldShowMixDashDialog: Bool { get { coinJoinService.mode == .none || !UsernamePrefs.shared.mixDashShown } set(value) { UsernamePrefs.shared.mixDashShown = !value } } + #endif init() { model.networkStatusDidChange = { status in diff --git a/DashWallet/Sources/UI/Menu/Main/Views/MainMenuContentView.swift b/DashWallet/Sources/UI/Menu/Main/Views/MainMenuContentView.swift index e577391e0..cdd54696c 100644 --- a/DashWallet/Sources/UI/Menu/Main/Views/MainMenuContentView.swift +++ b/DashWallet/Sources/UI/Menu/Main/Views/MainMenuContentView.swift @@ -140,20 +140,16 @@ class MainMenuContentView: UIView { positiveAction: { self.delegate?.mainMenuContentView(self, showCoinJoin: sender) }, negativeAction: { - self.delegate?.mainMenuContentView(self, joinDashPayAction: sender) + if UsernamePrefs.shared.joinDashPayInfoShown { + self.delegate?.mainMenuContentView(self, joinDashPayAction: sender) + } else { + UsernamePrefs.shared.joinDashPayInfoShown = true + self.showDashPayInfo(sender) + } } ) let hostingController = UIHostingController(rootView: swiftUIView) - - if #available(iOS 16.0, *) { - if let sheet = hostingController.sheetPresentationController { - let fitId = UISheetPresentationController.Detent.Identifier("fit") - let fitDetent = UISheetPresentationController.Detent.custom(identifier: fitId) { _ in - 250 - } - sheet.detents = [fitDetent] - } - } + hostingController.setDetent(250) if let parentVC = self.parentViewController() { parentVC.present(hostingController, animated: true, completion: nil) @@ -161,6 +157,18 @@ class MainMenuContentView: UIView { delegate?.mainMenuContentView(self, joinDashPayAction: sender) } } + + private func showDashPayInfo(_ sender: UIButton) { + let swiftUIView = JoinDashPayInfoDialog() { + self.delegate?.mainMenuContentView(self, joinDashPayAction: sender) + } + let hostingController = UIHostingController(rootView: swiftUIView) + hostingController.setDetent(600) + + if let parentVC = self.parentViewController() { + parentVC.present(hostingController, animated: true, completion: nil) + } + } #endif } diff --git a/DashWallet/ar.lproj/Localizable.strings b/DashWallet/ar.lproj/Localizable.strings index 10111574c..8ee8509db 100644 --- a/DashWallet/ar.lproj/Localizable.strings +++ b/DashWallet/ar.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "نسيت الرقم السري ؟"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "يعمل بحث التاجر بشكل أفضل مع تشغيل خدمات الموقع."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "تخطي"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "الرمز غير صحيح. يرجى مراجعة وحاول مرة أخرى!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "مفاتيح التصويت"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "لقد تجاوزت حد التفويض على كوين بيس."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/bg.lproj/Localizable.strings b/DashWallet/bg.lproj/Localizable.strings index deb2e2eef..10a349aa2 100644 --- a/DashWallet/bg.lproj/Localizable.strings +++ b/DashWallet/bg.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Забравен ПИН?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Пропусни"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Нещо се обърка"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Адрес за гласуване"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Ключове за гласуване"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/ca.lproj/Localizable.strings b/DashWallet/ca.lproj/Localizable.strings index bc3ee0cc0..7dc260ebb 100644 --- a/DashWallet/ca.lproj/Localizable.strings +++ b/DashWallet/ca.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/cs.lproj/Localizable.strings b/DashWallet/cs.lproj/Localizable.strings index 8fd18f2d5..81e369878 100644 --- a/DashWallet/cs.lproj/Localizable.strings +++ b/DashWallet/cs.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Zapomenutý PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Vyhledávání obchodníků funguje lépe se zapnutým určením polohy."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Přeskočit"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Něco se pokazilo"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Adresa pro hlasování"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Klíče pro hlasování"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/da.lproj/Localizable.strings b/DashWallet/da.lproj/Localizable.strings index a00c0d3f7..018d56ec2 100644 --- a/DashWallet/da.lproj/Localizable.strings +++ b/DashWallet/da.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/de.lproj/Localizable.strings b/DashWallet/de.lproj/Localizable.strings index 8309f356d..ce39b0747 100644 --- a/DashWallet/de.lproj/Localizable.strings +++ b/DashWallet/de.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Jedes Guthaben, das gemixt wurde, wird mit nicht gemixten Guthaben kombiniert."; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Du wurdest zu deiner Sicherheit abgemeldet."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "PIN vergessen?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identität"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Wenn jemand anderes den gleichen Nutzernamen beantragt wie du, wird das Netzwerk darüber entscheiden, wer den Namen erhält."; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Die Händlersuche funktioniert besser, wenn die Standortdienste aktiviert sind."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Überspringen"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Etwas hat nicht funktioniert"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Diese Code ist falsch. Bitte kontrollieren und erneut versuchen!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Das Dash Netzwerk wird durch eine Reihe von Masternodes gesteuert, die eine wesentliche Rolle bei der Erleichterung von Zahlungen spielen."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "zur Dash Wallet auf diesem Gerät"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Um einen Nutzernamen zu beantragen, benötigst du mehr als %@ Dash."; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Abstimmungs-Adresse"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Abstimmungs-Schlüssel"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Du hast den Berechtigungsrahmen von Coinbase überschritten."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Du wurdest von %@ eingeladen. Beginne mit der Kryptowährung Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Du benötigst mindestens %@ in deiner Dash Wallet."; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Du musst 5 Minuten warten, bevor du die nächste Auszahlung beginnen kannst."; diff --git a/DashWallet/el.lproj/Localizable.strings b/DashWallet/el.lproj/Localizable.strings index 5c2b3eead..bdb9eb814 100644 --- a/DashWallet/el.lproj/Localizable.strings +++ b/DashWallet/el.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Τυχόν χρήματα που έχουν αναμειχθεί θα συνδυαστούν με τα μη αναμεμειγμένα χρήματα σας."; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Για την ασφάλειά σας, έχετε αποσυνδεθεί."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Ξεχάσατε το PIN;"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Ταυτότητα"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Εάν κάποιος άλλος ζητήσει το ίδιο όνομα χρήστη με εσάς, θα αφήσουμε το δίκτυο να αποφασίσει σε ποιον να δώσει αυτό το όνομα χρήστη."; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Η εμπορική αναζήτηση λειτουργεί καλύτερα με ενεργοποιημένες τις Υπηρεσίες τοποθεσίας."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Παράλειψη"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Κάτι πήγε στραβά"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Ο κωδικός είναι λανθασμένος. Παρακαλώ ελέγξτε και δοκιμάστε ξανά!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Το δίκτυο Dash διευθύνεται από έναν αριθμό Masternodes, οι οποίοι αποτελούν βασικό μέρος της διεξαγωγής των πληρωμών."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "στο Dash Wallet σε αυτή τη συσκευή"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Για να ζητήσετε ένα όνομα χρήστη στο δίκτυο Dash, θα πρέπει να έχετε περισσότερα από %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Διεύθυνση Ψήφου"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Κλειδιά ψήφου"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Υπερβήκατε το όριο εξουσιοδότησης στην Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Έχετε προσκληθεί από %@. Ξεκινήστε να χρησιμοποιείτε το κρυπτονόμισμα Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Χρειάζεστε τουλάχιστον %@ στο Dash Wallet σας"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Πρέπει να περιμένετε 5 λεπτά πριν ξεκινήσετε άλλη ανάληψη."; diff --git a/DashWallet/en.lproj/Localizable.strings b/DashWallet/en.lproj/Localizable.strings index 8fe100f21..2d87b0a5a 100644 --- a/DashWallet/en.lproj/Localizable.strings +++ b/DashWallet/en.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/eo.lproj/Localizable.strings b/DashWallet/eo.lproj/Localizable.strings index 8bbdeee3b..1ceabaadf 100644 --- a/DashWallet/eo.lproj/Localizable.strings +++ b/DashWallet/eo.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/es.lproj/Localizable.strings b/DashWallet/es.lproj/Localizable.strings index 76f746a25..41b8f15f6 100644 --- a/DashWallet/es.lproj/Localizable.strings +++ b/DashWallet/es.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Todos los fondos que se hayan mezclado se combinarán con tus fondos no mezclados."; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Por su seguridad, has sido desconectado."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "¿Olvidaste el PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identidad"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Si alguien más solicita el mismo nombre de usuario que tu, dejaremos que la red decida a quién darle este nombre de usuario."; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "La búsqueda de comerciantes funciona mejor con los servicios de ubicación activados."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Salta"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Algo salió mal"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "El código es incorrecto. ¡Por favor revisa e intenta de nuevo!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Dash Network está impulsada por una serie de Masternodes que son una parte esencial para facilitar los pagos."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "a la billetera de Dash en este dispositivo"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Para solicitar un nombre de usuario en Dash Network, debes tener más de%@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Dirección de voto"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Llaves para votar"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Excediste el límite de autorización en Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Has sido invitado por %@. Comienza a usar la criptomoneda Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Necesitas al menos %@ en tu billetera de Dash"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Debes esperar 5 minutos antes de iniciar otro retiro."; diff --git a/DashWallet/et.lproj/Localizable.strings b/DashWallet/et.lproj/Localizable.strings index a87d4a321..350a975bc 100644 --- a/DashWallet/et.lproj/Localizable.strings +++ b/DashWallet/et.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/fa.lproj/Localizable.strings b/DashWallet/fa.lproj/Localizable.strings index 76dc9a88b..f9df25e28 100644 --- a/DashWallet/fa.lproj/Localizable.strings +++ b/DashWallet/fa.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "پین کد را فراموش کردید؟"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "پس از روشن کردن موقعیت مکانی دستگاه، جستجوی فروشندگان بهتر عمل می‌کند. "; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "رد کردن"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "کد وارد شده درست نیست. لطفا دوباره آن را بررسی کرده و وارد کنید! "; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "شبکه دش توسط تعدادی مسترنود اداره می‌شود که بخشی اساسی در تسهیل پرداخت‌ها هستند. "; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "کلیدهای رای‌دهی"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "از حد تعریف‌شده در کوین‌بیس فراتر رفتید."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/fi.lproj/Localizable.strings b/DashWallet/fi.lproj/Localizable.strings index 4b747d7d3..e11561b03 100644 --- a/DashWallet/fi.lproj/Localizable.strings +++ b/DashWallet/fi.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/fil.lproj/Localizable.strings b/DashWallet/fil.lproj/Localizable.strings index d906c8473..7e8401903 100644 --- a/DashWallet/fil.lproj/Localizable.strings +++ b/DashWallet/fil.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Ang anumang mga pondo na pinaghalo ay isasama sa iyong mga hindi pinaghalong pondo"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Para sa iyong seguridad, na-sign out ka."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Nakalimutan ang PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Pagkakakilanlan"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Kung may ibang humiling ng parehong username gaya mo, hahayaan namin ang network na magpasya kung kanino ibibigay ang username na ito"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Mas mahusay na gumagana ang paghahanap ng merchant kapag naka-on ang Mga Serbisyo sa Lokasyon."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Laktawan"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "May maling nangyari"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Mali ang code. Pakisuri at subukang muli!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Ang Dash Network ay hinihimok ng isang bilang ng mga Masternode na isang mahalagang bahagi ng pagpapadali sa mga pagbabayad."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "Sa Dash wallet sa device na ito"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Upang humiling ng username sa Dash Network, kailangan mong magkaroon ng higit sa %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Address ng pagboto"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Mga susi ng pagboto"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Lumampas ka sa limitasyon ng awtorisasyon sa Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Inimbitahan ka ni %@. Simulan ang paggamit ng Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Kailangan mo ng kahit man lang %@ sa iyong Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Kailangan mong maghintay ng 5 minuto bago simulan ang isa pang withdrawal"; diff --git a/DashWallet/fr.lproj/Localizable.strings b/DashWallet/fr.lproj/Localizable.strings index e5d236670..b55d4c1fc 100644 --- a/DashWallet/fr.lproj/Localizable.strings +++ b/DashWallet/fr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Tous les fonds qui ont été mélangés peuvent être combinés avec vos fonds non mélangés"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Vous avez été déconnecté(e) pour votre sécurité."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Code PIN oublié ?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identité"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Si quelqu'un d'autre demande le même nom d'utilisateur que vous, nous laisserons le réseau décider à qui attribuer ce nom d'utilisateur"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "La recherche de vendeurs marche mieux lorsque les services de localisation sont activés."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Ignorer"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Il y a eu un problème"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Ce code est incorrect. Veuillez vérifier et réessayer !"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Le réseau Dash est opéré par un certain nombre de masternodes, qui sont un facteur essentiel pour faciliter les paiements."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "vers Dash Wallet sur cet appareil"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Pour demander un nom d'utilisateur sur le réseau Dash, vous devez posséder plus de %@ dashs"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Adresse de vote"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Clés de vote"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Vous avez dépassé la limite d'autorisation sur Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Vous avez été invité(e) par %@. Commencez à utiliser la cryptomonnaie Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Vous avez besoin d'au moins %@ dans votre Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Vous devez attendre 5 minutes avant de lancer un autre retrait"; diff --git a/DashWallet/hr.lproj/Localizable.strings b/DashWallet/hr.lproj/Localizable.strings index 22255a6fe..4bc592e1a 100644 --- a/DashWallet/hr.lproj/Localizable.strings +++ b/DashWallet/hr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/hu.lproj/Localizable.strings b/DashWallet/hu.lproj/Localizable.strings index 579e3151d..dff26dd94 100644 --- a/DashWallet/hu.lproj/Localizable.strings +++ b/DashWallet/hu.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "A manóba, valami nincs rendben"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Szavazati Kulcsok"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/id.lproj/Localizable.strings b/DashWallet/id.lproj/Localizable.strings index 305cf8de5..4d87f1c86 100644 --- a/DashWallet/id.lproj/Localizable.strings +++ b/DashWallet/id.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Dana apa pun yang sudah tercampur akan digabungkan dengan dana Anda yang belum tercampur"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Demi keamanan Anda, Anda telah keluar."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Lupa PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identitas"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Jika orang lain meminta nama pengguna yang sama dengan Anda, kami akan membiarkan jaringan memutuskan siapa yang akan memberikan nama pengguna tersebut"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Pencarian pedagang bekerja lebih baik dengan Layanan Lokasi diaktifkan."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Lewati"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Ada yang salah"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Kode tidak benar. Silakan periksa dan coba lagi!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Dash Network digerakkan oleh sejumlah Masternode yang merupakan bagian penting dalam memfasilitasi pembayaran."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "ke Dash Wallet di perangkat ini"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Untuk meminta nama pengguna di jaringan Dash, anda harus memiliki lebih dari %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Alamat pemungutan suara"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Kunci pemungutan suara"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Anda melampaui batas otorisasi di Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Anda telah diundang oleh %@. Mulai gunakan cryptocurrency Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Anda membutuhkan setidaknya %@ dash di Wallet Anda"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Anda harus menunggu 5 menit sebelum memulai penarikan lainnya"; diff --git a/DashWallet/it.lproj/Localizable.strings b/DashWallet/it.lproj/Localizable.strings index 0007b3f2b..620701ff8 100644 --- a/DashWallet/it.lproj/Localizable.strings +++ b/DashWallet/it.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Eventuali fondi mixati verranno combinati con i fondi non mixati"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Per la tua sicurezza, sei stato disconnesso."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Hai dimenticato il PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identità"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Se qualcun altro richiede il tuo stesso nome utente, lasceremo che sia la rete a decidere a chi assegnare questo nome utente"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "La ricerca commerciante funziona meglio con i servizi di localizzazione attivati."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Salta"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Qualcosa è andato storto"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Il codice non è corretto. Si prega di verificare e riprovare!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "La rete Dash è guidata da una serie di Masternode che sono una parte essenziale per facilitare i pagamenti."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "a Dash Wallet su questo dispositivo"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Per richiedere un nome utente su Dash Network, devi averne più di %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Indirizzo di voto"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Chiavi di Voto"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Hai superato il limite di autorizzazione su Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Sei stato invitato da %@. Inizia ad usare la criptovaluta Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Ti serve almeno %@ sul tuo portafoglio Dash"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Devi attendere 5 minuti prima di avviare un altro prelievo"; diff --git a/DashWallet/ja.lproj/Localizable.strings b/DashWallet/ja.lproj/Localizable.strings index 9749351d8..bb6864080 100644 --- a/DashWallet/ja.lproj/Localizable.strings +++ b/DashWallet/ja.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "ミキシングされた資金はミキシングされていない資金と合算されます"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "セキュリティのため、サインアウトされました。"; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "PINを忘れましたか?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "アイデンティティ"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "他の利用者がお客様と同じユーザー名を希望した場合、そのユーザー名を付与する人物はネットワークが決定することになります。"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "位置情報サービスをオンにすると、加盟店検索がより機能します。"; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "スキップする"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "問題が生じました"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "コードが正しくありません。ご確認の上、再度ご入力ください。"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Dashネットワークは多くのマスターノードで駆動され、決済を促進するのに不可欠な役割を担っています。"; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "この端末のDashウォレットに"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Dashネットワークでユーザー名を申請するには、%@以上のDashが必要です"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = " 投票のアドレス"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "投票のキー"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Coinbaseの認証制限を超えてしまいました。"; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "%@から招待されました。Dashの仮想通貨を使い始めましょう。"; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "CrowdNodeの認証を進めるには、%@以上必要です。"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "5分間待ってから次の出金を開始しましょう"; diff --git a/DashWallet/ko.lproj/Localizable.strings b/DashWallet/ko.lproj/Localizable.strings index e39bb8d69..2b9a33651 100644 --- a/DashWallet/ko.lproj/Localizable.strings +++ b/DashWallet/ko.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "믹싱된 자금은 믹싱되지 않은 자금과 합산되게 됩니다"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "애플 페이"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "보안을 위해 로그아웃 되었습니다."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "PIN을 잊어버리셨나요?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "아이덴티티"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "만약 다른 사람이 당신과 같은 사용자 이름을 요청하면, 해당 이름을 누구에게 줄 지는 네트워크가 결정하게 됩니다."; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "상점 검색은 위치 서비스를 켰을 때 보다 잘 작동합니다."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "건너뛰기"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "뭔가 잘못되었습니다"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "잘못된 코드입니다. 확인 후 다시 시도해주십시오!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "대시 네트워크는 지불이 이루어지는 데 중요한 역할을 하는 다수의 마스터노드에 의해 운영됩니다."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "이 기기의 대시 지갑으로"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "대시 네트워크상에 사용자 이름을 요청하기 위해서는 %@ 대시 이상이 필요합니다"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "투표 주소"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "투표 키"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "코인베이스 인증 제한을 초과하였습니다."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "%@ 님이 초대장을 보냈습니다. 대시 암호화폐 사용을 시작해보세요."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "당신의 대시 지갑에 최소 %@ 가 필요합니다"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "다음 출금을 요청하시기 전 5분을 대기하여야 합니다"; diff --git a/DashWallet/mk.lproj/Localizable.strings b/DashWallet/mk.lproj/Localizable.strings index c22555dc6..7476ab3e3 100644 --- a/DashWallet/mk.lproj/Localizable.strings +++ b/DashWallet/mk.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/ms.lproj/Localizable.strings b/DashWallet/ms.lproj/Localizable.strings index 1fe6f79b6..eb7d1a2f4 100644 --- a/DashWallet/ms.lproj/Localizable.strings +++ b/DashWallet/ms.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/nb.lproj/Localizable.strings b/DashWallet/nb.lproj/Localizable.strings index 03895b9af..e1f20deaa 100644 --- a/DashWallet/nb.lproj/Localizable.strings +++ b/DashWallet/nb.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/nl.lproj/Localizable.strings b/DashWallet/nl.lproj/Localizable.strings index e75bffc98..da8f2d939 100644 --- a/DashWallet/nl.lproj/Localizable.strings +++ b/DashWallet/nl.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Gemixt saldo wordt gecombineerd met niet-gemixte saldo"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Voor de veiligheid ben je afgemeld."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "PIN vergeten?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identiteit"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Als iemand anders dezelfde gebruikersnaam aanvraagt ​​als jij, laten we het netwerk beslissen aan wie deze gebruikersnaam wordt gegeven"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Zoeken naar acceptanten werkt beter met locatiediensten ingeschakeld."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Overslaan"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Er is iets verkeerd gegaan"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "De code is onjuist. Controleer en probeer het opnieuw."; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Het Dash netwerk wordt aangedreven door een aantal Masternodes, welke een essentieel onderdeel zijn voor het faciliteren van betalingen."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "naar Dash portemonnee op dit apparaat"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Om een ​​gebruikersnaam op het Dash netwerk aan te vragen, heb je meer dan %@ Dash nodig"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Stem adres"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Stem sleutels"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Je hebt de autorisatielimiet op Coinbase overschreden."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "U bent uitgenodigd door %@. Begin met het gebruik van Dash als crypto."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Je hebt minimaal %@ nodig in je Dash portemonnee"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Je moet 5 minuten wachten voordat je een nieuwe opname kunt uitvoeren"; diff --git a/DashWallet/pl.lproj/Localizable.strings b/DashWallet/pl.lproj/Localizable.strings index 4f5a4e5ac..7deca1b83 100644 --- a/DashWallet/pl.lproj/Localizable.strings +++ b/DashWallet/pl.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Wszelkie pomieszane fundusze zostaną połączone z niemieszanymi funduszami."; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Zostałeś wylogowany ze względów bezpieczeństwa."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Zapomniałeś kodu PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Tożsamość"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Jeśli ktoś inny poprosi o tę samą nazwę użytkownika co Ty, pozwolimy sieci zdecydować, kto ją dostanie"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Szukiwanie sprzedawców działa lepiej z włączonymi usługami lokalizacyjnymi."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Pomiń"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Coś poszło nie tak"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Kod jest nieprawidłowy. Spróbuj ponownie!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Sieć Dash jest kierowana przez Masternody które są niezbędną częscią infrastruktury przeznaczonej do dokonywania transakcji. "; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "Do portfela Dash na tym urządzeniu"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Aby poprosić o nazwę użytkownika w sieci Dash, musisz mieć więcej niż %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Adres Głosowania"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Klucze głosujące"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Przekroczyłeś limit autoryzacji na Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Zostałeś zaproszony przez %@. Zacznij używać Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Potrzebujesz co najmniej %@ w swoim portfelu Dash"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Musisz odczekać 5 minut przed rozpoczęciem kolejnej wypłaty"; diff --git a/DashWallet/pt.lproj/Localizable.strings b/DashWallet/pt.lproj/Localizable.strings index c007185f6..d87e921c1 100644 --- a/DashWallet/pt.lproj/Localizable.strings +++ b/DashWallet/pt.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Quaisquer fundos que tenham sido misturados serão combinados com seus fundos não misturados"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Para sua segurança, você foi desconectado."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Esqueceu o PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identidade"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Se alguém mais solicitar o mesmo nome de usuário que você, deixaremos que a rede decida a quem atribuir este nome de usuário"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "A pesquisa de comércios funciona melhor com os Serviços de Localização ativados."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Pular"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Algo deu errado"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Código incorreto. Por favor, verifique e tente novamente!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "A Rede Dash é impulsionada por vários Masternodes, que são uma parte essencial para facilitar os pagamentos."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "para a Carteira Dash neste dispositivo"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Para solicitar um nome de usuário na Rede Dash, você precisa ter mais de %@ Dash "; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Endereço de Votação"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Chaves de Votação"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Você excedeu o limite de autorização na Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Você foi convidado por %@. Comece a usar a criptomoeda Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Você precisa de pelo menos %@ Dash em sua carteira"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Você precisa aguardar 5 minutos antes de iniciar outro saque"; diff --git a/DashWallet/ro.lproj/Localizable.strings b/DashWallet/ro.lproj/Localizable.strings index fe60beae9..56531a9e8 100644 --- a/DashWallet/ro.lproj/Localizable.strings +++ b/DashWallet/ro.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Ceva n-a mers bine"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Chei de Vot"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/ru.lproj/Localizable.strings b/DashWallet/ru.lproj/Localizable.strings index 4b104a613..ca195c607 100644 --- a/DashWallet/ru.lproj/Localizable.strings +++ b/DashWallet/ru.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Любые перемешанные ранее средства будут объединены с вашими неперемешанными средствами"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "В целях безопасности был совершён выход из учётной записи."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Забыли PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "ID"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Если кто-то запросит такое же имя пользователя, то сеть решит, кому его отдать. "; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Поиск продавцов работает лучше всего с включенными службами геолокации."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Пропустить"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Что-то пошло не так"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Неверный код. Попробуйте ещё раз!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Сеть Dash работает на основе мастернод, которые играют важную роль в проведении платежей"; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "на Dash Wallet на этом устройстве"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Чтобы запросить имя пользователя в Dash Network, вам нужно больше чем %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Адрес голосования"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Ключи голосования"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Превышен лимит авторизаций на Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Вас пригласил %@. Начните пользоваться криптовалютой Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "В вашем Dash Wallet должно быть не менее %@ Dash"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Вы должны подождать 5 минут, прежде чем вывести средства ещё раз"; diff --git a/DashWallet/sk.lproj/Localizable.strings b/DashWallet/sk.lproj/Localizable.strings index ecbdf7aa7..e9f995590 100644 --- a/DashWallet/sk.lproj/Localizable.strings +++ b/DashWallet/sk.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Všetky prostriedky, ktoré boli zmiešané, budú kombinované s vašimi nezmiešanými prostriedkami"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Pre vašu bezpečnosť ste boli odhlásení."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Zabudli ste PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identita"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Ak niekto iný požaduje rovnaké používateľské meno ako vy, necháme sieť rozhodnúť, komu toto používateľské meno pridelí"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Vyhľadávanie obchodníkov funguje lepšie so zapnutými službami určovania polohy."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Preskočiť"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Niečo sa pokazilo"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Kód je nesprávny. Skontrolujte a skúste to znova!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Sieť Dash je riadená množstvom Masternodov, ktoré sú nevyhnutnou súčasťou uskutočnenia platieb."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "do Dash peňaženky na tomto zariadení"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Ak chcete požiadať o používateľské meno v sieti Dash, musíte mať viac ako %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Adresa pre hlasovanie"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Hlasovacie kľúče"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Prekročili ste autorizačný limit na Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Boli ste pozvaní používateľom %@. Začnite používať kryptomenu Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "V Dash peňaženke potrebujete aspoň %@"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Pred ďalším výberom musíte počkať 5 minút"; diff --git a/DashWallet/sl.lproj/Localizable.strings b/DashWallet/sl.lproj/Localizable.strings index 968e632d3..cda2a8f62 100644 --- a/DashWallet/sl.lproj/Localizable.strings +++ b/DashWallet/sl.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/sl_SI.lproj/Localizable.strings b/DashWallet/sl_SI.lproj/Localizable.strings index fca0f857f..35af61c0d 100644 --- a/DashWallet/sl_SI.lproj/Localizable.strings +++ b/DashWallet/sl_SI.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/sq.lproj/Localizable.strings b/DashWallet/sq.lproj/Localizable.strings index 2315bacb2..d7c84eb8a 100644 --- a/DashWallet/sq.lproj/Localizable.strings +++ b/DashWallet/sq.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/sr.lproj/Localizable.strings b/DashWallet/sr.lproj/Localizable.strings index 0e8d30094..326b46300 100644 --- a/DashWallet/sr.lproj/Localizable.strings +++ b/DashWallet/sr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/sv.lproj/Localizable.strings b/DashWallet/sv.lproj/Localizable.strings index dff5b52c7..6b5942fd0 100644 --- a/DashWallet/sv.lproj/Localizable.strings +++ b/DashWallet/sv.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/th.lproj/Localizable.strings b/DashWallet/th.lproj/Localizable.strings index 98b72e0c0..52b4d0297 100644 --- a/DashWallet/th.lproj/Localizable.strings +++ b/DashWallet/th.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "กองทุนใดๆ ที่ได้รับการผสมจะถูกรวมเข้ากับกองทุนที่ยังไม่ได้ผสมของคุณ"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "เพื่อความปลอดภัยของคุณคุณได้ลงทะเบียนแล้ว"; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "ลืม PIN ใช่หรือไม่"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "ตัวตน"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "การค้นหาร้านค้าทำงานได้ดีขึ้นเมื่อเปิดการใช้งานบริการสถานที่"; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "ข้าม"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "มีบางอย่างผิดพลาด"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "รหัสไม่ถูกต้อง กรุณาตรวจสอบและลองอีกครั้ง!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Dash Network ขับเคลื่อนโดย Masternodes จำนวนหนึ่งซึ่งเป็นส่วนสำคัญในการอำนวยความสะดวกในการชำระเงิน"; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "เพื่อกระเป๋า Dash บนอุปกรณ์นี้"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "ที่อยู่ซึ่งใช้ในการออกเสียงลงคะแนน"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "คุณทำรายการเกินขีดจำกัดการอนุญาตของ Coinbase"; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "คุณได้รับเชิญโดย %@. เริ่มใช้ Dash"; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "คุณต้องมีอย่างน้อย %@ บนกระเป๋า Dash ของคุณ"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/tr.lproj/Localizable.strings b/DashWallet/tr.lproj/Localizable.strings index d2ff6df88..76f177334 100644 --- a/DashWallet/tr.lproj/Localizable.strings +++ b/DashWallet/tr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Karıştırılmış fonlarınız, karıştırılmamış fonlarınızla birleştirilecektir."; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "Güvenliğiniz için oturumunuz kapatıldı."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "PİN'inizi unuttunuz mu?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Kimlik"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Başka biri sizinle aynı kullanıcı adını isterse, bu kullanıcı adını kime vereceğine ağın karar vermesine izin vereceğiz"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Tüccar araması, Konum Servisleri açıkken daha iyi çalışır."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Atla"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Bir şeyler ters gitti"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Kod yanlış. Lütfen kontrol edip tekrar deneyin!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Dash Ağı, ödemeleri kolaylaştırmanın önemli bir parçası olan bir dizi Ana Düğüm tarafından yönlendirilmektedir."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "bu cihazdaki Dash Cüzdan'ına"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Dash Ağında bir kullanıcı adı istemek için %@ Dash'tan fazlasına sahip olmanız gerekir"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Oy Verme Adresi"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Oy Verme Anahtarları"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Coinbase'deki yetki sınırını aştınız."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "%@ tarafından davet edildiniz. Dash kripto para birimini kullanmaya başlayın."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "Dash Cüzdan'ınızda en az %@ olması gerekir"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Başka bir para çekme işlemine başlamadan önce 5 dakika beklemeniz gerekir"; diff --git a/DashWallet/uk.lproj/Localizable.strings b/DashWallet/uk.lproj/Localizable.strings index 0545a89f2..d3b6fcc18 100644 --- a/DashWallet/uk.lproj/Localizable.strings +++ b/DashWallet/uk.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Будь-які змішані кошти буде об’єднано з вашими незмішаними коштами"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "З міркувань безпеки ви вийшли з акаунту."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Забули PIN-код?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Ідентично"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "Якщо хтось інший запитає таке ж ім’я користувача, як і ви, ми дозволимо мережі вирішити, кому присвоїти це ім’я користувача"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Пошук продавців працює краще, якщо ввімкнено служби локації."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Пропустити"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Щось пішло не так"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "Код не правильний. Перевірте та повторіть спробу!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Dash Network Мастернодами, що є важливою частиною полегшення платежів."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "На Dash Wallet на цьому пристрої"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "Щоб подати запит на ім’я користувача в Dash Network, вам потрібно мати більше ніж %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Адреса голосування"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Ключі голосування"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "Ви перевищили ліміт авторизації на Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "Вас запросив %@. Почніть використовувати криптовалюту Dash."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "На балансі Dash Wallet має бути хоча б %@"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Вам потрібно зачекати 5 хвилин, перш ніж почати наступне виведення"; diff --git a/DashWallet/vi.lproj/Localizable.strings b/DashWallet/vi.lproj/Localizable.strings index 478e0ed0c..9f6304880 100644 --- a/DashWallet/vi.lproj/Localizable.strings +++ b/DashWallet/vi.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Quên mã PIN"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Bỏ qua"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Có vấn đề gì đó"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Địa chỉ bỏ phiếu"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Khoá bỏ phiếu"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/zh-Hans.lproj/Localizable.strings b/DashWallet/zh-Hans.lproj/Localizable.strings index 239bf9f67..3f0e68ad0 100644 --- a/DashWallet/zh-Hans.lproj/Localizable.strings +++ b/DashWallet/zh-Hans.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/zh-Hant-TW.lproj/Localizable.strings b/DashWallet/zh-Hant-TW.lproj/Localizable.strings index 375752df7..1b6c1c4ec 100644 --- a/DashWallet/zh-Hant-TW.lproj/Localizable.strings +++ b/DashWallet/zh-Hant-TW.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "Any funds that have been mixed will be combined with your un mixed funds"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "For your security, you have been signed out."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "Forgot PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "Identity"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "If somebody else requests the same username as you, we will let the network decide whom to give this username"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "Merchant search works better with Location Services turned on."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "Skip"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "Something went wrong"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "The code is incorrect. Please check and try again!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "to Dash Wallet on this device"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "To request a username on the Dash Network, you need to have more than %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "Voting Address"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "Voting Keys"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "You exceeded the authorization limit on Coinbase."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "You have been invited by %@. Start using Dash cryptocurrency."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "You need at least %@ on your Dash Wallet"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; diff --git a/DashWallet/zh.lproj/Localizable.strings b/DashWallet/zh.lproj/Localizable.strings index 1ddb6d405..f006f8915 100644 --- a/DashWallet/zh.lproj/Localizable.strings +++ b/DashWallet/zh.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "任何已混币的资金将会与您未混币的资金相加"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "为了保障您的账户安全, 您已被登出."; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "忘记PIN?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "身份"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "如果其他人像您一样也申请了相同的用户名, 我们将让网络决定谁能够得到它."; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "开启位置服务能获得更好的商户搜索效果."; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "跳过"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "发生了一些问题"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "验证码不正确. 请检查并重试!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "Dash 网络由众多主节点驱动, 这是令支付更便捷的重要组成部分."; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "到此设备的Dash钱包"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "在 Dash 网络上申请一个用户名, 您需要持有超过 %@ Dash"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "投票者地址"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "投票者密钥"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "您超出了 Coinbase的授权限制."; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "您已被%@邀请. 开始使用 Dash加密数字货币."; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "您的Dash钱包中至少需要有%@ Dash"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "您需要等待5分钟才能再次发起提现"; diff --git a/DashWallet/zh_TW.lproj/Localizable.strings b/DashWallet/zh_TW.lproj/Localizable.strings index a02c6f55e..00db21d1f 100644 --- a/DashWallet/zh_TW.lproj/Localizable.strings +++ b/DashWallet/zh_TW.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* CoinJoin */ "Any funds that have been mixed will be combined with your un mixed funds" = "任何已混合的資金將與您未混合的資金合併"; +/* Usernames */ +"Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved" = "Any username that has a number 2-9, is more than 20 characters or that has a hyphen will be automatically approved"; + /* Coinbase/Payment Methods */ "Apple Pay" = "Apple Pay"; @@ -886,6 +889,9 @@ /* Coinbase */ "For your security, you have been signed out." = "基於您的帳戶安全考量,您已被登出。"; +/* No comment provided by engineer. */ +"Forget about long crypto addresses, create the username, find friends and add them to your contacts" = "Forget about long crypto addresses, create the username, find friends and add them to your contacts"; + /* No comment provided by engineer. */ "Forgot PIN?" = "忘記密碼了嗎?"; @@ -1021,6 +1027,9 @@ /* Voting */ "Identity" = "身分"; +/* Usernames */ +"If enough of the network feels that a username is inappropriate, they can block it" = "If enough of the network feels that a username is inappropriate, they can block it"; + /* Usernames */ "If somebody else requests the same username as you, we will let the network decide whom to give this username" = "如果其他人要求與您相同的用戶名,我們將讓網路決定向誰提供該用戶名"; @@ -1379,6 +1388,12 @@ /* No comment provided by engineer. */ "Merchant search works better with Location Services turned on." = "開啟位置服務後,商家搜索效果會更好。"; +/* CoinJoin */ +"Mix coins" = "Mix coins"; + +/* CoinJoin */ +"Mix your Dash Coins" = "Mix your Dash Coins"; + /* No comment provided by engineer. */ "Mixed balance" = "Mixed balance"; @@ -2103,6 +2118,9 @@ /* No comment provided by engineer. */ "Skip" = "略過"; +/* Usernames */ +"Some usernames can be blocked" = "Some usernames can be blocked"; + /* No comment provided by engineer. */ "Something went wrong" = "出了些問題"; @@ -2196,6 +2214,9 @@ /* Coinbase Two Factor Auth */ "The code is incorrect. Please check and try again!" = "代碼不正確。請檢查並重試!"; +/* Usernames */ +"The Dash network has to vote to approve some usernames before they are created" = "The Dash network has to vote to approve some usernames before they are created"; + /* CrowdNode */ "The Dash Network is driven by a number of Masternodes which are an essential part of facilitating payments." = "達世幣網絡由許多主節點驅動,這是令支付更便捷的重要組成部分。"; @@ -2274,6 +2295,9 @@ /* Coinbase */ "to Dash Wallet on this device" = "到此設備上的 達世幣錢包"; +/* CoinJoin */ +"To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username." = "To help prevent other people from seeing who you make payments to, it is recommended to mix your balance before you create your username."; + /* Usernames */ "To request a username on the Dash Network, you need to have more than %@ Dash" = "要在達世幣網路上請求用戶名,您需要擁有超過 %@ 的達世幣"; @@ -2537,6 +2561,9 @@ /* No comment provided by engineer. */ "Voting Address" = "投票位址"; +/* Usernames */ +"Voting is only required in some cases" = "Voting is only required in some cases"; + /* No comment provided by engineer. */ "Voting Keys" = "投票公鑰"; @@ -2712,6 +2739,9 @@ /* Coinbase */ "You exceeded the authorization limit on Coinbase." = "你超出了 Coinbase 的授權限制。"; +/* Usernames */ +"You have %@ Dash.\nSome usernames cost up to %@ Dash." = "You have %1$@ Dash.\nSome usernames cost up to %2$@ Dash."; + /* No comment provided by engineer. */ "You have been invited by %@. Start using Dash cryptocurrency." = "您已被 %@邀請。開始使用達世幣加密貨幣。"; @@ -2736,6 +2766,9 @@ /* CrowdNode */ "You need at least %@ on your Dash Wallet" = "您的達世幣錢包中至少需要 %@ 的 Dash"; +/* Usernames */ +"You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "您需要等待5分鐘才能再次發起提款"; From 52ccc2468e81d15a72ba809b577a2ac86ec71642 Mon Sep 17 00:00:00 2001 From: Andrei Ashikhmin Date: Wed, 23 Oct 2024 22:03:24 +0700 Subject: [PATCH 6/6] fix: wallet build --- DashWallet/Sources/UI/Home/Views/HomeView.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DashWallet/Sources/UI/Home/Views/HomeView.swift b/DashWallet/Sources/UI/Home/Views/HomeView.swift index 5aacbb166..c7d00165f 100644 --- a/DashWallet/Sources/UI/Home/Views/HomeView.swift +++ b/DashWallet/Sources/UI/Home/Views/HomeView.swift @@ -480,6 +480,7 @@ struct HomeViewContent: View { } } + #if DASHPAY private func finishMixDialogNavigation() { if navigateToDashPayFlow { navigateToDashPayFlow = false @@ -492,6 +493,7 @@ struct HomeViewContent: View { delegate?.homeViewRequestUsername() } } + #endif } struct TransactionDetailsSheet: View {