diff --git a/analysis_options.yaml b/analysis_options.yaml index a217eaf08..52f1e3224 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,5 +1,3 @@ -include: package:pedantic/analysis_options.yaml - analyzer: strong-mode: implicit-casts: false diff --git a/android/app/src/main/kotlin/com/cakewallet/cake_wallet/MainActivity.kt b/android/app/src/main/kotlin/com/cakewallet/cake_wallet/MainActivity.kt new file mode 100644 index 000000000..3ea4c29ad --- /dev/null +++ b/android/app/src/main/kotlin/com/cakewallet/cake_wallet/MainActivity.kt @@ -0,0 +1,6 @@ +package com.cakewallet.cake_wallet + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/assets/images/monero_logo.png b/assets/images/monero_logo.png new file mode 100644 index 000000000..d1ebfc0d8 Binary files /dev/null and b/assets/images/monero_logo.png differ diff --git a/cw_monero/ios/Classes/monero_api.cpp b/cw_monero/ios/Classes/monero_api.cpp index 8d471b22c..6393eaea9 100644 --- a/cw_monero/ios/Classes/monero_api.cpp +++ b/cw_monero/ios/Classes/monero_api.cpp @@ -180,7 +180,7 @@ extern "C" void change_current_wallet(Monero::Wallet *wallet) { m_wallet = wallet; - // m_listener = nullptr; + m_listener = nullptr; if (wallet != nullptr) @@ -553,7 +553,7 @@ extern "C" if (m_listener != nullptr) { - free(m_listener); + // free(m_listener); } m_listener = new MoneroWalletListener(); diff --git a/cw_monero/lib/wallet.dart b/cw_monero/lib/wallet.dart index e1206ff83..c42cd3523 100644 --- a/cw_monero/lib/wallet.dart +++ b/cw_monero/lib/wallet.dart @@ -254,12 +254,12 @@ class SyncListner { onNewBlock(syncHeight, left, ptc); } - if (newTransactionExist && onNewTransaction != null) { - onNewTransaction(); + if (newTransactionExist) { + onNewTransaction?.call(); } - if (needToRefresh && onNeedToRefresh != null) { - onNeedToRefresh(); + if (needToRefresh) { + onNeedToRefresh?.call(); } }); } diff --git a/ios/CakeWallet/EncryptedFile.swift b/ios/CakeWallet/EncryptedFile.swift new file mode 100644 index 000000000..8e4e4f9a1 --- /dev/null +++ b/ios/CakeWallet/EncryptedFile.swift @@ -0,0 +1,50 @@ +import Foundation +import CryptoSwift + +class EncryptedFile { + + private(set) var fileName: String + private(set) var url: URL + private let key: Array + private let salt: Array + + init(url: URL, key: String, salt: String) { + self.key = key.data(using: .utf8)?.bytes ?? [] + self.salt = salt.data(using: .utf8)?.bytes ?? [] + self.url = url + self.fileName = url.lastPathComponent + } + + func readRawContent() -> String? { + guard let binaryContent = try? Data(contentsOf: url) else { + return nil + } + + return String(data: binaryContent, encoding: .utf8) + } + + func decryptedContent() -> String? { + guard + let rawContent = readRawContent(), + let decryptedBytes = try? cipherBuilder().decrypt(rawContent.bytes) else { + return nil + } + + let decryptedData = Data(decryptedBytes) + return String(data: decryptedData, encoding: .utf8) + } + + func cipherBuilder() -> Cipher { + let PBKDF2key = try! PKCS5.PBKDF2(password: key, salt: salt, iterations: 4096, variant: .sha256).calculate() + return try! Blowfish(key: PBKDF2key, padding: .pkcs7) + } +} + +func readTradesList(key: String, salt: String) -> String? { + let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("trades_list.json") + + return EncryptedFile( + url: url, + key: key, + salt: salt).decryptedContent() +} diff --git a/ios/Flutter/.last_build_id b/ios/Flutter/.last_build_id deleted file mode 100644 index 8e3e3da7e..000000000 --- a/ios/Flutter/.last_build_id +++ /dev/null @@ -1 +0,0 @@ -a2dce69f54a78f5b00e19850e4b2d402 \ No newline at end of file diff --git a/ios/Podfile b/ios/Podfile index 6697f0a53..46c468f1a 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '9.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -10,78 +10,35 @@ project 'Runner', { 'Release' => :release, } -def parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exists? file_abs_path - return []; +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" end - generated_key_values = {} - skip_line_start_symbols = ["#", "/"] - File.foreach(file_abs_path) do |line| - next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } - plugin = line.split(pattern=separator) - if plugin.length == 2 - podname = plugin[0].strip() - path = plugin[1].strip() - podpath = File.expand_path("#{path}", file_abs_path) - generated_key_values[podname] = podpath - else - puts "Invalid plugin specification: #{line}" - end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches end - generated_key_values + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" end +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + target 'Runner' do use_frameworks! use_modular_headers! - # Flutter Pod + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - copied_flutter_dir = File.join(__dir__, 'Flutter') - copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework') - copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec') - unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path) - # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet. - # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration. - # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist. - - generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig') - unless File.exist?(generated_xcode_build_settings_path) - raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path) - cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR']; - - unless File.exist?(copied_framework_path) - FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir) - end - unless File.exist?(copied_podspec_path) - FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir) - end - end - - # Keep pod path relative so it can be checked into Podfile.lock. - pod 'Flutter', :path => 'Flutter' - - # Plugin Pods - - # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock - # referring to absolute paths on developers' machines. - system('rm -rf .symlinks') - system('mkdir -p .symlinks/plugins') - plugin_pods = parse_KV_file('../.flutter-plugins') - plugin_pods.each do |name, path| - symlink = File.join('.symlinks', 'plugins', name) - File.symlink(path, symlink) - pod name, :path => File.join(symlink, 'ios') - end + # Cake Wallet (Legacy) + pod 'CryptoSwift' end post_install do |installer| installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['ENABLE_BITCODE'] = 'NO' - end + flutter_additional_ios_build_settings(target) end end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 451d74c1f..e1e57b6c1 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -3,6 +3,10 @@ PODS: - Flutter - MTBBarcodeScanner - SwiftProtobuf + - connectivity (0.0.1): + - Flutter + - Reachability + - CryptoSwift (1.3.2) - cw_monero (0.0.2): - cw_monero/Boost (= 0.0.2) - cw_monero/lmdb (= 0.0.2) @@ -25,8 +29,6 @@ PODS: - esys_flutter_share (0.0.1): - Flutter - Flutter (1.0.0) - - flutter_plugin_android_lifecycle (0.0.1): - - Flutter - flutter_secure_storage (3.3.1): - Flutter - local_auth (0.0.1): @@ -36,61 +38,43 @@ PODS: - Flutter - path_provider (0.0.1): - Flutter - - path_provider_linux (0.0.1): - - Flutter - - path_provider_macos (0.0.1): - - Flutter + - Reachability (3.2) - share (0.0.1): - Flutter - shared_preferences (0.0.1): - Flutter - - shared_preferences_linux (0.0.1): - - Flutter - - shared_preferences_macos (0.0.1): - - Flutter - - shared_preferences_web (0.0.1): - - Flutter - - SwiftProtobuf (1.8.0) + - SwiftProtobuf (1.12.0) - url_launcher (0.0.1): - Flutter - - url_launcher_linux (0.0.1): - - Flutter - - url_launcher_macos (0.0.1): - - Flutter - - url_launcher_web (0.0.1): - - Flutter DEPENDENCIES: - barcode_scan (from `.symlinks/plugins/barcode_scan/ios`) + - connectivity (from `.symlinks/plugins/connectivity/ios`) + - CryptoSwift - cw_monero (from `.symlinks/plugins/cw_monero/ios`) - devicelocale (from `.symlinks/plugins/devicelocale/ios`) - esys_flutter_share (from `.symlinks/plugins/esys_flutter_share/ios`) - Flutter (from `Flutter`) - - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - local_auth (from `.symlinks/plugins/local_auth/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) - - path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`) - - path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`) - share (from `.symlinks/plugins/share/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) - - shared_preferences_linux (from `.symlinks/plugins/shared_preferences_linux/ios`) - - shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`) - - shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`) - url_launcher (from `.symlinks/plugins/url_launcher/ios`) - - url_launcher_linux (from `.symlinks/plugins/url_launcher_linux/ios`) - - url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`) - - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`) SPEC REPOS: trunk: + - CryptoSwift - MTBBarcodeScanner + - Reachability - SwiftProtobuf EXTERNAL SOURCES: barcode_scan: :path: ".symlinks/plugins/barcode_scan/ios" + connectivity: + :path: ".symlinks/plugins/connectivity/ios" cw_monero: :path: ".symlinks/plugins/cw_monero/ios" devicelocale: @@ -99,8 +83,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/esys_flutter_share/ios" Flutter: :path: Flutter - flutter_plugin_android_lifecycle: - :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" local_auth: @@ -109,54 +91,32 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/package_info/ios" path_provider: :path: ".symlinks/plugins/path_provider/ios" - path_provider_linux: - :path: ".symlinks/plugins/path_provider_linux/ios" - path_provider_macos: - :path: ".symlinks/plugins/path_provider_macos/ios" share: :path: ".symlinks/plugins/share/ios" shared_preferences: :path: ".symlinks/plugins/shared_preferences/ios" - shared_preferences_linux: - :path: ".symlinks/plugins/shared_preferences_linux/ios" - shared_preferences_macos: - :path: ".symlinks/plugins/shared_preferences_macos/ios" - shared_preferences_web: - :path: ".symlinks/plugins/shared_preferences_web/ios" url_launcher: :path: ".symlinks/plugins/url_launcher/ios" - url_launcher_linux: - :path: ".symlinks/plugins/url_launcher_linux/ios" - url_launcher_macos: - :path: ".symlinks/plugins/url_launcher_macos/ios" - url_launcher_web: - :path: ".symlinks/plugins/url_launcher_web/ios" SPEC CHECKSUMS: barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479 + connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467 + CryptoSwift: 093499be1a94b0cae36e6c26b70870668cb56060 cw_monero: 2e1f79929880cc2293b5bc1b25e28152e4d84649 devicelocale: feebbe5e7a30adb8c4f83185de1b50ff19b44f00 esys_flutter_share: 403498dab005b36ce1f8d7aff377e81f0621b0b4 Flutter: 0e3d915762c693b495b44d77113d4970485de6ec - flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35 flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c - path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4 - path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0 + Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 share: 0b2c3e82132f5888bccca3351c504d0003b3b410 shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d - shared_preferences_linux: afefbfe8d921e207f01ede8b60373d9e3b566b78 - shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087 - shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9 - SwiftProtobuf: 2cbd9409689b7df170d82a92a33443c8e3e14a70 + SwiftProtobuf: 4ef85479c18ca85b5482b343df9c319c62bda699 url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef - url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0 - url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 - url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c -PODFILE CHECKSUM: c34e2287a9ccaa606aeceab922830efb9a6ff69a +PODFILE CHECKSUM: ade2ba43f8c2af4060c025bfd25a553d068ab914 COCOAPODS: 1.9.3 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 822dd4355..b4a58d67e 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -3,17 +3,15 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ - 02AA3DBD66A19A0A1732294D /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00B973AD352B2957AC387EA9 /* Pods_Runner.framework */; }; - 0C0DB1F8237DB1AE00BD32F9 /* A.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0DB1F7237DB1AE00BD32F9 /* A.swift */; }; + 0C44A71A2518EF8000B570ED /* EncryptedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C44A7192518EF8000B570ED /* EncryptedFile.swift */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 20ED0868E1BD7E12278C0CB3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B26E3F56D69167FBB1DC160A /* Pods_Runner.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; - 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; - 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; @@ -33,26 +31,24 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 00B973AD352B2957AC387EA9 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0C0DB1F6237DB1AD00BD32F9 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; - 0C0DB1F7237DB1AE00BD32F9 /* A.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = A.swift; sourceTree = ""; }; + 0C44A7192518EF8000B570ED /* EncryptedFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedFile.swift; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 20F67A1B2C2FCB2A3BB048C1 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 4B157CEA62824A43D7DD4C38 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 501EA9286675DC8636978EA4 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 61CAA8652B54F23356F7592A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A64AD09573DE1F9B50A18F2A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - B39AAE9F098686B29374F51D /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + B26E3F56D69167FBB1DC160A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -60,13 +56,39 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 02AA3DBD66A19A0A1732294D /* Pods_Runner.framework in Frameworks */, + 20ED0868E1BD7E12278C0CB3 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 06957875428D0F5AAE053765 /* Frameworks */ = { + isa = PBXGroup; + children = ( + B26E3F56D69167FBB1DC160A /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 0C44A7182518EF4A00B570ED /* CakeWallet */ = { + isa = PBXGroup; + children = ( + 0C44A7192518EF8000B570ED /* EncryptedFile.swift */, + ); + path = CakeWallet; + sourceTree = ""; + }; + 84389F1A05D5860790D82820 /* Pods */ = { + isa = PBXGroup; + children = ( + 20F67A1B2C2FCB2A3BB048C1 /* Pods-Runner.debug.xcconfig */, + 501EA9286675DC8636978EA4 /* Pods-Runner.release.xcconfig */, + 61CAA8652B54F23356F7592A /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -81,11 +103,12 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( + 0C44A7182518EF4A00B570ED /* CakeWallet */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - BB72635863665F0C75A8EBE5 /* Pods */, - D7C5668014A527FFA32576AF /* Frameworks */, + 84389F1A05D5860790D82820 /* Pods */, + 06957875428D0F5AAE053765 /* Frameworks */, ); sourceTree = ""; }; @@ -100,47 +123,18 @@ 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( - 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, - 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, 97C146FA1CF9000F007C117D /* Main.storyboard */, 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, - 97C146F11CF9000F007C117D /* Supporting Files */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 0C0DB1F7237DB1AE00BD32F9 /* A.swift */, - 0C0DB1F6237DB1AD00BD32F9 /* Runner-Bridging-Header.h */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, ); path = Runner; sourceTree = ""; }; - 97C146F11CF9000F007C117D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 97C146F21CF9000F007C117D /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - BB72635863665F0C75A8EBE5 /* Pods */ = { - isa = PBXGroup; - children = ( - 4B157CEA62824A43D7DD4C38 /* Pods-Runner.debug.xcconfig */, - A64AD09573DE1F9B50A18F2A /* Pods-Runner.release.xcconfig */, - B39AAE9F098686B29374F51D /* Pods-Runner.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - D7C5668014A527FFA32576AF /* Frameworks */ = { - isa = PBXGroup; - children = ( - 00B973AD352B2957AC387EA9 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -148,14 +142,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - 95C66705E4338EEA09DF7047 /* [CP] Check Pods Manifest.lock */, + 0843B0813AFBAF53935AD24E /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - A51ED02C4D7DF0F1E59D04DE /* [CP] Embed Pods Frameworks */, + DD8DB3179CA4E511F9954A6F /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -173,17 +167,16 @@ isa = PBXProject; attributes = { LastUpgradeCheck = 1020; - ORGANIZATIONNAME = "The Chromium Authors"; + ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = 32J6BB6VUS; - LastSwiftMigration = 1120; + LastSwiftMigration = 1100; }; }; }; buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -207,7 +200,6 @@ files = ( 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, ); @@ -216,21 +208,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; - }; - 95C66705E4338EEA09DF7047 /* [CP] Check Pods Manifest.lock */ = { + 0843B0813AFBAF53935AD24E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -252,6 +230,20 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -266,46 +258,17 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - A51ED02C4D7DF0F1E59D04DE /* [CP] Embed Pods Frameworks */ = { + DD8DB3179CA4E511F9954A6F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${PODS_ROOT}/../Flutter/Flutter.framework", - "${BUILT_PRODUCTS_DIR}/MTBBarcodeScanner/MTBBarcodeScanner.framework", - "${BUILT_PRODUCTS_DIR}/SwiftProtobuf/SwiftProtobuf.framework", - "${BUILT_PRODUCTS_DIR}/barcode_scan/barcode_scan.framework", - "${BUILT_PRODUCTS_DIR}/cw_monero/cw_monero.framework", - "${BUILT_PRODUCTS_DIR}/devicelocale/devicelocale.framework", - "${BUILT_PRODUCTS_DIR}/esys_flutter_share/esys_flutter_share.framework", - "${BUILT_PRODUCTS_DIR}/flutter_plugin_android_lifecycle/flutter_plugin_android_lifecycle.framework", - "${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework", - "${BUILT_PRODUCTS_DIR}/local_auth/local_auth.framework", - "${BUILT_PRODUCTS_DIR}/package_info/package_info.framework", - "${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework", - "${BUILT_PRODUCTS_DIR}/share/share.framework", - "${BUILT_PRODUCTS_DIR}/shared_preferences/shared_preferences.framework", - "${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MTBBarcodeScanner.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftProtobuf.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/barcode_scan.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cw_monero.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/devicelocale.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/esys_flutter_share.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_plugin_android_lifecycle.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/local_auth.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -319,10 +282,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, - 97C146F31CF9000F007C117D /* main.m in Sources */, + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - 0C0DB1F8237DB1AE00BD32F9 /* A.swift in Sources */, + 0C44A71A2518EF8000B570ED /* EncryptedFile.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -389,9 +351,10 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -411,8 +374,10 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -422,7 +387,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; - VALID_ARCHS = "arm64 arm64e"; + TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; @@ -474,7 +439,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,9 +488,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -545,8 +513,10 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -557,7 +527,7 @@ SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - VALID_ARCHS = "arm64 arm64e"; + TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -576,8 +546,10 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -587,7 +559,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; - VALID_ARCHS = "arm64 arm64e"; + TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..f9b0d7c5e --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index fb2dffc49..a28140cfd 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -27,6 +27,8 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> + + - - + + + + -#import - -@interface AppDelegate : FlutterAppDelegate - -@end diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m deleted file mode 100644 index 595bf5960..000000000 --- a/ios/Runner/AppDelegate.m +++ /dev/null @@ -1,25 +0,0 @@ -#include "AppDelegate.h" -#include "GeneratedPluginRegistrant.h" - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application - didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - [GeneratedPluginRegistrant registerWithRegistry:self]; - // Override point for customization after application launch. - return [super application:application didFinishLaunchingWithOptions:launchOptions]; -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - UIViewController *blankViewController = [UIViewController new]; - blankViewController.view.backgroundColor = [UIColor blackColor]; - [self.window.rootViewController presentViewController:blankViewController animated:NO completion:NULL]; -} - -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - [self.window.rootViewController dismissViewControllerAnimated:NO completion:NO]; -} - -@end diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 1357abdc1..c93e03e8c 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -1,40 +1,43 @@ import UIKit import Flutter -import CWMonero - -class MoneroWalletManagerHandler { -// static let moneroWalletManager = MoneroWalletGateway() -} @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - let controller : FlutterViewController = window?.rootViewController as! FlutterViewController - let moneroWalletManagerChannel = FlutterMethodChannel(name: "com.cakewallet.wallet/monero-wallet-manager", - binaryMessenger: controller.binaryMessenger) - moneroWalletManagerChannel.setMethodCallHandler({ - (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in - - }) - - moneroWalletManagerChannel.setMethodCallHandler({ - [weak self] (call: FlutterMethodCall, result: FlutterResult) -> Void in - switch call.method { - case "createWallet": - result(1) - case "isWalletExist": - result(false) - default: - result(FlutterMethodNotImplemented) - } + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + let controller : FlutterViewController = window?.rootViewController as! FlutterViewController + let batteryChannel = FlutterMethodChannel(name: "com.cakewallet.cakewallet/legacy_wallet_migration", + binaryMessenger: controller.binaryMessenger) + batteryChannel.setMethodCallHandler({ + (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in + + switch call.method { + case "read_trade_list": + guard let args = call.arguments as? Dictionary, + let key = args["key"] as? String, + let salt = args["salt"] as? String else { + return + } + let normalizedKey = key.replacingOccurrences(of: "-", with: "") + result(readTradesList(key: normalizedKey, salt: salt)) + case "read_encrypted_file": + guard let args = call.arguments as? Dictionary, + let path = args["path"] as? String, + let key = args["key"] as? String, + let salt = args["salt"] as? String else { + return + } + + let content = EncryptedFile(url: URL(fileURLWithPath: path), key: key, salt: salt).decryptedContent() + result(content) + default: + break + } + }) - result(1); - }) - - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } } diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index 21cc86669..dc9ada472 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 73c1fec11..28c6bf030 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index dd8ffc81b..2ccbfd967 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index 32c62fba2..f091b6b0b 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index c5fc4b8ad..4cde12118 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index 7cf1fe989..d0ef06e7e 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index 3e0f16134..dcdc2306c 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index dd8ffc81b..2ccbfd967 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index bbbeef026..c8f9ed8f5 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index c415d4e12..a6d6b8609 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png deleted file mode 100644 index 33bcc2a98..000000000 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png deleted file mode 100644 index a13155108..000000000 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png deleted file mode 100644 index a8365f725..000000000 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png deleted file mode 100644 index 191cc8150..000000000 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index c415d4e12..a6d6b8609 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index c95fec9cc..75b2d164a 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png deleted file mode 100644 index 5d9200d0a..000000000 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png deleted file mode 100644 index c4352f579..000000000 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index 3f5ffb78f..c4df70d39 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index d987f1bc7..6a84f41e1 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index dec6b12ca..d0e1f5853 100644 Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 8f3d469bd..88568bf22 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -2,8 +2,6 @@ - NSFaceIDUsageDescription - Enable Face ID for fast and secure access to wallets and private keys CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable @@ -24,8 +22,6 @@ $(CURRENT_PROJECT_VERSION) LSRequiresIPhoneOS - NSCameraUsageDescription - Used for scan QR code UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -33,8 +29,6 @@ UISupportedInterfaceOrientations UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight UISupportedInterfaceOrientations~ipad diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h index 7335fdf90..308a2a560 100644 --- a/ios/Runner/Runner-Bridging-Header.h +++ b/ios/Runner/Runner-Bridging-Header.h @@ -1 +1 @@ -#import "GeneratedPluginRegistrant.h" \ No newline at end of file +#import "GeneratedPluginRegistrant.h" diff --git a/ios/Runner/main.m b/ios/Runner/main.m deleted file mode 100644 index dff6597e4..000000000 --- a/ios/Runner/main.m +++ /dev/null @@ -1,9 +0,0 @@ -#import -#import -#import "AppDelegate.h" - -int main(int argc, char* argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/lib/bitcoin/api.dart b/lib/bitcoin/api.dart deleted file mode 100644 index 829637f0a..000000000 --- a/lib/bitcoin/api.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'dart:convert'; -import 'package:http/http.dart'; - -const blockchainInfoBaseURI = 'https://blockchain.info'; -const multiAddressURI = '$blockchainInfoBaseURI/multiaddr'; - -Future> fetchAllAddresses({String xpub}) async { - final uri = '$multiAddressURI?active=$xpub'; - final response = await get(uri); - final responseJSON = json.decode(response.body) as Map; - - print(responseJSON); - - return (responseJSON['addresses'] as List).map((dynamic row) { - if (row is Map) { - return row['address'] as String; - } - - return ''; - }).toList(); -} diff --git a/lib/bitcoin/bitcoin_amount_format.dart b/lib/bitcoin/bitcoin_amount_format.dart index a1ff8cecf..75db6c314 100644 --- a/lib/bitcoin/bitcoin_amount_format.dart +++ b/lib/bitcoin/bitcoin_amount_format.dart @@ -1,5 +1,5 @@ import 'package:intl/intl.dart'; -import 'package:cake_wallet/src/domain/common/crypto_amount_format.dart'; +import 'package:cake_wallet/entities/crypto_amount_format.dart'; const bitcoinAmountLength = 8; const bitcoinAmountDivider = 100000000; @@ -11,3 +11,6 @@ String bitcoinAmountToString({int amount}) => bitcoinAmountFormat.format(cryptoAmountToDouble(amount: amount, divider: bitcoinAmountDivider)); double bitcoinAmountToDouble({int amount}) => cryptoAmountToDouble(amount: amount, divider: bitcoinAmountDivider); + +int doubleToBitcoinAmount(double amount) => + (amount * bitcoinAmountDivider).toInt(); \ No newline at end of file diff --git a/lib/bitcoin/bitcoin_balance.dart b/lib/bitcoin/bitcoin_balance.dart index a1bc5c844..6aefe28f4 100644 --- a/lib/bitcoin/bitcoin_balance.dart +++ b/lib/bitcoin/bitcoin_balance.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:cake_wallet/bitcoin/bitcoin_amount_format.dart'; -import 'package:cake_wallet/src/domain/common/balance.dart'; +import 'package:cake_wallet/entities/balance.dart'; class BitcoinBalance extends Balance { const BitcoinBalance({@required this.confirmed, @required this.unconfirmed}) : super(); diff --git a/lib/bitcoin/bitcoin_transaction_credentials.dart b/lib/bitcoin/bitcoin_transaction_credentials.dart index 874da1263..9e64634b3 100644 --- a/lib/bitcoin/bitcoin_transaction_credentials.dart +++ b/lib/bitcoin/bitcoin_transaction_credentials.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/transaction_priority.dart'; +import 'package:cake_wallet/entities/transaction_priority.dart'; class BitcoinTransactionCredentials { BitcoinTransactionCredentials(this.address, this.amount, this.priority); diff --git a/lib/bitcoin/bitcoin_transaction_history.dart b/lib/bitcoin/bitcoin_transaction_history.dart index 4a18d18c1..c687c0ba4 100644 --- a/lib/bitcoin/bitcoin_transaction_history.dart +++ b/lib/bitcoin/bitcoin_transaction_history.dart @@ -9,8 +9,6 @@ import 'package:cake_wallet/bitcoin/electrum.dart'; part 'bitcoin_transaction_history.g.dart'; -// TODO: Think about another transaction store for bitcoin transaction history.. - const _transactionsHistoryFileName = 'transactions.json'; class BitcoinTransactionHistory = BitcoinTransactionHistoryBase @@ -60,16 +58,7 @@ abstract class BitcoinTransactionHistoryBase final histories = wallet.scriptHashes.map((scriptHash) => eclient.getHistory(scriptHash)); final _historiesWithDetails = await Future.wait(histories) - .then((histories) => histories -// .map((h) => h.where((tx) { -// final height = tx['height'] as int ?? 0; -// // FIXME: Filter only needed transactions -// final _tx = get(tx['tx_hash'] as String); -// -// return height == 0 || height > _height; -// })) - .expand((i) => i) - .toList()) + .then((histories) => histories.expand((i) => i).toList()) .then((histories) => histories.map((tx) => fetchTransactionInfo( hash: tx['tx_hash'] as String, height: tx['height'] as int))); final historiesWithDetails = await Future.wait(_historiesWithDetails); diff --git a/lib/bitcoin/bitcoin_transaction_info.dart b/lib/bitcoin/bitcoin_transaction_info.dart index 4198ca9e2..29cb8521e 100644 --- a/lib/bitcoin/bitcoin_transaction_info.dart +++ b/lib/bitcoin/bitcoin_transaction_info.dart @@ -1,22 +1,22 @@ import 'package:flutter/foundation.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:cake_wallet/bitcoin/bitcoin_address_record.dart'; import 'package:bitcoin_flutter/src/payments/index.dart' show PaymentData; +import 'package:cake_wallet/bitcoin/bitcoin_address_record.dart'; import 'package:cake_wallet/bitcoin/bitcoin_amount_format.dart'; -import 'package:cake_wallet/src/domain/bitcoin/bitcoin_amount_format.dart'; -import 'package:cake_wallet/src/domain/common/transaction_direction.dart'; -import 'package:cake_wallet/src/domain/common/transaction_info.dart'; -import 'package:cake_wallet/src/domain/common/format_amount.dart'; +import 'package:cake_wallet/entities/transaction_direction.dart'; +import 'package:cake_wallet/entities/transaction_info.dart'; +import 'package:cake_wallet/entities/format_amount.dart'; class BitcoinTransactionInfo extends TransactionInfo { BitcoinTransactionInfo( - {@required this.id, + {@required String id, @required int height, @required int amount, @required TransactionDirection direction, @required bool isPending, @required DateTime date, @required int confirmations}) { + this.id = id; this.height = height; this.amount = amount; this.direction = direction; @@ -97,7 +97,6 @@ class BitcoinTransactionInfo extends TransactionInfo { ? DateTime.fromMillisecondsSinceEpoch(timestamp * 1000) : DateTime.now(); - // FIXME: Get transaction is pending return BitcoinTransactionInfo( id: tx.getId(), height: height, @@ -119,8 +118,6 @@ class BitcoinTransactionInfo extends TransactionInfo { confirmations: data['confirmations'] as int); } - final String id; - String _fiatAmount; @override diff --git a/lib/bitcoin/bitcoin_wallet.dart b/lib/bitcoin/bitcoin_wallet.dart index 4fc46f8fa..e43c0aeaa 100644 --- a/lib/bitcoin/bitcoin_wallet.dart +++ b/lib/bitcoin/bitcoin_wallet.dart @@ -1,39 +1,29 @@ import 'dart:async'; -import 'dart:typed_data'; import 'dart:convert'; +import 'package:mobx/mobx.dart'; +import 'package:bip39/bip39.dart' as bip39; +import 'package:flutter/foundation.dart'; +import 'package:rxdart/rxdart.dart'; +import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:cake_wallet/bitcoin/bitcoin_transaction_credentials.dart'; -import 'package:cake_wallet/bitcoin/bitcoin_transaction_info.dart'; import 'package:cake_wallet/bitcoin/bitcoin_transaction_no_inputs_exception.dart'; import 'package:cake_wallet/bitcoin/bitcoin_transaction_wrong_balance_exception.dart'; import 'package:cake_wallet/bitcoin/bitcoin_unspent.dart'; import 'package:cake_wallet/bitcoin/bitcoin_wallet_keys.dart'; +import 'package:cake_wallet/bitcoin/electrum.dart'; import 'package:cake_wallet/bitcoin/pending_bitcoin_transaction.dart'; import 'package:cake_wallet/bitcoin/script_hash.dart'; import 'package:cake_wallet/bitcoin/utils.dart'; -import 'package:cake_wallet/src/domain/bitcoin/bitcoin_amount_format.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/common/sync_status.dart'; -import 'package:cake_wallet/src/domain/common/transaction_direction.dart'; -import 'package:cake_wallet/src/domain/common/transaction_priority.dart'; -import 'package:cw_monero/transaction_history.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:mobx/mobx.dart'; -import 'package:bip39/bip39.dart' as bip39; -import 'package:flutter/foundation.dart'; -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:bitcoin_flutter/src/payments/index.dart' show PaymentData; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/bitcoin/bitcoin_amount_format.dart'; +import 'package:cake_wallet/entities/sync_status.dart'; +import 'package:cake_wallet/entities/transaction_priority.dart'; +import 'package:cake_wallet/entities/wallet_info.dart'; import 'package:cake_wallet/bitcoin/bitcoin_transaction_history.dart'; import 'package:cake_wallet/bitcoin/bitcoin_address_record.dart'; import 'package:cake_wallet/bitcoin/file.dart'; -import 'package:cake_wallet/bitcoin/electrum.dart'; import 'package:cake_wallet/bitcoin/bitcoin_balance.dart'; -import 'package:cake_wallet/src/domain/common/node.dart'; +import 'package:cake_wallet/entities/node.dart'; import 'package:cake_wallet/core/wallet_base.dart'; -import 'package:rxdart/rxdart.dart'; -import 'package:hex/hex.dart'; -import 'package:cake_wallet/di.dart'; -import 'package:shared_preferences/shared_preferences.dart'; part 'bitcoin_wallet.g.dart'; @@ -44,8 +34,8 @@ abstract class BitcoinWalletBase extends WalletBase with Store { {@required this.eclient, @required this.path, @required String password, - @required this.name, - List initialAddresses, + @required WalletInfo walletInfo, + @required List initialAddresses, int accountIndex = 0, this.transactionHistory, this.mnemonic, @@ -60,9 +50,7 @@ abstract class BitcoinWalletBase extends WalletBase with Store { syncStatus = NotConnectedSyncStatus(), _password = password, _accountIndex = accountIndex, - _addressesKeys = {} { - type = WalletType.bitcoin; - currency = CryptoCurrency.btc; + super(walletInfo) { _scripthashesUpdateSubject = {}; } @@ -114,7 +102,6 @@ abstract class BitcoinWalletBase extends WalletBase with Store { return BitcoinWallet._internal( eclient: eclient, path: walletPath, - name: name, mnemonic: mnemonic, password: password, accountIndex: accountIndex, @@ -130,9 +117,6 @@ abstract class BitcoinWalletBase extends WalletBase with Store { final ElectrumClient eclient; final String mnemonic; - @override - String name; - @override @observable String address; @@ -147,8 +131,6 @@ abstract class BitcoinWalletBase extends WalletBase with Store { ObservableList addresses; - Map _addressesKeys; - List get scriptHashes => addresses.map((addr) => scriptHash(addr.address)).toList(); @@ -161,8 +143,8 @@ abstract class BitcoinWalletBase extends WalletBase with Store { BitcoinWalletKeys get keys => BitcoinWalletKeys( wif: hd.wif, privateKey: hd.privKey, publicKey: hd.pubKey); + final String _password; int _accountIndex; - String _password; Map> _scripthashesUpdateSubject; Future init() async { @@ -334,6 +316,11 @@ abstract class BitcoinWalletBase extends WalletBase with Store { bitcoin.ECPair keyPairFor({@required int index}) => generateKeyPair(hd: hd, index: index); + @override + Future rescan({int height}) async { + // FIXME: Unimplemented + } + void _subscribeForUpdates() { scriptHashes.forEach((sh) async { await _scripthashesUpdateSubject[sh]?.close(); diff --git a/lib/bitcoin/bitcoin_wallet_service.dart b/lib/bitcoin/bitcoin_wallet_service.dart index cb2d241fb..2e9a1c305 100644 --- a/lib/bitcoin/bitcoin_wallet_service.dart +++ b/lib/bitcoin/bitcoin_wallet_service.dart @@ -4,8 +4,8 @@ import 'package:cake_wallet/bitcoin/file.dart'; import 'package:cake_wallet/bitcoin/bitcoin_wallet_creation_credentials.dart'; import 'package:cake_wallet/core/wallet_service.dart'; import 'package:cake_wallet/bitcoin/bitcoin_wallet.dart'; -import 'package:cake_wallet/src/domain/common/pathForWallet.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/pathForWallet.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; class BitcoinWalletService extends WalletService< BitcoinNewWalletCredentials, diff --git a/lib/bitcoin/electrum.dart b/lib/bitcoin/electrum.dart index 69d1c332f..5348959e7 100644 --- a/lib/bitcoin/electrum.dart +++ b/lib/bitcoin/electrum.dart @@ -40,6 +40,7 @@ class ElectrumClient { _tasks = {}; static const connectionTimeout = Duration(seconds: 5); + static const aliveTimerDuration = Duration(seconds: 2); bool get isConnected => _isConnected; Socket socket; @@ -97,8 +98,7 @@ class ElectrumClient { void keepAlive() { _aliveTimer?.cancel(); - // FIXME: Unnamed constant. - _aliveTimer = Timer.periodic(Duration(seconds: 2), (_) async => ping()); + _aliveTimer = Timer.periodic(aliveTimerDuration, (_) async => ping()); } Future ping() async { diff --git a/lib/bitcoin/file.dart b/lib/bitcoin/file.dart index ddb6c23cb..53f8f06b0 100644 --- a/lib/bitcoin/file.dart +++ b/lib/bitcoin/file.dart @@ -1,5 +1,4 @@ import 'dart:io'; -import 'dart:convert'; import 'package:cake_wallet/bitcoin/key.dart'; import 'package:encrypt/encrypt.dart' as encrypt; import 'package:flutter/foundation.dart'; @@ -28,14 +27,13 @@ Future writeData( f.writeAsStringSync(encrypted); } -Future read( - {@required String path, @required String password}) async { +Future read({@required String path, @required String password}) async { final file = File(path); if (!file.existsSync()) { file.createSync(); } - + final encrypted = file.readAsStringSync(); return decode(password: password, data: encrypted); diff --git a/lib/bitcoin/pending_bitcoin_transaction.dart b/lib/bitcoin/pending_bitcoin_transaction.dart index 64b317169..d2c018a35 100644 --- a/lib/bitcoin/pending_bitcoin_transaction.dart +++ b/lib/bitcoin/pending_bitcoin_transaction.dart @@ -1,6 +1,6 @@ import 'package:cake_wallet/bitcoin/bitcoin_amount_format.dart'; import 'package:cake_wallet/bitcoin/bitcoin_transaction_info.dart'; -import 'package:cake_wallet/src/domain/common/transaction_direction.dart'; +import 'package:cake_wallet/entities/transaction_direction.dart'; import 'package:flutter/foundation.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:cake_wallet/core/pending_transaction.dart'; diff --git a/lib/core/address_label_validator.dart b/lib/core/address_label_validator.dart index 903b2e50e..7d8f8c631 100644 --- a/lib/core/address_label_validator.dart +++ b/lib/core/address_label_validator.dart @@ -1,6 +1,6 @@ import 'package:cake_wallet/core/validator.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; class AddressLabelValidator extends TextValidator { AddressLabelValidator({WalletType type}) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 26e239f6c..1ee9e72db 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/core/validator.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; class AddressValidator extends TextValidator { AddressValidator({@required CryptoCurrency type}) diff --git a/lib/core/amount.dart b/lib/core/amount.dart new file mode 100644 index 000000000..62e59db18 --- /dev/null +++ b/lib/core/amount.dart @@ -0,0 +1,37 @@ +abstract class Amount { + Amount(this.value); + + int value; + + int minorDigits; + + String code; + + String formatted(); +} + +class MoneroAmount extends Amount { + MoneroAmount(int value) : super(value) { + minorDigits = 12; + code = 'XMR'; + } + + // const moneroAmountLength = 12; + // const moneroAmountDivider = 1000000000000; + // final moneroAmountFormat = NumberFormat() + // ..maximumFractionDigits = moneroAmountLength + // ..minimumFractionDigits = 1; + + // String moneroAmountToString({int amount}) => + // moneroAmountFormat.format(cryptoAmountToDouble(amount: amount, divider: moneroAmountDivider)); + + // double moneroAmountToDouble({int amount}) => cryptoAmountToDouble(amount: amount, divider: moneroAmountDivider); + + // int moneroParseAmount({String amount}) => moneroAmountFormat.parse(amount).toInt(); + + @override + String formatted() { + // TODO: implement formatted + throw UnimplementedError(); + } +} diff --git a/lib/core/amount_converter.dart b/lib/core/amount_converter.dart new file mode 100644 index 000000000..7ef4ed442 --- /dev/null +++ b/lib/core/amount_converter.dart @@ -0,0 +1,92 @@ +import 'package:intl/intl.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; + +class AmountConverter { + static const _moneroAmountLength = 12; + static const _moneroAmountDivider = 1000000000000; + static const _litecoinAmountDivider = 100000000; + static const _ethereumAmountDivider = 1000000000000000000; + static const _dashAmountDivider = 100000000; + static const _bitcoinCashAmountDivider = 100000000; + static const _bitcoinAmountDivider = 100000000; + static const _bitcoinAmountLength = 8; + static final _bitcoinAmountFormat = NumberFormat() + ..maximumFractionDigits = _bitcoinAmountLength + ..minimumFractionDigits = 1; + static final _moneroAmountFormat = NumberFormat() + ..maximumFractionDigits = _moneroAmountLength + ..minimumFractionDigits = 1; + + static double amountIntToDouble(CryptoCurrency cryptoCurrency, int amount) { + switch (cryptoCurrency) { + case CryptoCurrency.xmr: + return _moneroAmountToDouble(amount); + case CryptoCurrency.btc: + return _bitcoinAmountToDouble(amount); + case CryptoCurrency.bch: + return _bitcoinCashAmountToDouble(amount); + case CryptoCurrency.dash: + return _dashAmountToDouble(amount); + case CryptoCurrency.eth: + return _ethereumAmountToDouble(amount); + case CryptoCurrency.ltc: + return _litecoinAmountToDouble(amount); + default: + return null; + } + } + + static int amountStringToInt(CryptoCurrency cryptoCurrency, String amount) { + switch (cryptoCurrency) { + case CryptoCurrency.xmr: + return _moneroParseAmount(amount); + default: + return null; + } + } + + static String amountIntToString(CryptoCurrency cryptoCurrency, int amount) { + switch (cryptoCurrency) { + case CryptoCurrency.xmr: + return _moneroAmountToString(amount); + case CryptoCurrency.btc: + return _bitcoinAmountToString(amount); + default: + return null; + } + } + + static double cryptoAmountToDouble({num amount, num divider}) => + amount / divider; + + static String _moneroAmountToString(int amount) => _moneroAmountFormat.format( + cryptoAmountToDouble(amount: amount, divider: _moneroAmountDivider)); + + static double _moneroAmountToDouble(int amount) => + cryptoAmountToDouble(amount: amount, divider: _moneroAmountDivider); + + static int _moneroParseAmount(String amount) => + _moneroAmountFormat.parse(amount).toInt(); + + static String _bitcoinAmountToString(int amount) => + _bitcoinAmountFormat.format( + cryptoAmountToDouble(amount: amount, divider: _bitcoinAmountDivider)); + + static double _bitcoinAmountToDouble(int amount) => + cryptoAmountToDouble(amount: amount, divider: _bitcoinAmountDivider); + + static int _doubleToBitcoinAmount(double amount) => + (amount * _bitcoinAmountDivider).toInt(); + + static double _bitcoinCashAmountToDouble(int amount) => + cryptoAmountToDouble(amount: amount, divider: _bitcoinCashAmountDivider); + + static double _dashAmountToDouble(int amount) => + cryptoAmountToDouble(amount: amount, divider: _dashAmountDivider); + + static double _ethereumAmountToDouble(num amount) => + cryptoAmountToDouble(amount: amount, divider: _ethereumAmountDivider); + + static double _litecoinAmountToDouble(int amount) => + cryptoAmountToDouble(amount: amount, divider: _litecoinAmountDivider); +} diff --git a/lib/core/amount_validator.dart b/lib/core/amount_validator.dart index cee4fe8e1..abf55b6b7 100644 --- a/lib/core/amount_validator.dart +++ b/lib/core/amount_validator.dart @@ -1,6 +1,6 @@ import 'package:cake_wallet/core/validator.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; class AmountValidator extends TextValidator { AmountValidator({WalletType type, bool isAutovalidate = false}) diff --git a/lib/core/auth_service.dart b/lib/core/auth_service.dart index f66f44a83..f2c07d265 100644 --- a/lib/core/auth_service.dart +++ b/lib/core/auth_service.dart @@ -1,9 +1,9 @@ -import 'package:flutter/foundation.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import 'package:cake_wallet/src/domain/common/secret_store_key.dart'; -import 'package:cake_wallet/src/domain/common/encrypt.dart'; +import 'package:cake_wallet/entities/preferences_key.dart'; +import 'package:cake_wallet/entities/secret_store_key.dart'; +import 'package:cake_wallet/entities/encrypt.dart'; class AuthService with Store { AuthService({this.secureStorage, this.sharedPreferences}); @@ -19,7 +19,8 @@ class AuthService with Store { Future canAuthenticate() async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); - final walletName = sharedPreferences.getString('current_wallet_name') ?? ''; + final walletName = + sharedPreferences.getString(PreferencesKey.currentWalletName) ?? ''; var password = ''; try { diff --git a/lib/core/contact_service.dart b/lib/core/contact_service.dart index 1141a1d06..c7027fa8f 100644 --- a/lib/core/contact_service.dart +++ b/lib/core/contact_service.dart @@ -1,6 +1,6 @@ import 'package:hive/hive.dart'; import 'package:cake_wallet/store/contact_list_store.dart'; -import 'package:cake_wallet/src/domain/common/contact.dart'; +import 'package:cake_wallet/entities/contact.dart'; class ContactService { ContactService(this.contactSource, this.contactListStore) { diff --git a/lib/core/execution_state.dart b/lib/core/execution_state.dart new file mode 100644 index 000000000..d4e3faeec --- /dev/null +++ b/lib/core/execution_state.dart @@ -0,0 +1,13 @@ +abstract class ExecutionState {} + +class InitialExecutionState extends ExecutionState {} + +class IsExecutingState extends ExecutionState {} + +class ExecutedSuccessfullyState extends ExecutionState {} + +class FailureState extends ExecutionState { + FailureState(this.error); + + final String error; +} \ No newline at end of file diff --git a/lib/src/domain/common/fetch_price.dart b/lib/core/fiat_conversion_service.dart similarity index 53% rename from lib/src/domain/common/fetch_price.dart rename to lib/core/fiat_conversion_service.dart index 36f996f7e..a6d72497e 100644 --- a/lib/src/domain/common/fetch_price.dart +++ b/lib/core/fiat_conversion_service.dart @@ -1,13 +1,16 @@ +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/entities/fiat_currency.dart'; import 'dart:convert'; +import 'package:flutter/foundation.dart'; import 'package:http/http.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/common/fiat_currency.dart'; -import 'package:cake_wallet/src/domain/common/currency_formatter.dart'; +import 'package:cake_wallet/entities/currency_formatter.dart'; const fiatApiAuthority = 'fiat-api.cakewallet.com'; const fiatApiPath = '/v1/rates'; -Future fetchPriceFor({CryptoCurrency crypto, FiatCurrency fiat}) async { +Future _fetchPrice(Map args) async { + final crypto = args['crypto'] as CryptoCurrency; + final fiat = args['fiat'] as FiatCurrency; double price = 0.0; try { @@ -35,3 +38,12 @@ Future fetchPriceFor({CryptoCurrency crypto, FiatCurrency fiat}) async { return price; } } + +Future _fetchPriceAsync( + CryptoCurrency crypto, FiatCurrency fiat) async => + compute(_fetchPrice, {'fiat': fiat, 'crypto': crypto}); + +class FiatConversionService { + static Future fetchPrice(CryptoCurrency crypto, FiatCurrency fiat) async => + await _fetchPriceAsync(crypto, fiat); +} diff --git a/lib/core/generate_wallet_password.dart b/lib/core/generate_wallet_password.dart index ea5b80d23..abf2e6dac 100644 --- a/lib/core/generate_wallet_password.dart +++ b/lib/core/generate_wallet_password.dart @@ -1,6 +1,6 @@ import 'package:uuid/uuid.dart'; import 'package:cake_wallet/bitcoin/key.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; String generateWalletPassword(WalletType type) { switch (type) { diff --git a/lib/core/key_service.dart b/lib/core/key_service.dart index 85185be72..eafca2b0a 100644 --- a/lib/core/key_service.dart +++ b/lib/core/key_service.dart @@ -1,6 +1,6 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:cake_wallet/src/domain/common/secret_store_key.dart'; -import 'package:cake_wallet/src/domain/common/encrypt.dart'; +import 'package:cake_wallet/entities/secret_store_key.dart'; +import 'package:cake_wallet/entities/encrypt.dart'; class KeyService { KeyService(this._secureStorage); diff --git a/lib/core/mnemonic_length.dart b/lib/core/mnemonic_length.dart index 84100d8a7..8adf5c438 100644 --- a/lib/core/mnemonic_length.dart +++ b/lib/core/mnemonic_length.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; const bitcoinMnemonicLength = 12; const moneroMnemonicLength = 25; diff --git a/lib/core/monero_account_label_validator.dart b/lib/core/monero_account_label_validator.dart index 9d06a437c..dcbac668f 100644 --- a/lib/core/monero_account_label_validator.dart +++ b/lib/core/monero_account_label_validator.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/core/validator.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; class MoneroLabelValidator extends TextValidator { MoneroLabelValidator({@required CryptoCurrency type}) diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index 54b1ffea7..36a06cb03 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -1,15 +1,16 @@ import 'package:bip39/src/wordlists/english.dart' as bitcoin_english; import 'package:cake_wallet/core/validator.dart'; -import 'package:cake_wallet/src/domain/common/mnemonic_item.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/chinese_simplified.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/dutch.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/english.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/german.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/japanese.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/portuguese.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/russian.dart'; -import 'package:cake_wallet/src/domain/monero/mnemonics/spanish.dart'; +import 'package:cake_wallet/entities/mnemonic_item.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; +import 'package:cake_wallet/monero/mnemonics/chinese_simplified.dart'; +import 'package:cake_wallet/monero/mnemonics/dutch.dart'; +import 'package:cake_wallet/monero/mnemonics/english.dart'; +import 'package:cake_wallet/monero/mnemonics/german.dart'; +import 'package:cake_wallet/monero/mnemonics/japanese.dart'; +import 'package:cake_wallet/monero/mnemonics/portuguese.dart'; +import 'package:cake_wallet/monero/mnemonics/russian.dart'; +import 'package:cake_wallet/monero/mnemonics/spanish.dart'; +import 'package:cake_wallet/utils/language_list.dart'; class SeedValidator extends Validator { SeedValidator({this.type, this.language}) @@ -31,31 +32,29 @@ class SeedValidator extends Validator { } static List getMoneroWordList(String language) { - // FIXME: Unnamed constants; Need to be sure that string are in same case; - switch (language) { - case 'English': + case LanguageList.english: return EnglishMnemonics.words; break; - case 'Chinese (simplified)': + case LanguageList.chineseSimplified: return ChineseSimplifiedMnemonics.words; break; - case 'Dutch': + case LanguageList.dutch: return DutchMnemonics.words; break; - case 'German': + case LanguageList.german: return GermanMnemonics.words; break; - case 'Japanese': + case LanguageList.japanese: return JapaneseMnemonics.words; break; - case 'Portuguese': + case LanguageList.portuguese: return PortugueseMnemonics.words; break; - case 'Russian': + case LanguageList.russian: return RussianMnemonics.words; break; - case 'Spanish': + case LanguageList.spanish: return SpanishMnemonics.words; break; default: @@ -64,7 +63,7 @@ class SeedValidator extends Validator { } static List getBitcoinWordList(String language) { - assert(language.toLowerCase() == 'english'); + assert(language.toLowerCase() == LanguageList.english.toLowerCase()); return bitcoin_english.WORDLIST; } diff --git a/lib/core/transaction_history.dart b/lib/core/transaction_history.dart index dd2c5a0f2..02cff8351 100644 --- a/lib/core/transaction_history.dart +++ b/lib/core/transaction_history.dart @@ -1,6 +1,6 @@ import 'package:flutter/foundation.dart'; import 'package:mobx/mobx.dart'; -import 'package:cake_wallet/src/domain/common/transaction_info.dart'; +import 'package:cake_wallet/entities/transaction_info.dart'; abstract class TransactionHistoryBase { TransactionHistoryBase() : _isUpdating = false; @@ -10,15 +10,17 @@ abstract class TransactionHistoryBase { bool _isUpdating; + @action Future update() async { if (_isUpdating) { return; } try { - _isUpdating = false; - transactions.addAll(await fetchTransactions()); _isUpdating = true; + final _transactions = await fetchTransactions(); + _transactions.forEach((key, value) => transactions[key] = value); + _isUpdating = false; } catch (e) { _isUpdating = false; rethrow; diff --git a/lib/core/wallet_base.dart b/lib/core/wallet_base.dart index 3d0246251..8eea39dca 100644 --- a/lib/core/wallet_base.dart +++ b/lib/core/wallet_base.dart @@ -1,24 +1,39 @@ import 'package:flutter/foundation.dart'; +import 'package:cake_wallet/entities/wallet_info.dart'; import 'package:cake_wallet/core/pending_transaction.dart'; import 'package:cake_wallet/core/transaction_history.dart'; -import 'package:cake_wallet/src/domain/common/transaction_priority.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/common/sync_status.dart'; -import 'package:cake_wallet/src/domain/common/node.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/currency_for_wallet_type.dart'; +import 'package:cake_wallet/entities/transaction_priority.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/entities/sync_status.dart'; +import 'package:cake_wallet/entities/node.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; abstract class WalletBase { - WalletType type; + WalletBase(this.walletInfo); - CryptoCurrency currency; + static String idFor(String name, WalletType type) => + walletTypeToString(type).toLowerCase() + '_' + name; - String get name; + WalletInfo walletInfo; - String address; + WalletType get type => walletInfo.type; - BalaceType balance; + CryptoCurrency get currency => currencyForWalletType(type); - SyncStatus syncStatus; + String get id => walletInfo.id; + + String get name => walletInfo.name; + + String get address; + + set address(String address); + + BalaceType get balance; + + SyncStatus get syncStatus; + + set syncStatus(SyncStatus status); String get seed; @@ -26,8 +41,6 @@ abstract class WalletBase { TransactionHistoryBase transactionHistory; - String get id => walletTypeToString(type).toLowerCase() + '_' + name; - Future connectToNode({@required Node node}); Future startSync(); @@ -37,4 +50,6 @@ abstract class WalletBase { double calculateEstimatedFee(TransactionPriority priority); Future save(); + + Future rescan({int height}); } diff --git a/lib/core/wallet_creation_service.dart b/lib/core/wallet_creation_service.dart index 5c5cb43df..fe3062d36 100644 --- a/lib/core/wallet_creation_service.dart +++ b/lib/core/wallet_creation_service.dart @@ -1,19 +1,17 @@ +import 'package:cake_wallet/di.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:cake_wallet/core/key_service.dart'; +import 'package:cake_wallet/core/wallet_base.dart'; import 'package:cake_wallet/core/generate_wallet_password.dart'; -import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/core/wallet_credentials.dart'; -import 'package:cake_wallet/bitcoin/bitcoin_wallet_service.dart'; -import 'package:cake_wallet/monero/monero_wallet_service.dart'; import 'package:cake_wallet/core/wallet_service.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; class WalletCreationService { WalletCreationService( {WalletType initialType, - this.appStore, this.secureStorage, this.keyService, this.sharedPreferences}) @@ -24,7 +22,6 @@ class WalletCreationService { } WalletType type; - final AppStore appStore; final FlutterSecureStorage secureStorage; final SharedPreferences sharedPreferences; final KeyService keyService; @@ -32,46 +29,30 @@ class WalletCreationService { void changeWalletType({@required WalletType type}) { this.type = type; - - switch (type) { - case WalletType.monero: - _service = MoneroWalletService(); - break; - case WalletType.bitcoin: - _service = BitcoinWalletService(); - break; - default: - break; - } + _service = getIt.get(param1: type); } - Future create(WalletCredentials credentials) async { + Future create(WalletCredentials credentials) async { final password = generateWalletPassword(type); credentials.password = password; await keyService.saveWalletPassword( password: password, walletName: credentials.name); - final wallet = await _service.create(credentials); - appStore.wallet = wallet; - appStore.authenticationStore.allowed(); + return await _service.create(credentials); } - Future restoreFromKeys(WalletCredentials credentials) async { + Future restoreFromKeys(WalletCredentials credentials) async { final password = generateWalletPassword(type); credentials.password = password; await keyService.saveWalletPassword( password: password, walletName: credentials.name); - final wallet = await _service.restoreFromKeys(credentials); - appStore.wallet = wallet; - appStore.authenticationStore.allowed(); + return await _service.restoreFromKeys(credentials); } - Future restoreFromSeed(WalletCredentials credentials) async { + Future restoreFromSeed(WalletCredentials credentials) async { final password = generateWalletPassword(type); credentials.password = password; await keyService.saveWalletPassword( password: password, walletName: credentials.name); - final wallet = await _service.restoreFromSeed(credentials); - appStore.wallet = wallet; - appStore.authenticationStore.allowed(); + return await _service.restoreFromSeed(credentials); } } diff --git a/lib/core/wallet_credentials.dart b/lib/core/wallet_credentials.dart index ee7b1ef58..3998bb005 100644 --- a/lib/core/wallet_credentials.dart +++ b/lib/core/wallet_credentials.dart @@ -1,6 +1,10 @@ +import 'package:cake_wallet/entities/wallet_info.dart'; + abstract class WalletCredentials { - WalletCredentials({this.name, this.password}); + WalletCredentials({this.name, this.password, this.height}); final String name; + final int height; String password; -} \ No newline at end of file + WalletInfo walletInfo; +} diff --git a/lib/di.dart b/lib/di.dart index 48689d283..4b5f5f077 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -1,16 +1,24 @@ +import 'package:cake_wallet/bitcoin/bitcoin_wallet_service.dart'; import 'package:cake_wallet/core/contact_service.dart'; -import 'package:cake_wallet/src/domain/common/contact.dart'; -import 'package:cake_wallet/src/domain/common/node.dart'; -import 'package:cake_wallet/src/domain/exchange/trade.dart'; +import 'package:cake_wallet/core/wallet_service.dart'; +import 'package:cake_wallet/entities/biometric_auth.dart'; +import 'package:cake_wallet/monero/monero_wallet_service.dart'; +import 'package:cake_wallet/entities/contact.dart'; +import 'package:cake_wallet/entities/node.dart'; +import 'package:cake_wallet/exchange/trade.dart'; + +// import 'package:cake_wallet/src/domain/services/wallet_service.dart'; import 'package:cake_wallet/src/screens/contact/contact_list_page.dart'; import 'package:cake_wallet/src/screens/contact/contact_page.dart'; import 'package:cake_wallet/src/screens/exchange_trade/exchange_confirm_page.dart'; import 'package:cake_wallet/src/screens/exchange_trade/exchange_trade_page.dart'; import 'package:cake_wallet/src/screens/nodes/node_create_or_edit_page.dart'; import 'package:cake_wallet/src/screens/nodes/nodes_list_page.dart'; +import 'package:cake_wallet/src/screens/rescan/rescan_page.dart'; import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; import 'package:cake_wallet/src/screens/send/send_template_page.dart'; import 'package:cake_wallet/src/screens/settings/settings.dart'; +import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart'; import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart'; import 'package:cake_wallet/src/screens/exchange/exchange_page.dart'; import 'package:cake_wallet/src/screens/exchange/exchange_template_page.dart'; @@ -20,7 +28,7 @@ import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/core/auth_service.dart'; import 'package:cake_wallet/core/key_service.dart'; import 'package:cake_wallet/monero/monero_wallet.dart'; -import 'package:cake_wallet/src/domain/common/wallet_info.dart'; +import 'package:cake_wallet/entities/wallet_info.dart'; import 'package:cake_wallet/src/screens/monero_accounts/monero_account_list_page.dart'; import 'package:cake_wallet/src/screens/monero_accounts/monero_account_edit_or_create_page.dart'; import 'package:cake_wallet/src/screens/auth/auth_page.dart'; @@ -38,6 +46,8 @@ import 'package:cake_wallet/view_model/contact_list/contact_view_model.dart'; import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart'; import 'package:cake_wallet/view_model/node_list/node_list_view_model.dart'; import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart'; +import 'package:cake_wallet/view_model/rescan_view_model.dart'; +import 'package:cake_wallet/view_model/setup_pin_code_view_model.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart'; import 'package:cake_wallet/view_model/auth_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; @@ -52,6 +62,7 @@ import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart'; import 'package:cake_wallet/view_model/wallet_seed_view_model.dart'; import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart'; import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; import 'package:get_it/get_it.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; @@ -61,51 +72,20 @@ import 'package:cake_wallet/view_model/wallet_restoration_from_seed_vm.dart'; import 'package:cake_wallet/view_model/wallet_restoration_from_keys_vm.dart'; import 'package:cake_wallet/core/wallet_creation_service.dart'; import 'package:cake_wallet/store/app_store.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; import 'package:cake_wallet/view_model/wallet_new_vm.dart'; import 'package:cake_wallet/store/authentication_store.dart'; import 'package:cake_wallet/store/dashboard/trades_store.dart'; import 'package:cake_wallet/store/dashboard/trade_filter_store.dart'; import 'package:cake_wallet/store/dashboard/transaction_filter_store.dart'; -import 'package:cake_wallet/store/dashboard/fiat_convertation_store.dart'; +import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; import 'package:cake_wallet/store/templates/send_template_store.dart'; import 'package:cake_wallet/store/templates/exchange_template_store.dart'; -import 'package:cake_wallet/src/domain/common/template.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_template.dart'; +import 'package:cake_wallet/entities/template.dart'; +import 'package:cake_wallet/exchange/exchange_template.dart'; final getIt = GetIt.instance; -// FIXME: Move me. - -Stream _onNodesSourceChange; -NodeListStore _nodeListStore; - -NodeListStore setupNodeListStore(Box nodeSource) { - if (_nodeListStore != null) { - return _nodeListStore; - } - - _nodeListStore = NodeListStore(); - _nodeListStore.replaceValues(nodeSource.values); - _onNodesSourceChange = nodeSource.watch(); - _onNodesSourceChange.listen((event) { -// print(event); - - if (event.deleted) { - _nodeListStore.nodes.removeWhere((n) { - return n.key != null ? n.key == event.key : true; - }); - } - - if (event.value is Node) { - final val = event.value as Node; - _nodeListStore.nodes.add(val); - } - }); - - return _nodeListStore; -} - Future setup( {Box walletInfoSource, Box nodeSource, @@ -118,11 +98,13 @@ Future setup( final settingsStore = await SettingsStoreBase.load(nodeSource: nodeSource); + getIt.registerSingleton>(nodeSource); + getIt.registerSingleton(FlutterSecureStorage()); getIt.registerSingleton(AuthenticationStore()); getIt.registerSingleton(WalletListStore()); getIt.registerSingleton(ContactListStore()); - getIt.registerSingleton(setupNodeListStore(nodeSource)); + getIt.registerSingleton(NodeListStoreBase.instance); getIt.registerSingleton(settingsStore); getIt.registerSingleton(AppStore( authenticationStore: getIt.get(), @@ -136,7 +118,7 @@ Future setup( tradesSource: tradesSource, settingsStore: getIt.get())); getIt.registerSingleton(TradeFilterStore()); getIt.registerSingleton(TransactionFilterStore()); - getIt.registerSingleton(FiatConvertationStore()); + getIt.registerSingleton(FiatConversionStore()); getIt.registerSingleton( SendTemplateStore(templateSource: templates)); getIt.registerSingleton( @@ -148,13 +130,12 @@ Future setup( getIt.registerFactoryParam( (type, _) => WalletCreationService( initialType: type, - appStore: getIt.get(), keyService: getIt.get(), secureStorage: getIt.get(), sharedPreferences: getIt.get())); getIt.registerFactoryParam((type, _) => - WalletNewVM( + WalletNewVM(getIt.get(), getIt.get(param1: type), walletInfoSource, type: type)); @@ -164,7 +145,7 @@ Future setup( final language = args[1] as String; final mnemonic = args[2] as String; - return WalletRestorationFromSeedVM( + return WalletRestorationFromSeedVM(getIt.get(), getIt.get(param1: type), walletInfoSource, type: type, language: language, seed: mnemonic); }); @@ -174,7 +155,7 @@ Future setup( final type = args.first as WalletType; final language = args[1] as String; - return WalletRestorationFromKeysVM( + return WalletRestorationFromKeysVM(getIt.get(), getIt.get(param1: type), walletInfoSource, type: type, language: language); }); @@ -185,7 +166,7 @@ Future setup( getIt.registerFactory(() => BalanceViewModel( wallet: getIt.get().wallet, settingsStore: getIt.get(), - fiatConvertationStore: getIt.get())); + fiatConvertationStore: getIt.get())); getIt.registerFactory(() => DashboardViewModel( balanceViewModel: getIt.get(), @@ -199,38 +180,24 @@ Future setup( sharedPreferences: getIt.get())); getIt.registerFactory(() => AuthViewModel( - authService: getIt.get(), - sharedPreferences: getIt.get())); + getIt.get(), + getIt.get(), + getIt.get(), + BiometricAuth())); getIt.registerFactory( - () => AuthPage( - allowBiometricalAuthentication: getIt - .get() - .settingsStore - .allowBiometricalAuthentication, - authViewModel: getIt.get(), - onAuthenticationFinished: (isAuthenticated, __) { + () => AuthPage(getIt.get(), + onAuthenticationFinished: (isAuthenticated, __) { if (isAuthenticated) { getIt.get().allowed(); } - }, - closable: false), + }, closable: false), instanceName: 'login'); getIt .registerFactoryParam( - (onAuthFinished, _) { - final allowBiometricalAuthentication = - getIt.get().settingsStore.allowBiometricalAuthentication; - - print('allowBiometricalAuthentication $allowBiometricalAuthentication'); - - return AuthPage( - allowBiometricalAuthentication: allowBiometricalAuthentication, - authViewModel: getIt.get(), - onAuthenticationFinished: onAuthFinished, - closable: false); - }); + (onAuthFinished, _) => AuthPage(getIt.get(), + onAuthenticationFinished: onAuthFinished, closable: false)); getIt.registerFactory(() => DashboardPage( walletViewModel: getIt.get(), @@ -252,13 +219,13 @@ Future setup( getIt.registerFactory(() => SendViewModel( getIt.get().wallet, getIt.get().settingsStore, - getIt.get())); + getIt.get())); getIt.registerFactory( () => SendPage(sendViewModel: getIt.get())); getIt.registerFactory( - () => SendTemplatePage(sendViewModel: getIt.get())); + () => SendTemplatePage(sendViewModel: getIt.get())); getIt.registerFactory(() => WalletListViewModel( walletInfoSource, getIt.get(), getIt.get())); @@ -305,10 +272,10 @@ Future setup( getIt .registerFactory(() => WalletSeedViewModel(getIt.get().wallet)); - getIt.registerFactoryParam( - (VoidCallback callback, _) => WalletSeedPage( + getIt.registerFactoryParam( + (bool isWalletCreated, _) => WalletSeedPage( getIt.get(), - onCloseCallback: callback)); + isNewWalletCreated: isWalletCreated)); getIt .registerFactory(() => WalletKeysViewModel(getIt.get().wallet)); @@ -367,6 +334,35 @@ Future setup( getIt.registerFactory( () => ExchangeTemplatePage(getIt.get())); + + getIt.registerFactory(() => MoneroWalletService(walletInfoSource)); + + getIt.registerFactory(() => BitcoinWalletService()); + + getIt.registerFactoryParam( + (WalletType param1, __) { + switch (param1) { + case WalletType.monero: + return getIt.get(); + case WalletType.bitcoin: + return getIt.get(); + default: + return null; + } + }); + + getIt.registerFactory(() => SetupPinCodeViewModel( + getIt.get(), getIt.get())); + + getIt.registerFactoryParam( + (onSuccessfulPinSetup, _) => SetupPinCodePage( + getIt.get(), + onSuccessfulPinSetup: onSuccessfulPinSetup)); + + getIt.registerFactory(() => RescanViewModel(getIt.get().wallet)); + + getIt.registerFactory(() => RescanPage(getIt.get())); } void setupThemeChangerStore(ThemeChanger themeChanger) { diff --git a/lib/src/stores/action_list/action_list_display_mode.dart b/lib/entities/action_list_display_mode.dart similarity index 100% rename from lib/src/stores/action_list/action_list_display_mode.dart rename to lib/entities/action_list_display_mode.dart diff --git a/lib/src/domain/common/balance.dart b/lib/entities/balance.dart similarity index 100% rename from lib/src/domain/common/balance.dart rename to lib/entities/balance.dart diff --git a/lib/src/domain/common/balance_display_mode.dart b/lib/entities/balance_display_mode.dart similarity index 94% rename from lib/src/domain/common/balance_display_mode.dart rename to lib/entities/balance_display_mode.dart index 42dc09924..57197e57b 100644 --- a/lib/src/domain/common/balance_display_mode.dart +++ b/lib/entities/balance_display_mode.dart @@ -1,6 +1,6 @@ import 'package:flutter/foundation.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/domain/common/enumerable_item.dart'; +import 'package:cake_wallet/entities/enumerable_item.dart'; class BalanceDisplayMode extends EnumerableItem with Serializable { const BalanceDisplayMode({@required String title, @required int raw}) diff --git a/lib/src/domain/common/biometric_auth.dart b/lib/entities/biometric_auth.dart similarity index 100% rename from lib/src/domain/common/biometric_auth.dart rename to lib/entities/biometric_auth.dart diff --git a/lib/src/domain/common/calculate_estimated_fee.dart b/lib/entities/calculate_estimated_fee.dart similarity index 85% rename from lib/src/domain/common/calculate_estimated_fee.dart rename to lib/entities/calculate_estimated_fee.dart index 8d6aa6bc6..6c9200834 100644 --- a/lib/src/domain/common/calculate_estimated_fee.dart +++ b/lib/entities/calculate_estimated_fee.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/transaction_priority.dart'; +import 'package:cake_wallet/entities/transaction_priority.dart'; double calculateEstimatedFee({TransactionPriority priority}) { if (priority == TransactionPriority.slow) { diff --git a/lib/src/domain/common/calculate_fiat_amount.dart b/lib/entities/calculate_fiat_amount.dart similarity index 100% rename from lib/src/domain/common/calculate_fiat_amount.dart rename to lib/entities/calculate_fiat_amount.dart diff --git a/lib/src/domain/common/calculate_fiat_amount_raw.dart b/lib/entities/calculate_fiat_amount_raw.dart similarity index 100% rename from lib/src/domain/common/calculate_fiat_amount_raw.dart rename to lib/entities/calculate_fiat_amount_raw.dart diff --git a/lib/src/domain/common/contact.dart b/lib/entities/contact.dart similarity index 91% rename from lib/src/domain/common/contact.dart rename to lib/entities/contact.dart index 4aca925eb..e54ab0126 100644 --- a/lib/src/domain/common/contact.dart +++ b/lib/entities/contact.dart @@ -1,6 +1,6 @@ import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; import 'package:cake_wallet/utils/mobx.dart'; part 'contact.g.dart'; diff --git a/lib/src/domain/common/contact_model.dart b/lib/entities/contact_model.dart similarity index 86% rename from lib/src/domain/common/contact_model.dart rename to lib/entities/contact_model.dart index 94185a647..dacd1cfb1 100644 --- a/lib/src/domain/common/contact_model.dart +++ b/lib/entities/contact_model.dart @@ -1,7 +1,7 @@ // import 'package:hive/hive.dart'; // import 'package:mobx/mobx.dart'; -// import 'package:cake_wallet/src/domain/common/contact.dart'; -// import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; +// import 'package:cake_wallet/entities/contact.dart'; +// import 'package:cake_wallet/entities/crypto_currency.dart'; // part 'contact_model.g.dart'; diff --git a/lib/src/domain/common/crypto_amount_format.dart b/lib/entities/crypto_amount_format.dart similarity index 100% rename from lib/src/domain/common/crypto_amount_format.dart rename to lib/entities/crypto_amount_format.dart diff --git a/lib/src/domain/common/crypto_currency.dart b/lib/entities/crypto_currency.dart similarity index 97% rename from lib/src/domain/common/crypto_currency.dart rename to lib/entities/crypto_currency.dart index fb09ff181..722fc2aef 100644 --- a/lib/src/domain/common/crypto_currency.dart +++ b/lib/entities/crypto_currency.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/enumerable_item.dart'; +import 'package:cake_wallet/entities/enumerable_item.dart'; import 'package:hive/hive.dart'; part 'crypto_currency.g.dart'; diff --git a/lib/entities/currency_for_wallet_type.dart b/lib/entities/currency_for_wallet_type.dart new file mode 100644 index 000000000..840e75dd1 --- /dev/null +++ b/lib/entities/currency_for_wallet_type.dart @@ -0,0 +1,13 @@ +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; + +CryptoCurrency currencyForWalletType(WalletType type) { + switch (type) { + case WalletType.bitcoin: + return CryptoCurrency.btc; + case WalletType.monero: + return CryptoCurrency.xmr; + default: + return null; + } +} \ No newline at end of file diff --git a/lib/src/domain/common/currency_formatter.dart b/lib/entities/currency_formatter.dart similarity index 74% rename from lib/src/domain/common/currency_formatter.dart rename to lib/entities/currency_formatter.dart index efe1bf759..40326a7e6 100644 --- a/lib/src/domain/common/currency_formatter.dart +++ b/lib/entities/currency_formatter.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; String cryptoToString(CryptoCurrency crypto) { switch (crypto) { diff --git a/lib/src/domain/common/default_settings_migration.dart b/lib/entities/default_settings_migration.dart similarity index 89% rename from lib/src/domain/common/default_settings_migration.dart rename to lib/entities/default_settings_migration.dart index 44165fdbf..f16349387 100644 --- a/lib/src/domain/common/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -1,13 +1,13 @@ -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; -import 'package:cake_wallet/store/settings_store.dart'; import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; import 'package:shared_preferences/shared_preferences.dart'; -import 'package:cake_wallet/src/domain/common/node.dart'; -import 'package:cake_wallet/src/domain/common/balance_display_mode.dart'; -import 'package:cake_wallet/src/domain/common/fiat_currency.dart'; -import 'package:cake_wallet/src/domain/common/node_list.dart'; -import 'package:cake_wallet/src/domain/common/transaction_priority.dart'; +import 'package:cake_wallet/entities/preferences_key.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; +import 'package:cake_wallet/entities/node.dart'; +import 'package:cake_wallet/entities/balance_display_mode.dart'; +import 'package:cake_wallet/entities/fiat_currency.dart'; +import 'package:cake_wallet/entities/node_list.dart'; +import 'package:cake_wallet/entities/transaction_priority.dart'; Future defaultSettingsMigration( {@required int version, @@ -29,13 +29,13 @@ Future defaultSettingsMigration( switch (version) { case 1: await sharedPreferences.setString( - SettingsStoreBase.currentFiatCurrencyKey, + PreferencesKey.currentFiatCurrencyKey, FiatCurrency.usd.toString()); await sharedPreferences.setInt( - SettingsStoreBase.currentTransactionPriorityKey, + PreferencesKey.currentTransactionPriorityKey, TransactionPriority.standart.raw); await sharedPreferences.setInt( - SettingsStoreBase.currentBalanceDisplayModeKey, + PreferencesKey.currentBalanceDisplayModeKey, BalanceDisplayMode.availableBalance.raw); await sharedPreferences.setBool('save_recipient_address', true); await resetToDefault(nodes); diff --git a/lib/src/domain/common/digest_request.dart b/lib/entities/digest_request.dart similarity index 100% rename from lib/src/domain/common/digest_request.dart rename to lib/entities/digest_request.dart diff --git a/lib/src/domain/common/encrypt.dart b/lib/entities/encrypt.dart similarity index 100% rename from lib/src/domain/common/encrypt.dart rename to lib/entities/encrypt.dart diff --git a/lib/src/domain/common/enumerable_item.dart b/lib/entities/enumerable_item.dart similarity index 100% rename from lib/src/domain/common/enumerable_item.dart rename to lib/entities/enumerable_item.dart diff --git a/lib/src/domain/common/fiat_currency.dart b/lib/entities/fiat_currency.dart similarity index 97% rename from lib/src/domain/common/fiat_currency.dart rename to lib/entities/fiat_currency.dart index 7c86ad610..8066c8f6a 100644 --- a/lib/src/domain/common/fiat_currency.dart +++ b/lib/entities/fiat_currency.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/enumerable_item.dart'; +import 'package:cake_wallet/entities/enumerable_item.dart'; class FiatCurrency extends EnumerableItem with Serializable { const FiatCurrency({String symbol}) : super(title: symbol, raw: symbol); diff --git a/lib/src/domain/common/format_amount.dart b/lib/entities/format_amount.dart similarity index 100% rename from lib/src/domain/common/format_amount.dart rename to lib/entities/format_amount.dart diff --git a/lib/src/domain/common/fs_migration.dart b/lib/entities/fs_migration.dart similarity index 73% rename from lib/src/domain/common/fs_migration.dart rename to lib/entities/fs_migration.dart index db17cd134..bb674b493 100644 --- a/lib/src/domain/common/fs_migration.dart +++ b/lib/entities/fs_migration.dart @@ -1,10 +1,10 @@ import 'dart:io'; import 'dart:convert'; -import 'package:cake_wallet/src/domain/common/contact.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/common/wallet_info.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; -import 'package:cake_wallet/src/domain/exchange/trade.dart'; +import 'package:cake_wallet/entities/contact.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/entities/wallet_info.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; +import 'package:cake_wallet/exchange/trade.dart'; import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; import 'package:path_provider/path_provider.dart'; @@ -82,28 +82,28 @@ Future migrate_wallets({Directory appDocDir}) async { Future migrate_ios_wallet_info( {@required Directory appDocDir, @required Box walletsInfo}) async { - final walletsDir = Directory('${appDocDir.path}/wallets'); - final moneroWalletsDir = Directory('${walletsDir.path}/monero'); + // final walletsDir = Directory('${appDocDir.path}/wallets'); + // final moneroWalletsDir = Directory('${walletsDir.path}/monero'); - moneroWalletsDir.listSync().forEach((item) async { - try { - if (item is Directory) { - final name = item.path.split('/').last; - final configFile = File('${item.path}/$name.json'); - final config = - json.decode(configFile.readAsStringSync()) as Map; - final isRecovery = config["isRecovery"] as bool ?? false; - final id = - walletTypeToString(WalletType.monero).toLowerCase() + '_' + name; - final walletInfo = - WalletInfo(id: id, name: name, isRecovery: isRecovery); + // moneroWalletsDir.listSync().forEach((item) async { + // try { + // if (item is Directory) { + // final name = item.path.split('/').last; + // final configFile = File('${item.path}/$name.json'); + // final config = + // json.decode(configFile.readAsStringSync()) as Map; + // final isRecovery = config["isRecovery"] as bool ?? false; + // final id = + // walletTypeToString(WalletType.monero).toLowerCase() + '_' + name; + // final walletInfo = + // WalletInfo(id: id, name: name, isRecovery: isRecovery); - await walletsInfo.add(walletInfo); - } - } catch (e) { - print(e.toString()); - } - }); + // await walletsInfo.add(walletInfo); + // } + // } catch (e) { + // print(e.toString()); + // } + // }); } Future migrate_ios_trades_list( diff --git a/lib/src/domain/common/get_encryption_key.dart b/lib/entities/get_encryption_key.dart similarity index 100% rename from lib/src/domain/common/get_encryption_key.dart rename to lib/entities/get_encryption_key.dart diff --git a/lib/entities/ios_legacy_helper.dart b/lib/entities/ios_legacy_helper.dart new file mode 100644 index 000000000..1e4a2fba5 --- /dev/null +++ b/lib/entities/ios_legacy_helper.dart @@ -0,0 +1,15 @@ +import 'dart:async'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; + +const platform = + const MethodChannel('com.cakewallet.cakewallet/legacy_wallet_migration'); + +Future readTradeList( + {@required String key, @required String salt}) async => + await platform.invokeMethod('read_trade_list', {'key': key, 'salt': salt}); + +Future readEncryptedFile(String url, + {@required String key, @required String salt}) async => + await platform.invokeMethod( + 'read_encrypted_file', {'url': url, 'key': key, 'salt': salt}); diff --git a/lib/src/domain/common/language.dart b/lib/entities/language.dart similarity index 100% rename from lib/src/domain/common/language.dart rename to lib/entities/language.dart diff --git a/lib/entities/load_current_wallet.dart b/lib/entities/load_current_wallet.dart new file mode 100644 index 000000000..ef690521f --- /dev/null +++ b/lib/entities/load_current_wallet.dart @@ -0,0 +1,23 @@ +import 'package:cake_wallet/di.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:cake_wallet/store/app_store.dart'; +import 'package:cake_wallet/core/key_service.dart'; +import 'package:cake_wallet/core/wallet_service.dart'; +import 'package:cake_wallet/entities/preferences_key.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; + +Future loadCurrentWallet() async { + final appStore = getIt.get(); + final name = getIt + .get() + .getString(PreferencesKey.currentWalletName); + final typeRaw = + getIt.get().getInt(PreferencesKey.currentWalletType) ?? + 0; + final type = deserializeFromInt(typeRaw); + final password = + await getIt.get().getWalletPassword(walletName: name); + final _service = getIt.get(param1: type); + final wallet = await _service.openWallet(name, password); + appStore.wallet = wallet; +} diff --git a/lib/src/domain/common/mnemonic_item.dart b/lib/entities/mnemonic_item.dart similarity index 100% rename from lib/src/domain/common/mnemonic_item.dart rename to lib/entities/mnemonic_item.dart diff --git a/lib/src/domain/common/node.dart b/lib/entities/node.dart similarity index 94% rename from lib/src/domain/common/node.dart rename to lib/entities/node.dart index 931eabf6c..74643112a 100644 --- a/lib/src/domain/common/node.dart +++ b/lib/entities/node.dart @@ -3,8 +3,8 @@ import 'package:flutter/foundation.dart'; import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:hive/hive.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; -import 'package:cake_wallet/src/domain/common/digest_request.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; +import 'package:cake_wallet/entities/digest_request.dart'; part 'node.g.dart'; diff --git a/lib/src/domain/common/node_list.dart b/lib/entities/node_list.dart similarity index 90% rename from lib/src/domain/common/node_list.dart rename to lib/entities/node_list.dart index 67bfe6eac..118394e6f 100644 --- a/lib/src/domain/common/node_list.dart +++ b/lib/entities/node_list.dart @@ -1,8 +1,8 @@ import 'package:flutter/services.dart'; import 'package:hive/hive.dart'; import "package:yaml/yaml.dart"; -import 'package:cake_wallet/src/domain/common/node.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/node.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; Future> loadDefaultNodes() async { final nodesRaw = await rootBundle.loadString('assets/node_list.yml'); diff --git a/lib/src/domain/common/openalias_record.dart b/lib/entities/openalias_record.dart similarity index 100% rename from lib/src/domain/common/openalias_record.dart rename to lib/entities/openalias_record.dart diff --git a/lib/src/domain/common/parseBoolFromString.dart b/lib/entities/parseBoolFromString.dart similarity index 100% rename from lib/src/domain/common/parseBoolFromString.dart rename to lib/entities/parseBoolFromString.dart diff --git a/lib/src/domain/common/pathForWallet.dart b/lib/entities/pathForWallet.dart similarity index 91% rename from lib/src/domain/common/pathForWallet.dart rename to lib/entities/pathForWallet.dart index d7caf8c1d..7e21ac178 100644 --- a/lib/src/domain/common/pathForWallet.dart +++ b/lib/entities/pathForWallet.dart @@ -1,5 +1,5 @@ import 'dart:io'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; import 'package:flutter/foundation.dart'; import 'package:path_provider/path_provider.dart'; diff --git a/lib/src/domain/common/pending_transaction.dart b/lib/entities/pending_transaction.dart similarity index 92% rename from lib/src/domain/common/pending_transaction.dart rename to lib/entities/pending_transaction.dart index 9168b3195..77e5d7b48 100644 --- a/lib/src/domain/common/pending_transaction.dart +++ b/lib/entities/pending_transaction.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:cw_monero/transaction_history.dart' as transaction_history; import 'package:cw_monero/structs/pending_transaction.dart'; -import 'package:cake_wallet/src/domain/monero/monero_amount_format.dart'; +import 'package:cake_wallet/monero/monero_amount_format.dart'; class PendingTransaction { PendingTransaction( diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart new file mode 100644 index 000000000..53d59460a --- /dev/null +++ b/lib/entities/preferences_key.dart @@ -0,0 +1,16 @@ +class PreferencesKey { + static const currentWalletType ='current_wallet_type'; + static const currentWalletName ='current_wallet_name'; + static const currentNodeIdKey = 'current_node_id'; + static const currentBitcoinElectrumSererIdKey = 'current_node_id_btc'; + static const currentFiatCurrencyKey = 'current_fiat_currency'; + static const currentTransactionPriorityKey = 'current_fee_priority'; + static const currentBalanceDisplayModeKey = 'current_balance_display_mode'; + static const shouldSaveRecipientAddressKey = 'save_recipient_address'; + static const allowBiometricalAuthenticationKey = + 'allow_biometrical_authentication'; + static const currentDarkTheme = 'dark_theme'; + static const displayActionListModeKey = 'display_list_mode'; + static const currentPinLength = 'current_pin_length'; + static const currentLanguageCode = 'language_code'; +} \ No newline at end of file diff --git a/lib/src/domain/common/qr_scanner.dart b/lib/entities/qr_scanner.dart similarity index 100% rename from lib/src/domain/common/qr_scanner.dart rename to lib/entities/qr_scanner.dart diff --git a/lib/src/domain/common/secret_store_key.dart b/lib/entities/secret_store_key.dart similarity index 100% rename from lib/src/domain/common/secret_store_key.dart rename to lib/entities/secret_store_key.dart diff --git a/lib/src/domain/common/sync_status.dart b/lib/entities/sync_status.dart similarity index 100% rename from lib/src/domain/common/sync_status.dart rename to lib/entities/sync_status.dart diff --git a/lib/src/domain/common/template.dart b/lib/entities/template.dart similarity index 100% rename from lib/src/domain/common/template.dart rename to lib/entities/template.dart diff --git a/lib/src/domain/common/transaction_creation_credentials.dart b/lib/entities/transaction_creation_credentials.dart similarity index 100% rename from lib/src/domain/common/transaction_creation_credentials.dart rename to lib/entities/transaction_creation_credentials.dart diff --git a/lib/src/domain/monero/transaction_description.dart b/lib/entities/transaction_description.dart similarity index 85% rename from lib/src/domain/monero/transaction_description.dart rename to lib/entities/transaction_description.dart index 51f01e219..3f817fe4f 100644 --- a/lib/src/domain/monero/transaction_description.dart +++ b/lib/entities/transaction_description.dart @@ -7,6 +7,7 @@ class TransactionDescription extends HiveObject { TransactionDescription({this.id, this.recipientAddress}); static const boxName = 'TransactionDescriptions'; + static const boxKey = 'transactionDescriptionsBoxKey'; @HiveField(0) String id; diff --git a/lib/src/domain/common/transaction_direction.dart b/lib/entities/transaction_direction.dart similarity index 100% rename from lib/src/domain/common/transaction_direction.dart rename to lib/entities/transaction_direction.dart diff --git a/lib/src/domain/common/transaction_history.dart b/lib/entities/transaction_history.dart similarity index 72% rename from lib/src/domain/common/transaction_history.dart rename to lib/entities/transaction_history.dart index 57e508b59..55c02f247 100644 --- a/lib/src/domain/common/transaction_history.dart +++ b/lib/entities/transaction_history.dart @@ -1,5 +1,5 @@ import 'package:rxdart/rxdart.dart'; -import 'package:cake_wallet/src/domain/common/transaction_info.dart'; +import 'package:cake_wallet/entities/transaction_info.dart'; abstract class TransactionHistory { Observable> transactions; diff --git a/lib/src/domain/common/transaction_info.dart b/lib/entities/transaction_info.dart similarity index 50% rename from lib/src/domain/common/transaction_info.dart rename to lib/entities/transaction_info.dart index e5da3bed6..c9ad89c71 100644 --- a/lib/src/domain/common/transaction_info.dart +++ b/lib/entities/transaction_info.dart @@ -1,6 +1,7 @@ -import 'package:cake_wallet/src/domain/common/transaction_direction.dart'; +import 'package:cake_wallet/entities/transaction_direction.dart'; +import 'package:cake_wallet/utils/mobx.dart'; -abstract class TransactionInfo extends Object { +abstract class TransactionInfo extends Object with Keyable { String id; int amount; TransactionDirection direction; @@ -11,4 +12,7 @@ abstract class TransactionInfo extends Object { String amountFormatted(); String fiatAmount(); void changeFiatAmount(String amount); + + @override + dynamic get keyIndex => id; } \ No newline at end of file diff --git a/lib/src/domain/common/transaction_priority.dart b/lib/entities/transaction_priority.dart similarity index 95% rename from lib/src/domain/common/transaction_priority.dart rename to lib/entities/transaction_priority.dart index f611313e0..9bad84c9f 100644 --- a/lib/src/domain/common/transaction_priority.dart +++ b/lib/entities/transaction_priority.dart @@ -1,5 +1,5 @@ import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/domain/common/enumerable_item.dart'; +import 'package:cake_wallet/entities/enumerable_item.dart'; class TransactionPriority extends EnumerableItem with Serializable { const TransactionPriority({String title, int raw}) diff --git a/lib/src/domain/common/wallet.dart b/lib/entities/wallet.dart similarity index 67% rename from lib/src/domain/common/wallet.dart rename to lib/entities/wallet.dart index e2cca5e58..90a3929fe 100644 --- a/lib/src/domain/common/wallet.dart +++ b/lib/entities/wallet.dart @@ -1,11 +1,11 @@ import 'package:rxdart/rxdart.dart'; -import 'package:cake_wallet/src/domain/common/sync_status.dart'; -import 'package:cake_wallet/src/domain/common/transaction_history.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; -import 'package:cake_wallet/src/domain/common/transaction_creation_credentials.dart'; -import 'package:cake_wallet/src/domain/common/pending_transaction.dart'; -import 'package:cake_wallet/src/domain/common/balance.dart'; -import 'package:cake_wallet/src/domain/common/node.dart'; +import 'package:cake_wallet/entities/sync_status.dart'; +import 'package:cake_wallet/entities/transaction_history.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; +import 'package:cake_wallet/entities/transaction_creation_credentials.dart'; +import 'package:cake_wallet/entities/pending_transaction.dart'; +import 'package:cake_wallet/entities/balance.dart'; +import 'package:cake_wallet/entities/node.dart'; abstract class Wallet { WalletType getType(); diff --git a/lib/src/domain/common/wallet_description.dart b/lib/entities/wallet_description.dart similarity index 65% rename from lib/src/domain/common/wallet_description.dart rename to lib/entities/wallet_description.dart index f56616cb1..1e25ffc1c 100644 --- a/lib/src/domain/common/wallet_description.dart +++ b/lib/entities/wallet_description.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; class WalletDescription { WalletDescription({this.name, this.type}); diff --git a/lib/entities/wallet_info.dart b/lib/entities/wallet_info.dart new file mode 100644 index 000000000..97ae9f326 --- /dev/null +++ b/lib/entities/wallet_info.dart @@ -0,0 +1,52 @@ +import 'package:flutter/foundation.dart'; +import 'package:hive/hive.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; + +part 'wallet_info.g.dart'; + +@HiveType(typeId: 4) +class WalletInfo extends HiveObject { + WalletInfo(this.id, this.name, this.type, this.isRecovery, this.restoreHeight, + this.timestamp, this.dirPath, this.path); + + factory WalletInfo.external( + {@required String id, + @required String name, + @required WalletType type, + @required bool isRecovery, + @required int restoreHeight, + @required DateTime date, + @required String dirPath, + @required String path}) { + return WalletInfo(id, name, type, isRecovery, restoreHeight, + date.millisecondsSinceEpoch ?? 0, dirPath, path); + } + + static const boxName = 'WalletInfo'; + + @HiveField(0) + String id; + + @HiveField(1) + String name; + + @HiveField(2) + WalletType type; + + @HiveField(3) + bool isRecovery; + + @HiveField(4) + int restoreHeight; + + @HiveField(5) + int timestamp; + + @HiveField(6) + String dirPath; + + @HiveField(7) + String path; + + DateTime get date => DateTime.fromMillisecondsSinceEpoch(timestamp); +} diff --git a/lib/src/domain/common/wallet_type.dart b/lib/entities/wallet_type.dart similarity index 100% rename from lib/src/domain/common/wallet_type.dart rename to lib/entities/wallet_type.dart diff --git a/lib/src/domain/common/wallets_manager.dart b/lib/entities/wallets_manager.dart similarity index 79% rename from lib/src/domain/common/wallets_manager.dart rename to lib/entities/wallets_manager.dart index a8d31a8a6..72c80de97 100644 --- a/lib/src/domain/common/wallets_manager.dart +++ b/lib/entities/wallets_manager.dart @@ -1,5 +1,5 @@ -import 'package:cake_wallet/src/domain/common/wallet.dart'; -import 'package:cake_wallet/src/domain/common/wallet_description.dart'; +import 'package:cake_wallet/entities/wallet.dart'; +import 'package:cake_wallet/entities/wallet_description.dart'; abstract class WalletsManager { Future create(String name, String password, String language); diff --git a/lib/src/domain/exchange/changenow/changenow_exchange_provider.dart b/lib/exchange/changenow/changenow_exchange_provider.dart similarity index 86% rename from lib/src/domain/exchange/changenow/changenow_exchange_provider.dart rename to lib/exchange/changenow/changenow_exchange_provider.dart index 7fc3f5d63..94f8ea6ac 100644 --- a/lib/src/domain/exchange/changenow/changenow_exchange_provider.dart +++ b/lib/exchange/changenow/changenow_exchange_provider.dart @@ -1,18 +1,18 @@ import 'dart:convert'; -import 'package:cake_wallet/src/domain/exchange/trade_not_found_exeption.dart'; +import 'package:cake_wallet/exchange/trade_not_found_exeption.dart'; import 'package:flutter/foundation.dart'; import 'package:http/http.dart'; import 'package:cake_wallet/.secrets.g.dart' as secrets; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_pair.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_provider.dart'; -import 'package:cake_wallet/src/domain/exchange/limits.dart'; -import 'package:cake_wallet/src/domain/exchange/trade.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_request.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_state.dart'; -import 'package:cake_wallet/src/domain/exchange/changenow/changenow_request.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_not_created_exeption.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/exchange_pair.dart'; +import 'package:cake_wallet/exchange/exchange_provider.dart'; +import 'package:cake_wallet/exchange/limits.dart'; +import 'package:cake_wallet/exchange/trade.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; +import 'package:cake_wallet/exchange/trade_state.dart'; +import 'package:cake_wallet/exchange/changenow/changenow_request.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/trade_not_created_exeption.dart'; class ChangeNowExchangeProvider extends ExchangeProvider { ChangeNowExchangeProvider() diff --git a/lib/src/domain/exchange/changenow/changenow_request.dart b/lib/exchange/changenow/changenow_request.dart similarity index 72% rename from lib/src/domain/exchange/changenow/changenow_request.dart rename to lib/exchange/changenow/changenow_request.dart index 0201cb3c6..1f79dfa47 100644 --- a/lib/src/domain/exchange/changenow/changenow_request.dart +++ b/lib/exchange/changenow/changenow_request.dart @@ -1,6 +1,6 @@ import 'package:flutter/foundation.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_request.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; class ChangeNowRequest extends TradeRequest { ChangeNowRequest( diff --git a/lib/src/domain/exchange/exchange_pair.dart b/lib/exchange/exchange_pair.dart similarity index 70% rename from lib/src/domain/exchange/exchange_pair.dart rename to lib/exchange/exchange_pair.dart index 42e2b5db0..b8b77a0dd 100644 --- a/lib/src/domain/exchange/exchange_pair.dart +++ b/lib/exchange/exchange_pair.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; class ExchangePair { ExchangePair({this.from, this.to, this.reverse = true}); diff --git a/lib/src/domain/exchange/exchange_provider.dart b/lib/exchange/exchange_provider.dart similarity index 56% rename from lib/src/domain/exchange/exchange_provider.dart rename to lib/exchange/exchange_provider.dart index 9079d367d..418d20b8c 100644 --- a/lib/src/domain/exchange/exchange_provider.dart +++ b/lib/exchange/exchange_provider.dart @@ -1,10 +1,10 @@ import 'package:flutter/foundation.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_request.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_pair.dart'; -import 'package:cake_wallet/src/domain/exchange/limits.dart'; -import 'package:cake_wallet/src/domain/exchange/trade.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; +import 'package:cake_wallet/exchange/exchange_pair.dart'; +import 'package:cake_wallet/exchange/limits.dart'; +import 'package:cake_wallet/exchange/trade.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; abstract class ExchangeProvider { ExchangeProvider({this.pairList}); diff --git a/lib/src/domain/exchange/exchange_provider_description.dart b/lib/exchange/exchange_provider_description.dart similarity index 91% rename from lib/src/domain/exchange/exchange_provider_description.dart rename to lib/exchange/exchange_provider_description.dart index 67a2565d8..bb3b621b5 100644 --- a/lib/src/domain/exchange/exchange_provider_description.dart +++ b/lib/exchange/exchange_provider_description.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/common/enumerable_item.dart'; +import 'package:cake_wallet/entities/enumerable_item.dart'; class ExchangeProviderDescription extends EnumerableItem with Serializable { diff --git a/lib/src/domain/exchange/exchange_template.dart b/lib/exchange/exchange_template.dart similarity index 100% rename from lib/src/domain/exchange/exchange_template.dart rename to lib/exchange/exchange_template.dart diff --git a/lib/src/stores/exchange/exchange_trade_state.dart b/lib/exchange/exchange_trade_state.dart similarity index 88% rename from lib/src/stores/exchange/exchange_trade_state.dart rename to lib/exchange/exchange_trade_state.dart index 1f9eecad1..324ae9338 100644 --- a/lib/src/stores/exchange/exchange_trade_state.dart +++ b/lib/exchange/exchange_trade_state.dart @@ -1,5 +1,5 @@ import 'package:flutter/foundation.dart'; -import 'package:cake_wallet/src/domain/exchange/trade.dart'; +import 'package:cake_wallet/exchange/trade.dart'; abstract class ExchangeTradeState {} diff --git a/lib/src/domain/exchange/limits.dart b/lib/exchange/limits.dart similarity index 100% rename from lib/src/domain/exchange/limits.dart rename to lib/exchange/limits.dart diff --git a/lib/src/stores/exchange/limits_state.dart b/lib/exchange/limits_state.dart similarity index 87% rename from lib/src/stores/exchange/limits_state.dart rename to lib/exchange/limits_state.dart index ccc5934d8..66adaa8a2 100644 --- a/lib/src/stores/exchange/limits_state.dart +++ b/lib/exchange/limits_state.dart @@ -1,5 +1,5 @@ import 'package:flutter/foundation.dart'; -import 'package:cake_wallet/src/domain/exchange/limits.dart'; +import 'package:cake_wallet/exchange/limits.dart'; abstract class LimitsState {} diff --git a/lib/exchange/morphtoken/morphtoken_exchange_provider.dart b/lib/exchange/morphtoken/morphtoken_exchange_provider.dart new file mode 100644 index 000000000..ec632cccb --- /dev/null +++ b/lib/exchange/morphtoken/morphtoken_exchange_provider.dart @@ -0,0 +1,202 @@ +import 'dart:convert'; +import 'package:cake_wallet/core/amount_converter.dart'; +import 'package:cake_wallet/monero/monero_amount_format.dart'; +import 'package:hive/hive.dart'; +import 'package:cake_wallet/exchange/trade_not_found_exeption.dart'; +import 'package:flutter/foundation.dart'; +import 'package:http/http.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/exchange_pair.dart'; +import 'package:cake_wallet/exchange/exchange_provider.dart'; +import 'package:cake_wallet/exchange/limits.dart'; +import 'package:cake_wallet/exchange/trade.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; +import 'package:cake_wallet/exchange/trade_state.dart'; +import 'package:cake_wallet/exchange/morphtoken/morphtoken_request.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/trade_not_created_exeption.dart'; + +class MorphTokenExchangeProvider extends ExchangeProvider { + MorphTokenExchangeProvider({@required this.trades}) + : super(pairList: [ + ExchangePair(from: CryptoCurrency.xmr, to: CryptoCurrency.eth), + ExchangePair(from: CryptoCurrency.xmr, to: CryptoCurrency.bch), + ExchangePair(from: CryptoCurrency.xmr, to: CryptoCurrency.ltc), + ExchangePair(from: CryptoCurrency.xmr, to: CryptoCurrency.dash), + ExchangePair(from: CryptoCurrency.dash, to: CryptoCurrency.btc), + ExchangePair(from: CryptoCurrency.dash, to: CryptoCurrency.eth), + ExchangePair(from: CryptoCurrency.dash, to: CryptoCurrency.bch), + ExchangePair(from: CryptoCurrency.dash, to: CryptoCurrency.ltc), + ExchangePair(from: CryptoCurrency.dash, to: CryptoCurrency.xmr), + ExchangePair(from: CryptoCurrency.ltc, to: CryptoCurrency.btc), + ExchangePair(from: CryptoCurrency.ltc, to: CryptoCurrency.eth), + ExchangePair(from: CryptoCurrency.ltc, to: CryptoCurrency.bch), + ExchangePair(from: CryptoCurrency.ltc, to: CryptoCurrency.dash), + ExchangePair(from: CryptoCurrency.ltc, to: CryptoCurrency.xmr), + ExchangePair(from: CryptoCurrency.bch, to: CryptoCurrency.btc), + ExchangePair(from: CryptoCurrency.bch, to: CryptoCurrency.eth), + ExchangePair(from: CryptoCurrency.bch, to: CryptoCurrency.ltc), + ExchangePair(from: CryptoCurrency.bch, to: CryptoCurrency.dash), + ExchangePair(from: CryptoCurrency.bch, to: CryptoCurrency.xmr), + ExchangePair(from: CryptoCurrency.eth, to: CryptoCurrency.btc), + ExchangePair(from: CryptoCurrency.eth, to: CryptoCurrency.bch), + ExchangePair(from: CryptoCurrency.eth, to: CryptoCurrency.ltc), + ExchangePair(from: CryptoCurrency.eth, to: CryptoCurrency.dash), + ExchangePair(from: CryptoCurrency.eth, to: CryptoCurrency.xmr), + ExchangePair(from: CryptoCurrency.btc, to: CryptoCurrency.eth), + ExchangePair(from: CryptoCurrency.btc, to: CryptoCurrency.bch), + ExchangePair(from: CryptoCurrency.btc, to: CryptoCurrency.ltc), + ExchangePair(from: CryptoCurrency.btc, to: CryptoCurrency.dash), + ExchangePair(from: CryptoCurrency.btc, to: CryptoCurrency.xmr) + ]); + + Box trades; + + static const apiUri = 'https://api.morphtoken.com'; + static const _morphURISuffix = '/morph'; + static const _limitsURISuffix = '/limits'; + static const _ratesURISuffix = '/rates'; + static const weight = 10000; + + @override + String get title => 'MorphToken'; + + @override + ExchangeProviderDescription get description => + ExchangeProviderDescription.morphToken; + + @override + Future fetchLimits({CryptoCurrency from, CryptoCurrency to}) async { + final url = apiUri + _limitsURISuffix; + final headers = {'Content-type': 'application/json'}; + final body = json.encode({ + "input": {"asset": from.toString()}, + "output": [ + {"asset": to.toString(), "weight": weight} + ] + }); + final response = await post(url, headers: headers, body: body); + final responseJSON = json.decode(response.body) as Map; + + final min = responseJSON['input']['limits']['min'] as int; + int max; + double ethMax; + + if (from == CryptoCurrency.eth) { + ethMax = responseJSON['input']['limits']['max'] as double; + } else { + max = responseJSON['input']['limits']['max'] as int; + } + + double minFormatted = AmountConverter.amountIntToDouble(from, min); + double maxFormatted = AmountConverter.amountIntToDouble(from, max); + + return Limits(min: minFormatted, max: maxFormatted); + } + + @override + Future createTrade({TradeRequest request}) async { + const url = apiUri + _morphURISuffix; + final _request = request as MorphTokenRequest; + final body = { + "input": { + "asset": _request.from.toString(), + "refund": _request.refundAddress + }, + "output": [ + { + "asset": _request.to.toString(), + "weight": weight, + "address": _request.address + } + ], + "tag": "cakewallet" + }; + + final response = await post(url, + headers: {'Content-Type': 'application/json'}, body: json.encode(body)); + + if (response.statusCode != 200) { + if (response.statusCode == 400) { + final responseJSON = json.decode(response.body) as Map; + final error = responseJSON['description'] as String; + + throw TradeNotCreatedException(description, description: error); + } + + throw TradeNotCreatedException(description); + } + + final responseJSON = json.decode(response.body) as Map; + final id = responseJSON['id'] as String; + + return Trade( + id: id, + provider: description, + from: _request.from, + to: _request.to, + state: TradeState.created, + amount: _request.amount, + createdAt: DateTime.now()); + } + + @override + Future findTradeById({@required String id}) async { + final url = apiUri + _morphURISuffix + '/' + id; + final response = await get(url); + + if (response.statusCode != 200) { + if (response.statusCode == 400) { + final responseJSON = json.decode(response.body) as Map; + final error = responseJSON['description'] as String; + + throw TradeNotFoundException(id, + provider: description, description: error); + } + + throw TradeNotFoundException(id, provider: description); + } + + final responseJSON = json.decode(response.body) as Map; + final fromCurrency = responseJSON['input']['asset'] as String; + final from = CryptoCurrency.fromString(fromCurrency.toLowerCase()); + final toCurrency = responseJSON['output'][0]['asset'] as String; + final to = CryptoCurrency.fromString(toCurrency.toLowerCase()); + final inputAddress = responseJSON['input']['deposit_address'] as String; + final status = responseJSON['state'] as String; + final state = TradeState.deserialize(raw: status.toLowerCase()); + + String amount = ""; + for (final trade in trades.values) { + if (trade.id == id) { + amount = trade.amount; + break; + } + } + + return Trade( + id: id, + from: from, + to: to, + provider: description, + inputAddress: inputAddress, + amount: amount, + state: state); + } + + @override + Future calculateAmount( + {CryptoCurrency from, CryptoCurrency to, double amount}) async { + final url = apiUri + _ratesURISuffix; + final response = await get(url); + final responseJSON = json.decode(response.body) as Map; + final rate = responseJSON['data'][from.toString()][to.toString()] as String; + + try { + final estimatedAmount = double.parse(rate) * amount; + return estimatedAmount; + } catch (e) { + return 0.0; + } + } +} diff --git a/lib/src/domain/exchange/morphtoken/morphtoken_request.dart b/lib/exchange/morphtoken/morphtoken_request.dart similarity index 73% rename from lib/src/domain/exchange/morphtoken/morphtoken_request.dart rename to lib/exchange/morphtoken/morphtoken_request.dart index f034372d9..d92a643e8 100644 --- a/lib/src/domain/exchange/morphtoken/morphtoken_request.dart +++ b/lib/exchange/morphtoken/morphtoken_request.dart @@ -1,6 +1,6 @@ import 'package:flutter/foundation.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_request.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; class MorphTokenRequest extends TradeRequest { MorphTokenRequest( diff --git a/lib/src/domain/exchange/trade.dart b/lib/exchange/trade.dart similarity index 88% rename from lib/src/domain/exchange/trade.dart rename to lib/exchange/trade.dart index 83e09a4b4..c7110f55f 100644 --- a/lib/src/domain/exchange/trade.dart +++ b/lib/exchange/trade.dart @@ -1,8 +1,8 @@ import 'package:hive/hive.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_state.dart'; -import 'package:cake_wallet/src/domain/common/format_amount.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/trade_state.dart'; +import 'package:cake_wallet/entities/format_amount.dart'; part 'trade.g.dart'; @@ -28,6 +28,7 @@ class Trade extends HiveObject { stateRaw = state?.raw; static const boxName = 'Trades'; + static const boxKey = 'tradesBoxKey'; @HiveField(0) String id; diff --git a/lib/src/domain/exchange/trade_not_created_exeption.dart b/lib/exchange/trade_not_created_exeption.dart similarity index 84% rename from lib/src/domain/exchange/trade_not_created_exeption.dart rename to lib/exchange/trade_not_created_exeption.dart index 2fc037a06..181d05397 100644 --- a/lib/src/domain/exchange/trade_not_created_exeption.dart +++ b/lib/exchange/trade_not_created_exeption.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; import 'package:cake_wallet/generated/i18n.dart'; class TradeNotCreatedException implements Exception { diff --git a/lib/src/domain/exchange/trade_not_found_exeption.dart b/lib/exchange/trade_not_found_exeption.dart similarity index 85% rename from lib/src/domain/exchange/trade_not_found_exeption.dart rename to lib/exchange/trade_not_found_exeption.dart index ad789a215..0d0dbd944 100644 --- a/lib/src/domain/exchange/trade_not_found_exeption.dart +++ b/lib/exchange/trade_not_found_exeption.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; import 'package:cake_wallet/generated/i18n.dart'; class TradeNotFoundException implements Exception { diff --git a/lib/src/domain/exchange/trade_request.dart b/lib/exchange/trade_request.dart similarity index 100% rename from lib/src/domain/exchange/trade_request.dart rename to lib/exchange/trade_request.dart diff --git a/lib/src/domain/exchange/trade_state.dart b/lib/exchange/trade_state.dart similarity index 97% rename from lib/src/domain/exchange/trade_state.dart rename to lib/exchange/trade_state.dart index 0a94cf4c0..7095626b9 100644 --- a/lib/src/domain/exchange/trade_state.dart +++ b/lib/exchange/trade_state.dart @@ -1,5 +1,5 @@ import 'package:flutter/foundation.dart'; -import 'package:cake_wallet/src/domain/common/enumerable_item.dart'; +import 'package:cake_wallet/entities/enumerable_item.dart'; class TradeState extends EnumerableItem with Serializable { const TradeState({@required String raw, @required String title}) diff --git a/lib/src/domain/exchange/xmrto/xmrto_exchange_provider.dart b/lib/exchange/xmrto/xmrto_exchange_provider.dart similarity index 88% rename from lib/src/domain/exchange/xmrto/xmrto_exchange_provider.dart rename to lib/exchange/xmrto/xmrto_exchange_provider.dart index d65f23db3..ca1253310 100644 --- a/lib/src/domain/exchange/xmrto/xmrto_exchange_provider.dart +++ b/lib/exchange/xmrto/xmrto_exchange_provider.dart @@ -1,17 +1,17 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:http/http.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_pair.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_provider.dart'; -import 'package:cake_wallet/src/domain/exchange/limits.dart'; -import 'package:cake_wallet/src/domain/exchange/trade.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_request.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_state.dart'; -import 'package:cake_wallet/src/domain/exchange/xmrto/xmrto_trade_request.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_not_created_exeption.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_not_found_exeption.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/exchange_pair.dart'; +import 'package:cake_wallet/exchange/exchange_provider.dart'; +import 'package:cake_wallet/exchange/limits.dart'; +import 'package:cake_wallet/exchange/trade.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; +import 'package:cake_wallet/exchange/trade_state.dart'; +import 'package:cake_wallet/exchange/xmrto/xmrto_trade_request.dart'; +import 'package:cake_wallet/exchange/trade_not_created_exeption.dart'; +import 'package:cake_wallet/exchange/exchange_provider_description.dart'; +import 'package:cake_wallet/exchange/trade_not_found_exeption.dart'; class XMRTOExchangeProvider extends ExchangeProvider { XMRTOExchangeProvider() diff --git a/lib/src/domain/exchange/xmrto/xmrto_trade_request.dart b/lib/exchange/xmrto/xmrto_trade_request.dart similarity index 74% rename from lib/src/domain/exchange/xmrto/xmrto_trade_request.dart rename to lib/exchange/xmrto/xmrto_trade_request.dart index 204798698..a456b572a 100644 --- a/lib/src/domain/exchange/xmrto/xmrto_trade_request.dart +++ b/lib/exchange/xmrto/xmrto_trade_request.dart @@ -1,6 +1,6 @@ import 'package:flutter/foundation.dart'; -import 'package:cake_wallet/src/domain/common/crypto_currency.dart'; -import 'package:cake_wallet/src/domain/exchange/trade_request.dart'; +import 'package:cake_wallet/entities/crypto_currency.dart'; +import 'package:cake_wallet/exchange/trade_request.dart'; class XMRTOTradeRequest extends TradeRequest { XMRTOTradeRequest( diff --git a/lib/generated/i18n.dart b/lib/generated/i18n.dart index 2a63b3bae..0467ad495 100644 --- a/lib/generated/i18n.dart +++ b/lib/generated/i18n.dart @@ -14,7 +14,7 @@ class S implements WidgetsLocalizations { static S current; static const GeneratedLocalizationsDelegate delegate = - GeneratedLocalizationsDelegate(); + GeneratedLocalizationsDelegate(); static S of(BuildContext context) => Localizations.of(context, S); @@ -30,8 +30,7 @@ class S implements WidgetsLocalizations { String get address_book => "Address Book"; String get address_book_menu => "Address book"; String get address_remove_contact => "Remove contact"; - String get address_remove_content => - "Are you sure that you want to remove selected contact?"; + String get address_remove_content => "Are you sure that you want to remove selected contact?"; String get addresses => "Addresses"; String get all => "ALL"; String get amount => "Amount: "; @@ -57,10 +56,8 @@ class S implements WidgetsLocalizations { String get choose_wallet_currency => "Please choose wallet currency:"; String get clear => "Clear"; String get confirm => "Confirm"; - String get confirm_delete_template => - "This action will delete this template. Do you wish to continue?"; - String get confirm_delete_wallet => - "This action will delete this wallet. Do you wish to continue?"; + String get confirm_delete_template => "This action will delete this template. Do you wish to continue?"; + String get confirm_delete_wallet => "This action will delete this wallet. Do you wish to continue?"; String get confirm_sending => "Confirm sending"; String get contact => "Contact"; String get contact_name => "Contact Name"; @@ -77,43 +74,30 @@ class S implements WidgetsLocalizations { String get enter_your_pin => "Enter your PIN"; String get enter_your_pin_again => "Enter your pin again"; String get error => "Error"; - String get error_text_account_name => - "Account name can only contain letters, numbers\nand must be between 1 and 15 characters long"; - String get error_text_address => - "Wallet address must correspond to the type\nof cryptocurrency"; + String get error_text_account_name => "Account name can only contain letters, numbers\nand must be between 1 and 15 characters long"; + String get error_text_address => "Wallet address must correspond to the type\nof cryptocurrency"; String get error_text_amount => "Amount can only contain numbers"; - String get error_text_contact_name => - "Contact name can't contain ` , ' \" symbols\nand must be between 1 and 32 characters long"; - String get error_text_crypto_currency => - "The number of fraction digits\nmust be less or equal to 12"; - String get error_text_fiat => - "Value of amount can't exceed available balance.\nThe number of fraction digits must be less or equal to 2"; + String get error_text_contact_name => "Contact name can't contain ` , ' \" symbols\nand must be between 1 and 32 characters long"; + String get error_text_crypto_currency => "The number of fraction digits\nmust be less or equal to 12"; + String get error_text_fiat => "Value of amount can't exceed available balance.\nThe number of fraction digits must be less or equal to 2"; String get error_text_keys => "Wallet keys can only contain 64 chars in hex"; String get error_text_node_address => "Please enter a iPv4 address"; - String get error_text_node_port => - "Node port can only contain numbers between 0 and 65535"; - String get error_text_payment_id => - "Payment ID can only contain from 16 to 64 chars in hex"; - String get error_text_subaddress_name => - "Subaddress name can't contain ` , ' \" symbols\nand must be between 1 and 20 characters long"; - String get error_text_template => - "Template name and address can't contain ` , ' \" symbols\nand must be between 1 and 106 characters long"; - String get error_text_wallet_name => - "Wallet name can only contain letters, numbers\nand must be between 1 and 15 characters long"; - String get error_text_xmr => - "XMR value can't exceed available balance.\nThe number of fraction digits must be less or equal to 12"; + String get error_text_node_port => "Node port can only contain numbers between 0 and 65535"; + String get error_text_payment_id => "Payment ID can only contain from 16 to 64 chars in hex"; + String get error_text_subaddress_name => "Subaddress name can't contain ` , ' \" symbols\nand must be between 1 and 20 characters long"; + String get error_text_template => "Template name and address can't contain ` , ' \" symbols\nand must be between 1 and 106 characters long"; + String get error_text_wallet_name => "Wallet name can only contain letters, numbers\nand must be between 1 and 15 characters long"; + String get error_text_xmr => "XMR value can't exceed available balance.\nThe number of fraction digits must be less or equal to 12"; String get estimated => "Estimated"; String get exchange => "Exchange"; String get exchange_new_template => "New template"; - String get exchange_result_write_down_ID => - "*Please copy or write down your ID shown above."; - String get exchange_result_write_down_trade_id => - "Please copy or write down the trade ID to continue."; + String get exchange_result_write_down_ID => "*Please copy or write down your ID shown above."; + String get exchange_result_write_down_trade_id => "Please copy or write down the trade ID to continue."; String get expired => "Expired"; String get faq => "FAQ"; String get fetching => "Fetching"; String get filters => "Filter"; - String get first_wallet_text => "Awesome wallet for Monero and Bitcoin"; + String get first_wallet_text => "Awesome wallet for Monero"; String get full_balance => "Full Balance"; String get hidden_balance => "Hidden Balance"; String get id => "ID: "; @@ -130,8 +114,7 @@ class S implements WidgetsLocalizations { String get node_port => "Node port"; String get node_reset_settings_title => "Reset settings"; String get nodes => "Nodes"; - String get nodes_list_reset_to_default_message => - "Are you sure that you want to reset settings to default?"; + String get nodes_list_reset_to_default_message => "Are you sure that you want to reset settings to default?"; String get offer_expires_in => "Offer expires in: "; String get ok => "OK"; String get openalias_alert_title => "XMR Recipient Detected"; @@ -142,13 +125,10 @@ class S implements WidgetsLocalizations { String get pending => " (pending)"; String get pin_is_incorrect => "PIN is incorrect"; String get placeholder_contacts => "Your contacts will be displayed here"; - String get placeholder_transactions => - "Your transactions will be displayed here"; - String get please_make_selection => - "Please make selection below to create or recover your wallet."; + String get placeholder_transactions => "Your transactions will be displayed here"; + String get please_make_selection => "Please make selection below to create or recover your wallet."; String get please_select => "Please select:"; - String get please_try_to_connect_to_another_node => - "Please try to connect to another node"; + String get please_try_to_connect_to_another_node => "Please try to connect to another node"; String get receive => "Receive"; String get receive_amount => "Amount"; String get received => "Received"; @@ -158,28 +138,21 @@ class S implements WidgetsLocalizations { String get refund_address => "Refund address"; String get remove => "Remove"; String get remove_node => "Remove node"; - String get remove_node_message => - "Are you sure that you want to remove selected node?"; + String get remove_node_message => "Are you sure that you want to remove selected node?"; String get rename => "Rename"; String get rescan => "Rescan"; String get reset => "Reset"; String get restore_active_seed => "Active seed"; String get restore_address => "Address"; - String get restore_bitcoin_description_from_keys => - "Restore your wallet from generated WIF string from your private keys"; - String get restore_bitcoin_description_from_seed => - "Restore your wallet from 12 word combination code"; + String get restore_bitcoin_description_from_keys => "Restore your wallet from generated WIF string from your private keys"; + String get restore_bitcoin_description_from_seed => "Restore your wallet from 12 word combination code"; String get restore_bitcoin_title_from_keys => "Restore from WIF"; - String get restore_description_from_backup => - "You can restore the whole Cake Wallet app from your back-up file"; - String get restore_description_from_keys => - "Restore your wallet from generated keystrokes saved from your private keys"; - String get restore_description_from_seed => - "Restore your wallet from either the 25 word or 13 word combination code"; - String get restore_description_from_seed_keys => - "Get back your wallet from seed/keys that you've saved to secure place"; - String get restore_from_seed_placeholder => - "Please enter or paste your seed here"; + String get restore_description_from_backup => "You can restore the whole Cake Wallet app from your back-up file"; + String get restore_description_from_keys => "Restore your wallet from generated keystrokes saved from your private keys"; + String get restore_description_from_seed => "Restore your wallet from either the 25 word or 13 word combination code"; + String get restore_description_from_seed_keys => "Get back your wallet from seed/keys that you've saved to secure place"; + String get restore_from_date_or_blockheight => "Please enter the date you created this wallet. Or if you know the blockheight, please enter it instead"; + String get restore_from_seed_placeholder => "Please enter or paste your seed here"; String get restore_new_seed => "New seed"; String get restore_next => "Next"; String get restore_recover => "Restore"; @@ -208,6 +181,7 @@ class S implements WidgetsLocalizations { String get seed_language_portuguese => "Portuguese"; String get seed_language_russian => "Russian"; String get seed_language_spanish => "Spanish"; + String get seed_reminder => "Please write these down in case you lose or wipe your phone"; String get seed_share => "Share seed"; String get seed_title => "Seed"; String get send => "Send"; @@ -230,8 +204,7 @@ class S implements WidgetsLocalizations { String get sending => "Sending"; String get sent => "Sent"; String get settings_all => "ALL"; - String get settings_allow_biometrical_authentication => - "Allow biometrical authentication"; + String get settings_allow_biometrical_authentication => "Allow biometrical authentication"; String get settings_change_language => "Change language"; String get settings_change_pin => "Change PIN"; String get settings_currency => "Currency"; @@ -321,8 +294,7 @@ class S implements WidgetsLocalizations { String get wallet_list_title => "Monero Wallet"; String get wallet_menu => "Menu"; String get wallet_name => "Wallet name"; - String get wallet_restoration_store_incorrect_seed_length => - "Incorrect seed length"; + String get wallet_restoration_store_incorrect_seed_length => "Incorrect seed length"; String get wallet_store_monero_wallet => "Monero Wallet"; String get wallets => "Wallets"; String get welcome => "Welcome to"; @@ -338,58 +310,34 @@ class S implements WidgetsLocalizations { String get you_will_get => "You will get"; String get you_will_send => "You will send"; String Blocks_remaining(String status) => "${status} Blocks Remaining"; - String change_current_node(String node) => - "Are you sure to change current node to ${node}?"; - String change_language_to(String language) => - "Change language to ${language}?"; - String commit_transaction_amount_fee(String amount, String fee) => - "Commit transaction\nAmount: ${amount}\nFee: ${fee}"; + String change_current_node(String node) => "Are you sure to change current node to ${node}?"; + String change_language_to(String language) => "Change language to ${language}?"; + String commit_transaction_amount_fee(String amount, String fee) => "Commit transaction\nAmount: ${amount}\nFee: ${fee}"; String copied_key_to_clipboard(String key) => "Copied ${key} to Clipboard"; - String error_text_limits_loading_failed(String provider) => - "Trade for ${provider} is not created. Limits loading failed"; - String error_text_maximum_limit( - String provider, String max, String currency) => - "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}"; - String error_text_minimal_limit( - String provider, String min, String currency) => - "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}"; - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts."; - String exchange_result_description(String fetchingLabel, String from) => - "Please send ${fetchingLabel} ${from} to the address shown above."; - String failed_authentication(String state_error) => - "Failed authentication. ${state_error}"; - String max_value(String value, String currency) => - "Max: ${value} ${currency}"; - String min_value(String value, String currency) => - "Min: ${value} ${currency}"; - String openalias_alert_content(String recipient_name) => - "You will be sending funds to\n${recipient_name}"; + String error_text_limits_loading_failed(String provider) => "Trade for ${provider} is not created. Limits loading failed"; + String error_text_maximum_limit(String provider, String max, String currency) => "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}"; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown above. Or you can send from your external wallet to the above address/QR code.\n\nPlease press confirm to continue or go back to change the amounts."; + String exchange_result_description(String fetchingLabel, String from) => "Please send ${fetchingLabel} ${from} to the address shown above."; + String failed_authentication(String state_error) => "Failed authentication. ${state_error}"; + String max_value(String value, String currency) => "Max: ${value} ${currency}"; + String min_value(String value, String currency) => "Min: ${value} ${currency}"; + String openalias_alert_content(String recipient_name) => "You will be sending funds to\n${recipient_name}"; String powered_by(String title) => "Powered by ${title}"; String router_no_route(String name) => "No route defined for ${name}"; String send_address(String cryptoCurrency) => "${cryptoCurrency} address"; - String send_priority(String transactionPriority) => - "Currently the fee is set at ${transactionPriority} priority.\nTransaction priority can be adjusted in the settings"; + String send_priority(String transactionPriority) => "Currently the fee is set at ${transactionPriority} priority.\nTransaction priority can be adjusted in the settings"; String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; String trade_details_copied(String title) => "${title} copied to Clipboard"; - String trade_for_not_created(String title) => - "Trade for ${title} is not created."; - String trade_id_not_found(String tradeId, String title) => - "Trade ${tradeId} of ${title} not found."; - String trade_is_powered_by(String provider) => - "This trade is powered by ${provider}"; - String transaction_details_copied(String title) => - "${title} copied to Clipboard"; + String trade_for_not_created(String title) => "Trade for ${title} is not created."; + String trade_id_not_found(String tradeId, String title) => "Trade ${tradeId} of ${title} not found."; + String trade_is_powered_by(String provider) => "This trade is powered by ${provider}"; + String transaction_details_copied(String title) => "${title} copied to Clipboard"; String version(String currentVersion) => "Version ${currentVersion}"; - String wallet_list_failed_to_load(String wallet_name, String error) => - "Failed to load ${wallet_name} wallet. ${error}"; - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Failed to remove ${wallet_name} wallet. ${error}"; - String wallet_list_loading_wallet(String wallet_name) => - "Loading ${wallet_name} wallet"; - String wallet_list_removing_wallet(String wallet_name) => - "Removing ${wallet_name} wallet"; + String wallet_list_failed_to_load(String wallet_name, String error) => "Failed to load ${wallet_name} wallet. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Failed to remove ${wallet_name} wallet. ${error}"; + String wallet_list_loading_wallet(String wallet_name) => "Loading ${wallet_name} wallet"; + String wallet_list_removing_wallet(String wallet_name) => "Removing ${wallet_name} wallet"; } class $de extends S { @@ -415,8 +363,7 @@ class $de extends S { @override String get hidden_balance => "Verstecktes Gleichgewicht"; @override - String get biometric_auth_reason => - "Scannen Sie Ihren Fingerabdruck zur Authentifizierung"; + String get biometric_auth_reason => "Scannen Sie Ihren Fingerabdruck zur Authentifizierung"; @override String get transaction_sent => "Transaktion gesendet!"; @override @@ -428,8 +375,7 @@ class $de extends S { @override String get trade_id => "Handel-ID:"; @override - String get restore_description_from_seed => - "Stellen Sie Ihr Wallet aus den 25 Wörtern wieder her oder 13-Wort-Kombinationscode"; + String get restore_description_from_seed => "Stellen Sie Ihr Wallet aus den 25 Wörtern wieder her oder 13-Wort-Kombinationscode"; @override String get trade_state_underpaid => "Unterbezahlt"; @override @@ -441,8 +387,7 @@ class $de extends S { @override String get send_templates => "Vorlagen"; @override - String get please_try_to_connect_to_another_node => - "Bitte versuchen Sie, eine Verbindung zu einem anderen Knoten herzustellen"; + String get please_try_to_connect_to_another_node => "Bitte versuchen Sie, eine Verbindung zu einem anderen Knoten herzustellen"; @override String get trade_state_traded => "Handeln"; @override @@ -456,8 +401,7 @@ class $de extends S { @override String get auth_store_banned_minutes => " Protokoll"; @override - String get restore_title_from_seed_keys => - "Vom Seed / Schlüssel wiederherstellen"; + String get restore_title_from_seed_keys => "Vom Seed / Schlüssel wiederherstellen"; @override String get settings_none => "Keiner"; @override @@ -477,8 +421,7 @@ class $de extends S { @override String get receive_amount => "Menge"; @override - String get settings_allow_biometrical_authentication => - "Biometrische Authentifizierung zulassen"; + String get settings_allow_biometrical_authentication => "Biometrische Authentifizierung zulassen"; @override String get view_key_private => "Schlüssel anzeigen (eheim)"; @override @@ -488,16 +431,13 @@ class $de extends S { @override String get send_sending => "Senden..."; @override - String get error_text_address => - "Die Walletadresse muss dem Typ entsprechen\nder Kryptowährung"; + String get error_text_address => "Die Walletadresse muss dem Typ entsprechen\nder Kryptowährung"; @override String get send_your_wallet => "Deine Geldbörse"; @override - String get remove_node_message => - "Möchten Sie den ausgewählten Knoten wirklich entfernen?"; + String get remove_node_message => "Möchten Sie den ausgewählten Knoten wirklich entfernen?"; @override - String get error_text_account_name => - "Der Kontoname darf nur Wallet und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein"; + String get error_text_account_name => "Der Kontoname darf nur Wallet und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein"; @override String get reconnection => "Wiederverbindung"; @override @@ -511,22 +451,19 @@ class $de extends S { @override String get reconnect => "Erneut verbinden"; @override - String get reconnect_alert_text => - "Sind Sie sicher, dass Sie die Verbindung wiederherstellen möchten?"; + String get reconnect_alert_text => "Sind Sie sicher, dass Sie die Verbindung wiederherstellen möchten?"; @override String get send_error_minimum_value => "Der Mindestbetrag beträgt 0,01"; @override String get copy_address => "Adresse kopieren"; @override - String get error_text_subaddress_name => - "Der Name der Unteradresse darf nicht enthalten sein ` , ' \" symbole\nund muss zwischen 1 und 20 Zeichen lang sein"; + String get error_text_subaddress_name => "Der Name der Unteradresse darf nicht enthalten sein ` , ' \" symbole\nund muss zwischen 1 und 20 Zeichen lang sein"; @override String get incorrect_seed => "Der eingegebene Text ist ungültig."; @override String get settings_all => "ALLE"; @override - String get nodes_list_reset_to_default_message => - "Möchten Sie die Einstellungen wirklich auf die Standardeinstellungen zurücksetzen?"; + String get nodes_list_reset_to_default_message => "Möchten Sie die Einstellungen wirklich auf die Standardeinstellungen zurücksetzen?"; @override String get receive => "Erhalten"; @override @@ -536,15 +473,13 @@ class $de extends S { @override String get trade_details_pair => "Paar"; @override - String get choose_wallet_currency => - "Bitte wählen Sie die Brieftaschenwährung:"; + String get choose_wallet_currency => "Bitte wählen Sie die Brieftaschenwährung:"; @override String get confirm => "Bestätigen"; @override String get settings_display_balance_as => "Kontostand anzeigen als"; @override - String get placeholder_transactions => - "Ihre Transaktionen werden hier angezeigt"; + String get placeholder_transactions => "Ihre Transaktionen werden hier angezeigt"; @override String get trade_details_provider => "Anbieter"; @override @@ -566,13 +501,11 @@ class $de extends S { @override String get settings_title => "die Einstellungen"; @override - String get restore_bitcoin_description_from_seed => - "Stellen Sie Ihre Brieftasche aus dem 12-Wort-Kombinationscode wieder her"; + String get restore_bitcoin_description_from_seed => "Stellen Sie Ihre Brieftasche aus dem 12-Wort-Kombinationscode wieder her"; @override String get address_book_menu => "Adressbuch"; @override - String get wallet_restoration_store_incorrect_seed_length => - "Falsche Samenlänge"; + String get wallet_restoration_store_incorrect_seed_length => "Falsche Samenlänge"; @override String get seed_language_spanish => "Spanisch"; @override @@ -594,18 +527,15 @@ class $de extends S { @override String get please_select => "Bitte auswählen:"; @override - String get restore_title_from_backup => - "Aus einer Sicherungsdatei wiederherstellen"; + String get restore_title_from_backup => "Aus einer Sicherungsdatei wiederherstellen"; @override String get full_balance => "Volle Balance"; @override String get sync_status_not_connected => "NICHT VERBUNDEN"; @override - String get error_text_crypto_currency => - "Die Anzahl der Nachkommastellen\nmuss kleiner oder gleich 12 sein."; + String get error_text_crypto_currency => "Die Anzahl der Nachkommastellen\nmuss kleiner oder gleich 12 sein."; @override - String get error_text_contact_name => - "Kontaktname darf nicht enthalten sein ` , ' \" Symbole\nund muss zwischen 1 und 32 Zeichen lang sein"; + String get error_text_contact_name => "Kontaktname darf nicht enthalten sein ` , ' \" Symbole\nund muss zwischen 1 und 32 Zeichen lang sein"; @override String get restore_seed_keys_restore => "Seed / Schlüssel wiederherstellen"; @override @@ -615,8 +545,7 @@ class $de extends S { @override String get exchange => "Austausch"; @override - String get sync_status_failed_connect => - "Verbindung zum Knoten fehlgeschlagen"; + String get sync_status_failed_connect => "Verbindung zum Knoten fehlgeschlagen"; @override String get send_estimated_fee => "Geschätzte Gebühr:"; @override @@ -668,8 +597,7 @@ class $de extends S { @override String get copy_id => "ID kopieren"; @override - String get please_make_selection => - "Bitte treffen Sie unten eine Auswahl zu Erstellen oder Wiederherstellen Ihrer Brieftasche."; + String get please_make_selection => "Bitte treffen Sie unten eine Auswahl zu Erstellen oder Wiederherstellen Ihrer Brieftasche."; @override String get loading_your_wallet => "Laden Sie Ihre Brieftasche"; @override @@ -679,13 +607,11 @@ class $de extends S { @override String get nodes => "Knoten"; @override - String get error_text_template => - "Vorlagenname und Adresse dürfen nicht enthalten ` , ' \" symbole\nund muss zwischen 1 und 106 Zeichen lang sein"; + String get error_text_template => "Vorlagenname und Adresse dürfen nicht enthalten ` , ' \" symbole\nund muss zwischen 1 und 106 Zeichen lang sein"; @override String get seed_share => "Teilen Sie Seed"; @override - String get widgets_restore_from_blockheight => - "Aus Blockhöhe wiederherstellen"; + String get widgets_restore_from_blockheight => "Aus Blockhöhe wiederherstellen"; @override String get seed_language_chinese => "Chinesisch"; @override @@ -707,18 +633,15 @@ class $de extends S { @override String get trade_state_complete => "Komplett"; @override - String get error_text_xmr => - "Der XMR-Wert kann das verfügbare Guthaben nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 12 sein"; + String get error_text_xmr => "Der XMR-Wert kann das verfügbare Guthaben nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 12 sein"; @override String get xmr_available_balance => "XMR verfügbares Guthaben"; @override - String get restore_bitcoin_description_from_keys => - "Stellen Sie Ihre Brieftasche aus der generierten WIF-Zeichenfolge aus Ihren privaten Schlüsseln wieder her"; + String get restore_bitcoin_description_from_keys => "Stellen Sie Ihre Brieftasche aus der generierten WIF-Zeichenfolge aus Ihren privaten Schlüsseln wieder her"; @override String get restore_bitcoin_title_from_keys => "Aus WIF wiederherstellen"; @override - String get scan_qr_code => - "Scannen Sie den QR-Code, um die Adresse zu erhalten"; + String get scan_qr_code => "Scannen Sie den QR-Code, um die Adresse zu erhalten"; @override String get trade_state_paid => "Bezahlt"; @override @@ -742,8 +665,7 @@ class $de extends S { @override String get wallet_name => "Walletname"; @override - String get error_text_payment_id => - "Die Zahlungs-ID kann nur 16 bis 64 hexadezimale Zeichen enthalten"; + String get error_text_payment_id => "Die Zahlungs-ID kann nur 16 bis 64 hexadezimale Zeichen enthalten"; @override String get node_reset_settings_title => "Einstellungen zurücksetzen"; @override @@ -765,8 +687,7 @@ class $de extends S { @override String get new_wallet => "Neues Wallet"; @override - String get settings_display_on_dashboard_list => - "Anzeige in der Dashboard-Liste"; + String get settings_display_on_dashboard_list => "Anzeige in der Dashboard-Liste"; @override String get transaction_details_title => "Transaktionsdetails"; @override @@ -796,8 +717,7 @@ class $de extends S { @override String get seed_language_dutch => "Niederländisch"; @override - String get restore_description_from_seed_keys => - "Holen Sie sich Ihr Wallet von Seed / Schlüsseln zurück, die Sie an einem sicheren Ort aufbewahrt haben"; + String get restore_description_from_seed_keys => "Holen Sie sich Ihr Wallet von Seed / Schlüsseln zurück, die Sie an einem sicheren Ort aufbewahrt haben"; @override String get copy => "Kopieren"; @override @@ -813,11 +733,9 @@ class $de extends S { @override String get contact_name => "Name des Ansprechpartners"; @override - String get exchange_result_write_down_ID => - "*Bitte kopieren oder notieren Sie Ihren oben gezeigten Ausweis."; + String get exchange_result_write_down_ID => "*Bitte kopieren oder notieren Sie Ihren oben gezeigten Ausweis."; @override - String get exchange_result_write_down_trade_id => - "Bitte kopieren oder notieren Sie die Handel-ID, um fortzufahren."; + String get exchange_result_write_down_trade_id => "Bitte kopieren oder notieren Sie die Handel-ID, um fortzufahren."; @override String get new_subaddress_title => "Neue Unteradresse"; @override @@ -829,8 +747,7 @@ class $de extends S { @override String get trade_not_created => "Handel nicht angelegt."; @override - String get confirm_delete_wallet => - "Diese Aktion löscht diese Brieftasche. Möchten Sie fortfahren?"; + String get confirm_delete_wallet => "Diese Aktion löscht diese Brieftasche. Möchten Sie fortfahren?"; @override String get restore_wallet_name => "Walletname"; @override @@ -840,8 +757,7 @@ class $de extends S { @override String get rename => "Umbenennen"; @override - String get confirm_delete_template => - "Diese Aktion löscht diese Vorlage. Möchten Sie fortfahren?"; + String get confirm_delete_template => "Diese Aktion löscht diese Vorlage. Möchten Sie fortfahren?"; @override String get restore_active_seed => "Aktives Seed"; @override @@ -857,15 +773,13 @@ class $de extends S { @override String get show_keys => "Schlüssel anzeigen"; @override - String get error_text_fiat => - "Der Wert des Betrags darf den verfügbaren Kontostand nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 2 sein"; + String get error_text_fiat => "Der Wert des Betrags darf den verfügbaren Kontostand nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 2 sein"; @override String get addresses => "Adressen"; @override String get transactions_by_date => "Transaktionen nach Datum"; @override - String get restore_from_seed_placeholder => - "Bitte geben Sie hier Ihren Code ein"; + String get restore_from_seed_placeholder => "Bitte geben Sie hier Ihren Code ein"; @override String get use => "Verwenden Sie "; @override @@ -877,6 +791,8 @@ class $de extends S { @override String get choose_account => "Konto auswählen"; @override + String get restore_from_date_or_blockheight => "Bitte geben Sie das Datum ein, an dem Sie diese Brieftasche erstellt haben. Oder wenn Sie die Blockhöhe kennen, geben Sie sie stattdessen ein"; + @override String get settings_only_trades => "Nur Trades"; @override String get trade_state_to_be_created => "Geschaffen werden"; @@ -891,11 +807,9 @@ class $de extends S { @override String get address_remove_contact => "Kontakt entfernen"; @override - String get error_text_wallet_name => - "Der Wallet darf nur Buchstaben und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein"; + String get error_text_wallet_name => "Der Wallet darf nur Buchstaben und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein"; @override - String get restore_description_from_keys => - "Stellen Sie Ihr Wallet von generiert wieder her Tastenanschläge, die von Ihren privaten Schlüsseln gespeichert wurden"; + String get restore_description_from_keys => "Stellen Sie Ihr Wallet von generiert wieder her Tastenanschläge, die von Ihren privaten Schlüsseln gespeichert wurden"; @override String get seed_language_next => "Nächster"; @override @@ -911,8 +825,7 @@ class $de extends S { @override String get send_title => "Senden Sie"; @override - String get error_text_keys => - "Walletschlüssel können nur 64 hexadezimale Zeichen enthalten"; + String get error_text_keys => "Walletschlüssel können nur 64 hexadezimale Zeichen enthalten"; @override String get settings_save_recipient_address => "Empfängeradresse speichern"; @override @@ -954,19 +867,19 @@ class $de extends S { @override String get restore_address => "Adresse"; @override - String get restore_wallet_restore_description => - "Beschreibung zur Wiederherstellung der Brieftasche"; + String get restore_wallet_restore_description => "Beschreibung zur Wiederherstellung der Brieftasche"; @override String get today => "Heute"; @override String get settings_support => "Unterstützung"; @override + String get seed_reminder => "Bitte notieren Sie diese, falls Sie Ihr Telefon verlieren oder abwischen"; + @override String get restore_wallet => "Wallet wiederherstellen"; @override String get ok => "OK"; @override - String get address_remove_content => - "Sind Sie sicher, dass Sie den ausgewählten Kontakt entfernen möchten?"; + String get address_remove_content => "Sind Sie sicher, dass Sie den ausgewählten Kontakt entfernen möchten?"; @override String get wallet_list_title => "Monero Wallet"; @override @@ -994,11 +907,9 @@ class $de extends S { @override String get restore_title_from_seed => "Aus Seed wiederherstellen"; @override - String get restore_description_from_backup => - "Sie können die gesamte Cake Wallet-App von wiederherstellen Ihre Sicherungsdatei"; + String get restore_description_from_backup => "Sie können die gesamte Cake Wallet-App von wiederherstellen Ihre Sicherungsdatei"; @override - String get error_text_node_port => - "Der Knotenport kann nur Nummern zwischen 0 und 65535 enthalten"; + String get error_text_node_port => "Der Knotenport kann nur Nummern zwischen 0 und 65535 enthalten"; @override String get add_new_word => "Neues Wort hinzufügen"; @override @@ -1006,95 +917,69 @@ class $de extends S { @override String get digit_pin => "-stelliger PIN"; @override - String get first_wallet_text => "tolle Brieftasche zum Monero und Bitcoin"; + String get first_wallet_text => "tolle Brieftasche zum Monero"; @override String get settings_trades => "Handel"; @override String get account => "Konto"; @override - String change_language_to(String language) => - "Ändern Sie die Sprache in ${language}?"; + String change_language_to(String language) => "Ändern Sie die Sprache in ${language}?"; @override - String change_current_node(String node) => - "Möchten Sie den aktuellen Knoten wirklich auf ändern? ${node}?"; + String change_current_node(String node) => "Möchten Sie den aktuellen Knoten wirklich auf ändern? ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "Wird geladen ${wallet_name} Wallet"; + String wallet_list_loading_wallet(String wallet_name) => "Wird geladen ${wallet_name} Wallet"; @override String version(String currentVersion) => "Ausführung ${currentVersion}"; @override String router_no_route(String name) => "Keine Route definiert für ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "Handel für ${provider} wird nicht erstellt. Menge ist weniger als minimal: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "Handel für ${provider} wird nicht erstellt. Menge ist weniger als minimal: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "Handel ${tradeId} von ${title} nicht gefunden."; + String trade_id_not_found(String tradeId, String title) => "Handel ${tradeId} von ${title} nicht gefunden."; @override - String transaction_details_copied(String title) => - "${title} in die Zwischenablage kopiert"; + String transaction_details_copied(String title) => "${title} in die Zwischenablage kopiert"; @override - String trade_details_copied(String title) => - "${title} in die Zwischenablage kopiert"; + String trade_details_copied(String title) => "${title} in die Zwischenablage kopiert"; @override String powered_by(String title) => "Unterstützt von ${title}"; @override - String send_priority(String transactionPriority) => - "Derzeit ist die Gebühr auf festgelegt ${transactionPriority} priorität.\nDie Transaktionspriorität kann in den Einstellungen angepasst werden"; + String send_priority(String transactionPriority) => "Derzeit ist die Gebühr auf festgelegt ${transactionPriority} priorität.\nDie Transaktionspriorität kann in den Einstellungen angepasst werden"; @override - String trade_for_not_created(String title) => - "Handel für ${title} wird nicht erstellt."; + String trade_for_not_created(String title) => "Handel für ${title} wird nicht erstellt."; @override - String trade_is_powered_by(String provider) => - "Dieser Handel wird betrieben von ${provider}"; + String trade_is_powered_by(String provider) => "Dieser Handel wird betrieben von ${provider}"; @override String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; @override - String max_value(String value, String currency) => - "Max: ${value} ${currency}"; + String max_value(String value, String currency) => "Max: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "Handel für ${provider} wird nicht erstellt. Menge ist mehr als maximal: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "Handel für ${provider} wird nicht erstellt. Menge ist mehr als maximal: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency}-Adresse"; @override - String min_value(String value, String currency) => - "Mindest: ${value} ${currency}"; + String min_value(String value, String currency) => "Mindest: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "Authentifizierung fehlgeschlagen. ${state_error}"; + String failed_authentication(String state_error) => "Authentifizierung fehlgeschlagen. ${state_error}"; @override String Blocks_remaining(String status) => "${status} Verbleibende Blöcke"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Durch Drücken von Bestätigen wird gesendet ${fetchingLabel} ${from} von Ihrer Brieftasche aus angerufen ${walletName} an die oben angegebene Adresse. Oder Sie können von Ihrem externen Portemonnaie an die oben angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu änderns."; @override - String error_text_limits_loading_failed(String provider) => - "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen"; + String error_text_limits_loading_failed(String provider) => "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen"; @override - String exchange_result_description(String fetchingLabel, String from) => - "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.'"; + String exchange_result_description(String fetchingLabel, String from) => "Bitte senden ${fetchingLabel} ${from} an die oben angegebene Adresse.'"; @override - String commit_transaction_amount_fee(String amount, String fee) => - "Transaktion festschreiben\nMenge: ${amount}\nGebühr: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "Transaktion festschreiben\nMenge: ${amount}\nGebühr: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "Sie senden Geld an\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "Sie senden Geld an\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Fehler beim Entfernen ${wallet_name} Wallet. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Fehler beim Entfernen ${wallet_name} Wallet. ${error}"; @override - String copied_key_to_clipboard(String key) => - "Kopiert ${key} Zur Zwischenablage"; + String copied_key_to_clipboard(String key) => "Kopiert ${key} Zur Zwischenablage"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "Laden fehlgeschlagen ${wallet_name} Wallet. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "Laden fehlgeschlagen ${wallet_name} Wallet. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "Entfernen ${wallet_name} Wallet"; + String wallet_list_removing_wallet(String wallet_name) => "Entfernen ${wallet_name} Wallet"; } class $hi extends S { @@ -1120,8 +1005,7 @@ class $hi extends S { @override String get hidden_balance => "छिपा हुआ संतुलन"; @override - String get biometric_auth_reason => - "प्रमाणित करने के लिए अपने फ़िंगरप्रिंट को स्कैन करें"; + String get biometric_auth_reason => "प्रमाणित करने के लिए अपने फ़िंगरप्रिंट को स्कैन करें"; @override String get transaction_sent => "भेजा गया लेन-देन"; @override @@ -1133,8 +1017,7 @@ class $hi extends S { @override String get trade_id => "व्यापार ID:"; @override - String get restore_description_from_seed => - "या तो 25 शब्द से अपने वॉलेट को पुनर्स्थापित करें या 13 शब्द संयोजन कोड"; + String get restore_description_from_seed => "या तो 25 शब्द से अपने वॉलेट को पुनर्स्थापित करें या 13 शब्द संयोजन कोड"; @override String get trade_state_underpaid => "के तहत भुगतान किया"; @override @@ -1146,8 +1029,7 @@ class $hi extends S { @override String get send_templates => "टेम्पलेट्स"; @override - String get please_try_to_connect_to_another_node => - "कृपया दूसरे नोड से कनेक्ट करने का प्रयास करें"; + String get please_try_to_connect_to_another_node => "कृपया दूसरे नोड से कनेक्ट करने का प्रयास करें"; @override String get trade_state_traded => "ट्रेडेड"; @override @@ -1161,8 +1043,7 @@ class $hi extends S { @override String get auth_store_banned_minutes => " मिनट"; @override - String get restore_title_from_seed_keys => - "बीज / कुंजियों से पुनर्स्थापित करें"; + String get restore_title_from_seed_keys => "बीज / कुंजियों से पुनर्स्थापित करें"; @override String get settings_none => "कोई नहीं"; @override @@ -1182,8 +1063,7 @@ class $hi extends S { @override String get receive_amount => "रकम"; @override - String get settings_allow_biometrical_authentication => - "बायोमेट्रिक प्रमाणीकरण की अनुमति दें"; + String get settings_allow_biometrical_authentication => "बायोमेट्रिक प्रमाणीकरण की अनुमति दें"; @override String get view_key_private => "कुंजी देखें(निजी)"; @override @@ -1193,16 +1073,13 @@ class $hi extends S { @override String get send_sending => "भेजना..."; @override - String get error_text_address => - "वॉलेट पता प्रकार के अनुरूप होना चाहिए\nक्रिप्टोकरेंसी का"; + String get error_text_address => "वॉलेट पता प्रकार के अनुरूप होना चाहिए\nक्रिप्टोकरेंसी का"; @override String get send_your_wallet => "आपका बटुआ"; @override - String get remove_node_message => - "क्या आप वाकई चयनित नोड को निकालना चाहते हैं?"; + String get remove_node_message => "क्या आप वाकई चयनित नोड को निकालना चाहते हैं?"; @override - String get error_text_account_name => - "खाता नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए"; + String get error_text_account_name => "खाता नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए"; @override String get reconnection => "पुनर्संयोजन"; @override @@ -1216,22 +1093,19 @@ class $hi extends S { @override String get reconnect => "रिकनेक्ट"; @override - String get reconnect_alert_text => - "क्या आप पुन: कनेक्ट होना सुनिश्चित करते हैं?"; + String get reconnect_alert_text => "क्या आप पुन: कनेक्ट होना सुनिश्चित करते हैं?"; @override String get send_error_minimum_value => "राशि का न्यूनतम मूल्य 0.01 है"; @override String get copy_address => "पता कॉपी करें"; @override - String get error_text_subaddress_name => - "सबड्रेस नाम नहीं हो सकता` , ' \" प्रतीकों\nऔर 1 और 20 वर्णों के बीच लंबा होना चाहिए"; + String get error_text_subaddress_name => "सबड्रेस नाम नहीं हो सकता` , ' \" प्रतीकों\nऔर 1 और 20 वर्णों के बीच लंबा होना चाहिए"; @override String get incorrect_seed => "दर्ज किया गया पाठ मान्य नहीं है।"; @override String get settings_all => "सब"; @override - String get nodes_list_reset_to_default_message => - "क्या आप वाकई सेटिंग को डिफ़ॉल्ट पर रीसेट करना चाहते हैं?"; + String get nodes_list_reset_to_default_message => "क्या आप वाकई सेटिंग को डिफ़ॉल्ट पर रीसेट करना चाहते हैं?"; @override String get receive => "प्राप्त करना"; @override @@ -1269,13 +1143,11 @@ class $hi extends S { @override String get settings_title => "सेटिंग्स"; @override - String get restore_bitcoin_description_from_seed => - "12 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें"; + String get restore_bitcoin_description_from_seed => "12 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें"; @override String get address_book_menu => "पता पुस्तिका"; @override - String get wallet_restoration_store_incorrect_seed_length => - "गलत बीज की लंबाई"; + String get wallet_restoration_store_incorrect_seed_length => "गलत बीज की लंबाई"; @override String get seed_language_spanish => "स्पेनिश"; @override @@ -1303,11 +1175,9 @@ class $hi extends S { @override String get sync_status_not_connected => "जुड़े नहीं हैं"; @override - String get error_text_crypto_currency => - "अंश अंकों की संख्या\n12 से कम या इसके बराबर होना चाहिए"; + String get error_text_crypto_currency => "अंश अंकों की संख्या\n12 से कम या इसके बराबर होना चाहिए"; @override - String get error_text_contact_name => - "संपर्क नाम शामिल नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 32 वर्णों के बीच लंबा होना चाहिए"; + String get error_text_contact_name => "संपर्क नाम शामिल नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 32 वर्णों के बीच लंबा होना चाहिए"; @override String get restore_seed_keys_restore => "बीज / कुंजी पुनर्स्थापित करें"; @override @@ -1369,8 +1239,7 @@ class $hi extends S { @override String get copy_id => "प्रतिलिपि ID"; @override - String get please_make_selection => - "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें."; + String get please_make_selection => "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें."; @override String get loading_your_wallet => "अपना बटुआ लोड कर रहा है"; @override @@ -1380,13 +1249,11 @@ class $hi extends S { @override String get nodes => "नोड्स"; @override - String get error_text_template => - "टेम्प्लेट का नाम और पता नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 106 वर्णों के बीच लंबा होना चाहिए"; + String get error_text_template => "टेम्प्लेट का नाम और पता नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 106 वर्णों के बीच लंबा होना चाहिए"; @override String get seed_share => "बीज साझा करें"; @override - String get widgets_restore_from_blockheight => - "ब्लॉकचेन से पुनर्स्थापित करें"; + String get widgets_restore_from_blockheight => "ब्लॉकचेन से पुनर्स्थापित करें"; @override String get seed_language_chinese => "चीनी"; @override @@ -1408,13 +1275,11 @@ class $hi extends S { @override String get trade_state_complete => "पूर्ण"; @override - String get error_text_xmr => - "एक्सएमआर मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या 12 से कम या इसके बराबर होनी चाहिए"; + String get error_text_xmr => "एक्सएमआर मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या 12 से कम या इसके बराबर होनी चाहिए"; @override String get xmr_available_balance => "XMR उपलब्ध शेष राशि"; @override - String get restore_bitcoin_description_from_keys => - "अपने निजी कुंजी से उत्पन्न WIF स्ट्रिंग से अपने वॉलेट को पुनर्स्थापित करें"; + String get restore_bitcoin_description_from_keys => "अपने निजी कुंजी से उत्पन्न WIF स्ट्रिंग से अपने वॉलेट को पुनर्स्थापित करें"; @override String get restore_bitcoin_title_from_keys => "WIF से पुनर्स्थापित करें"; @override @@ -1442,8 +1307,7 @@ class $hi extends S { @override String get wallet_name => "बटुए का नाम"; @override - String get error_text_payment_id => - "पेमेंट आईडी केवल हेक्स में 16 से 64 चार्ट तक हो सकती है"; + String get error_text_payment_id => "पेमेंट आईडी केवल हेक्स में 16 से 64 चार्ट तक हो सकती है"; @override String get node_reset_settings_title => "सेटिंग्स को दुबारा करें"; @override @@ -1465,8 +1329,7 @@ class $hi extends S { @override String get new_wallet => "नया बटुआ"; @override - String get settings_display_on_dashboard_list => - "डैशबोर्ड सूची पर प्रदर्शित करें"; + String get settings_display_on_dashboard_list => "डैशबोर्ड सूची पर प्रदर्शित करें"; @override String get transaction_details_title => "लेनदेन का विवरण"; @override @@ -1496,8 +1359,7 @@ class $hi extends S { @override String get seed_language_dutch => "डच"; @override - String get restore_description_from_seed_keys => - "अपने बटुए को बीज से वापस लें/वे कुंजियाँ जिन्हें आपने सुरक्षित स्थान पर सहेजा है"; + String get restore_description_from_seed_keys => "अपने बटुए को बीज से वापस लें/वे कुंजियाँ जिन्हें आपने सुरक्षित स्थान पर सहेजा है"; @override String get copy => "प्रतिलिपि"; @override @@ -1513,11 +1375,9 @@ class $hi extends S { @override String get contact_name => "संपर्क नाम"; @override - String get exchange_result_write_down_ID => - "*कृपया ऊपर दिखाए गए अपने ID को कॉपी या लिख लें."; + String get exchange_result_write_down_ID => "*कृपया ऊपर दिखाए गए अपने ID को कॉपी या लिख लें."; @override - String get exchange_result_write_down_trade_id => - "जारी रखने के लिए कृपया ट्रेड ID की प्रतिलिपि बनाएँ या लिखें."; + String get exchange_result_write_down_trade_id => "जारी रखने के लिए कृपया ट्रेड ID की प्रतिलिपि बनाएँ या लिखें."; @override String get new_subaddress_title => "नई उपशादी"; @override @@ -1529,8 +1389,7 @@ class $hi extends S { @override String get trade_not_created => "व्यापार नहीं बनाया गया."; @override - String get confirm_delete_wallet => - "यह क्रिया इस वॉलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?"; + String get confirm_delete_wallet => "यह क्रिया इस वॉलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?"; @override String get restore_wallet_name => "बटुए का नाम"; @override @@ -1540,8 +1399,7 @@ class $hi extends S { @override String get rename => "नाम बदलें"; @override - String get confirm_delete_template => - "यह क्रिया इस टेम्पलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?"; + String get confirm_delete_template => "यह क्रिया इस टेम्पलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?"; @override String get restore_active_seed => "सक्रिय बीज"; @override @@ -1557,15 +1415,13 @@ class $hi extends S { @override String get show_keys => "चाबी दिखाओ"; @override - String get error_text_fiat => - "राशि का मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या कम या 2 के बराबर होनी चाहिए"; + String get error_text_fiat => "राशि का मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या कम या 2 के बराबर होनी चाहिए"; @override String get addresses => "पतों"; @override String get transactions_by_date => "तारीख से लेन-देन"; @override - String get restore_from_seed_placeholder => - "कृपया अपना कोड वाक्यांश यहां दर्ज करें या पेस्ट करें"; + String get restore_from_seed_placeholder => "कृपया अपना कोड वाक्यांश यहां दर्ज करें या पेस्ट करें"; @override String get use => "उपयोग "; @override @@ -1577,6 +1433,8 @@ class $hi extends S { @override String get choose_account => "खाता चुनें"; @override + String get restore_from_date_or_blockheight => "कृपया इस वॉलेट को बनाने की तिथि दर्ज करें। या यदि आप ब्लॉकचाइट जानते हैं, तो कृपया इसके बजाय इसे दर्ज करें"; + @override String get settings_only_trades => "केवल ट्रेड करता है"; @override String get trade_state_to_be_created => "बनाए जाने के लिए"; @@ -1591,11 +1449,9 @@ class $hi extends S { @override String get address_remove_contact => "संपर्क हटाये"; @override - String get error_text_wallet_name => - "वॉलेट नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए"; + String get error_text_wallet_name => "वॉलेट नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए"; @override - String get restore_description_from_keys => - "अपने वॉलेट को जेनरेट से पुनर्स्थापित करें आपकी निजी कुंजी से कीस्ट्रोक्स सहेजे गए"; + String get restore_description_from_keys => "अपने वॉलेट को जेनरेट से पुनर्स्थापित करें आपकी निजी कुंजी से कीस्ट्रोक्स सहेजे गए"; @override String get seed_language_next => "आगामी"; @override @@ -1611,8 +1467,7 @@ class $hi extends S { @override String get send_title => "संदेश"; @override - String get error_text_keys => - "वॉलेट कीज़ में हेक्स में केवल 64 वर्ण हो सकते हैं"; + String get error_text_keys => "वॉलेट कीज़ में हेक्स में केवल 64 वर्ण हो सकते हैं"; @override String get settings_save_recipient_address => "प्राप्तकर्ता का पता सहेजें"; @override @@ -1654,19 +1509,19 @@ class $hi extends S { @override String get restore_address => "पता"; @override - String get restore_wallet_restore_description => - "बटुआ विवरण पुनर्स्थापित करें"; + String get restore_wallet_restore_description => "बटुआ विवरण पुनर्स्थापित करें"; @override String get today => "आज"; @override String get settings_support => "समर्थन"; @override + String get seed_reminder => "यदि आप अपना फोन खो देते हैं या मिटा देते हैं तो कृपया इन्हें लिख लें"; + @override String get restore_wallet => "वॉलेट को पुनर्स्थापित करें"; @override String get ok => "ठीक है"; @override - String get address_remove_content => - "क्या आप वाकई चयनित संपर्क को हटाना चाहते हैं?"; + String get address_remove_content => "क्या आप वाकई चयनित संपर्क को हटाना चाहते हैं?"; @override String get wallet_list_title => "Monero बटुआ"; @override @@ -1694,11 +1549,9 @@ class $hi extends S { @override String get restore_title_from_seed => "बीज से पुनर्स्थापित करें"; @override - String get restore_description_from_backup => - "आप से पूरे केक वॉलेट एप्लिकेशन को पुनर्स्थापित कर सकते हैं आपकी बैक-अप फ़ाइल"; + String get restore_description_from_backup => "आप से पूरे केक वॉलेट एप्लिकेशन को पुनर्स्थापित कर सकते हैं आपकी बैक-अप फ़ाइल"; @override - String get error_text_node_port => - "नोड पोर्ट में केवल 0 और 65535 के बीच संख्याएँ हो सकती हैं"; + String get error_text_node_port => "नोड पोर्ट में केवल 0 और 65535 के बीच संख्याएँ हो सकती हैं"; @override String get add_new_word => "नया शब्द जोड़ें"; @override @@ -1706,7 +1559,7 @@ class $hi extends S { @override String get digit_pin => "-अंक पिन"; @override - String get first_wallet_text => "बहुत बढ़िया बटुआ के लिये Monero तथा Bitcoin"; + String get first_wallet_text => "बहुत बढ़िया बटुआ के लिये Monero"; @override String get settings_trades => "ट्रेडों"; @override @@ -1714,86 +1567,61 @@ class $hi extends S { @override String change_language_to(String language) => "को भाषा बदलें ${language}?"; @override - String change_current_node(String node) => - "क्या आप वर्तमान नोड को बदलना सुनिश्चित करते हैं ${node}?"; + String change_current_node(String node) => "क्या आप वर्तमान नोड को बदलना सुनिश्चित करते हैं ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "लोड हो रहा है ${wallet_name} बटुआ"; + String wallet_list_loading_wallet(String wallet_name) => "लोड हो रहा है ${wallet_name} बटुआ"; @override String version(String currentVersion) => "संस्करण ${currentVersion}"; @override - String router_no_route(String name) => - "के लिए कोई मार्ग निर्धारित नहीं है ${name}"; + String router_no_route(String name) => "के लिए कोई मार्ग निर्धारित नहीं है ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि कम है तो न्यूनतम: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि कम है तो न्यूनतम: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "व्यापार ${tradeId} of ${title} नहीं मिला."; + String trade_id_not_found(String tradeId, String title) => "व्यापार ${tradeId} of ${title} नहीं मिला."; @override - String transaction_details_copied(String title) => - "${title} क्लिपबोर्ड पर नकल"; + String transaction_details_copied(String title) => "${title} क्लिपबोर्ड पर नकल"; @override String trade_details_copied(String title) => "${title} क्लिपबोर्ड पर नकल"; @override String powered_by(String title) => "द्वारा संचालित ${title}"; @override - String send_priority(String transactionPriority) => - "वर्तमान में शुल्क निर्धारित है ${transactionPriority} प्राथमिकता.\nलेन-देन की प्राथमिकता को सेटिंग्स में समायोजित किया जा सकता है"; + String send_priority(String transactionPriority) => "वर्तमान में शुल्क निर्धारित है ${transactionPriority} प्राथमिकता.\nलेन-देन की प्राथमिकता को सेटिंग्स में समायोजित किया जा सकता है"; @override - String trade_for_not_created(String title) => - "के लिए व्यापार ${title} निर्मित नहीं है."; + String trade_for_not_created(String title) => "के लिए व्यापार ${title} निर्मित नहीं है."; @override - String trade_is_powered_by(String provider) => - "यह व्यापार द्वारा संचालित है ${provider}"; + String trade_is_powered_by(String provider) => "यह व्यापार द्वारा संचालित है ${provider}"; @override String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; @override - String max_value(String value, String currency) => - "मैक्स: ${value} ${currency}"; + String max_value(String value, String currency) => "मैक्स: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि अधिक है तो अधिकतम: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि अधिक है तो अधिकतम: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency} पता"; @override - String min_value(String value, String currency) => - "मिन: ${value} ${currency}"; + String min_value(String value, String currency) => "मिन: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "प्रमाणीकरण विफल. ${state_error}"; + String failed_authentication(String state_error) => "प्रमाणीकरण विफल. ${state_error}"; @override String Blocks_remaining(String status) => "${status} शेष रहते हैं"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} ऊपर दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से उपरोक्त पते / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं."; @override - String error_text_limits_loading_failed(String provider) => - "व्यापार ${provider} के लिए नहीं बनाया गया है। लोडिंग की सीमाएं विफल रहीं"; + String error_text_limits_loading_failed(String provider) => "व्यापार ${provider} के लिए नहीं बनाया गया है। लोडिंग की सीमाएं विफल रहीं"; @override - String exchange_result_description(String fetchingLabel, String from) => - "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर"; + String exchange_result_description(String fetchingLabel, String from) => "कृपया भेजें ${fetchingLabel} ${from} ऊपर दिखाए गए पते पर"; @override - String commit_transaction_amount_fee(String amount, String fee) => - "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "आपको धनराशि भेजी जाएगी\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "आपको धनराशि भेजी जाएगी\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "निकालने में विफल ${wallet_name} बटुआ. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "निकालने में विफल ${wallet_name} बटुआ. ${error}"; @override - String copied_key_to_clipboard(String key) => - "की नकल की ${key} क्लिपबोर्ड पर"; + String copied_key_to_clipboard(String key) => "की नकल की ${key} क्लिपबोर्ड पर"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "लोड करने में विफल ${wallet_name} बटुआ. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "लोड करने में विफल ${wallet_name} बटुआ. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "निकाला जा रहा है ${wallet_name} बटुआ"; + String wallet_list_removing_wallet(String wallet_name) => "निकाला जा रहा है ${wallet_name} बटुआ"; } class $ru extends S { @@ -1819,8 +1647,7 @@ class $ru extends S { @override String get hidden_balance => "Скрытый баланс"; @override - String get biometric_auth_reason => - "Отсканируйте свой отпечаток пальца для аутентификации"; + String get biometric_auth_reason => "Отсканируйте свой отпечаток пальца для аутентификации"; @override String get transaction_sent => "Tранзакция отправлена!"; @override @@ -1832,8 +1659,7 @@ class $ru extends S { @override String get trade_id => "ID сделки:"; @override - String get restore_description_from_seed => - "Вы можете восстановить кошелёк используя 25-ти значную мнемоническую фразу"; + String get restore_description_from_seed => "Вы можете восстановить кошелёк используя 25-ти значную мнемоническую фразу"; @override String get trade_state_underpaid => "Недоплаченная"; @override @@ -1845,8 +1671,7 @@ class $ru extends S { @override String get send_templates => "Шаблоны"; @override - String get please_try_to_connect_to_another_node => - "Пожалуйста, попробуйте подключиться к другой ноде"; + String get please_try_to_connect_to_another_node => "Пожалуйста, попробуйте подключиться к другой ноде"; @override String get trade_state_traded => "Сделка завершена"; @override @@ -1860,8 +1685,7 @@ class $ru extends S { @override String get auth_store_banned_minutes => " минут"; @override - String get restore_title_from_seed_keys => - "Восстановить из мнемонической фразы/ключей"; + String get restore_title_from_seed_keys => "Восстановить из мнемонической фразы/ключей"; @override String get settings_none => "Ничего"; @override @@ -1881,8 +1705,7 @@ class $ru extends S { @override String get receive_amount => "Сумма"; @override - String get settings_allow_biometrical_authentication => - "Включить биометрическую аутентификацию"; + String get settings_allow_biometrical_authentication => "Включить биометрическую аутентификацию"; @override String get view_key_private => "Приватный ключ просмотра"; @override @@ -1892,16 +1715,13 @@ class $ru extends S { @override String get send_sending => "Отправка..."; @override - String get error_text_address => - "Адрес кошелька должен соответствовать типу\nкриптовалюты"; + String get error_text_address => "Адрес кошелька должен соответствовать типу\nкриптовалюты"; @override String get send_your_wallet => "Ваш кошелёк"; @override - String get remove_node_message => - "Вы уверены, что хотите удалить текущую ноду?"; + String get remove_node_message => "Вы уверены, что хотите удалить текущую ноду?"; @override - String get error_text_account_name => - "Имя аккаунта может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину"; + String get error_text_account_name => "Имя аккаунта может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину"; @override String get reconnection => "Переподключение"; @override @@ -1909,8 +1729,7 @@ class $ru extends S { @override String get restore_title_from_keys => "Восстановить с помощью ключей"; @override - String get seed_language_choose => - "Пожалуйста, выберите язык мнемонической фразы:"; + String get seed_language_choose => "Пожалуйста, выберите язык мнемонической фразы:"; @override String get wallet_keys => "Ключи кошелька"; @override @@ -1922,15 +1741,13 @@ class $ru extends S { @override String get copy_address => "Cкопировать адрес"; @override - String get error_text_subaddress_name => - "Имя субадреса не может содержать ` , ' \" символы\nи должно быть от 1 до 20 символов в длину"; + String get error_text_subaddress_name => "Имя субадреса не может содержать ` , ' \" символы\nи должно быть от 1 до 20 символов в длину"; @override String get incorrect_seed => "Введённый текст некорректный."; @override String get settings_all => "ВСЕ"; @override - String get nodes_list_reset_to_default_message => - "Вы уверены, что хотите сбросить настройки до значений по умолчанию?"; + String get nodes_list_reset_to_default_message => "Вы уверены, что хотите сбросить настройки до значений по умолчанию?"; @override String get receive => "Получить"; @override @@ -1946,8 +1763,7 @@ class $ru extends S { @override String get settings_display_balance_as => "Отображать баланс как"; @override - String get placeholder_transactions => - "Ваши транзакции будут отображаться здесь"; + String get placeholder_transactions => "Ваши транзакции будут отображаться здесь"; @override String get trade_details_provider => "Провайдер"; @override @@ -1969,13 +1785,11 @@ class $ru extends S { @override String get settings_title => "Настройки"; @override - String get restore_bitcoin_description_from_seed => - "Вы можете восстановить кошелёк используя 12-ти значную мнемоническую фразу"; + String get restore_bitcoin_description_from_seed => "Вы можете восстановить кошелёк используя 12-ти значную мнемоническую фразу"; @override String get address_book_menu => "Адресная книга"; @override - String get wallet_restoration_store_incorrect_seed_length => - "Неверная длина мнемонической фразы"; + String get wallet_restoration_store_incorrect_seed_length => "Неверная длина мнемонической фразы"; @override String get seed_language_spanish => "Испанский"; @override @@ -2003,14 +1817,11 @@ class $ru extends S { @override String get sync_status_not_connected => "НЕ ПОДКЛЮЧЁН"; @override - String get error_text_crypto_currency => - "Количество цифр после запятой\nдолжно быть меньше или равно 12"; + String get error_text_crypto_currency => "Количество цифр после запятой\nдолжно быть меньше или равно 12"; @override - String get error_text_contact_name => - "Имя контакта не может содержать ` , ' \" символы\n и должно быть от 1 до 32 символов в длину"; + String get error_text_contact_name => "Имя контакта не может содержать ` , ' \" символы\n и должно быть от 1 до 32 символов в длину"; @override - String get restore_seed_keys_restore => - "Восстановить из мнемонической фразы/ключей"; + String get restore_seed_keys_restore => "Восстановить из мнемонической фразы/ключей"; @override String get xmr_hidden => "XMR Скрыто"; @override @@ -2070,8 +1881,7 @@ class $ru extends S { @override String get copy_id => "Скопировать ID"; @override - String get please_make_selection => - "Выберите способ создания кошелька: создать новый или восстановить ваш существующий."; + String get please_make_selection => "Выберите способ создания кошелька: создать новый или восстановить ваш существующий."; @override String get loading_your_wallet => "Загрузка кошелька"; @override @@ -2081,8 +1891,7 @@ class $ru extends S { @override String get nodes => "Ноды"; @override - String get error_text_template => - "Имя и адрес шаблона не может содержать ` , ' \" символы\nи должно быть от 1 до 106 символов в длину"; + String get error_text_template => "Имя и адрес шаблона не может содержать ` , ' \" символы\nи должно быть от 1 до 106 символов в длину"; @override String get seed_share => "Поделиться мнемонической фразой"; @override @@ -2108,13 +1917,11 @@ class $ru extends S { @override String get trade_state_complete => "Выполнена"; @override - String get error_text_xmr => - "Значение XMR не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 12"; + String get error_text_xmr => "Значение XMR не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 12"; @override String get xmr_available_balance => "Доступный XMR баланс"; @override - String get restore_bitcoin_description_from_keys => - "Вы можете восстановить кошелёк с помощью WIF"; + String get restore_bitcoin_description_from_keys => "Вы можете восстановить кошелёк с помощью WIF"; @override String get restore_bitcoin_title_from_keys => "Восстановить с помощью WIF"; @override @@ -2142,8 +1949,7 @@ class $ru extends S { @override String get wallet_name => "Имя кошелька"; @override - String get error_text_payment_id => - "Идентификатор платежа может содержать от 16 до 64 символов в hex"; + String get error_text_payment_id => "Идентификатор платежа может содержать от 16 до 64 символов в hex"; @override String get node_reset_settings_title => "Сбросить настройки"; @override @@ -2165,8 +1971,7 @@ class $ru extends S { @override String get new_wallet => "Новый кошелёк"; @override - String get settings_display_on_dashboard_list => - "Показывать в списке транзакций"; + String get settings_display_on_dashboard_list => "Показывать в списке транзакций"; @override String get transaction_details_title => "Детали транзакции"; @override @@ -2196,8 +2001,7 @@ class $ru extends S { @override String get seed_language_dutch => "Нидерландский"; @override - String get restore_description_from_seed_keys => - "Вы можете восстановить кошелёк из мнемонической фразы/ключей, которые вы сохранили ранее"; + String get restore_description_from_seed_keys => "Вы можете восстановить кошелёк из мнемонической фразы/ключей, которые вы сохранили ранее"; @override String get copy => "Скопировать"; @override @@ -2213,11 +2017,9 @@ class $ru extends S { @override String get contact_name => "Имя контакта"; @override - String get exchange_result_write_down_ID => - "*Пожалуйста, скопируйте или запишите ID, указанный выше."; + String get exchange_result_write_down_ID => "*Пожалуйста, скопируйте или запишите ID, указанный выше."; @override - String get exchange_result_write_down_trade_id => - "Пожалуйста, скопируйте или запишите ID сделки."; + String get exchange_result_write_down_trade_id => "Пожалуйста, скопируйте или запишите ID сделки."; @override String get new_subaddress_title => "Новый субадрес"; @override @@ -2229,8 +2031,7 @@ class $ru extends S { @override String get trade_not_created => "Сделка не создана."; @override - String get confirm_delete_wallet => - "Это действие удалит кошелек. Вы хотите продолжить?"; + String get confirm_delete_wallet => "Это действие удалит кошелек. Вы хотите продолжить?"; @override String get restore_wallet_name => "Имя кошелька"; @override @@ -2240,8 +2041,7 @@ class $ru extends S { @override String get rename => "Переименовать"; @override - String get confirm_delete_template => - "Это действие удалит шаблон. Вы хотите продолжить?"; + String get confirm_delete_template => "Это действие удалит шаблон. Вы хотите продолжить?"; @override String get restore_active_seed => "Активная мнемоническая фраза"; @override @@ -2257,15 +2057,13 @@ class $ru extends S { @override String get show_keys => "Показать ключи"; @override - String get error_text_fiat => - "Значение суммы не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 2"; + String get error_text_fiat => "Значение суммы не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 2"; @override String get addresses => "Адреса"; @override String get transactions_by_date => "Сортировать по дате"; @override - String get restore_from_seed_placeholder => - "Введите или вставьте мнемоническую фразу вашего кошелька"; + String get restore_from_seed_placeholder => "Введите или вставьте мнемоническую фразу вашего кошелька"; @override String get use => "Использовать "; @override @@ -2277,6 +2075,8 @@ class $ru extends S { @override String get choose_account => "Выберите аккаунт"; @override + String get restore_from_date_or_blockheight => "Пожалуйста, введите дату создания кошелька. Или, если вы знаете высоту блока, введите ее значение"; + @override String get settings_only_trades => "Сделки"; @override String get trade_state_to_be_created => "Будет создана"; @@ -2291,11 +2091,9 @@ class $ru extends S { @override String get address_remove_contact => "Удалить контакт"; @override - String get error_text_wallet_name => - "Имя кошелька может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину"; + String get error_text_wallet_name => "Имя кошелька может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину"; @override - String get restore_description_from_keys => - "Вы можете восстановить кошелёк с помощью приватных ключей"; + String get restore_description_from_keys => "Вы можете восстановить кошелёк с помощью приватных ключей"; @override String get seed_language_next => "Продолжить"; @override @@ -2311,8 +2109,7 @@ class $ru extends S { @override String get send_title => "Отправить"; @override - String get error_text_keys => - "Ключи кошелька могут содержать только 64 символа в hex"; + String get error_text_keys => "Ключи кошелька могут содержать только 64 символа в hex"; @override String get settings_save_recipient_address => "Сохранять адрес получателя"; @override @@ -2354,19 +2151,19 @@ class $ru extends S { @override String get restore_address => "Адрес"; @override - String get restore_wallet_restore_description => - "Описание восстановления кошелька"; + String get restore_wallet_restore_description => "Описание восстановления кошелька"; @override String get today => "Сегодня"; @override String get settings_support => "Поддержка"; @override + String get seed_reminder => "Пожалуйста, запишите мнемоническую фразу на случай потери или очистки телефона"; + @override String get restore_wallet => "Восстановить кошелёк"; @override String get ok => "OK"; @override - String get address_remove_content => - "Вы уверены, что хотите удалить выбранный контакт?"; + String get address_remove_content => "Вы уверены, что хотите удалить выбранный контакт?"; @override String get wallet_list_title => "Monero Кошелёк"; @override @@ -2394,11 +2191,9 @@ class $ru extends S { @override String get restore_title_from_seed => "Восстановить из мнемонической фразы"; @override - String get restore_description_from_backup => - "Вы можете восстановить Cake Wallet из вашего back-up файла"; + String get restore_description_from_backup => "Вы можете восстановить Cake Wallet из вашего back-up файла"; @override - String get error_text_node_port => - "Порт ноды может содержать только цифры от 0 до 65535"; + String get error_text_node_port => "Порт ноды может содержать только цифры от 0 до 65535"; @override String get add_new_word => "Добавить новое слово"; @override @@ -2406,8 +2201,7 @@ class $ru extends S { @override String get digit_pin => "-значный PIN"; @override - String get first_wallet_text => - "В самом удобном кошельке для Monero и Bitcoin"; + String get first_wallet_text => "В самом удобном кошельке для Monero"; @override String get settings_trades => "Сделки"; @override @@ -2415,86 +2209,61 @@ class $ru extends S { @override String change_language_to(String language) => "Изменить язык на ${language}?"; @override - String change_current_node(String node) => - "Вы уверены, что хотите изменить текущую ноду на ${node}?"; + String change_current_node(String node) => "Вы уверены, что хотите изменить текущую ноду на ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "Загрузка ${wallet_name} кошелька"; + String wallet_list_loading_wallet(String wallet_name) => "Загрузка ${wallet_name} кошелька"; @override String version(String currentVersion) => "Версия ${currentVersion}"; @override String router_no_route(String name) => "Не установлен маршрут для ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "Сделка для ${provider} не создана. Сумма меньше минимальной: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "Сделка для ${provider} не создана. Сумма меньше минимальной: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "Сделка ${tradeId} ${title} не найдена."; + String trade_id_not_found(String tradeId, String title) => "Сделка ${tradeId} ${title} не найдена."; @override - String transaction_details_copied(String title) => - "${title} скопировано в буфер обмена"; + String transaction_details_copied(String title) => "${title} скопировано в буфер обмена"; @override - String trade_details_copied(String title) => - "${title} скопировано в буфер обмена"; + String trade_details_copied(String title) => "${title} скопировано в буфер обмена"; @override String powered_by(String title) => "Используя ${title}"; @override - String send_priority(String transactionPriority) => - "Комиссия установлена в зависимости от приоритета: ${transactionPriority}.\nПриоритет транзакции может быть изменён в настройках"; + String send_priority(String transactionPriority) => "Комиссия установлена в зависимости от приоритета: ${transactionPriority}.\nПриоритет транзакции может быть изменён в настройках"; @override - String trade_for_not_created(String title) => - "Сделка для ${title} не создана."; + String trade_for_not_created(String title) => "Сделка для ${title} не создана."; @override - String trade_is_powered_by(String provider) => - "Сделка выполнена через ${provider}"; + String trade_is_powered_by(String provider) => "Сделка выполнена через ${provider}"; @override String time(String minutes, String seconds) => "${minutes}мин ${seconds}сек"; @override - String max_value(String value, String currency) => - "Макс: ${value} ${currency}"; + String max_value(String value, String currency) => "Макс: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "Сделка для ${provider} не создана. Сумма больше максимальной: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "Сделка для ${provider} не создана. Сумма больше максимальной: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency} адрес"; @override - String min_value(String value, String currency) => - "Мин: ${value} ${currency}"; + String min_value(String value, String currency) => "Мин: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "Ошибка аутентификации. ${state_error}"; + String failed_authentication(String state_error) => "Ошибка аутентификации. ${state_error}"; @override String Blocks_remaining(String status) => "${status} Осталось блоков"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный выше. Или вы можете отправить со своего внешнего кошелька на вышеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы."; @override - String error_text_limits_loading_failed(String provider) => - "Сделка для ${provider} не создана. Ошибка загрузки лимитов"; + String error_text_limits_loading_failed(String provider) => "Сделка для ${provider} не создана. Ошибка загрузки лимитов"; @override - String exchange_result_description(String fetchingLabel, String from) => - "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше."; + String exchange_result_description(String fetchingLabel, String from) => "Пожалуйста отправьте ${fetchingLabel} ${from} на адрес, указанный выше."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "Вы будете отправлять средства\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "Вы будете отправлять средства\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Ошибка при удалении ${wallet_name} кошелька. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Ошибка при удалении ${wallet_name} кошелька. ${error}"; @override - String copied_key_to_clipboard(String key) => - "Скопировано ${key} в буфер обмена"; + String copied_key_to_clipboard(String key) => "Скопировано ${key} в буфер обмена"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "Ошибка при загрузке ${wallet_name} кошелька. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "Ошибка при загрузке ${wallet_name} кошелька. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "Удаление ${wallet_name} кошелька"; + String wallet_list_removing_wallet(String wallet_name) => "Удаление ${wallet_name} кошелька"; } class $ko extends S { @@ -2532,8 +2301,7 @@ class $ko extends S { @override String get trade_id => "무역 ID:"; @override - String get restore_description_from_seed => - "25 단어 또는 13 단어 조합 코드에서 지갑을 복원하십시오."; + String get restore_description_from_seed => "25 단어 또는 13 단어 조합 코드에서 지갑을 복원하십시오."; @override String get trade_state_underpaid => "미지급"; @override @@ -2595,8 +2363,7 @@ class $ko extends S { @override String get remove_node_message => "선택한 노드를 제거 하시겠습니까?"; @override - String get error_text_account_name => - "계정 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다"; + String get error_text_account_name => "계정 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다"; @override String get reconnection => "재 연결"; @override @@ -2616,8 +2383,7 @@ class $ko extends S { @override String get copy_address => "주소 복사"; @override - String get error_text_subaddress_name => - "하위 주소 이름은 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 20 자 사이 여야합니다"; + String get error_text_subaddress_name => "하위 주소 이름은 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 20 자 사이 여야합니다"; @override String get incorrect_seed => "입력하신 텍스트가 유효하지 않습니다."; @override @@ -2695,8 +2461,7 @@ class $ko extends S { @override String get error_text_crypto_currency => "소수 자릿수\n12 이하 여야합니다"; @override - String get error_text_contact_name => - "담당자 이름은 포함 할 수 없습니다 ` , ' \" 기호\n1 자에서 32 자 사이 여야합니다"; + String get error_text_contact_name => "담당자 이름은 포함 할 수 없습니다 ` , ' \" 기호\n1 자에서 32 자 사이 여야합니다"; @override String get restore_seed_keys_restore => "종자 / 키 복원"; @override @@ -2768,8 +2533,7 @@ class $ko extends S { @override String get nodes => "노드"; @override - String get error_text_template => - "템플릿 이름과 주소는 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 106 자 사이 여야합니다"; + String get error_text_template => "템플릿 이름과 주소는 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 106 자 사이 여야합니다"; @override String get seed_share => "시드 공유"; @override @@ -2795,13 +2559,11 @@ class $ko extends S { @override String get trade_state_complete => "완전한"; @override - String get error_text_xmr => - "XMR 값은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 12 이하 여야합니다"; + String get error_text_xmr => "XMR 값은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 12 이하 여야합니다"; @override String get xmr_available_balance => "XMR 사용 가능한 잔액"; @override - String get restore_bitcoin_description_from_keys => - "개인 키에서 생성 된 WIF 문자열에서 지갑 복원"; + String get restore_bitcoin_description_from_keys => "개인 키에서 생성 된 WIF 문자열에서 지갑 복원"; @override String get restore_bitcoin_title_from_keys => "WIF에서 복원"; @override @@ -2881,8 +2643,7 @@ class $ko extends S { @override String get seed_language_dutch => "네덜란드 사람"; @override - String get restore_description_from_seed_keys => - "안전한 장소에 저장 한 종자 / 키로 지갑을 되 찾으십시오."; + String get restore_description_from_seed_keys => "안전한 장소에 저장 한 종자 / 키로 지갑을 되 찾으십시오."; @override String get copy => "부"; @override @@ -2900,8 +2661,7 @@ class $ko extends S { @override String get exchange_result_write_down_ID => "*위에 표시된 ID를 복사하거나 적어 두십시오."; @override - String get exchange_result_write_down_trade_id => - "계속하려면 거래 ID를 복사하거나 적어 두십시오.."; + String get exchange_result_write_down_trade_id => "계속하려면 거래 ID를 복사하거나 적어 두십시오.."; @override String get new_subaddress_title => "새로운 하위 주소"; @override @@ -2939,8 +2699,7 @@ class $ko extends S { @override String get show_keys => "키 표시"; @override - String get error_text_fiat => - "금액은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 2보다 작거나 같아야합니다"; + String get error_text_fiat => "금액은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 2보다 작거나 같아야합니다"; @override String get addresses => "구애"; @override @@ -2958,6 +2717,8 @@ class $ko extends S { @override String get choose_account => "계정을 선택하십시오"; @override + String get restore_from_date_or_blockheight => "이 지갑을 만든 날짜를 입력하세요. 또는 블록 높이를 알고있는 경우 대신 입력하십시오."; + @override String get settings_only_trades => "거래 만"; @override String get trade_state_to_be_created => "만들려면"; @@ -2972,8 +2733,7 @@ class $ko extends S { @override String get address_remove_contact => "연락처 삭제"; @override - String get error_text_wallet_name => - "지갑 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다"; + String get error_text_wallet_name => "지갑 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다"; @override String get restore_description_from_keys => "개인 키에서 저장된 생성 된 키 스트로크에서 월렛 복원"; @override @@ -3039,6 +2799,8 @@ class $ko extends S { @override String get settings_support => "지원하다"; @override + String get seed_reminder => "휴대 전화를 분실하거나 닦을 경우를 대비해 적어 두세요."; + @override String get restore_wallet => "월렛 복원"; @override String get ok => "승인"; @@ -3071,8 +2833,7 @@ class $ko extends S { @override String get restore_title_from_seed => "종자에서 복원"; @override - String get restore_description_from_backup => - "백업 파일에서 전체 Cake Wallet 앱을 복원 할 수 있습니다."; + String get restore_description_from_backup => "백업 파일에서 전체 Cake Wallet 앱을 복원 할 수 있습니다."; @override String get error_text_node_port => "노드 포트는 0에서 65535 사이의 숫자 만 포함 할 수 있습니다"; @override @@ -3082,7 +2843,7 @@ class $ko extends S { @override String get digit_pin => "숫자 PIN"; @override - String get first_wallet_text => "멋진 지갑 에 대한 Monero 과 Bitcoin"; + String get first_wallet_text => "멋진 지갑 에 대한 Monero"; @override String get settings_trades => "거래"; @override @@ -3092,19 +2853,15 @@ class $ko extends S { @override String change_current_node(String node) => "현재 노드를 다음으로 변경 하시겠습니까 ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "로딩 ${wallet_name} 지갑"; + String wallet_list_loading_wallet(String wallet_name) => "로딩 ${wallet_name} 지갑"; @override String version(String currentVersion) => "버전 ${currentVersion}"; @override String router_no_route(String name) => "에 정의 된 경로가 없습니다 ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "거래 ${provider} 가 생성되지 않습니다. 금액이 최소보다 적습니다. ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "거래 ${provider} 가 생성되지 않습니다. 금액이 최소보다 적습니다. ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "무역 ${tradeId} 의 ${title} 찾을 수 없습니다."; + String trade_id_not_found(String tradeId, String title) => "무역 ${tradeId} 의 ${title} 찾을 수 없습니다."; @override String transaction_details_copied(String title) => "${title} 클립 보드에 복사"; @override @@ -3112,8 +2869,7 @@ class $ko extends S { @override String powered_by(String title) => "에 의해 구동 ${title}"; @override - String send_priority(String transactionPriority) => - "현재 수수료는 ${transactionPriority} 우선 순위.\n거래 우선 순위는 설정에서 조정할 수 있습니다"; + String send_priority(String transactionPriority) => "현재 수수료는 ${transactionPriority} 우선 순위.\n거래 우선 순위는 설정에서 조정할 수 있습니다"; @override String trade_for_not_created(String title) => "거래 ${title} 생성되지 않습니다."; @override @@ -3123,9 +2879,7 @@ class $ko extends S { @override String max_value(String value, String currency) => "맥스: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "거래 ${provider} 가 생성되지 않습니다. 금액이 최대 값보다 많습니다. ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "거래 ${provider} 가 생성되지 않습니다. 금액이 최대 값보다 많습니다. ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency} 주소"; @override @@ -3135,32 +2889,23 @@ class $ko extends S { @override String Blocks_remaining(String status) => "${status} 남은 블록"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 위에 표시된 주소로. 또는 외부 지갑에서 위의 주소 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오."; @override - String error_text_limits_loading_failed(String provider) => - "거래 ${provider} 가 생성되지 않습니다. 로딩 실패"; + String error_text_limits_loading_failed(String provider) => "거래 ${provider} 가 생성되지 않습니다. 로딩 실패"; @override - String exchange_result_description(String fetchingLabel, String from) => - "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로."; + String exchange_result_description(String fetchingLabel, String from) => "보내주세요 ${fetchingLabel} ${from} 위에 표시된 주소로."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "커밋 거래\n양: ${amount}\n보수: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "커밋 거래\n양: ${amount}\n보수: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "당신은에 자금을 보낼 것입니다\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "당신은에 자금을 보낼 것입니다\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "제거하지 못했습니다 ${wallet_name} 지갑. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "제거하지 못했습니다 ${wallet_name} 지갑. ${error}"; @override String copied_key_to_clipboard(String key) => "복사 ${key} 클립 보드로"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "불러 오지 못했습니다 ${wallet_name} 지갑. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "불러 오지 못했습니다 ${wallet_name} 지갑. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "풀이 ${wallet_name} 지갑"; + String wallet_list_removing_wallet(String wallet_name) => "풀이 ${wallet_name} 지갑"; } class $pt extends S { @@ -3186,8 +2931,7 @@ class $pt extends S { @override String get hidden_balance => "Saldo escondido"; @override - String get biometric_auth_reason => - "Digitalize sua impressão digital para autenticar"; + String get biometric_auth_reason => "Digitalize sua impressão digital para autenticar"; @override String get transaction_sent => "Transação enviada!"; @override @@ -3199,8 +2943,7 @@ class $pt extends S { @override String get trade_id => "ID da troca:"; @override - String get restore_description_from_seed => - "Restaure sua carteira a partir de semente com 25 palavras ou 13 palavras"; + String get restore_description_from_seed => "Restaure sua carteira a partir de semente com 25 palavras ou 13 palavras"; @override String get trade_state_underpaid => "Parcialmente paga"; @override @@ -3212,8 +2955,7 @@ class $pt extends S { @override String get send_templates => "Modelos"; @override - String get please_try_to_connect_to_another_node => - "Por favor, tente conectar-se a outro nó"; + String get please_try_to_connect_to_another_node => "Por favor, tente conectar-se a outro nó"; @override String get trade_state_traded => "Troca realizada"; @override @@ -3227,8 +2969,7 @@ class $pt extends S { @override String get auth_store_banned_minutes => " minutos"; @override - String get restore_title_from_seed_keys => - "Restaurar a partir de sementes/chaves"; + String get restore_title_from_seed_keys => "Restaurar a partir de sementes/chaves"; @override String get settings_none => "Nada"; @override @@ -3244,13 +2985,11 @@ class $pt extends S { @override String get setup_pin => "Configurar PIN"; @override - String get transaction_details_recipient_address => - "Endereço do destinatário"; + String get transaction_details_recipient_address => "Endereço do destinatário"; @override String get receive_amount => "Quantia"; @override - String get settings_allow_biometrical_authentication => - "Permitir autenticação biométrica"; + String get settings_allow_biometrical_authentication => "Permitir autenticação biométrica"; @override String get view_key_private => "Chave de visualização (privada)"; @override @@ -3260,16 +2999,13 @@ class $pt extends S { @override String get send_sending => "Enviando..."; @override - String get error_text_address => - "O endereço da carteira deve corresponder à\ncriptomoeda selecionada"; + String get error_text_address => "O endereço da carteira deve corresponder à\ncriptomoeda selecionada"; @override String get send_your_wallet => "Sua carteira"; @override - String get remove_node_message => - "Você realmente deseja remover o nó selecionado?"; + String get remove_node_message => "Você realmente deseja remover o nó selecionado?"; @override - String get error_text_account_name => - "O nome da conta só pode conter letras, números\ne deve ter entre 1 e 15 caracteres"; + String get error_text_account_name => "O nome da conta só pode conter letras, números\ne deve ter entre 1 e 15 caracteres"; @override String get reconnection => "Reconectar"; @override @@ -3283,27 +3019,23 @@ class $pt extends S { @override String get reconnect => "Reconectar"; @override - String get reconnect_alert_text => - "Você tem certeza de que deseja reconectar?"; + String get reconnect_alert_text => "Você tem certeza de que deseja reconectar?"; @override String get send_error_minimum_value => "O valor mínimo da quantia é 0,01"; @override String get copy_address => "Copiar endereço"; @override - String get error_text_subaddress_name => - "O nome do sub-endereço não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 20 caracteres"; + String get error_text_subaddress_name => "O nome do sub-endereço não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 20 caracteres"; @override String get incorrect_seed => "O texto digitado não é válido."; @override String get settings_all => "Tudo"; @override - String get nodes_list_reset_to_default_message => - "Você realmente deseja redefinir as configurações para o padrão?"; + String get nodes_list_reset_to_default_message => "Você realmente deseja redefinir as configurações para o padrão?"; @override String get receive => "Receber"; @override - String get amount_is_guaranteed => - "Você receberá exatamente o valor informado acima"; + String get amount_is_guaranteed => "Você receberá exatamente o valor informado acima"; @override String get auth_store_banned_for => "Banido por"; @override @@ -3337,13 +3069,11 @@ class $pt extends S { @override String get settings_title => "Configurações"; @override - String get restore_bitcoin_description_from_seed => - "Restaure sua carteira a partir de um código de combinação de 12 palavras"; + String get restore_bitcoin_description_from_seed => "Restaure sua carteira a partir de um código de combinação de 12 palavras"; @override String get address_book_menu => "Livro de endereços"; @override - String get wallet_restoration_store_incorrect_seed_length => - "Comprimento de semente incorreto"; + String get wallet_restoration_store_incorrect_seed_length => "Comprimento de semente incorreto"; @override String get seed_language_spanish => "Espanhola"; @override @@ -3365,18 +3095,15 @@ class $pt extends S { @override String get please_select => "Escolha abaixo:"; @override - String get restore_title_from_backup => - "Restaurar a partir de um arquivo de backup"; + String get restore_title_from_backup => "Restaurar a partir de um arquivo de backup"; @override String get full_balance => "Saldo total"; @override String get sync_status_not_connected => "DESCONECTADO"; @override - String get error_text_crypto_currency => - "O número de dígitos decimais\ndeve ser menor ou igual a 12"; + String get error_text_crypto_currency => "O número de dígitos decimais\ndeve ser menor ou igual a 12"; @override - String get error_text_contact_name => - "O nome do contato não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 32 caracteres"; + String get error_text_contact_name => "O nome do contato não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 32 caracteres"; @override String get restore_seed_keys_restore => "Restauração com sementes/chaves"; @override @@ -3438,8 +3165,7 @@ class $pt extends S { @override String get copy_id => "Copiar ID"; @override - String get please_make_selection => - "Escolha se quer criar uma carteira nova ou restaurar uma antiga."; + String get please_make_selection => "Escolha se quer criar uma carteira nova ou restaurar uma antiga."; @override String get loading_your_wallet => "Abrindo sua carteira"; @override @@ -3449,13 +3175,11 @@ class $pt extends S { @override String get nodes => "Nós"; @override - String get error_text_template => - "O nome e o endereço do modelo não podem conter os símbolos ` , ' \" \ne deve ter entre 1 e 106 caracteres"; + String get error_text_template => "O nome e o endereço do modelo não podem conter os símbolos ` , ' \" \ne deve ter entre 1 e 106 caracteres"; @override String get seed_share => "Compartilhar semente"; @override - String get widgets_restore_from_blockheight => - "Restaurar a partir de altura do bloco"; + String get widgets_restore_from_blockheight => "Restaurar a partir de altura do bloco"; @override String get seed_language_chinese => "Chinesa"; @override @@ -3477,13 +3201,11 @@ class $pt extends S { @override String get trade_state_complete => "Finalizada"; @override - String get error_text_xmr => - "A quantia em XMR não pode exceder o saldo disponível.\nTO número de dígitos decimais deve ser menor ou igual a 12"; + String get error_text_xmr => "A quantia em XMR não pode exceder o saldo disponível.\nTO número de dígitos decimais deve ser menor ou igual a 12"; @override String get xmr_available_balance => "Saldo XMR disponível"; @override - String get restore_bitcoin_description_from_keys => - "Restaure sua carteira a partir da string WIF gerada de suas chaves privadas"; + String get restore_bitcoin_description_from_keys => "Restaure sua carteira a partir da string WIF gerada de suas chaves privadas"; @override String get restore_bitcoin_title_from_keys => "Restaurar de WIF"; @override @@ -3511,8 +3233,7 @@ class $pt extends S { @override String get wallet_name => "Nome da carteira"; @override - String get error_text_payment_id => - "O ID de pagamento pode conter apenas de 16 a 64 caracteres em hexadecimal"; + String get error_text_payment_id => "O ID de pagamento pode conter apenas de 16 a 64 caracteres em hexadecimal"; @override String get node_reset_settings_title => "Redefinir configurações"; @override @@ -3522,8 +3243,7 @@ class $pt extends S { @override String get transactions => "Transações"; @override - String get amount_is_estimate => - "O valor a ser recebido informado acima é uma estimativa"; + String get amount_is_estimate => "O valor a ser recebido informado acima é uma estimativa"; @override String get error_text_node_address => "Digite um endereço iPv4"; @override @@ -3565,8 +3285,7 @@ class $pt extends S { @override String get seed_language_dutch => "Holandesa"; @override - String get restore_description_from_seed_keys => - "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro"; + String get restore_description_from_seed_keys => "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro"; @override String get copy => "Copiar"; @override @@ -3582,11 +3301,9 @@ class $pt extends S { @override String get contact_name => "Nome do contato"; @override - String get exchange_result_write_down_ID => - "*Copie ou anote seu ID mostrado acima."; + String get exchange_result_write_down_ID => "*Copie ou anote seu ID mostrado acima."; @override - String get exchange_result_write_down_trade_id => - "Copie ou anote o ID da troca para continuar."; + String get exchange_result_write_down_trade_id => "Copie ou anote o ID da troca para continuar."; @override String get new_subaddress_title => "Criar sub-endereço"; @override @@ -3598,8 +3315,7 @@ class $pt extends S { @override String get trade_not_created => "Troca não criada."; @override - String get confirm_delete_wallet => - "Esta ação excluirá esta carteira. Você deseja continuar?"; + String get confirm_delete_wallet => "Esta ação excluirá esta carteira. Você deseja continuar?"; @override String get restore_wallet_name => "Nome da carteira"; @override @@ -3609,8 +3325,7 @@ class $pt extends S { @override String get rename => "Renomear"; @override - String get confirm_delete_template => - "Esta ação excluirá este modelo. Você deseja continuar?"; + String get confirm_delete_template => "Esta ação excluirá este modelo. Você deseja continuar?"; @override String get restore_active_seed => "Semente ativa"; @override @@ -3626,15 +3341,13 @@ class $pt extends S { @override String get show_keys => "Mostrar chaves"; @override - String get error_text_fiat => - "O valor do valor não pode exceder o saldo disponível.\nO número de dígitos decimais deve ser menor ou igual a 2"; + String get error_text_fiat => "O valor do valor não pode exceder o saldo disponível.\nO número de dígitos decimais deve ser menor ou igual a 2"; @override String get addresses => "Endereços"; @override String get transactions_by_date => "Transações por data"; @override - String get restore_from_seed_placeholder => - "Digite ou cole sua frase de código aqui"; + String get restore_from_seed_placeholder => "Digite ou cole sua frase de código aqui"; @override String get use => "Use PIN de "; @override @@ -3646,6 +3359,8 @@ class $pt extends S { @override String get choose_account => "Escolha uma conta"; @override + String get restore_from_date_or_blockheight => "Por favor, insira a data em que você criou esta carteira. Ou se você souber a altura do bloco, insira-o"; + @override String get settings_only_trades => "Somente trocas"; @override String get trade_state_to_be_created => "A ser criada"; @@ -3660,11 +3375,9 @@ class $pt extends S { @override String get address_remove_contact => "Remover contato"; @override - String get error_text_wallet_name => - "O nome da carteira só pode conter letras, números\ne deve ter entre 1 e 15 caracteres"; + String get error_text_wallet_name => "O nome da carteira só pode conter letras, números\ne deve ter entre 1 e 15 caracteres"; @override - String get restore_description_from_keys => - "Restaure sua carteira a partir de suas chaves privadas"; + String get restore_description_from_keys => "Restaure sua carteira a partir de suas chaves privadas"; @override String get seed_language_next => "Próximo"; @override @@ -3680,11 +3393,9 @@ class $pt extends S { @override String get send_title => "Enviar"; @override - String get error_text_keys => - "As chaves da carteira podem conter apenas 64 caracteres em hexadecimal"; + String get error_text_keys => "As chaves da carteira podem conter apenas 64 caracteres em hexadecimal"; @override - String get settings_save_recipient_address => - "Salvar endereço do destinatário"; + String get settings_save_recipient_address => "Salvar endereço do destinatário"; @override String get change_exchange_provider => "Alterar o provedor de troca"; @override @@ -3730,12 +3441,13 @@ class $pt extends S { @override String get settings_support => "Suporte"; @override + String get seed_reminder => "Anote-os para o caso de perder ou limpar seu telefone"; + @override String get restore_wallet => "Restaurar carteira"; @override String get ok => "Ok"; @override - String get address_remove_content => - "Tem certeza de que deseja remover o contato selecionado?"; + String get address_remove_content => "Tem certeza de que deseja remover o contato selecionado?"; @override String get wallet_list_title => "Carteira Monero"; @override @@ -3763,11 +3475,9 @@ class $pt extends S { @override String get restore_title_from_seed => "Restaurar a partir de semente"; @override - String get restore_description_from_backup => - "Você pode restaurar todo o aplicativo Cake Wallet de seu arquivo de backup"; + String get restore_description_from_backup => "Você pode restaurar todo o aplicativo Cake Wallet de seu arquivo de backup"; @override - String get error_text_node_port => - "A porta do nó deve conter apenas números entre 0 e 65535"; + String get error_text_node_port => "A porta do nó deve conter apenas números entre 0 e 65535"; @override String get add_new_word => "Adicionar nova palavra"; @override @@ -3775,96 +3485,69 @@ class $pt extends S { @override String get digit_pin => "dígitos"; @override - String get first_wallet_text => - "Uma fantástica carteira para Monero e Bitcoin"; + String get first_wallet_text => "Uma fantástica carteira para Monero"; @override String get settings_trades => "Trocas"; @override String get account => "Conta"; @override - String change_language_to(String language) => - "Alterar idioma para ${language}?"; + String change_language_to(String language) => "Alterar idioma para ${language}?"; @override - String change_current_node(String node) => - "Você realmente deseja alterar o nó atual para ${node}?"; + String change_current_node(String node) => "Você realmente deseja alterar o nó atual para ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "Abrindo a carteira ${wallet_name}"; + String wallet_list_loading_wallet(String wallet_name) => "Abrindo a carteira ${wallet_name}"; @override String version(String currentVersion) => "Versão ${currentVersion}"; @override String router_no_route(String name) => "Nenhuma rota definida para ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "A troca por ${provider} não é criada. O valor é menor que o mínimo: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "A troca por ${provider} não é criada. O valor é menor que o mínimo: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "A troca ${tradeId} de ${title} não foi encontrada."; + String trade_id_not_found(String tradeId, String title) => "A troca ${tradeId} de ${title} não foi encontrada."; @override - String transaction_details_copied(String title) => - "${title} copiados para a área de transferência"; + String transaction_details_copied(String title) => "${title} copiados para a área de transferência"; @override - String trade_details_copied(String title) => - "${title} copiados para a área de transferência"; + String trade_details_copied(String title) => "${title} copiados para a área de transferência"; @override String powered_by(String title) => "Troca realizada por ${title}"; @override - String send_priority(String transactionPriority) => - "Atualmente, a taxa está definida para a prioridade: ${transactionPriority}.\nA prioridade da transação pode ser ajustada nas configurações"; + String send_priority(String transactionPriority) => "Atualmente, a taxa está definida para a prioridade: ${transactionPriority}.\nA prioridade da transação pode ser ajustada nas configurações"; @override - String trade_for_not_created(String title) => - "A troca por ${title} não foi criada."; + String trade_for_not_created(String title) => "A troca por ${title} não foi criada."; @override - String trade_is_powered_by(String provider) => - "Troca realizada por ${provider}"; + String trade_is_powered_by(String provider) => "Troca realizada por ${provider}"; @override String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; @override - String max_value(String value, String currency) => - "Máx: ${value} ${currency}"; + String max_value(String value, String currency) => "Máx: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "A troca por ${provider} não é criada. O valor é superior ao máximo: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "A troca por ${provider} não é criada. O valor é superior ao máximo: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "Endereço ${cryptoCurrency}"; @override - String min_value(String value, String currency) => - "Mín: ${value} ${currency}"; + String min_value(String value, String currency) => "Mín: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "Falha na autenticação. ${state_error}"; + String failed_authentication(String state_error) => "Falha na autenticação. ${state_error}"; @override String Blocks_remaining(String status) => "${status} blocos restantes"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço exibido acima. Você também pode enviar com uma carteira externa para o endereço/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores."; @override - String error_text_limits_loading_failed(String provider) => - "A troca por ${provider} não é criada. Falha no carregamento dos limites"; + String error_text_limits_loading_failed(String provider) => "A troca por ${provider} não é criada. Falha no carregamento dos limites"; @override - String exchange_result_description(String fetchingLabel, String from) => - "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima."; + String exchange_result_description(String fetchingLabel, String from) => "Por favor, envie ${fetchingLabel} ${from} para o endereço mostrado acima."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "Você enviará fundos para\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "Você enviará fundos para\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Falha ao remover a carteira ${wallet_name}. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Falha ao remover a carteira ${wallet_name}. ${error}"; @override - String copied_key_to_clipboard(String key) => - "${key} copiada para a área de transferência"; + String copied_key_to_clipboard(String key) => "${key} copiada para a área de transferência"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "Falha ao abrir a carteira ${wallet_name}. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "Falha ao abrir a carteira ${wallet_name}. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "Removendo a carteira ${wallet_name}"; + String wallet_list_removing_wallet(String wallet_name) => "Removendo a carteira ${wallet_name}"; } class $uk extends S { @@ -3890,8 +3573,7 @@ class $uk extends S { @override String get hidden_balance => "Прихований баланс"; @override - String get biometric_auth_reason => - "Відскануйте свій відбиток пальця для аутентифікації"; + String get biometric_auth_reason => "Відскануйте свій відбиток пальця для аутентифікації"; @override String get transaction_sent => "Tранзакцію відправлено!"; @override @@ -3903,8 +3585,7 @@ class $uk extends S { @override String get trade_id => "ID операції:"; @override - String get restore_description_from_seed => - "Ви можете відновити гаманець використовуючи 25-ти слівну мнемонічну фразу"; + String get restore_description_from_seed => "Ви можете відновити гаманець використовуючи 25-ти слівну мнемонічну фразу"; @override String get trade_state_underpaid => "Недоплачена"; @override @@ -3916,8 +3597,7 @@ class $uk extends S { @override String get send_templates => "Шаблони"; @override - String get please_try_to_connect_to_another_node => - "Будь ласка, спробуйте підключитися до іншого вузлу"; + String get please_try_to_connect_to_another_node => "Будь ласка, спробуйте підключитися до іншого вузлу"; @override String get trade_state_traded => "Операція виконана"; @override @@ -3931,8 +3611,7 @@ class $uk extends S { @override String get auth_store_banned_minutes => " хвилин"; @override - String get restore_title_from_seed_keys => - "Відновити з мнемонічної фрази/ключів"; + String get restore_title_from_seed_keys => "Відновити з мнемонічної фрази/ключів"; @override String get settings_none => "Нічого"; @override @@ -3952,8 +3631,7 @@ class $uk extends S { @override String get receive_amount => "Сума"; @override - String get settings_allow_biometrical_authentication => - "Включити біометричну аутентифікацію"; + String get settings_allow_biometrical_authentication => "Включити біометричну аутентифікацію"; @override String get view_key_private => "Приватний ключ перегляду"; @override @@ -3963,16 +3641,13 @@ class $uk extends S { @override String get send_sending => "Відправлення..."; @override - String get error_text_address => - "Адреса гаманця повинна відповідати типу\nкриптовалюти"; + String get error_text_address => "Адреса гаманця повинна відповідати типу\nкриптовалюти"; @override String get send_your_wallet => "Ваш гаманець"; @override - String get remove_node_message => - "Ви впевнені, що хочете видалити поточний вузол?"; + String get remove_node_message => "Ви впевнені, що хочете видалити поточний вузол?"; @override - String get error_text_account_name => - "Ім'я акаунту може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину"; + String get error_text_account_name => "Ім'я акаунту може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину"; @override String get reconnection => "Перепідключення"; @override @@ -3980,8 +3655,7 @@ class $uk extends S { @override String get restore_title_from_keys => "Відновити за допомогою ключів"; @override - String get seed_language_choose => - "Будь ласка, виберіть мову мнемонічної фрази:"; + String get seed_language_choose => "Будь ласка, виберіть мову мнемонічної фрази:"; @override String get wallet_keys => "Ключі гаманця"; @override @@ -3993,15 +3667,13 @@ class $uk extends S { @override String get copy_address => "Cкопіювати адресу"; @override - String get error_text_subaddress_name => - "Ім'я субадреси не може містити ` , ' \" символи\nі може бути від 1 до 20 символів в довжину"; + String get error_text_subaddress_name => "Ім'я субадреси не може містити ` , ' \" символи\nі може бути від 1 до 20 символів в довжину"; @override String get incorrect_seed => "Введений текст невірний."; @override String get settings_all => "ВСІ"; @override - String get nodes_list_reset_to_default_message => - "Ви впевнені, що хочете скинути до налаштувань за замовченням?"; + String get nodes_list_reset_to_default_message => "Ви впевнені, що хочете скинути до налаштувань за замовченням?"; @override String get receive => "Отримати"; @override @@ -4017,8 +3689,7 @@ class $uk extends S { @override String get settings_display_balance_as => "Відображати баланс як"; @override - String get placeholder_transactions => - "Тут відображатимуться ваші транзакції"; + String get placeholder_transactions => "Тут відображатимуться ваші транзакції"; @override String get trade_details_provider => "Провайдер"; @override @@ -4040,13 +3711,11 @@ class $uk extends S { @override String get settings_title => "Налаштування"; @override - String get restore_bitcoin_description_from_seed => - "Ви можете відновити гаманець використовуючи 12-ти слівну мнемонічну фразу"; + String get restore_bitcoin_description_from_seed => "Ви можете відновити гаманець використовуючи 12-ти слівну мнемонічну фразу"; @override String get address_book_menu => "Адресна книга"; @override - String get wallet_restoration_store_incorrect_seed_length => - "Невірна довжина мнемонічної фрази"; + String get wallet_restoration_store_incorrect_seed_length => "Невірна довжина мнемонічної фрази"; @override String get seed_language_spanish => "Іспанська"; @override @@ -4074,14 +3743,11 @@ class $uk extends S { @override String get sync_status_not_connected => "НЕ ПІДКЛЮЧЕННИЙ"; @override - String get error_text_crypto_currency => - "Кількість цифр після коми\nповинно бути меншим або дорівнювати 12"; + String get error_text_crypto_currency => "Кількість цифр після коми\nповинно бути меншим або дорівнювати 12"; @override - String get error_text_contact_name => - "Ім'я контакту не може містити ` , ' \" символи\n і повинно бути від 1 до 32 символів в довжину"; + String get error_text_contact_name => "Ім'я контакту не може містити ` , ' \" символи\n і повинно бути від 1 до 32 символів в довжину"; @override - String get restore_seed_keys_restore => - "Відновити за допомогою мнемонічної фрази/ключів"; + String get restore_seed_keys_restore => "Відновити за допомогою мнемонічної фрази/ключів"; @override String get xmr_hidden => "XMR Приховано"; @override @@ -4141,8 +3807,7 @@ class $uk extends S { @override String get copy_id => "Скопіювати ID"; @override - String get please_make_selection => - "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий."; + String get please_make_selection => "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий."; @override String get loading_your_wallet => "Завантаження гаманця"; @override @@ -4152,8 +3817,7 @@ class $uk extends S { @override String get nodes => "Вузли"; @override - String get error_text_template => - "Ім'я та адреса шаблону не може містити ` , ' \" символи\nі може бути від 1 до 106 символів в довжину"; + String get error_text_template => "Ім'я та адреса шаблону не може містити ` , ' \" символи\nі може бути від 1 до 106 символів в довжину"; @override String get seed_share => "Поділитися мнемонічною фразою"; @override @@ -4179,13 +3843,11 @@ class $uk extends S { @override String get trade_state_complete => "Завершено"; @override - String get error_text_xmr => - "Значення XMR не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 12"; + String get error_text_xmr => "Значення XMR не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 12"; @override String get xmr_available_balance => "Доступний XMR баланс"; @override - String get restore_bitcoin_description_from_keys => - "Ви можете відновити гаманець за допомогою WIF"; + String get restore_bitcoin_description_from_keys => "Ви можете відновити гаманець за допомогою WIF"; @override String get restore_bitcoin_title_from_keys => "Відновити за допомогою WIF"; @override @@ -4213,8 +3875,7 @@ class $uk extends S { @override String get wallet_name => "Ім'я гаманця"; @override - String get error_text_payment_id => - "Ідентифікатор платежу може містити від 16 до 64 символів в hex"; + String get error_text_payment_id => "Ідентифікатор платежу може містити від 16 до 64 символів в hex"; @override String get node_reset_settings_title => "Скинути налаштування"; @override @@ -4236,8 +3897,7 @@ class $uk extends S { @override String get new_wallet => "Новий гаманець"; @override - String get settings_display_on_dashboard_list => - "Відображати в списку транзакцій"; + String get settings_display_on_dashboard_list => "Відображати в списку транзакцій"; @override String get transaction_details_title => "Деталі транзакції"; @override @@ -4267,8 +3927,7 @@ class $uk extends S { @override String get seed_language_dutch => "Голландська"; @override - String get restore_description_from_seed_keys => - "Ви можете відновити гаманець з мнемонічної фрази/ключів, які ви зберегли раніше"; + String get restore_description_from_seed_keys => "Ви можете відновити гаманець з мнемонічної фрази/ключів, які ви зберегли раніше"; @override String get copy => "Скопіювати"; @override @@ -4284,11 +3943,9 @@ class $uk extends S { @override String get contact_name => "Ім'я контакту"; @override - String get exchange_result_write_down_ID => - "*Будь ласка, скопіюйте або запишіть ID, вказаний вище."; + String get exchange_result_write_down_ID => "*Будь ласка, скопіюйте або запишіть ID, вказаний вище."; @override - String get exchange_result_write_down_trade_id => - "Будь ласка, скопіюйте або запишіть ID операції."; + String get exchange_result_write_down_trade_id => "Будь ласка, скопіюйте або запишіть ID операції."; @override String get new_subaddress_title => "Нова субадреса"; @override @@ -4300,8 +3957,7 @@ class $uk extends S { @override String get trade_not_created => "Операція не створена."; @override - String get confirm_delete_wallet => - "Ця дія видалить гаманець. Ви хочете продовжити?"; + String get confirm_delete_wallet => "Ця дія видалить гаманець. Ви хочете продовжити?"; @override String get restore_wallet_name => "Ім'я гаманця"; @override @@ -4311,8 +3967,7 @@ class $uk extends S { @override String get rename => "Перейменувати"; @override - String get confirm_delete_template => - "Ця дія видалить шаблон. Ви хочете продовжити?"; + String get confirm_delete_template => "Ця дія видалить шаблон. Ви хочете продовжити?"; @override String get restore_active_seed => "Активна мнемонічна фраза"; @override @@ -4328,15 +3983,13 @@ class $uk extends S { @override String get show_keys => "Показати ключі"; @override - String get error_text_fiat => - "Значення суми не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 2"; + String get error_text_fiat => "Значення суми не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 2"; @override String get addresses => "Адреси"; @override String get transactions_by_date => "Сортувати по даті"; @override - String get restore_from_seed_placeholder => - "Введіть або вставте мнемонічну фразу вашого гаманця"; + String get restore_from_seed_placeholder => "Введіть або вставте мнемонічну фразу вашого гаманця"; @override String get use => "Використати "; @override @@ -4348,6 +4001,8 @@ class $uk extends S { @override String get choose_account => "Оберіть акаунт"; @override + String get restore_from_date_or_blockheight => "Будь ласка, введіть дату створення гаманця. Або, якщо ви знаєте висоту блоку, введіть її значення"; + @override String get settings_only_trades => "Операції"; @override String get trade_state_to_be_created => "Буде створена"; @@ -4362,11 +4017,9 @@ class $uk extends S { @override String get address_remove_contact => "Видалити контакт"; @override - String get error_text_wallet_name => - "Ім'я гаманця може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину"; + String get error_text_wallet_name => "Ім'я гаманця може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину"; @override - String get restore_description_from_keys => - "Ви можете відновити гаманець за допомогою приватних ключів"; + String get restore_description_from_keys => "Ви можете відновити гаманець за допомогою приватних ключів"; @override String get seed_language_next => "Продовжити"; @override @@ -4382,8 +4035,7 @@ class $uk extends S { @override String get send_title => "Відправити"; @override - String get error_text_keys => - "Ключі гаманця можуть містити тільки 64 символів в hex"; + String get error_text_keys => "Ключі гаманця можуть містити тільки 64 символів в hex"; @override String get settings_save_recipient_address => "Зберігати адресу отримувача"; @override @@ -4425,19 +4077,19 @@ class $uk extends S { @override String get restore_address => "Адреса"; @override - String get restore_wallet_restore_description => - "Опис відновлюваного гаманця"; + String get restore_wallet_restore_description => "Опис відновлюваного гаманця"; @override String get today => "Сьогодні"; @override String get settings_support => "Підтримка"; @override + String get seed_reminder => "Будь ласка, запишіть мнемонічну фразу на випадок втрати або очищення телефону"; + @override String get restore_wallet => "Відновити гаманець"; @override String get ok => "OK"; @override - String get address_remove_content => - "Ви впевнені, що хочете видалити вибраний контакт?"; + String get address_remove_content => "Ви впевнені, що хочете видалити вибраний контакт?"; @override String get wallet_list_title => "Monero Гаманець"; @override @@ -4465,11 +4117,9 @@ class $uk extends S { @override String get restore_title_from_seed => "Відновити з мнемонічної фрази"; @override - String get restore_description_from_backup => - "Ви можете відновити Cake Wallet з вашого резервного файлу"; + String get restore_description_from_backup => "Ви можете відновити Cake Wallet з вашого резервного файлу"; @override - String get error_text_node_port => - "Порт вузла може містити тільки цифри від 0 до 65535"; + String get error_text_node_port => "Порт вузла може містити тільки цифри від 0 до 65535"; @override String get add_new_word => "Добавити нове слово"; @override @@ -4477,8 +4127,7 @@ class $uk extends S { @override String get digit_pin => "-значний PIN"; @override - String get first_wallet_text => - "В самому зручному гаманці для Monero та Bitcoin"; + String get first_wallet_text => "В самому зручному гаманці для Monero"; @override String get settings_trades => "Операції"; @override @@ -4486,86 +4135,61 @@ class $uk extends S { @override String change_language_to(String language) => "Змінити мову на ${language}?"; @override - String change_current_node(String node) => - "Ви впевнені, що хочете змінити поточний вузол на ${node}?"; + String change_current_node(String node) => "Ви впевнені, що хочете змінити поточний вузол на ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "Завантаження ${wallet_name} гаманця"; + String wallet_list_loading_wallet(String wallet_name) => "Завантаження ${wallet_name} гаманця"; @override String version(String currentVersion) => "Версія ${currentVersion}"; @override String router_no_route(String name) => "Не встановлено маршрут для ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "Операція для ${provider} не створена. Сума менша мінімальної: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "Операція для ${provider} не створена. Сума менша мінімальної: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "Операція ${tradeId} ${title} не знайдена."; + String trade_id_not_found(String tradeId, String title) => "Операція ${tradeId} ${title} не знайдена."; @override - String transaction_details_copied(String title) => - "${title} скопійовано в буфер обміну"; + String transaction_details_copied(String title) => "${title} скопійовано в буфер обміну"; @override - String trade_details_copied(String title) => - "${title} скопійовано в буфер обміну"; + String trade_details_copied(String title) => "${title} скопійовано в буфер обміну"; @override String powered_by(String title) => "Використовуючи ${title}"; @override - String send_priority(String transactionPriority) => - "Комісія встановлена в залежності від пріоритету: ${transactionPriority}.\nПріоритет транзакції може бути змінений в налаштуваннях"; + String send_priority(String transactionPriority) => "Комісія встановлена в залежності від пріоритету: ${transactionPriority}.\nПріоритет транзакції може бути змінений в налаштуваннях"; @override - String trade_for_not_created(String title) => - "Операція для ${title} не створена."; + String trade_for_not_created(String title) => "Операція для ${title} не створена."; @override - String trade_is_powered_by(String provider) => - "Операція виконана через ${provider}"; + String trade_is_powered_by(String provider) => "Операція виконана через ${provider}"; @override String time(String minutes, String seconds) => "${minutes}хв ${seconds}сек"; @override - String max_value(String value, String currency) => - "Макс: ${value} ${currency}"; + String max_value(String value, String currency) => "Макс: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "Операція для ${provider} не створена. Сума більше максимальної: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "Операція для ${provider} не створена. Сума більше максимальної: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency} адреса"; @override - String min_value(String value, String currency) => - "Мін: ${value} ${currency}"; + String min_value(String value, String currency) => "Мін: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "Помилка аутентифікації. ${state_error}"; + String failed_authentication(String state_error) => "Помилка аутентифікації. ${state_error}"; @override String Blocks_remaining(String status) => "${status} Залишилось блоків"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану вище. Або ви можете відправити зі свого зовнішнього гаманця на вищевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму."; @override - String error_text_limits_loading_failed(String provider) => - "Операція для ${provider} не створена. Помилка завантаження лімітів"; + String error_text_limits_loading_failed(String provider) => "Операція для ${provider} не створена. Помилка завантаження лімітів"; @override - String exchange_result_description(String fetchingLabel, String from) => - "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище."; + String exchange_result_description(String fetchingLabel, String from) => "Будь ласка, відправте ${fetchingLabel} ${from} на адресу, вказану вище."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "Ви будете відправляти кошти\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "Ви будете відправляти кошти\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Помилка при видаленні ${wallet_name} гаманця. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Помилка при видаленні ${wallet_name} гаманця. ${error}"; @override - String copied_key_to_clipboard(String key) => - "Скопійовано ${key} в буфер обміну"; + String copied_key_to_clipboard(String key) => "Скопійовано ${key} в буфер обміну"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "Помилка при завантаженні ${wallet_name} гаманця. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "Помилка при завантаженні ${wallet_name} гаманця. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "Видалення ${wallet_name} гаманця"; + String wallet_list_removing_wallet(String wallet_name) => "Видалення ${wallet_name} гаманця"; } class $ja extends S { @@ -4603,8 +4227,7 @@ class $ja extends S { @override String get trade_id => "取引ID:"; @override - String get restore_description_from_seed => - "25ワードからウォレットを復元しますまたは13ワードの組み合わせコード"; + String get restore_description_from_seed => "25ワードからウォレットを復元しますまたは13ワードの組み合わせコード"; @override String get trade_state_underpaid => "支払不足"; @override @@ -4666,8 +4289,7 @@ class $ja extends S { @override String get remove_node_message => "選択したノードを削除してもよろしいですか?"; @override - String get error_text_account_name => - "アカウント名には文字のみを含めることができます \n1〜15文字である必要があります"; + String get error_text_account_name => "アカウント名には文字のみを含めることができます \n1〜15文字である必要があります"; @override String get reconnection => "再接続"; @override @@ -4687,8 +4309,7 @@ class $ja extends S { @override String get copy_address => "住所をコピー"; @override - String get error_text_subaddress_name => - "サブアドレス名に含めることはできません` , ' \" シンボル\n1〜20文字の長さである必要があります"; + String get error_text_subaddress_name => "サブアドレス名に含めることはできません` , ' \" シンボル\n1〜20文字の長さである必要があります"; @override String get incorrect_seed => "入力されたテキストは無効です。"; @override @@ -4732,8 +4353,7 @@ class $ja extends S { @override String get settings_title => "設定"; @override - String get restore_bitcoin_description_from_seed => - "12ワードの組み合わせコードからウォレットを復元する"; + String get restore_bitcoin_description_from_seed => "12ワードの組み合わせコードからウォレットを復元する"; @override String get address_book_menu => "住所録"; @override @@ -4767,8 +4387,7 @@ class $ja extends S { @override String get error_text_crypto_currency => "小数桁数\n12以下でなければなりません"; @override - String get error_text_contact_name => - "連絡先名に含めることはできません ` , ' \" シンボル\n長さは1〜32文字でなければなりません"; + String get error_text_contact_name => "連絡先名に含めることはできません ` , ' \" シンボル\n長さは1〜32文字でなければなりません"; @override String get restore_seed_keys_restore => "シード/キーの復元"; @override @@ -4840,8 +4459,7 @@ class $ja extends S { @override String get nodes => "ノード"; @override - String get error_text_template => - "テンプレートの名前とアドレスに含めることはできません ` , ' \" シンボル\n1〜106文字の長さである必要があります"; + String get error_text_template => "テンプレートの名前とアドレスに含めることはできません ` , ' \" シンボル\n1〜106文字の長さである必要があります"; @override String get seed_share => "シードを共有する"; @override @@ -4871,8 +4489,7 @@ class $ja extends S { @override String get xmr_available_balance => "XMR利用可能残高"; @override - String get restore_bitcoin_description_from_keys => - "秘密鍵から生成されたWIF文字列からウォレットを復元します"; + String get restore_bitcoin_description_from_keys => "秘密鍵から生成されたWIF文字列からウォレットを復元します"; @override String get restore_bitcoin_title_from_keys => "WIFから復元"; @override @@ -4970,8 +4587,7 @@ class $ja extends S { @override String get exchange_result_write_down_ID => "*上記のIDをコピーまたは書き留めてください."; @override - String get exchange_result_write_down_trade_id => - "続行するには、取引IDをコピーまたは書き留めてください."; + String get exchange_result_write_down_trade_id => "続行するには、取引IDをコピーまたは書き留めてください."; @override String get new_subaddress_title => "新しいサブアドレス"; @override @@ -5027,6 +4643,8 @@ class $ja extends S { @override String get choose_account => "アカウントを選択"; @override + String get restore_from_date_or_blockheight => "このウォレットを作成した日付を入力してください。 または、ブロックの高さがわかっている場合は、代わりに入力してください"; + @override String get settings_only_trades => "取引のみ"; @override String get trade_state_to_be_created => "作成される"; @@ -5041,11 +4659,9 @@ class $ja extends S { @override String get address_remove_contact => "連絡先を削除します"; @override - String get error_text_wallet_name => - "ウォレット名には文字のみを含めることができます\n1〜15文字である必要があります"; + String get error_text_wallet_name => "ウォレット名には文字のみを含めることができます\n1〜15文字である必要があります"; @override - String get restore_description_from_keys => - "生成されたウォレットを復元します秘密鍵から保存されたキーストローク"; + String get restore_description_from_keys => "生成されたウォレットを復元します秘密鍵から保存されたキーストローク"; @override String get seed_language_next => "次"; @override @@ -5109,6 +4725,8 @@ class $ja extends S { @override String get settings_support => "サポート"; @override + String get seed_reminder => "スマートフォンを紛失したりワイプした場合に備えて、これらを書き留めてください"; + @override String get restore_wallet => "ウォレットを復元"; @override String get ok => "OK"; @@ -5141,8 +4759,7 @@ class $ja extends S { @override String get restore_title_from_seed => "シードから復元"; @override - String get restore_description_from_backup => - "Cake Walletアプリ全体を復元できますバックアップファイル"; + String get restore_description_from_backup => "Cake Walletアプリ全体を復元できますバックアップファイル"; @override String get error_text_node_port => "ノードポートには、0〜65535の数字のみを含めることができます"; @override @@ -5152,7 +4769,7 @@ class $ja extends S { @override String get digit_pin => "桁ピン"; @override - String get first_wallet_text => "素晴らしい財布 ために Monero そして Bitcoin"; + String get first_wallet_text => "素晴らしい財布 ために Monero"; @override String get settings_trades => "取引"; @override @@ -5162,19 +4779,15 @@ class $ja extends S { @override String change_current_node(String node) => "現在のノードを変更してよろしいですか ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "読み込み中 ${wallet_name} 財布"; + String wallet_list_loading_wallet(String wallet_name) => "読み込み中 ${wallet_name} 財布"; @override String version(String currentVersion) => "バージョン ${currentVersion}"; @override String router_no_route(String name) => "ルートが定義されていません ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "${provider} の取引は作成されません。 金額は最小額より少ない: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "${provider} の取引は作成されません。 金額は最小額より少ない: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "トレード ${tradeId} of ${title} 見つかりません"; + String trade_id_not_found(String tradeId, String title) => "トレード ${tradeId} of ${title} 見つかりません"; @override String transaction_details_copied(String title) => "${title} クリップボードにコピーしました"; @override @@ -5182,8 +4795,7 @@ class $ja extends S { @override String powered_by(String title) => "搭載 ${title}"; @override - String send_priority(String transactionPriority) => - "現在、料金は ${transactionPriority} 優先度.\nトランザクションの優先度は設定で調整できます"; + String send_priority(String transactionPriority) => "現在、料金は ${transactionPriority} 優先度.\nトランザクションの優先度は設定で調整できます"; @override String trade_for_not_created(String title) => "取引 ${title} 作成されません"; @override @@ -5191,12 +4803,9 @@ class $ja extends S { @override String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; @override - String max_value(String value, String currency) => - "マックス: ${value} ${currency}"; + String max_value(String value, String currency) => "マックス: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "${provider} の取引は作成されません。 金額は最大値を超えています: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "${provider} の取引は作成されません。 金額は最大値を超えています: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency} 住所"; @override @@ -5206,32 +4815,23 @@ class $ja extends S { @override String Blocks_remaining(String status) => "${status} 残りのブロック"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 上記のアドレスへ. または、外部ウォレットから上記のアドレス/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください."; @override - String error_text_limits_loading_failed(String provider) => - "${provider} の取引は作成されません。 制限の読み込みに失敗しました"; + String error_text_limits_loading_failed(String provider) => "${provider} の取引は作成されません。 制限の読み込みに失敗しました"; @override - String exchange_result_description(String fetchingLabel, String from) => - "送信してください ${fetchingLabel} ${from} 上記のアドレスへ."; + String exchange_result_description(String fetchingLabel, String from) => "送信してください ${fetchingLabel} ${from} 上記のアドレスへ."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "トランザクションをコミット\n量: ${amount}\n費用: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "トランザクションをコミット\n量: ${amount}\n費用: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "に送金します\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "に送金します\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "削除できませんでした ${wallet_name} 財布. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "削除できませんでした ${wallet_name} 財布. ${error}"; @override String copied_key_to_clipboard(String key) => "コピー済み ${key} クリップボードへ"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "読み込みに失敗しました ${wallet_name} 財布. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "読み込みに失敗しました ${wallet_name} 財布. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "取りはずし ${wallet_name} 財布"; + String wallet_list_removing_wallet(String wallet_name) => "取りはずし ${wallet_name} 財布"; } class $en extends S { @@ -5261,8 +4861,7 @@ class $pl extends S { @override String get hidden_balance => "Ukryta równowaga"; @override - String get biometric_auth_reason => - "Zeskanuj swój odcisk palca, aby go uwierzytelnić"; + String get biometric_auth_reason => "Zeskanuj swój odcisk palca, aby go uwierzytelnić"; @override String get transaction_sent => "Transakcja wysłana!"; @override @@ -5274,8 +4873,7 @@ class $pl extends S { @override String get trade_id => "Identyfikator handlu:"; @override - String get restore_description_from_seed => - "Przywróć swój portfel z 25 słów lub 13-słowny kod kombinacji"; + String get restore_description_from_seed => "Przywróć swój portfel z 25 słów lub 13-słowny kod kombinacji"; @override String get trade_state_underpaid => "Niedopłacone"; @override @@ -5287,8 +4885,7 @@ class $pl extends S { @override String get send_templates => "Szablony"; @override - String get please_try_to_connect_to_another_node => - "Spróbuj połączyć się z innym węzłem"; + String get please_try_to_connect_to_another_node => "Spróbuj połączyć się z innym węzłem"; @override String get trade_state_traded => "Handlowane"; @override @@ -5322,8 +4919,7 @@ class $pl extends S { @override String get receive_amount => "Ilość"; @override - String get settings_allow_biometrical_authentication => - "Zezwalaj na uwierzytelnianie biometryczne"; + String get settings_allow_biometrical_authentication => "Zezwalaj na uwierzytelnianie biometryczne"; @override String get view_key_private => "Wyświetl klucz (prywatny)"; @override @@ -5333,15 +4929,13 @@ class $pl extends S { @override String get send_sending => "Wysyłanie..."; @override - String get error_text_address => - "Wallet address must correspond to the type\nof cryptocurrency"; + String get error_text_address => "Wallet address must correspond to the type\nof cryptocurrency"; @override String get send_your_wallet => "Twój portfel"; @override String get remove_node_message => "Czy na pewno chcesz usunąć wybrany węzeł?"; @override - String get error_text_account_name => - "Nazwa konta może zawierać tylko litery, cyfry\ni musi mieć od 1 do 15 znaków"; + String get error_text_account_name => "Nazwa konta może zawierać tylko litery, cyfry\ni musi mieć od 1 do 15 znaków"; @override String get reconnection => "Ponowne połączenie"; @override @@ -5361,15 +4955,13 @@ class $pl extends S { @override String get copy_address => "Skopiuj adress"; @override - String get error_text_subaddress_name => - "Nazwa podadresu nie może zawierać ` , ' \" symbolika\ni musi mieć od 1 do 20 znaków"; + String get error_text_subaddress_name => "Nazwa podadresu nie może zawierać ` , ' \" symbolika\ni musi mieć od 1 do 20 znaków"; @override String get incorrect_seed => "Wprowadzony tekst jest nieprawidłowy."; @override String get settings_all => "Cały"; @override - String get nodes_list_reset_to_default_message => - "Czy na pewno chcesz przywrócić ustawienia domyślne?"; + String get nodes_list_reset_to_default_message => "Czy na pewno chcesz przywrócić ustawienia domyślne?"; @override String get receive => "Otrzymać"; @override @@ -5385,8 +4977,7 @@ class $pl extends S { @override String get settings_display_balance_as => "Wyświetl saldo jako"; @override - String get placeholder_transactions => - "Twoje transakcje zostaną wyświetlone tutaj"; + String get placeholder_transactions => "Twoje transakcje zostaną wyświetlone tutaj"; @override String get trade_details_provider => "Dostawca"; @override @@ -5408,13 +4999,11 @@ class $pl extends S { @override String get settings_title => "Ustawienia"; @override - String get restore_bitcoin_description_from_seed => - "Przywróć swój portfel z kodu złożonego z 12 słów"; + String get restore_bitcoin_description_from_seed => "Przywróć swój portfel z kodu złożonego z 12 słów"; @override String get address_book_menu => "Książka adresowa"; @override - String get wallet_restoration_store_incorrect_seed_length => - "Nieprawidłowa długość nasion"; + String get wallet_restoration_store_incorrect_seed_length => "Nieprawidłowa długość nasion"; @override String get seed_language_spanish => "Hiszpański"; @override @@ -5442,11 +5031,9 @@ class $pl extends S { @override String get sync_status_not_connected => "NIE POŁĄCZONY"; @override - String get error_text_crypto_currency => - "Liczba cyfr ułamkowych\nmusi być mniejsza lub równa 12"; + String get error_text_crypto_currency => "Liczba cyfr ułamkowych\nmusi być mniejsza lub równa 12"; @override - String get error_text_contact_name => - "Nazwa kontaktu nie może zawierać` , ' \" symbolika\ni musi mieć od 1 do 32 znaków "; + String get error_text_contact_name => "Nazwa kontaktu nie może zawierać` , ' \" symbolika\ni musi mieć od 1 do 32 znaków "; @override String get restore_seed_keys_restore => "Przywracanie nasion / kluczy"; @override @@ -5468,8 +5055,7 @@ class $pl extends S { @override String get pending => " (w oczekiwaniu)"; @override - String get setup_successful => - "Twój kod PIN został pomyślnie skonfigurowany!"; + String get setup_successful => "Twój kod PIN został pomyślnie skonfigurowany!"; @override String get fetching => "Ujmujący"; @override @@ -5509,8 +5095,7 @@ class $pl extends S { @override String get copy_id => "ID kopii"; @override - String get please_make_selection => - "Wybierz poniżej, aby cutwórz lub odzyskaj swój portfel."; + String get please_make_selection => "Wybierz poniżej, aby cutwórz lub odzyskaj swój portfel."; @override String get loading_your_wallet => "Ładowanie portfela"; @override @@ -5520,8 +5105,7 @@ class $pl extends S { @override String get nodes => "Węzły"; @override - String get error_text_template => - "Nazwa i adres szablonu nie mogą zawierać ` , ' \" symbolika\ni musi mieć od 1 do 106 znaków"; + String get error_text_template => "Nazwa i adres szablonu nie mogą zawierać ` , ' \" symbolika\ni musi mieć od 1 do 106 znaków"; @override String get seed_share => "Udostępnij ziarno"; @override @@ -5547,13 +5131,11 @@ class $pl extends S { @override String get trade_state_complete => "Kompletny"; @override - String get error_text_xmr => - "Wartość XMR nie może przekraczać dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 12"; + String get error_text_xmr => "Wartość XMR nie może przekraczać dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 12"; @override String get xmr_available_balance => "XMR Dostępne saldo"; @override - String get restore_bitcoin_description_from_keys => - "Przywróć swój portfel z wygenerowanego ciągu WIF z kluczy prywatnych"; + String get restore_bitcoin_description_from_keys => "Przywróć swój portfel z wygenerowanego ciągu WIF z kluczy prywatnych"; @override String get restore_bitcoin_title_from_keys => "Przywróć z WIF"; @override @@ -5581,8 +5163,7 @@ class $pl extends S { @override String get wallet_name => "Nazwa portfela"; @override - String get error_text_payment_id => - "ID może zawierać od 16 do 64 znaków w formacie szesnastkowym"; + String get error_text_payment_id => "ID może zawierać od 16 do 64 znaków w formacie szesnastkowym"; @override String get node_reset_settings_title => "Resetowanie ustawień"; @override @@ -5634,8 +5215,7 @@ class $pl extends S { @override String get seed_language_dutch => "Holenderski"; @override - String get restore_description_from_seed_keys => - "Odzyskaj swój portfel z nasion / kluczy, które zapisałeś w bezpiecznym miejscu"; + String get restore_description_from_seed_keys => "Odzyskaj swój portfel z nasion / kluczy, które zapisałeś w bezpiecznym miejscu"; @override String get copy => "Kopiuj"; @override @@ -5651,11 +5231,9 @@ class $pl extends S { @override String get contact_name => "Nazwa Kontaktu"; @override - String get exchange_result_write_down_ID => - "*Skopiuj lub zanotuj swój identyfikator pokazany powyżej."; + String get exchange_result_write_down_ID => "*Skopiuj lub zanotuj swój identyfikator pokazany powyżej."; @override - String get exchange_result_write_down_trade_id => - "Skopiuj lub zanotuj identyfikator transakcji, aby kontynuować."; + String get exchange_result_write_down_trade_id => "Skopiuj lub zanotuj identyfikator transakcji, aby kontynuować."; @override String get new_subaddress_title => "Nowy podadres"; @override @@ -5667,8 +5245,7 @@ class $pl extends S { @override String get trade_not_created => "Handel nie utworzony."; @override - String get confirm_delete_wallet => - "Ta czynność usunie ten portfel. Czy chcesz kontynuować?"; + String get confirm_delete_wallet => "Ta czynność usunie ten portfel. Czy chcesz kontynuować?"; @override String get restore_wallet_name => "Nazwa portfela"; @override @@ -5678,8 +5255,7 @@ class $pl extends S { @override String get rename => "Przemianować"; @override - String get confirm_delete_template => - "Ta czynność usunie ten szablon. Czy chcesz kontynuować?"; + String get confirm_delete_template => "Ta czynność usunie ten szablon. Czy chcesz kontynuować?"; @override String get restore_active_seed => "Aktywne nasiona"; @override @@ -5695,15 +5271,13 @@ class $pl extends S { @override String get show_keys => "Pokaż klucze"; @override - String get error_text_fiat => - "Wartość kwoty nie może przekroczyć dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 2"; + String get error_text_fiat => "Wartość kwoty nie może przekroczyć dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 2"; @override String get addresses => "Adresy"; @override String get transactions_by_date => "Transakcje według daty"; @override - String get restore_from_seed_placeholder => - "Wpisz lub wklej tutaj swoją frazę kodową"; + String get restore_from_seed_placeholder => "Wpisz lub wklej tutaj swoją frazę kodową"; @override String get use => "Używać "; @override @@ -5715,6 +5289,8 @@ class $pl extends S { @override String get choose_account => "Wybierz konto"; @override + String get restore_from_date_or_blockheight => "Wprowadź datę utworzenia tego portfela. Lub jeśli znasz wysokość bloku, wprowadź go zamiast tego"; + @override String get settings_only_trades => "Tylko transakcje"; @override String get trade_state_to_be_created => "Zostać stworzonym"; @@ -5729,11 +5305,9 @@ class $pl extends S { @override String get address_remove_contact => "Usuń kontakt"; @override - String get error_text_wallet_name => - "Nazwa portfela może zawierać tylko litery i cyfry\ni musi mieć od 1 do 15 znaków"; + String get error_text_wallet_name => "Nazwa portfela może zawierać tylko litery i cyfry\ni musi mieć od 1 do 15 znaków"; @override - String get restore_description_from_keys => - "Przywróć swój portfel z wygenerowanego naciśnięcia klawiszy zapisane z kluczy prywatnych"; + String get restore_description_from_keys => "Przywróć swój portfel z wygenerowanego naciśnięcia klawiszy zapisane z kluczy prywatnych"; @override String get seed_language_next => "Kolejny"; @override @@ -5749,8 +5323,7 @@ class $pl extends S { @override String get send_title => "Wyślij"; @override - String get error_text_keys => - "Klucze portfela mogą zawierać tylko 64 znaki w systemie szesnastkowym"; + String get error_text_keys => "Klucze portfela mogą zawierać tylko 64 znaki w systemie szesnastkowym"; @override String get settings_save_recipient_address => "Zapisz adres odbiorcy"; @override @@ -5798,12 +5371,13 @@ class $pl extends S { @override String get settings_support => "Wsparcie"; @override + String get seed_reminder => "Zapisz je na wypadek zgubienia lub wyczyszczenia telefonu"; + @override String get restore_wallet => "Przywróć portfel"; @override String get ok => "Dobrze"; @override - String get address_remove_content => - "Czy na pewno chcesz usunąć wybrany kontakt?"; + String get address_remove_content => "Czy na pewno chcesz usunąć wybrany kontakt?"; @override String get wallet_list_title => "Portfel Monero"; @override @@ -5831,11 +5405,9 @@ class $pl extends S { @override String get restore_title_from_seed => "Przywróć z nasion"; @override - String get restore_description_from_backup => - "Możesz przywrócić całą aplikację Cake Wallet z plik kopii zapasowej"; + String get restore_description_from_backup => "Możesz przywrócić całą aplikację Cake Wallet z plik kopii zapasowej"; @override - String get error_text_node_port => - "Port węzła może zawierać tylko liczby od 0 do 65535"; + String get error_text_node_port => "Port węzła może zawierać tylko liczby od 0 do 65535"; @override String get add_new_word => "Dodaj nowe słowo"; @override @@ -5843,7 +5415,7 @@ class $pl extends S { @override String get digit_pin => "-znak PIN"; @override - String get first_wallet_text => "Niesamowity portfel dla Monero i Bitcoin"; + String get first_wallet_text => "Niesamowity portfel dla Monero"; @override String get settings_trades => "Transakcje"; @override @@ -5851,84 +5423,61 @@ class $pl extends S { @override String change_language_to(String language) => "Zmień język na ${language}?"; @override - String change_current_node(String node) => - "Czy na pewno chcesz przywrócić ustawienia domyślne? ${node}?"; + String change_current_node(String node) => "Czy na pewno chcesz przywrócić ustawienia domyślne? ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "Ładuję ${wallet_name} portfel"; + String wallet_list_loading_wallet(String wallet_name) => "Ładuję ${wallet_name} portfel"; @override String version(String currentVersion) => "Wersja ${currentVersion}"; @override String router_no_route(String name) => "Brak zdefiniowanej trasy dla ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "Wymiana dla ${provider} nie została utworzona. Kwota jest mniejsza niż minimalna: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "Wymiana dla ${provider} nie została utworzona. Kwota jest mniejsza niż minimalna: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "Handel ${tradeId} of ${title} nie znaleziono."; + String trade_id_not_found(String tradeId, String title) => "Handel ${tradeId} of ${title} nie znaleziono."; @override - String transaction_details_copied(String title) => - "${title} skopiowane do schowka"; + String transaction_details_copied(String title) => "${title} skopiowane do schowka"; @override String trade_details_copied(String title) => "${title} skopiowane do schowka"; @override String powered_by(String title) => "Zasilany przez ${title}"; @override - String send_priority(String transactionPriority) => - "Obecnie opłata ustalona jest na ${transactionPriority} priorytet.\nPriorytet transakcji można zmienić w ustawieniach"; + String send_priority(String transactionPriority) => "Obecnie opłata ustalona jest na ${transactionPriority} priorytet.\nPriorytet transakcji można zmienić w ustawieniach"; @override - String trade_for_not_created(String title) => - "Zamienić się za ${title} nie jest tworzony."; + String trade_for_not_created(String title) => "Zamienić się za ${title} nie jest tworzony."; @override - String trade_is_powered_by(String provider) => - "Ten handel jest zasilany przez ${provider}"; + String trade_is_powered_by(String provider) => "Ten handel jest zasilany przez ${provider}"; @override String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; @override - String max_value(String value, String currency) => - "Max: ${value} ${currency}"; + String max_value(String value, String currency) => "Max: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "Wymiana dla ${provider} nie została utworzona. Kwota jest większa niż maksymalna: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "Wymiana dla ${provider} nie została utworzona. Kwota jest większa niż maksymalna: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "Adres ${cryptoCurrency}"; @override - String min_value(String value, String currency) => - "Min: ${value} ${currency}"; + String min_value(String value, String currency) => "Min: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "Nieudane uwierzytelnienie. ${state_error}"; + String failed_authentication(String state_error) => "Nieudane uwierzytelnienie. ${state_error}"; @override String Blocks_remaining(String status) => "${status} Bloki pozostałe"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} z twojego portfela. Lub możesz wysłać z zewnętrznego portfela na powyższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty."; @override - String error_text_limits_loading_failed(String provider) => - "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się"; + String error_text_limits_loading_failed(String provider) => "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się"; @override - String exchange_result_description(String fetchingLabel, String from) => - "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej."; + String exchange_result_description(String fetchingLabel, String from) => "Proszę wyślij ${fetchingLabel} ${from} na adres podany powyżej."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "Będziesz wysyłać środki na\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "Będziesz wysyłać środki na\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Nie udało się usunąć ${wallet_name} portfel. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Nie udało się usunąć ${wallet_name} portfel. ${error}"; @override String copied_key_to_clipboard(String key) => "Skopiowane ${key} do schowka"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "Nie udało się załadować ${wallet_name} portfel. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "Nie udało się załadować ${wallet_name} portfel. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "Usuwanie ${wallet_name} portfel"; + String wallet_list_removing_wallet(String wallet_name) => "Usuwanie ${wallet_name} portfel"; } class $es extends S { @@ -5954,8 +5503,7 @@ class $es extends S { @override String get hidden_balance => "Balance oculto"; @override - String get biometric_auth_reason => - "Escanee su huella digital para autenticar"; + String get biometric_auth_reason => "Escanee su huella digital para autenticar"; @override String get transaction_sent => "Transacción enviada!"; @override @@ -5967,8 +5515,7 @@ class $es extends S { @override String get trade_id => "Comercial ID:"; @override - String get restore_description_from_seed => - "Restaure su billetera desde el código de combinación de 25 palabras i de 13 palabras"; + String get restore_description_from_seed => "Restaure su billetera desde el código de combinación de 25 palabras i de 13 palabras"; @override String get trade_state_underpaid => "Poco pagado"; @override @@ -5980,8 +5527,7 @@ class $es extends S { @override String get send_templates => "Plantillas"; @override - String get please_try_to_connect_to_another_node => - "Intenta conectarte a otro nodo"; + String get please_try_to_connect_to_another_node => "Intenta conectarte a otro nodo"; @override String get trade_state_traded => "Negociado"; @override @@ -6015,8 +5561,7 @@ class $es extends S { @override String get receive_amount => "Cantidad"; @override - String get settings_allow_biometrical_authentication => - "Permitir autenticación biométrica"; + String get settings_allow_biometrical_authentication => "Permitir autenticación biométrica"; @override String get view_key_private => "View clave (privado)"; @override @@ -6026,16 +5571,13 @@ class $es extends S { @override String get send_sending => "Enviando..."; @override - String get error_text_address => - "La dirección de la billetera debe corresponder al tipo \nde criptomoneda"; + String get error_text_address => "La dirección de la billetera debe corresponder al tipo \nde criptomoneda"; @override String get send_your_wallet => "Tu billetera"; @override - String get remove_node_message => - "¿Está seguro de que desea eliminar el nodo seleccionado?"; + String get remove_node_message => "¿Está seguro de que desea eliminar el nodo seleccionado?"; @override - String get error_text_account_name => - "El nombre de la cuenta solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud"; + String get error_text_account_name => "El nombre de la cuenta solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud"; @override String get reconnection => "Reconexión"; @override @@ -6051,20 +5593,17 @@ class $es extends S { @override String get reconnect_alert_text => "¿Estás seguro de reconectar?"; @override - String get send_error_minimum_value => - "El valor mínimo de la cantidad es 0.01"; + String get send_error_minimum_value => "El valor mínimo de la cantidad es 0.01"; @override String get copy_address => "Copiar dirección "; @override - String get error_text_subaddress_name => - "El nombre de la subdirección no puede contener símbolos `, '\" \ny debe tener entre 1 y 20 caracteres de longitud"; + String get error_text_subaddress_name => "El nombre de la subdirección no puede contener símbolos `, '\" \ny debe tener entre 1 y 20 caracteres de longitud"; @override String get incorrect_seed => "El texto ingresado no es válido."; @override String get settings_all => "TODOS"; @override - String get nodes_list_reset_to_default_message => - "¿Está seguro de que desea restablecer la configuración predeterminada?"; + String get nodes_list_reset_to_default_message => "¿Está seguro de que desea restablecer la configuración predeterminada?"; @override String get receive => "Recibir"; @override @@ -6074,8 +5613,7 @@ class $es extends S { @override String get trade_details_pair => "Par"; @override - String get choose_wallet_currency => - "Por favor, elija la moneda de la billetera:"; + String get choose_wallet_currency => "Por favor, elija la moneda de la billetera:"; @override String get confirm => "Confirmar"; @override @@ -6103,13 +5641,11 @@ class $es extends S { @override String get settings_title => "Configuraciones"; @override - String get restore_bitcoin_description_from_seed => - "Restaure su billetera a partir del código de combinación de 12 palabras"; + String get restore_bitcoin_description_from_seed => "Restaure su billetera a partir del código de combinación de 12 palabras"; @override String get address_book_menu => "Libreta de direcciones"; @override - String get wallet_restoration_store_incorrect_seed_length => - "Longitud de semilla incorrecta"; + String get wallet_restoration_store_incorrect_seed_length => "Longitud de semilla incorrecta"; @override String get seed_language_spanish => "Español"; @override @@ -6131,18 +5667,15 @@ class $es extends S { @override String get please_select => "Por favor seleccione:"; @override - String get restore_title_from_backup => - "Restaurar desde un archivo de respaldo"; + String get restore_title_from_backup => "Restaurar desde un archivo de respaldo"; @override String get full_balance => "Balance completo"; @override String get sync_status_not_connected => "NO CONECTADO"; @override - String get error_text_crypto_currency => - "El número de dígitos fraccionarios \ndebe ser menor o igual a 12"; + String get error_text_crypto_currency => "El número de dígitos fraccionarios \ndebe ser menor o igual a 12"; @override - String get error_text_contact_name => - "El nombre del contacto no puede contener símbolos `, '\" \ny debe tener entre 1 y 32 caracteres de longitud"; + String get error_text_contact_name => "El nombre del contacto no puede contener símbolos `, '\" \ny debe tener entre 1 y 32 caracteres de longitud"; @override String get restore_seed_keys_restore => "Restauración de semillas / llaves"; @override @@ -6204,8 +5737,7 @@ class $es extends S { @override String get copy_id => "Copiar ID"; @override - String get please_make_selection => - "Seleccione a continuación para crear o recuperar su billetera."; + String get please_make_selection => "Seleccione a continuación para crear o recuperar su billetera."; @override String get loading_your_wallet => "Cargando tu billetera"; @override @@ -6215,8 +5747,7 @@ class $es extends S { @override String get nodes => "Nodos"; @override - String get error_text_template => - "El nombre y la dirección de la plantilla no pueden contener símbolos ` , '\" \ny debe tener entre 1 y 106 caracteres de longitud"; + String get error_text_template => "El nombre y la dirección de la plantilla no pueden contener símbolos ` , '\" \ny debe tener entre 1 y 106 caracteres de longitud"; @override String get seed_share => "Compartir semillas"; @override @@ -6242,13 +5773,11 @@ class $es extends S { @override String get trade_state_complete => "Completar"; @override - String get error_text_xmr => - "El valor XMR no puede exceder el saldo disponible.\nTEl número de dígitos de fracción debe ser menor o igual a 12"; + String get error_text_xmr => "El valor XMR no puede exceder el saldo disponible.\nTEl número de dígitos de fracción debe ser menor o igual a 12"; @override String get xmr_available_balance => "XMR Available Balance"; @override - String get restore_bitcoin_description_from_keys => - "Restaure su billetera a partir de una cadena WIF generada a partir de sus claves privadas"; + String get restore_bitcoin_description_from_keys => "Restaure su billetera a partir de una cadena WIF generada a partir de sus claves privadas"; @override String get restore_bitcoin_title_from_keys => "Restaurar desde WIF"; @override @@ -6276,8 +5805,7 @@ class $es extends S { @override String get wallet_name => "Nombre de la billetera"; @override - String get error_text_payment_id => - "La ID de pago solo puede contener de 16 a 64 caracteres en hexadecimal"; + String get error_text_payment_id => "La ID de pago solo puede contener de 16 a 64 caracteres en hexadecimal"; @override String get node_reset_settings_title => "Reiniciar ajustes"; @override @@ -6289,8 +5817,7 @@ class $es extends S { @override String get amount_is_estimate => "El monto recibido es un estimado"; @override - String get error_text_node_address => - "Por favor, introduzca una dirección iPv4"; + String get error_text_node_address => "Por favor, introduzca una dirección iPv4"; @override String get widgets_restore_from_date => "Restaurar desde fecha"; @override @@ -6300,8 +5827,7 @@ class $es extends S { @override String get new_wallet => "Nueva billetera"; @override - String get settings_display_on_dashboard_list => - "Mostrar en la lista del tablero"; + String get settings_display_on_dashboard_list => "Mostrar en la lista del tablero"; @override String get transaction_details_title => "Detalles de la transacción"; @override @@ -6331,8 +5857,7 @@ class $es extends S { @override String get seed_language_dutch => "Holandés"; @override - String get restore_description_from_seed_keys => - "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro"; + String get restore_description_from_seed_keys => "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro"; @override String get copy => "Dupdo"; @override @@ -6348,11 +5873,9 @@ class $es extends S { @override String get contact_name => "Nombre de contacto"; @override - String get exchange_result_write_down_ID => - "*Copie o escriba su identificación que se muestra arriba."; + String get exchange_result_write_down_ID => "*Copie o escriba su identificación que se muestra arriba."; @override - String get exchange_result_write_down_trade_id => - "Por favor, copia o escribe el ID."; + String get exchange_result_write_down_trade_id => "Por favor, copia o escribe el ID."; @override String get new_subaddress_title => "Nueva subdirección"; @override @@ -6364,8 +5887,7 @@ class $es extends S { @override String get trade_not_created => "Comercio no se crea."; @override - String get confirm_delete_wallet => - "Esta acción eliminará esta billetera. ¿Desea continuar?"; + String get confirm_delete_wallet => "Esta acción eliminará esta billetera. ¿Desea continuar?"; @override String get restore_wallet_name => "Nombre de la billetera"; @override @@ -6375,8 +5897,7 @@ class $es extends S { @override String get rename => "Rebautizar"; @override - String get confirm_delete_template => - "Esta acción eliminará esta plantilla. ¿Desea continuar?"; + String get confirm_delete_template => "Esta acción eliminará esta plantilla. ¿Desea continuar?"; @override String get restore_active_seed => "Semilla activa"; @override @@ -6392,15 +5913,13 @@ class $es extends S { @override String get show_keys => "Mostrar llaves"; @override - String get error_text_fiat => - "El valor de la cantidad no puede exceder el saldo disponible.\nEl número de dígitos de fracción debe ser menor o igual a 2"; + String get error_text_fiat => "El valor de la cantidad no puede exceder el saldo disponible.\nEl número de dígitos de fracción debe ser menor o igual a 2"; @override String get addresses => "Direcciones"; @override String get transactions_by_date => "Transacciones por fecha"; @override - String get restore_from_seed_placeholder => - "Ingrese o pegue su frase de código aquí"; + String get restore_from_seed_placeholder => "Ingrese o pegue su frase de código aquí"; @override String get use => "Utilizar a "; @override @@ -6412,6 +5931,8 @@ class $es extends S { @override String get choose_account => "Elegir cuenta"; @override + String get restore_from_date_or_blockheight => "Ingrese la fecha en que creó esta billetera. O si conoce la altura del bloque, ingréselo en su lugar"; + @override String get settings_only_trades => "Solo comercia"; @override String get trade_state_to_be_created => "Ser creado"; @@ -6426,11 +5947,9 @@ class $es extends S { @override String get address_remove_contact => "Remover contacto"; @override - String get error_text_wallet_name => - "El nombre de la billetera solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud"; + String get error_text_wallet_name => "El nombre de la billetera solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud"; @override - String get restore_description_from_keys => - "Restaure su billetera de las pulsaciones de teclas generadas guardadas de sus claves privadas"; + String get restore_description_from_keys => "Restaure su billetera de las pulsaciones de teclas generadas guardadas de sus claves privadas"; @override String get seed_language_next => "Próximo"; @override @@ -6446,11 +5965,9 @@ class $es extends S { @override String get send_title => "Enviar"; @override - String get error_text_keys => - "Las llaves de billetera solo pueden contener 64 caracteres en hexadecimal"; + String get error_text_keys => "Las llaves de billetera solo pueden contener 64 caracteres en hexadecimal"; @override - String get settings_save_recipient_address => - "Guardar dirección del destinatario"; + String get settings_save_recipient_address => "Guardar dirección del destinatario"; @override String get change_exchange_provider => "Cambiar proveedor de intercambio"; @override @@ -6496,12 +6013,13 @@ class $es extends S { @override String get settings_support => "Apoyo"; @override + String get seed_reminder => "Anótelos en caso de que pierda o borre su teléfono"; + @override String get restore_wallet => "Restaurar billetera"; @override String get ok => "OK"; @override - String get address_remove_content => - "¿Estás seguro de que quieres eliminar el contacto seleccionado?"; + String get address_remove_content => "¿Estás seguro de que quieres eliminar el contacto seleccionado?"; @override String get wallet_list_title => "Monedero Monero"; @override @@ -6529,11 +6047,9 @@ class $es extends S { @override String get restore_title_from_seed => "De la semilla"; @override - String get restore_description_from_backup => - "Puede restaurar toda la aplicación Cake Wallet desde ysu archivo de respaldo"; + String get restore_description_from_backup => "Puede restaurar toda la aplicación Cake Wallet desde ysu archivo de respaldo"; @override - String get error_text_node_port => - "El puerto de nodo solo puede contener números entre 0 y 65535"; + String get error_text_node_port => "El puerto de nodo solo puede contener números entre 0 y 65535"; @override String get add_new_word => "Agregar palabra nueva"; @override @@ -6541,97 +6057,69 @@ class $es extends S { @override String get digit_pin => "-dígito PIN"; @override - String get first_wallet_text => - "Impresionante billetera para Monero y Bitcoin"; + String get first_wallet_text => "Impresionante billetera para Monero"; @override String get settings_trades => "Comercia"; @override String get account => "Cuenta"; @override - String change_language_to(String language) => - "Cambiar el idioma a ${language}?"; + String change_language_to(String language) => "Cambiar el idioma a ${language}?"; @override - String change_current_node(String node) => - "¿Está seguro de cambiar el nodo actual a ${node}?"; + String change_current_node(String node) => "¿Está seguro de cambiar el nodo actual a ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "Billetera ${wallet_name} de carga"; + String wallet_list_loading_wallet(String wallet_name) => "Billetera ${wallet_name} de carga"; @override String version(String currentVersion) => "Versión ${currentVersion}"; @override String router_no_route(String name) => "No hay ruta definida para ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "El comercio por ${provider} no se crea. La cantidad es menos que mínima: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "El comercio por ${provider} no se crea. La cantidad es menos que mínima: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "Comercio ${tradeId} de ${title} no encontrado."; + String trade_id_not_found(String tradeId, String title) => "Comercio ${tradeId} de ${title} no encontrado."; @override - String transaction_details_copied(String title) => - "${title} Copiado al portapapeles"; + String transaction_details_copied(String title) => "${title} Copiado al portapapeles"; @override - String trade_details_copied(String title) => - "${title} Copiado al portapapeles"; + String trade_details_copied(String title) => "${title} Copiado al portapapeles"; @override String powered_by(String title) => "Energizado por ${title}"; @override - String send_priority(String transactionPriority) => - "Actualmente la tarifa se establece en ${transactionPriority} prioridad.\nLa prioridad de la transacción se puede ajustar en la configuración"; + String send_priority(String transactionPriority) => "Actualmente la tarifa se establece en ${transactionPriority} prioridad.\nLa prioridad de la transacción se puede ajustar en la configuración"; @override - String trade_for_not_created(String title) => - "Comercio por ${title} no se crea."; + String trade_for_not_created(String title) => "Comercio por ${title} no se crea."; @override - String trade_is_powered_by(String provider) => - "Este comercio es impulsado por ${provider}"; + String trade_is_powered_by(String provider) => "Este comercio es impulsado por ${provider}"; @override String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; @override - String max_value(String value, String currency) => - "Max: ${value} ${currency}"; + String max_value(String value, String currency) => "Max: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "El comercio por ${provider} no se crea. La cantidad es más que el máximo: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "El comercio por ${provider} no se crea. La cantidad es más que el máximo: ${max} ${currency}"; @override - String send_address(String cryptoCurrency) => - "Dirección de ${cryptoCurrency}"; + String send_address(String cryptoCurrency) => "Dirección de ${cryptoCurrency}"; @override - String min_value(String value, String currency) => - "Min: ${value} ${currency}"; + String min_value(String value, String currency) => "Min: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "Autenticación fallida. ${state_error}"; + String failed_authentication(String state_error) => "Autenticación fallida. ${state_error}"; @override String Blocks_remaining(String status) => "${status} Bloques restantes"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba. O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra arriba. O puede enviar desde su billetera externa a la dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos."; @override - String error_text_limits_loading_failed(String provider) => - "El comercio por ${provider} no se crea. Límites de carga fallidos"; + String error_text_limits_loading_failed(String provider) => "El comercio por ${provider} no se crea. Límites de carga fallidos"; @override - String exchange_result_description(String fetchingLabel, String from) => - "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba."; + String exchange_result_description(String fetchingLabel, String from) => "Envíe ${fetchingLabel} ${from} a la dirección que se muestra arriba."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "Enviará fondos a\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "Enviará fondos a\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Error al elimina ${wallet_name} billetera. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Error al elimina ${wallet_name} billetera. ${error}"; @override - String copied_key_to_clipboard(String key) => - "Copiado ${key} al portapapeles"; + String copied_key_to_clipboard(String key) => "Copiado ${key} al portapapeles"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "No se pudo cargar ${wallet_name} la billetera. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "No se pudo cargar ${wallet_name} la billetera. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "Retirar ${wallet_name} billetera"; + String wallet_list_removing_wallet(String wallet_name) => "Retirar ${wallet_name} billetera"; } class $nl extends S { @@ -6669,8 +6157,7 @@ class $nl extends S { @override String get trade_id => "Trade ID:"; @override - String get restore_description_from_seed => - "Herstel uw portemonnee van het 25 woord of 13 woord combinatiecode"; + String get restore_description_from_seed => "Herstel uw portemonnee van het 25 woord of 13 woord combinatiecode"; @override String get trade_state_underpaid => "Slecht betaald"; @override @@ -6682,8 +6169,7 @@ class $nl extends S { @override String get send_templates => "Sjablonen"; @override - String get please_try_to_connect_to_another_node => - "Probeer verbinding te maken met een ander knooppunt"; + String get please_try_to_connect_to_another_node => "Probeer verbinding te maken met een ander knooppunt"; @override String get trade_state_traded => "Traded"; @override @@ -6717,8 +6203,7 @@ class $nl extends S { @override String get receive_amount => "Bedrag"; @override - String get settings_allow_biometrical_authentication => - "Biometrische authenticatie toestaan"; + String get settings_allow_biometrical_authentication => "Biometrische authenticatie toestaan"; @override String get view_key_private => "Bekijk sleutel (privaat)"; @override @@ -6728,16 +6213,13 @@ class $nl extends S { @override String get send_sending => "Bezig met verzenden..."; @override - String get error_text_address => - "Portemonnee-adres moet overeenkomen met het type\nvan cryptocurrency"; + String get error_text_address => "Portemonnee-adres moet overeenkomen met het type\nvan cryptocurrency"; @override String get send_your_wallet => "Uw portemonnee"; @override - String get remove_node_message => - "Weet u zeker dat u het geselecteerde knooppunt wilt verwijderen?"; + String get remove_node_message => "Weet u zeker dat u het geselecteerde knooppunt wilt verwijderen?"; @override - String get error_text_account_name => - "Accountnaam mag alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn"; + String get error_text_account_name => "Accountnaam mag alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn"; @override String get reconnection => "Reconnection"; @override @@ -6751,22 +6233,19 @@ class $nl extends S { @override String get reconnect => "Sluit"; @override - String get reconnect_alert_text => - "Weet u zeker dat u opnieuw verbinding wilt maken?"; + String get reconnect_alert_text => "Weet u zeker dat u opnieuw verbinding wilt maken?"; @override String get send_error_minimum_value => "Minimale waarde van bedrag is 0,01"; @override String get copy_address => "Adres kopiëren"; @override - String get error_text_subaddress_name => - "Naam subadres mag niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 20 tekens lang zijn"; + String get error_text_subaddress_name => "Naam subadres mag niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 20 tekens lang zijn"; @override String get incorrect_seed => "De ingevoerde tekst is niet geldig."; @override String get settings_all => "ALLE"; @override - String get nodes_list_reset_to_default_message => - "Weet u zeker dat u de standaardinstellingen wilt herstellen?"; + String get nodes_list_reset_to_default_message => "Weet u zeker dat u de standaardinstellingen wilt herstellen?"; @override String get receive => "Krijgen"; @override @@ -6782,8 +6261,7 @@ class $nl extends S { @override String get settings_display_balance_as => "Toon saldo als"; @override - String get placeholder_transactions => - "Uw transacties worden hier weergegeven"; + String get placeholder_transactions => "Uw transacties worden hier weergegeven"; @override String get trade_details_provider => "Leverancier"; @override @@ -6805,13 +6283,11 @@ class $nl extends S { @override String get settings_title => "Instellingen"; @override - String get restore_bitcoin_description_from_seed => - "Herstel uw portemonnee met een combinatiecode van 12 woorden"; + String get restore_bitcoin_description_from_seed => "Herstel uw portemonnee met een combinatiecode van 12 woorden"; @override String get address_book_menu => "Adresboek"; @override - String get wallet_restoration_store_incorrect_seed_length => - "Onjuiste zaadlengte"; + String get wallet_restoration_store_incorrect_seed_length => "Onjuiste zaadlengte"; @override String get seed_language_spanish => "Spaans"; @override @@ -6833,18 +6309,15 @@ class $nl extends S { @override String get please_select => "Selecteer alstublieft:"; @override - String get restore_title_from_backup => - "Herstellen vanuit een back-upbestand"; + String get restore_title_from_backup => "Herstellen vanuit een back-upbestand"; @override String get full_balance => "Volledig saldo"; @override String get sync_status_not_connected => "NIET VERBONDEN"; @override - String get error_text_crypto_currency => - "Het aantal breukcijfers\nmoet kleiner zijn dan of gelijk zijn aan 12"; + String get error_text_crypto_currency => "Het aantal breukcijfers\nmoet kleiner zijn dan of gelijk zijn aan 12"; @override - String get error_text_contact_name => - "Naam contactpersoon kan niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 32 tekens lang zijn"; + String get error_text_contact_name => "Naam contactpersoon kan niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 32 tekens lang zijn"; @override String get restore_seed_keys_restore => "Zaad / sleutels herstellen"; @override @@ -6906,8 +6379,7 @@ class $nl extends S { @override String get copy_id => "ID kopiëren"; @override - String get please_make_selection => - "Maak hieronder uw keuze tot maak of herstel je portemonnee."; + String get please_make_selection => "Maak hieronder uw keuze tot maak of herstel je portemonnee."; @override String get loading_your_wallet => "Uw portemonnee laden"; @override @@ -6917,8 +6389,7 @@ class $nl extends S { @override String get nodes => "Knooppunten"; @override - String get error_text_template => - "Sjabloonnaam en -adres mogen niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 106 tekens lang zijn"; + String get error_text_template => "Sjabloonnaam en -adres mogen niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 106 tekens lang zijn"; @override String get seed_share => "Deel zaad"; @override @@ -6944,13 +6415,11 @@ class $nl extends S { @override String get trade_state_complete => "Compleet"; @override - String get error_text_xmr => - "XMR-waarde kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 12"; + String get error_text_xmr => "XMR-waarde kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 12"; @override String get xmr_available_balance => "XMR Beschikbaar saldo"; @override - String get restore_bitcoin_description_from_keys => - "Herstel uw portemonnee van de gegenereerde WIF-string van uw privésleutels"; + String get restore_bitcoin_description_from_keys => "Herstel uw portemonnee van de gegenereerde WIF-string van uw privésleutels"; @override String get restore_bitcoin_title_from_keys => "Herstel van WIF"; @override @@ -6978,8 +6447,7 @@ class $nl extends S { @override String get wallet_name => "Portemonnee naam"; @override - String get error_text_payment_id => - "Betalings-ID kan alleen 16 tot 64 tekens bevatten in hexadecimale volgorde"; + String get error_text_payment_id => "Betalings-ID kan alleen 16 tot 64 tekens bevatten in hexadecimale volgorde"; @override String get node_reset_settings_title => "Reset instellingen"; @override @@ -7001,8 +6469,7 @@ class $nl extends S { @override String get new_wallet => "Nieuwe portemonnee"; @override - String get settings_display_on_dashboard_list => - "Weergeven op dashboardlijst"; + String get settings_display_on_dashboard_list => "Weergeven op dashboardlijst"; @override String get transaction_details_title => "Transactie details"; @override @@ -7032,8 +6499,7 @@ class $nl extends S { @override String get seed_language_dutch => "Nederlands"; @override - String get restore_description_from_seed_keys => - "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats"; + String get restore_description_from_seed_keys => "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats"; @override String get copy => "Kopiëren"; @override @@ -7049,11 +6515,9 @@ class $nl extends S { @override String get contact_name => "Contactnaam"; @override - String get exchange_result_write_down_ID => - "*Kopieer of noteer uw hierboven getoonde ID."; + String get exchange_result_write_down_ID => "*Kopieer of noteer uw hierboven getoonde ID."; @override - String get exchange_result_write_down_trade_id => - "Kopieer of noteer de handels-ID om door te gaan."; + String get exchange_result_write_down_trade_id => "Kopieer of noteer de handels-ID om door te gaan."; @override String get new_subaddress_title => "Nieuw subadres"; @override @@ -7065,8 +6529,7 @@ class $nl extends S { @override String get trade_not_created => "Handel niet gecreëerd."; @override - String get confirm_delete_wallet => - "Met deze actie wordt deze portemonnee verwijderd. Wilt u doorgaan?"; + String get confirm_delete_wallet => "Met deze actie wordt deze portemonnee verwijderd. Wilt u doorgaan?"; @override String get restore_wallet_name => "Portemonnee naam"; @override @@ -7076,8 +6539,7 @@ class $nl extends S { @override String get rename => "Hernoemen"; @override - String get confirm_delete_template => - "Met deze actie wordt deze sjabloon verwijderd. Wilt u doorgaan?"; + String get confirm_delete_template => "Met deze actie wordt deze sjabloon verwijderd. Wilt u doorgaan?"; @override String get restore_active_seed => "Actief zaad"; @override @@ -7093,15 +6555,13 @@ class $nl extends S { @override String get show_keys => "Toon sleutels"; @override - String get error_text_fiat => - "Waarde van bedrag kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 2"; + String get error_text_fiat => "Waarde van bedrag kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 2"; @override String get addresses => "Adressen"; @override String get transactions_by_date => "Transacties op datum"; @override - String get restore_from_seed_placeholder => - "Voer hier uw codefrase in of plak deze"; + String get restore_from_seed_placeholder => "Voer hier uw codefrase in of plak deze"; @override String get use => "Gebruik "; @override @@ -7113,6 +6573,8 @@ class $nl extends S { @override String get choose_account => "Kies account"; @override + String get restore_from_date_or_blockheight => "Voer de datum in waarop u deze portemonnee heeft gemaakt. Of als u de blokhoogte kent, voer deze dan in"; + @override String get settings_only_trades => "Alleen handel"; @override String get trade_state_to_be_created => "Om gecreëerd te worden"; @@ -7127,11 +6589,9 @@ class $nl extends S { @override String get address_remove_contact => "Contact verwijderen"; @override - String get error_text_wallet_name => - "Naam portemonnee kan alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn"; + String get error_text_wallet_name => "Naam portemonnee kan alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn"; @override - String get restore_description_from_keys => - "Herstel uw portemonnee van gegenereerd toetsaanslagen opgeslagen van uw privésleutels"; + String get restore_description_from_keys => "Herstel uw portemonnee van gegenereerd toetsaanslagen opgeslagen van uw privésleutels"; @override String get seed_language_next => "Volgende"; @override @@ -7147,8 +6607,7 @@ class $nl extends S { @override String get send_title => "Stuur"; @override - String get error_text_keys => - "Portefeuillesleutels kunnen maximaal 64 tekens bevatten in hexadecimale volgorde"; + String get error_text_keys => "Portefeuillesleutels kunnen maximaal 64 tekens bevatten in hexadecimale volgorde"; @override String get settings_save_recipient_address => "Adres ontvanger opslaan"; @override @@ -7190,19 +6649,19 @@ class $nl extends S { @override String get restore_address => "Adres"; @override - String get restore_wallet_restore_description => - "Portemonnee-herstelbeschrijving"; + String get restore_wallet_restore_description => "Portemonnee-herstelbeschrijving"; @override String get today => "Vandaag"; @override String get settings_support => "Ondersteuning"; @override + String get seed_reminder => "Schrijf deze op voor het geval u uw telefoon kwijtraakt of veegt"; + @override String get restore_wallet => "Portemonnee herstellen"; @override String get ok => "OK"; @override - String get address_remove_content => - "Weet u zeker dat u het geselecteerde contact wilt verwijderen?"; + String get address_remove_content => "Weet u zeker dat u het geselecteerde contact wilt verwijderen?"; @override String get wallet_list_title => "Monero portemonnee"; @override @@ -7230,11 +6689,9 @@ class $nl extends S { @override String get restore_title_from_seed => "Herstel van zaad"; @override - String get restore_description_from_backup => - "Je kunt de hele Cake Wallet-app herstellen van uw back-upbestand"; + String get restore_description_from_backup => "Je kunt de hele Cake Wallet-app herstellen van uw back-upbestand"; @override - String get error_text_node_port => - "Knooppuntpoort kan alleen nummers tussen 0 en 65535 bevatten"; + String get error_text_node_port => "Knooppuntpoort kan alleen nummers tussen 0 en 65535 bevatten"; @override String get add_new_word => "Nieuw woord toevoegen"; @override @@ -7242,96 +6699,69 @@ class $nl extends S { @override String get digit_pin => "-cijferige PIN"; @override - String get first_wallet_text => - "Geweldige portemonnee fvoor Monero en Bitcoin"; + String get first_wallet_text => "Geweldige portemonnee fvoor Monero"; @override String get settings_trades => "Trades"; @override String get account => "Account"; @override - String change_language_to(String language) => - "Verander de taal in ${language}?"; + String change_language_to(String language) => "Verander de taal in ${language}?"; @override - String change_current_node(String node) => - "Weet u zeker dat u het huidige knooppunt wilt wijzigen in ${node}?"; + String change_current_node(String node) => "Weet u zeker dat u het huidige knooppunt wilt wijzigen in ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "Bezig met laden ${wallet_name} portemonnee"; + String wallet_list_loading_wallet(String wallet_name) => "Bezig met laden ${wallet_name} portemonnee"; @override String version(String currentVersion) => "Versie ${currentVersion}"; @override String router_no_route(String name) => "Geen route gedefinieerd voor ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "Ruil voor ${provider} is niet gemaakt. Bedrag is minder dan minimaal: ${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "Ruil voor ${provider} is niet gemaakt. Bedrag is minder dan minimaal: ${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "Handel ${tradeId} van ${title} niet gevonden."; + String trade_id_not_found(String tradeId, String title) => "Handel ${tradeId} van ${title} niet gevonden."; @override - String transaction_details_copied(String title) => - "${title} gekopieerd naar het klembord"; + String transaction_details_copied(String title) => "${title} gekopieerd naar het klembord"; @override - String trade_details_copied(String title) => - "${title} gekopieerd naar het klembord"; + String trade_details_copied(String title) => "${title} gekopieerd naar het klembord"; @override String powered_by(String title) => "Aangedreven door ${title}"; @override - String send_priority(String transactionPriority) => - "Momenteel is de vergoeding vastgesteld op ${transactionPriority} prioriteit.\nTransactieprioriteit kan worden aangepast in de instellingen"; + String send_priority(String transactionPriority) => "Momenteel is de vergoeding vastgesteld op ${transactionPriority} prioriteit.\nTransactieprioriteit kan worden aangepast in de instellingen"; @override - String trade_for_not_created(String title) => - "Ruilen voor ${title} is niet gemaakt."; + String trade_for_not_created(String title) => "Ruilen voor ${title} is niet gemaakt."; @override - String trade_is_powered_by(String provider) => - "Deze transactie wordt mogelijk gemaakt door ${provider}"; + String trade_is_powered_by(String provider) => "Deze transactie wordt mogelijk gemaakt door ${provider}"; @override String time(String minutes, String seconds) => "${minutes}m ${seconds}s"; @override - String max_value(String value, String currency) => - "Max: ${value} ${currency}"; + String max_value(String value, String currency) => "Max: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "Ruil voor ${provider} is niet gemaakt. Bedrag is meer dan maximaal: ${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "Ruil voor ${provider} is niet gemaakt. Bedrag is meer dan maximaal: ${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency}-adres"; @override - String min_value(String value, String currency) => - "Min: ${value} ${currency}"; + String min_value(String value, String currency) => "Min: ${value} ${currency}"; @override - String failed_authentication(String state_error) => - "Mislukte authenticatie. ${state_error}"; + String failed_authentication(String state_error) => "Mislukte authenticatie. ${state_error}"; @override String Blocks_remaining(String status) => "${status} Resterende blokken"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen."; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar bovenstaand adres. Of u kunt uw externe portemonnee naar bovenstaand adres / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen."; @override - String error_text_limits_loading_failed(String provider) => - "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt"; + String error_text_limits_loading_failed(String provider) => "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt"; @override - String exchange_result_description(String fetchingLabel, String from) => - "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres."; + String exchange_result_description(String fetchingLabel, String from) => "Zend alstublieft ${fetchingLabel} ${from} naar bovenstaand adres."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "U stuurt geld naar\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "U stuurt geld naar\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "Verwijderen mislukt ${wallet_name} portemonnee. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "Verwijderen mislukt ${wallet_name} portemonnee. ${error}"; @override - String copied_key_to_clipboard(String key) => - "Gekopieerd ${key} naar het klembord"; + String copied_key_to_clipboard(String key) => "Gekopieerd ${key} naar het klembord"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "Laden mislukt ${wallet_name} portemonnee. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "Laden mislukt ${wallet_name} portemonnee. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "Verwijderen ${wallet_name} portemonnee"; + String wallet_list_removing_wallet(String wallet_name) => "Verwijderen ${wallet_name} portemonnee"; } class $zh extends S { @@ -7785,6 +7215,8 @@ class $zh extends S { @override String get choose_account => "選擇帳號"; @override + String get restore_from_date_or_blockheight => "請輸入創建此錢包的日期。 或者,如果您知道塊高,請改為輸入"; + @override String get settings_only_trades => "只交易"; @override String get trade_state_to_be_created => "待创建"; @@ -7865,6 +7297,8 @@ class $zh extends S { @override String get settings_support => "支持"; @override + String get seed_reminder => "請寫下這些,以防丟失或擦拭手機"; + @override String get restore_wallet => "恢复钱包"; @override String get ok => "好"; @@ -7907,7 +7341,7 @@ class $zh extends S { @override String get digit_pin => "数字别针"; @override - String get first_wallet_text => "很棒的钱包 对于 Monero 和 Bitcoin"; + String get first_wallet_text => "很棒的钱包 对于 Monero"; @override String get settings_trades => "交易"; @override @@ -7917,19 +7351,15 @@ class $zh extends S { @override String change_current_node(String node) => "您确定将当前节点更改为 ${node}?"; @override - String wallet_list_loading_wallet(String wallet_name) => - "载入中 ${wallet_name} 钱包"; + String wallet_list_loading_wallet(String wallet_name) => "载入中 ${wallet_name} 钱包"; @override String version(String currentVersion) => "版 ${currentVersion}"; @override String router_no_route(String name) => "未定义路线 ${name}"; @override - String error_text_minimal_limit( - String provider, String min, String currency) => - "未創建 ${provider} 交易。 金額少於最小值:${min} ${currency}"; + String error_text_minimal_limit(String provider, String min, String currency) => "未創建 ${provider} 交易。 金額少於最小值:${min} ${currency}"; @override - String trade_id_not_found(String tradeId, String title) => - "贸易方式 ${tradeId} 的 ${title} 未找到."; + String trade_id_not_found(String tradeId, String title) => "贸易方式 ${tradeId} 的 ${title} 未找到."; @override String transaction_details_copied(String title) => "${title} 复制到剪贴板"; @override @@ -7937,8 +7367,7 @@ class $zh extends S { @override String powered_by(String title) => "供电 ${title}"; @override - String send_priority(String transactionPriority) => - "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整"; + String send_priority(String transactionPriority) => "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整"; @override String trade_for_not_created(String title) => "交易 ${title} 未创建."; @override @@ -7948,9 +7377,7 @@ class $zh extends S { @override String max_value(String value, String currency) => "最高: ${value} ${currency}"; @override - String error_text_maximum_limit( - String provider, String max, String currency) => - "未創建 ${provider} 交易。 金額大於最大值:${max} ${currency}"; + String error_text_maximum_limit(String provider, String max, String currency) => "未創建 ${provider} 交易。 金額大於最大值:${max} ${currency}"; @override String send_address(String cryptoCurrency) => "${cryptoCurrency} 地址"; @override @@ -7960,32 +7387,23 @@ class $zh extends S { @override String Blocks_remaining(String status) => "${status} 剩余的块"; @override - String exchange_result_confirm( - String fetchingLabel, String from, String walletName) => - "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额"; + String exchange_result_confirm(String fetchingLabel, String from, String walletName) => "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到上面显示的地址. 或者,您也可以从外部钱包发送上述地址/ QR码。\n\n请按确认继续或返回以更改金额"; @override - String error_text_limits_loading_failed(String provider) => - "未創建 ${provider} 交易。 限制加載失敗"; + String error_text_limits_loading_failed(String provider) => "未創建 ${provider} 交易。 限制加載失敗"; @override - String exchange_result_description(String fetchingLabel, String from) => - "请发送 ${fetchingLabel} ${from} 到上面显示的地址."; + String exchange_result_description(String fetchingLabel, String from) => "请发送 ${fetchingLabel} ${from} 到上面显示的地址."; @override - String commit_transaction_amount_fee(String amount, String fee) => - "提交交易\n量: ${amount}\nFee: ${fee}"; + String commit_transaction_amount_fee(String amount, String fee) => "提交交易\n量: ${amount}\nFee: ${fee}"; @override - String openalias_alert_content(String recipient_name) => - "您將匯款至\n${recipient_name}"; + String openalias_alert_content(String recipient_name) => "您將匯款至\n${recipient_name}"; @override - String wallet_list_failed_to_remove(String wallet_name, String error) => - "删除失败 ${wallet_name} 钱包. ${error}"; + String wallet_list_failed_to_remove(String wallet_name, String error) => "删除失败 ${wallet_name} 钱包. ${error}"; @override String copied_key_to_clipboard(String key) => "复制 ${key} 到剪贴板"; @override - String wallet_list_failed_to_load(String wallet_name, String error) => - "加载失败 ${wallet_name} 钱包. ${error}"; + String wallet_list_failed_to_load(String wallet_name, String error) => "加载失败 ${wallet_name} 钱包. ${error}"; @override - String wallet_list_removing_wallet(String wallet_name) => - "拆下 ${wallet_name} 钱包"; + String wallet_list_removing_wallet(String wallet_name) => "拆下 ${wallet_name} 钱包"; } class GeneratedLocalizationsDelegate extends LocalizationsDelegate { @@ -8008,8 +7426,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate { ]; } - LocaleListResolutionCallback listResolution( - {Locale fallback, bool withCountry = true}) { + LocaleListResolutionCallback listResolution({Locale fallback, bool withCountry = true}) { return (List locales, Iterable supported) { if (locales == null || locales.isEmpty) { return fallback ?? supported.first; @@ -8019,8 +7436,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate { }; } - LocaleResolutionCallback resolution( - {Locale fallback, bool withCountry = true}) { + LocaleResolutionCallback resolution({Locale fallback, bool withCountry = true}) { return (Locale locale, Iterable supported) { return _resolve(locale, fallback, supported, withCountry); }; @@ -8068,7 +7484,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate { S.current = const $zh(); return SynchronousFuture(S.current); default: - // NO-OP. + // NO-OP. } } S.current = const S(); @@ -8084,8 +7500,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate { /// /// Internal method to resolve a locale from a list of locales. /// - Locale _resolve(Locale locale, Locale fallback, Iterable supported, - bool withCountry) { + Locale _resolve(Locale locale, Locale fallback, Iterable supported, bool withCountry) { if (locale == null || !_isSupported(locale, withCountry)) { return fallback ?? supported.first; } @@ -8118,9 +7533,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate { } // If no country requirement is requested, check if this locale has no country. - if (true != withCountry && - (supportedLocale.countryCode == null || - supportedLocale.countryCode.isEmpty)) { + if (true != withCountry && (supportedLocale.countryCode == null || supportedLocale.countryCode.isEmpty)) { return true; } } @@ -8130,7 +7543,7 @@ class GeneratedLocalizationsDelegate extends LocalizationsDelegate { } String getLang(Locale l) => l == null - ? null - : l.countryCode != null && l.countryCode.isEmpty - ? l.languageCode - : l.toString(); + ? null + : l.countryCode != null && l.countryCode.isEmpty + ? l.languageCode + : l.toString(); diff --git a/lib/main.dart b/lib/main.dart index 8f4080a30..6370bf55d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,5 @@ +import 'package:cake_wallet/entities/transaction_description.dart'; +import 'package:cake_wallet/entities/transaction_description.dart'; import 'package:cake_wallet/reactions/bootstrap.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/store/app_store.dart'; @@ -21,38 +23,41 @@ import 'package:cw_monero/wallet.dart' as monero_wallet; import 'package:cake_wallet/router.dart'; import 'theme_changer.dart'; import 'themes.dart'; -import 'package:cake_wallet/src/domain/common/get_encryption_key.dart'; -import 'package:cake_wallet/src/domain/common/contact.dart'; -import 'package:cake_wallet/src/domain/common/node.dart'; -import 'package:cake_wallet/src/domain/common/wallet_info.dart'; -import 'package:cake_wallet/src/domain/exchange/trade.dart'; -import 'package:cake_wallet/src/domain/monero/transaction_description.dart'; +import 'package:cake_wallet/entities/get_encryption_key.dart'; +import 'package:cake_wallet/entities/contact.dart'; +import 'package:cake_wallet/entities/node.dart'; +import 'package:cake_wallet/entities/wallet_info.dart'; +import 'package:cake_wallet/exchange/trade.dart'; + +// import 'package:cake_wallet/monero/transaction_description.dart'; import 'package:cake_wallet/src/reactions/set_reactions.dart'; -import 'package:cake_wallet/src/stores/login/login_store.dart'; -import 'package:cake_wallet/src/stores/balance/balance_store.dart'; -import 'package:cake_wallet/src/stores/sync/sync_store.dart'; -import 'package:cake_wallet/src/stores/wallet/wallet_store.dart'; -import 'package:cake_wallet/src/stores/send_template/send_template_store.dart'; -import 'package:cake_wallet/src/stores/exchange_template/exchange_template_store.dart'; + +// import 'package:cake_wallet/src/stores/login/login_store.dart'; +// import 'package:cake_wallet/src/stores/balance/balance_store.dart'; +// import 'package:cake_wallet/src/stores/sync/sync_store.dart'; +// import 'package:cake_wallet/src/stores/wallet/wallet_store.dart'; +// import 'package:cake_wallet/src/stores/send_template/send_template_store.dart'; +// import 'package:cake_wallet/src/stores/exchange_template/exchange_template_store.dart'; import 'package:cake_wallet/src/screens/root/root.dart'; //import 'package:cake_wallet/src/stores/authentication/authentication_store.dart'; -import 'package:cake_wallet/src/stores/settings/settings_store.dart'; -import 'package:cake_wallet/src/stores/price/price_store.dart'; -import 'package:cake_wallet/src/domain/services/user_service.dart'; -import 'package:cake_wallet/src/domain/services/wallet_list_service.dart'; -import 'package:cake_wallet/src/domain/common/balance_display_mode.dart'; -import 'package:cake_wallet/src/domain/common/default_settings_migration.dart'; -import 'package:cake_wallet/src/domain/common/fiat_currency.dart'; -import 'package:cake_wallet/src/domain/common/transaction_priority.dart'; -import 'package:cake_wallet/src/domain/common/wallet_type.dart'; -import 'package:cake_wallet/src/domain/common/template.dart'; -import 'package:cake_wallet/src/domain/exchange/exchange_template.dart'; -import 'package:cake_wallet/src/domain/services/wallet_service.dart'; -import 'package:cake_wallet/src/domain/services/fiat_convertation_service.dart'; +// import 'package:cake_wallet/src/stores/settings/settings_store.dart'; +// import 'package:cake_wallet/src/stores/price/price_store.dart'; +// import 'package:cake_wallet/src/domain/services/user_service.dart'; +// import 'package:cake_wallet/src/domain/services/wallet_list_service.dart'; +import 'package:cake_wallet/entities/balance_display_mode.dart'; +import 'package:cake_wallet/entities/default_settings_migration.dart'; +import 'package:cake_wallet/entities/fiat_currency.dart'; +import 'package:cake_wallet/entities/transaction_priority.dart'; +import 'package:cake_wallet/entities/wallet_type.dart'; +import 'package:cake_wallet/entities/template.dart'; +import 'package:cake_wallet/exchange/exchange_template.dart'; + +// import 'package:cake_wallet/src/domain/services/wallet_service.dart'; +// import 'package:cake_wallet/src/domain/services/fiat_convertation_service.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/src/domain/common/language.dart'; -import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart'; +import 'package:cake_wallet/entities/language.dart'; +// import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart'; bool isThemeChangerRegistered = false; @@ -74,12 +79,9 @@ void main() async { final secureStorage = FlutterSecureStorage(); final transactionDescriptionsBoxKey = await getEncryptionKey( - secureStorage: secureStorage, - forKey: 'transactionDescriptionsBoxKey'); // FIXME: Unnamed constant + secureStorage: secureStorage, forKey: TransactionDescription.boxKey); final tradesBoxKey = await getEncryptionKey( - secureStorage: secureStorage, - forKey: 'tradesBoxKey'); // FIXME: Unnamed constant - + secureStorage: secureStorage, forKey: Trade.boxKey); final contacts = await Hive.openBox(Contact.boxName); final nodes = await Hive.openBox(Node.boxName); final transactionDescriptions = await Hive.openBox( @@ -93,35 +95,35 @@ void main() async { await Hive.openBox(ExchangeTemplate.boxName); final sharedPreferences = await SharedPreferences.getInstance(); - final walletService = WalletService(); - final fiatConvertationService = FiatConvertationService(); - final walletListService = WalletListService( - secureStorage: secureStorage, - walletInfoSource: walletInfoSource, - walletService: walletService, - sharedPreferences: sharedPreferences); - final userService = UserService( - sharedPreferences: sharedPreferences, secureStorage: secureStorage); - final settingsStore = await SettingsStoreBase.load( - nodes: nodes, - sharedPreferences: sharedPreferences, - initialFiatCurrency: FiatCurrency.usd, - initialTransactionPriority: TransactionPriority.slow, - initialBalanceDisplayMode: BalanceDisplayMode.availableBalance); - final priceStore = PriceStore(); - final walletStore = - WalletStore(walletService: walletService, settingsStore: settingsStore); - final syncStore = SyncStore(walletService: walletService); - final balanceStore = BalanceStore( - walletService: walletService, - settingsStore: settingsStore, - priceStore: priceStore); - final loginStore = LoginStore( - sharedPreferences: sharedPreferences, walletsService: walletListService); - final seedLanguageStore = SeedLanguageStore(); - final sendTemplateStore = SendTemplateStore(templateSource: templates); - final exchangeTemplateStore = - ExchangeTemplateStore(templateSource: exchangeTemplates); + // final walletService = WalletService(); + // final fiatConvertationService = FiatConvertationService(); + // final walletListService = WalletListService( + // secureStorage: secureStorage, + // walletInfoSource: walletInfoSource, + // walletService: walletService, + // sharedPreferences: sharedPreferences); + // final userService = UserService( + // sharedPreferences: sharedPreferences, secureStorage: secureStorage); + // final settingsStore = await SettingsStoreBase.load( + // nodes: nodes, + // sharedPreferences: sharedPreferences, + // initialFiatCurrency: FiatCurrency.usd, + // initialTransactionPriority: TransactionPriority.slow, + // initialBalanceDisplayMode: BalanceDisplayMode.availableBalance); + // final priceStore = PriceStore(); + // final walletStore = + // WalletStore(walletService: walletService, settingsStore: settingsStore); + // final syncStore = SyncStore(walletService: walletService); + // final balanceStore = BalanceStore( + // walletService: walletService, + // settingsStore: settingsStore, + // priceStore: priceStore); + // final loginStore = LoginStore( + // sharedPreferences: sharedPreferences, walletsService: walletListService); + // final seedLanguageStore = SeedLanguageStore(); + // final sendTemplateStore = SendTemplateStore(templateSource: templates); + // final exchangeTemplateStore = + // ExchangeTemplateStore(templateSource: exchangeTemplates); final walletCreationService = WalletCreationService(); final authService = AuthService(); @@ -132,42 +134,21 @@ void main() async { walletInfoSource: walletInfoSource, contactSource: contacts, tradesSource: trades, - fiatConvertationService: fiatConvertationService, + // fiatConvertationService: fiatConvertationService, templates: templates, exchangeTemplates: exchangeTemplates, initialMigrationVersion: 4); - setReactions( - settingsStore: settingsStore, - priceStore: priceStore, - syncStore: syncStore, - walletStore: walletStore, - walletService: walletService, -// authenticationStore: authenticationStore, - loginStore: loginStore); +// setReactions( +// settingsStore: settingsStore, +// priceStore: priceStore, +// syncStore: syncStore, +// walletStore: walletStore, +// walletService: walletService, +// // authenticationStore: authenticationStore, +// loginStore: loginStore); - runApp(MultiProvider(providers: [ - Provider(create: (_) => sharedPreferences), - Provider(create: (_) => walletService), - Provider(create: (_) => walletListService), - Provider(create: (_) => userService), - Provider(create: (_) => settingsStore), - Provider(create: (_) => priceStore), - Provider(create: (_) => walletStore), - Provider(create: (_) => syncStore), - Provider(create: (_) => balanceStore), -// Provider(create: (_) => authenticationStore), - Provider(create: (_) => contacts), - Provider(create: (_) => nodes), - Provider(create: (_) => transactionDescriptions), - Provider(create: (_) => trades), - Provider(create: (_) => seedLanguageStore), - Provider(create: (_) => sendTemplateStore), - Provider(create: (_) => exchangeTemplateStore), -// Provider(create: (_) => appStore), - Provider(create: (_) => walletCreationService), - Provider(create: (_) => authService) - ], child: CakeWalletApp())); + runApp(CakeWalletApp()); } Future initialSetup( @@ -176,7 +157,7 @@ Future initialSetup( @required Box walletInfoSource, @required Box contactSource, @required Box tradesSource, - @required FiatConvertationService fiatConvertationService, + // @required FiatConvertationService fiatConvertationService, @required Box