Merge branch 'main' into add-indonesian-language

This commit is contained in:
cppethereum 2023-03-01 10:04:47 -05:00 committed by GitHub
commit cf25878a61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
85 changed files with 3784 additions and 1419 deletions

View file

@ -21,7 +21,7 @@ jobs:
- name: Flutter action
uses: subosito/flutter-action@v1
with:
flutter-version: '3.3.x'
flutter-version: '3.7.x'
channel: stable
- name: Install package dependencies
@ -110,6 +110,7 @@ jobs:
echo "const onramperApiKey = '${{ secrets.ONRAMPER_API_KEY }}';" >> lib/.secrets.g.dart
echo "const anypayToken = '${{ secrets.ANY_PAY_TOKEN }}';" >> lib/.secrets.g.dart
echo "const ioniaClientId = '${{ secrets.IONIA_CLIENT_ID }}';" >> lib/.secrets.g.dart
echo "const twitterBearerToken = '${{ secrets.TWITTER_BEARER_TOKEN }}';" >> lib/.secrets.g.dart
- name: Rename app
run: sed -i -e "s/\${APP_NAME}/$GITHUB_HEAD_REF/g" /opt/android/cake_wallet/android/app/src/main/AndroidManifest.xml

View file

@ -90,12 +90,12 @@ Edit the applicable `strings_XX.arb` file in `res/values/` and open a pull reque
- French
- German
- Italian
- Portugese
- Portuguese
- Dutch
- Polish
- Croatian
- Russian
- Ukranian
- Ukrainian
- Hindi
- Japanese
- Chinese
@ -104,6 +104,9 @@ Edit the applicable `strings_XX.arb` file in `res/values/` and open a pull reque
- Arabic
- Turkish
- Burmese
- Urdu
- Bulgarian
- Czech
- Indonesian
## Add a new language

View file

@ -1,27 +0,0 @@
# Refund Policy
This Refund Policy covers returns, refunds, and cancellations for your purchases from Cake Technologies, LLC (“Company,” “we,” or “us”).
### Returns
We do not accept returns of cryptocurrencies. Once cryptocurrencies are delivered to the provided wallet address, we cannot accept a return. If we allow you to sell cryptocurrencies to us, you may optionally engage in another trade to convert the cryptocurrency to another asset at the price at that point in time.
### Refunds
We do not issue refunds except in the case of an error resulting in a non-delivery of cryptocurrencies. In this case, we will decide whether to complete the trade or refund the account. We endeavor to complete an investigation to determine whether an error occurred and to make this decision within ten (10) days of receipt of your error report, and we will do so in any case within ninety (90) days. We reserve the right to issue a refund for the equivalent amount in another asset at the exchange rate then offered by us should we determine an error occurred.
### Cancellations
Once you make a payment to us, trades cannot be cancelled. In nearly all cases, we deliver cryptocurrency to your address in a matter of seconds or minutes. If you have not received your purchased cryptocurrency within six (6) hours of completing payment and have confirmed that your wallet is connected to a reliable node and fully synchronized with the network, please contact us.
### Network Fees
We may charge a network fee for the delivery of cryptocurrencies. This will be clearly shown in the checkout page. If we issue a refund, we may choose to deduct any network fees from the refund, including any network fees incurred in processing the refund.
### Fraud
If you believe a cryptocurrency purchase was conducted fraudulently, please alert your bank or card issuer, as applicable, and follow their instructions. Please be aware that fraudulent transactions may result in the loss of your money with no recourse.
### Contact Us
If you believe that there has been an error in processing your payment, please contact us at support@cakewallet.com.

View file

@ -18,6 +18,8 @@ analyzer:
linter:
rules:
- cancel_subscriptions
- always_declare_return_types
- prefer_final_fields
# analyzer:

BIN
assets/images/flags/pak.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 899 B

View file

@ -17,7 +17,7 @@ int stringDoubleToBitcoinAmount(String amount) {
int result = 0;
try {
result = (double.parse(amount) * bitcoinAmountDivider).toInt();
result = (double.parse(amount) * bitcoinAmountDivider).round();
} catch (e) {
result = 0;
}

View file

@ -5,37 +5,42 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8"
url: "https://pub.dev"
source: hosted
version: "47.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80"
url: "https://pub.dev"
source: hosted
version: "4.7.0"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
version: "2.3.2"
asn1lib:
dependency: transitive
description:
name: asn1lib
url: "https://pub.dartlang.org"
sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.4.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.10.0"
bech32:
dependency: transitive
description:
@ -49,14 +54,16 @@ packages:
dependency: transitive
description:
name: bip32
url: "https://pub.dartlang.org"
sha256: "54787cd7a111e9d37394aabbf53d1fc5e2e0e0af2cd01c459147a97c0e3f8a97"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
bip39:
dependency: transitive
description:
name: bip39
url: "https://pub.dartlang.org"
sha256: de1ee27ebe7d96b84bb3a04a4132a0a3007dcdd5ad27dd14aa87a29d97c45edc
url: "https://pub.dev"
source: hosted
version: "1.0.6"
bitcoin_flutter:
@ -72,126 +79,144 @@ packages:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
bs58check:
dependency: transitive
description:
name: bs58check
url: "https://pub.dartlang.org"
sha256: c4a164d42b25c2f6bc88a8beccb9fc7d01440f3c60ba23663a20a70faf484ea9
url: "https://pub.dev"
source: hosted
version: "1.0.2"
build:
dependency: transitive
description:
name: build
url: "https://pub.dartlang.org"
sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
build_config:
dependency: transitive
description:
name: build_config
url: "https://pub.dartlang.org"
sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.1.1"
build_daemon:
dependency: transitive
description:
name: build_daemon
url: "https://pub.dartlang.org"
sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
build_resolvers:
dependency: "direct dev"
description:
name: build_resolvers
url: "https://pub.dartlang.org"
sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6"
url: "https://pub.dev"
source: hosted
version: "2.0.10"
build_runner:
dependency: "direct dev"
description:
name: build_runner
url: "https://pub.dartlang.org"
sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727
url: "https://pub.dev"
source: hosted
version: "2.2.1"
version: "2.3.3"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.dartlang.org"
sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292"
url: "https://pub.dev"
source: hosted
version: "7.2.4"
version: "7.2.7"
built_collection:
dependency: transitive
description:
name: built_collection
url: "https://pub.dartlang.org"
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.dartlang.org"
sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725"
url: "https://pub.dev"
source: hosted
version: "8.4.1"
version: "8.4.3"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted
version: "1.2.1"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
url: "https://pub.dartlang.org"
sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.0.2"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
url: "https://pub.dartlang.org"
sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe"
url: "https://pub.dev"
source: hosted
version: "4.3.0"
version: "4.4.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
sha256: "196284f26f69444b7f5c50692b55ec25da86d9e500451dc09333bf2e3ad69259"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted
version: "3.0.2"
cryptography:
dependency: "direct main"
description:
name: cryptography
url: "https://pub.dartlang.org"
sha256: e0e37f79665cd5c86e8897f9abe1accfe813c0cc5299dab22256e22fddc1fef8
url: "https://pub.dev"
source: hosted
version: "2.0.5"
cw_core:
@ -205,44 +230,50 @@ packages:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
url: "https://pub.dev"
source: hosted
version: "2.2.4"
encrypt:
dependency: "direct main"
description:
name: encrypt
url: "https://pub.dartlang.org"
sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb"
url: "https://pub.dev"
source: hosted
version: "5.0.1"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
url: "https://pub.dev"
source: hosted
version: "2.0.1"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.2"
version: "6.1.4"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.0.1"
version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
@ -252,9 +283,10 @@ packages:
dependency: "direct main"
description:
name: flutter_mobx
url: "https://pub.dartlang.org"
sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e"
url: "https://pub.dev"
source: hosted
version: "2.0.6+4"
version: "2.0.6+5"
flutter_test:
dependency: "direct dev"
description: flutter
@ -264,282 +296,306 @@ packages:
dependency: transitive
description:
name: frontend_server_client
url: "https://pub.dartlang.org"
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
version: "3.2.0"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.1.1"
graphs:
dependency: transitive
description:
name: graphs
url: "https://pub.dartlang.org"
sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.2.0"
hex:
dependency: transitive
description:
name: hex
url: "https://pub.dartlang.org"
sha256: "4e7cd54e4b59ba026432a6be2dd9d96e4c5205725194997193bf871703b82c4a"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
hive:
dependency: transitive
description:
name: hive
url: "https://pub.dartlang.org"
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
url: "https://pub.dev"
source: hosted
version: "2.2.3"
hive_generator:
dependency: "direct dev"
description:
name: hive_generator
url: "https://pub.dartlang.org"
sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938"
url: "https://pub.dev"
source: hosted
version: "1.1.3"
http:
dependency: "direct main"
description:
name: http
url: "https://pub.dartlang.org"
sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted
version: "0.13.5"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.dartlang.org"
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.1"
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
url: "https://pub.dartlang.org"
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
url: "https://pub.dev"
source: hosted
version: "0.17.0"
io:
dependency: transitive
description:
name: io
url: "https://pub.dartlang.org"
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
version: "1.0.4"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted
version: "0.6.3"
version: "0.6.5"
json_annotation:
dependency: transitive
description:
name: json_annotation
url: "https://pub.dartlang.org"
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
url: "https://pub.dev"
source: hosted
version: "4.7.0"
version: "4.8.0"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.1.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted
version: "0.12.12"
version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
url: "https://pub.dartlang.org"
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.1"
version: "1.0.4"
mobx:
dependency: "direct main"
description:
name: mobx
url: "https://pub.dartlang.org"
sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3+1"
mobx_codegen:
dependency: "direct dev"
description:
name: mobx_codegen
url: "https://pub.dartlang.org"
sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181"
url: "https://pub.dev"
source: hosted
version: "2.0.7+3"
version: "2.1.1"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted
version: "1.8.2"
path_provider:
dependency: "direct main"
description:
name: path_provider
url: "https://pub.dartlang.org"
sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.0.12"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
url: "https://pub.dartlang.org"
sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e
url: "https://pub.dev"
source: hosted
version: "2.0.20"
path_provider_ios:
version: "2.0.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_ios
url: "https://pub.dartlang.org"
name: path_provider_foundation
sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74"
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.1.1"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
url: "https://pub.dev"
source: hosted
version: "2.1.7"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
url: "https://pub.dev"
source: hosted
version: "2.0.5"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c
url: "https://pub.dev"
source: hosted
version: "2.1.3"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
url: "https://pub.dev"
source: hosted
version: "2.1.3"
pointycastle:
dependency: transitive
description:
name: pointycastle
url: "https://pub.dartlang.org"
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
url: "https://pub.dev"
source: hosted
version: "3.6.2"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
version: "1.5.1"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.3"
version: "4.2.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
url: "https://pub.dartlang.org"
sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
rxdart:
dependency: "direct main"
description:
name: rxdart
url: "https://pub.dartlang.org"
sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
url: "https://pub.dev"
source: hosted
version: "0.27.5"
version: "0.27.7"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.dartlang.org"
sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
url: "https://pub.dev"
source: hosted
version: "1.4.0"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.0.3"
sky_engine:
dependency: transitive
description: flutter
@ -549,128 +605,146 @@ packages:
dependency: transitive
description:
name: source_gen
url: "https://pub.dartlang.org"
sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
url: "https://pub.dev"
source: hosted
version: "1.2.5"
version: "1.2.6"
source_helper:
dependency: transitive
description:
name: source_helper
url: "https://pub.dartlang.org"
sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
stream_transform:
dependency: transitive
description:
name: stream_transform
url: "https://pub.dartlang.org"
sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted
version: "0.4.12"
version: "0.4.16"
timing:
dependency: transitive
description:
name: timing
url: "https://pub.dartlang.org"
sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.1"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted
version: "1.3.0"
version: "1.3.1"
unorm_dart:
dependency: "direct main"
description:
name: unorm_dart
url: "https://pub.dartlang.org"
sha256: "5b35bff83fce4d76467641438f9e867dc9bcfdb8c1694854f230579d68cd8f4b"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
version: "2.1.4"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.2"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
version: "2.3.0"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
url: "https://pub.dev"
source: hosted
version: "3.0.0"
version: "3.1.3"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
url: "https://pub.dev"
source: hosted
version: "0.2.0+2"
version: "0.2.0+3"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
version: "3.1.1"
sdks:
dart: ">=2.17.5 <3.0.0"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.0.0"

View file

@ -119,7 +119,7 @@ class CryptoCurrency extends EnumerableItem<int> with Serializable<int> {
static const ape = CryptoCurrency(title: 'APE', tag: 'ETH', fullName: 'ApeCoin', raw: 30, name: 'ape', iconPath: 'assets/images/ape_icon.png');
static const avaxc = CryptoCurrency(title: 'AVAX', tag: 'C-CHAIN', raw: 31, name: 'avaxc', iconPath: 'assets/images/avaxc_icon.png');
static const btt = CryptoCurrency(title: 'BTT', tag: 'ETH', fullName: 'BitTorrent', raw: 32, name: 'btt', iconPath: 'assets/images/btt_icon.png');
static const bttc = CryptoCurrency(title: 'BTTC', tag: 'BSC', fullName: 'BitTorrent-NEW', raw: 33, name: 'bttc', iconPath: 'assets/images/bttbsc_icon.png');
static const bttc = CryptoCurrency(title: 'BTTC', tag: 'TRX', fullName: 'BitTorrent-NEW', raw: 33, name: 'bttc', iconPath: 'assets/images/bttbsc_icon.png');
static const doge = CryptoCurrency(title: 'DOGE', fullName: 'Dogecoin', raw: 34, name: 'doge', iconPath: 'assets/images/doge_icon.png');
static const firo = CryptoCurrency(title: 'FIRO', raw: 35, name: 'firo', iconPath: 'assets/images/firo_icon.png');
static const usdttrc20 = CryptoCurrency(title: 'USDT', tag: 'TRX', fullName: 'USDT Tether', raw: 36, name: 'usdttrc20', iconPath: 'assets/images/usdttrc20_icon.png');

View file

@ -15,4 +15,4 @@ double moneroAmountToDouble({required int amount}) =>
cryptoAmountToDouble(amount: amount, divider: moneroAmountDivider);
int moneroParseAmount({required String amount}) =>
(double.parse(amount) * moneroAmountDivider).toInt();
(double.parse(amount) * moneroAmountDivider).round();

View file

@ -5,191 +5,218 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8"
url: "https://pub.dev"
source: hosted
version: "47.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80"
url: "https://pub.dev"
source: hosted
version: "4.7.0"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
version: "2.3.2"
asn1lib:
dependency: transitive
description:
name: asn1lib
url: "https://pub.dartlang.org"
sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.4.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.10.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
build:
dependency: transitive
description:
name: build
url: "https://pub.dartlang.org"
sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
build_config:
dependency: transitive
description:
name: build_config
url: "https://pub.dartlang.org"
sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.1.1"
build_daemon:
dependency: transitive
description:
name: build_daemon
url: "https://pub.dartlang.org"
sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
build_resolvers:
dependency: "direct dev"
description:
name: build_resolvers
url: "https://pub.dartlang.org"
sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6"
url: "https://pub.dev"
source: hosted
version: "2.0.10"
build_runner:
dependency: "direct dev"
description:
name: build_runner
url: "https://pub.dartlang.org"
sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727
url: "https://pub.dev"
source: hosted
version: "2.2.1"
version: "2.3.3"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.dartlang.org"
sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292"
url: "https://pub.dev"
source: hosted
version: "7.2.4"
version: "7.2.7"
built_collection:
dependency: transitive
description:
name: built_collection
url: "https://pub.dartlang.org"
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.dartlang.org"
sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725"
url: "https://pub.dev"
source: hosted
version: "8.1.3"
version: "8.4.3"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted
version: "1.2.1"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
url: "https://pub.dartlang.org"
sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.0.2"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
url: "https://pub.dartlang.org"
sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe"
url: "https://pub.dev"
source: hosted
version: "4.3.0"
version: "4.4.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted
version: "3.0.2"
dart_style:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
url: "https://pub.dev"
source: hosted
version: "2.2.4"
encrypt:
dependency: "direct main"
description:
name: encrypt
url: "https://pub.dartlang.org"
sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb"
url: "https://pub.dev"
source: hosted
version: "5.0.1"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978
url: "https://pub.dev"
source: hosted
version: "2.0.1"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.2"
version: "6.1.4"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
@ -199,9 +226,10 @@ packages:
dependency: "direct main"
description:
name: flutter_mobx
url: "https://pub.dartlang.org"
sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e"
url: "https://pub.dev"
source: hosted
version: "2.0.6+4"
version: "2.0.6+5"
flutter_test:
dependency: "direct dev"
description: flutter
@ -211,268 +239,290 @@ packages:
dependency: transitive
description:
name: frontend_server_client
url: "https://pub.dartlang.org"
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
version: "3.2.0"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.1.1"
graphs:
dependency: transitive
description:
name: graphs
url: "https://pub.dartlang.org"
sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.2.0"
hive:
dependency: transitive
description:
name: hive
url: "https://pub.dartlang.org"
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
url: "https://pub.dev"
source: hosted
version: "2.2.3"
hive_generator:
dependency: "direct dev"
description:
name: hive_generator
url: "https://pub.dartlang.org"
sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938"
url: "https://pub.dev"
source: hosted
version: "1.1.3"
http:
dependency: "direct main"
description:
name: http
url: "https://pub.dartlang.org"
sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted
version: "0.13.5"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.dartlang.org"
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.1"
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
url: "https://pub.dartlang.org"
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
url: "https://pub.dev"
source: hosted
version: "0.17.0"
io:
dependency: transitive
description:
name: io
url: "https://pub.dartlang.org"
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
version: "1.0.4"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted
version: "0.6.3"
version: "0.6.5"
json_annotation:
dependency: transitive
description:
name: json_annotation
url: "https://pub.dartlang.org"
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
url: "https://pub.dev"
source: hosted
version: "4.6.0"
version: "4.8.0"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.1.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted
version: "0.12.12"
version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
url: "https://pub.dartlang.org"
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.1"
version: "1.0.4"
mobx:
dependency: "direct main"
description:
name: mobx
url: "https://pub.dartlang.org"
sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3+1"
mobx_codegen:
dependency: "direct dev"
description:
name: mobx_codegen
url: "https://pub.dartlang.org"
sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181"
url: "https://pub.dev"
source: hosted
version: "2.0.7+3"
version: "2.1.1"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted
version: "1.8.2"
path_provider:
dependency: "direct main"
description:
name: path_provider
url: "https://pub.dartlang.org"
sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.0.12"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
url: "https://pub.dartlang.org"
sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e
url: "https://pub.dev"
source: hosted
version: "2.0.20"
path_provider_ios:
version: "2.0.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_ios
url: "https://pub.dartlang.org"
name: path_provider_foundation
sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74"
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.1.1"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
url: "https://pub.dev"
source: hosted
version: "2.1.7"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
url: "https://pub.dev"
source: hosted
version: "2.0.4"
version: "2.0.5"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c
url: "https://pub.dev"
source: hosted
version: "2.1.3"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
url: "https://pub.dev"
source: hosted
version: "2.1.3"
pointycastle:
dependency: transitive
description:
name: pointycastle
url: "https://pub.dartlang.org"
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
url: "https://pub.dev"
source: hosted
version: "3.6.2"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
version: "1.5.1"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.3"
version: "4.2.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
url: "https://pub.dartlang.org"
sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.dartlang.org"
sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
version: "1.4.0"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.0.3"
sky_engine:
dependency: transitive
description: flutter
@ -482,121 +532,138 @@ packages:
dependency: transitive
description:
name: source_gen
url: "https://pub.dartlang.org"
sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
url: "https://pub.dev"
source: hosted
version: "1.2.3"
version: "1.2.6"
source_helper:
dependency: transitive
description:
name: source_helper
url: "https://pub.dartlang.org"
sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
stream_transform:
dependency: transitive
description:
name: stream_transform
url: "https://pub.dartlang.org"
sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted
version: "0.4.12"
version: "0.4.16"
timing:
dependency: transitive
description:
name: timing
url: "https://pub.dartlang.org"
sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.1"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted
version: "1.3.0"
version: "1.3.1"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
version: "2.1.4"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.2"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
version: "2.3.0"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
url: "https://pub.dev"
source: hosted
version: "3.0.0"
version: "3.1.3"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
url: "https://pub.dev"
source: hosted
version: "0.2.0+2"
version: "0.2.0+3"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
version: "3.1.1"
sdks:
dart: ">=2.17.5 <3.0.0"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.0.0"

View file

@ -8,7 +8,8 @@ import 'package:cw_haven/api/transaction_history.dart';
class HavenTransactionInfo extends TransactionInfo {
HavenTransactionInfo(this.id, this.height, this.direction, this.date,
this.isPending, this.amount, this.accountIndex, this.addressIndex, this.fee);
this.isPending, this.amount, this.accountIndex, this.addressIndex, this.fee,
this.confirmations);
HavenTransactionInfo.fromMap(Map<String, Object> map)
: id = (map['hash'] ?? '') as String,
@ -22,6 +23,7 @@ class HavenTransactionInfo extends TransactionInfo {
amount = map['amount'] as int,
accountIndex = int.parse(map['accountIndex'] as String),
addressIndex = map['addressIndex'] as int,
confirmations = map['confirmations'] as int,
key = getTxKey((map['hash'] ?? '') as String),
fee = map['fee'] as int? ?? 0;
@ -35,6 +37,7 @@ class HavenTransactionInfo extends TransactionInfo {
amount = row.getAmount(),
accountIndex = row.subaddrAccount,
addressIndex = row.subaddrIndex,
confirmations = row.confirmations,
key = null, //getTxKey(row.getHash()),
fee = row.fee,
assetType = row.getAssetType();
@ -48,6 +51,7 @@ class HavenTransactionInfo extends TransactionInfo {
final int amount;
final int fee;
final int addressIndex;
final int confirmations;
late String recipientAddress;
late String assetType;
String? _fiatAmount;

View file

@ -5,147 +5,168 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8"
url: "https://pub.dev"
source: hosted
version: "47.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80"
url: "https://pub.dev"
source: hosted
version: "4.7.0"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
version: "2.3.2"
asn1lib:
dependency: transitive
description:
name: asn1lib
url: "https://pub.dartlang.org"
sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.4.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.10.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
build:
dependency: transitive
description:
name: build
url: "https://pub.dartlang.org"
sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
build_config:
dependency: transitive
description:
name: build_config
url: "https://pub.dartlang.org"
sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.1.1"
build_daemon:
dependency: transitive
description:
name: build_daemon
url: "https://pub.dartlang.org"
sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
build_resolvers:
dependency: "direct dev"
description:
name: build_resolvers
url: "https://pub.dartlang.org"
sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6"
url: "https://pub.dev"
source: hosted
version: "2.0.10"
build_runner:
dependency: "direct dev"
description:
name: build_runner
url: "https://pub.dartlang.org"
sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727
url: "https://pub.dev"
source: hosted
version: "2.2.1"
version: "2.3.3"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.dartlang.org"
sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292"
url: "https://pub.dev"
source: hosted
version: "7.2.4"
version: "7.2.7"
built_collection:
dependency: transitive
description:
name: built_collection
url: "https://pub.dartlang.org"
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.dartlang.org"
sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725"
url: "https://pub.dev"
source: hosted
version: "8.1.4"
version: "8.4.3"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted
version: "1.2.1"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
url: "https://pub.dartlang.org"
sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.0.2"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
url: "https://pub.dartlang.org"
sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe"
url: "https://pub.dev"
source: hosted
version: "4.3.0"
version: "4.4.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted
version: "3.0.2"
cw_core:
@ -159,44 +180,50 @@ packages:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
url: "https://pub.dev"
source: hosted
version: "2.2.4"
encrypt:
dependency: transitive
description:
name: encrypt
url: "https://pub.dartlang.org"
sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb"
url: "https://pub.dev"
source: hosted
version: "5.0.1"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: "direct main"
description:
name: ffi
url: "https://pub.dartlang.org"
sha256: "13a6ccf6a459a125b3fcdb6ec73bd5ff90822e071207c663bfd1f70062d51d18"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.2"
version: "6.1.4"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
@ -206,9 +233,10 @@ packages:
dependency: "direct main"
description:
name: flutter_mobx
url: "https://pub.dartlang.org"
sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e"
url: "https://pub.dev"
source: hosted
version: "2.0.6+4"
version: "2.0.6+5"
flutter_test:
dependency: "direct dev"
description: flutter
@ -218,268 +246,290 @@ packages:
dependency: transitive
description:
name: frontend_server_client
url: "https://pub.dartlang.org"
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
version: "3.2.0"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.1.1"
graphs:
dependency: transitive
description:
name: graphs
url: "https://pub.dartlang.org"
sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.2.0"
hive:
dependency: transitive
description:
name: hive
url: "https://pub.dartlang.org"
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
url: "https://pub.dev"
source: hosted
version: "2.2.3"
hive_generator:
dependency: "direct dev"
description:
name: hive_generator
url: "https://pub.dartlang.org"
sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938"
url: "https://pub.dev"
source: hosted
version: "1.1.3"
http:
dependency: "direct main"
description:
name: http
url: "https://pub.dartlang.org"
sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted
version: "0.13.5"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.dartlang.org"
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.1"
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
url: "https://pub.dartlang.org"
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
url: "https://pub.dev"
source: hosted
version: "0.17.0"
io:
dependency: transitive
description:
name: io
url: "https://pub.dartlang.org"
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
version: "1.0.4"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted
version: "0.6.3"
version: "0.6.5"
json_annotation:
dependency: transitive
description:
name: json_annotation
url: "https://pub.dartlang.org"
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
url: "https://pub.dev"
source: hosted
version: "4.6.0"
version: "4.8.0"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.1.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted
version: "0.12.12"
version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
url: "https://pub.dartlang.org"
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.1"
version: "1.0.4"
mobx:
dependency: "direct main"
description:
name: mobx
url: "https://pub.dartlang.org"
sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3+1"
mobx_codegen:
dependency: "direct dev"
description:
name: mobx_codegen
url: "https://pub.dartlang.org"
sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181"
url: "https://pub.dev"
source: hosted
version: "2.0.7+3"
version: "2.1.1"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted
version: "1.8.2"
path_provider:
dependency: "direct main"
description:
name: path_provider
url: "https://pub.dartlang.org"
sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.0.12"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
url: "https://pub.dartlang.org"
sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e
url: "https://pub.dev"
source: hosted
version: "2.0.20"
path_provider_ios:
version: "2.0.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_ios
url: "https://pub.dartlang.org"
name: path_provider_foundation
sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74"
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.1.1"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
url: "https://pub.dev"
source: hosted
version: "2.1.7"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
url: "https://pub.dev"
source: hosted
version: "2.0.4"
version: "2.0.5"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
sha256: a34ecd7fb548f8e57321fd8e50d865d266941b54e6c3b7758cf8f37c24116905
url: "https://pub.dev"
source: hosted
version: "2.0.7"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
version: "3.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
url: "https://pub.dev"
source: hosted
version: "2.1.3"
pointycastle:
dependency: transitive
description:
name: pointycastle
url: "https://pub.dartlang.org"
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
url: "https://pub.dev"
source: hosted
version: "3.6.2"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
version: "1.5.1"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.3"
version: "4.2.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
url: "https://pub.dartlang.org"
sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.dartlang.org"
sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
version: "1.4.0"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.0.3"
sky_engine:
dependency: transitive
description: flutter
@ -489,121 +539,138 @@ packages:
dependency: transitive
description:
name: source_gen
url: "https://pub.dartlang.org"
sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
url: "https://pub.dev"
source: hosted
version: "1.2.3"
version: "1.2.6"
source_helper:
dependency: transitive
description:
name: source_helper
url: "https://pub.dartlang.org"
sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
stream_transform:
dependency: transitive
description:
name: stream_transform
url: "https://pub.dartlang.org"
sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted
version: "0.4.12"
version: "0.4.16"
timing:
dependency: transitive
description:
name: timing
url: "https://pub.dartlang.org"
sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.1"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted
version: "1.3.0"
version: "1.3.1"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
version: "2.1.4"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.2"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
version: "2.3.0"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
sha256: c0e3a4f7be7dae51d8f152230b86627e3397c1ba8c3fa58e63d44a9f3edc9cef
url: "https://pub.dev"
source: hosted
version: "2.6.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
url: "https://pub.dev"
source: hosted
version: "0.2.0+2"
version: "0.2.0+3"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
version: "3.1.1"
sdks:
dart: ">=2.17.5 <3.0.0"
flutter: ">=2.8.1"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.0.0"

View file

@ -8,7 +8,8 @@ import 'package:cw_monero/api/transaction_history.dart';
class MoneroTransactionInfo extends TransactionInfo {
MoneroTransactionInfo(this.id, this.height, this.direction, this.date,
this.isPending, this.amount, this.accountIndex, this.addressIndex, this.fee);
this.isPending, this.amount, this.accountIndex, this.addressIndex, this.fee,
this.confirmations);
MoneroTransactionInfo.fromMap(Map<String, Object?> map)
: id = (map['hash'] ?? '') as String,
@ -22,6 +23,7 @@ class MoneroTransactionInfo extends TransactionInfo {
amount = map['amount'] as int,
accountIndex = int.parse(map['accountIndex'] as String),
addressIndex = map['addressIndex'] as int,
confirmations = map['confirmations'] as int,
key = getTxKey((map['hash'] ?? '') as String),
fee = map['fee'] as int ?? 0 {
additionalInfo = <String, dynamic>{
@ -41,6 +43,7 @@ class MoneroTransactionInfo extends TransactionInfo {
amount = row.getAmount(),
accountIndex = row.subaddrAccount,
addressIndex = row.subaddrIndex,
confirmations = row.confirmations,
key = getTxKey(row.getHash()),
fee = row.fee {
additionalInfo = <String, dynamic>{
@ -59,6 +62,7 @@ class MoneroTransactionInfo extends TransactionInfo {
final int amount;
final int fee;
final int addressIndex;
final int confirmations;
String? recipientAddress;
String? key;
String? _fiatAmount;

View file

@ -5,147 +5,168 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8"
url: "https://pub.dev"
source: hosted
version: "47.0.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80"
url: "https://pub.dev"
source: hosted
version: "4.7.0"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
version: "2.3.2"
asn1lib:
dependency: transitive
description:
name: asn1lib
url: "https://pub.dartlang.org"
sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.4.0"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.10.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
build:
dependency: transitive
description:
name: build
url: "https://pub.dartlang.org"
sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777"
url: "https://pub.dev"
source: hosted
version: "2.3.1"
build_config:
dependency: transitive
description:
name: build_config
url: "https://pub.dartlang.org"
sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.1.1"
build_daemon:
dependency: transitive
description:
name: build_daemon
url: "https://pub.dartlang.org"
sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
build_resolvers:
dependency: "direct dev"
description:
name: build_resolvers
url: "https://pub.dartlang.org"
sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6"
url: "https://pub.dev"
source: hosted
version: "2.0.10"
build_runner:
dependency: "direct dev"
description:
name: build_runner
url: "https://pub.dartlang.org"
sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727
url: "https://pub.dev"
source: hosted
version: "2.2.1"
version: "2.3.3"
build_runner_core:
dependency: transitive
description:
name: build_runner_core
url: "https://pub.dartlang.org"
sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292"
url: "https://pub.dev"
source: hosted
version: "7.2.4"
version: "7.2.7"
built_collection:
dependency: transitive
description:
name: built_collection
url: "https://pub.dartlang.org"
sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100"
url: "https://pub.dev"
source: hosted
version: "5.1.1"
built_value:
dependency: transitive
description:
name: built_value
url: "https://pub.dartlang.org"
sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725"
url: "https://pub.dev"
source: hosted
version: "8.1.3"
version: "8.4.3"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
url: "https://pub.dev"
source: hosted
version: "1.2.1"
checked_yaml:
dependency: transitive
description:
name: checked_yaml
url: "https://pub.dartlang.org"
sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.0.2"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
url: "https://pub.dev"
source: hosted
version: "1.1.1"
code_builder:
dependency: transitive
description:
name: code_builder
url: "https://pub.dartlang.org"
sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe"
url: "https://pub.dev"
source: hosted
version: "4.3.0"
version: "4.4.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.17.0"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
version: "3.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
url: "https://pub.dev"
source: hosted
version: "3.0.2"
cw_core:
@ -159,44 +180,50 @@ packages:
dependency: transitive
description:
name: dart_style
url: "https://pub.dartlang.org"
sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4"
url: "https://pub.dev"
source: hosted
version: "2.2.4"
encrypt:
dependency: "direct main"
description:
name: encrypt
url: "https://pub.dartlang.org"
sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb"
url: "https://pub.dev"
source: hosted
version: "5.0.1"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: "direct main"
description:
name: ffi
url: "https://pub.dartlang.org"
sha256: "13a6ccf6a459a125b3fcdb6ec73bd5ff90822e071207c663bfd1f70062d51d18"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
url: "https://pub.dev"
source: hosted
version: "6.1.2"
version: "6.1.4"
fixnum:
dependency: transitive
description:
name: fixnum
url: "https://pub.dartlang.org"
sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
@ -206,9 +233,10 @@ packages:
dependency: "direct main"
description:
name: flutter_mobx
url: "https://pub.dartlang.org"
sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e"
url: "https://pub.dev"
source: hosted
version: "2.0.6+4"
version: "2.0.6+5"
flutter_test:
dependency: "direct dev"
description: flutter
@ -218,268 +246,290 @@ packages:
dependency: transitive
description:
name: frontend_server_client
url: "https://pub.dartlang.org"
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
url: "https://pub.dev"
source: hosted
version: "2.1.3"
version: "3.2.0"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
version: "2.1.1"
graphs:
dependency: transitive
description:
name: graphs
url: "https://pub.dartlang.org"
sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.2.0"
hive:
dependency: transitive
description:
name: hive
url: "https://pub.dartlang.org"
sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941"
url: "https://pub.dev"
source: hosted
version: "2.2.3"
hive_generator:
dependency: "direct dev"
description:
name: hive_generator
url: "https://pub.dartlang.org"
sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938"
url: "https://pub.dev"
source: hosted
version: "1.1.3"
http:
dependency: "direct main"
description:
name: http
url: "https://pub.dartlang.org"
sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482"
url: "https://pub.dev"
source: hosted
version: "0.13.5"
http_multi_server:
dependency: transitive
description:
name: http_multi_server
url: "https://pub.dartlang.org"
sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
url: "https://pub.dev"
source: hosted
version: "3.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
url: "https://pub.dartlang.org"
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.1"
version: "4.0.2"
intl:
dependency: "direct main"
description:
name: intl
url: "https://pub.dartlang.org"
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
url: "https://pub.dev"
source: hosted
version: "0.17.0"
io:
dependency: transitive
description:
name: io
url: "https://pub.dartlang.org"
sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
url: "https://pub.dev"
source: hosted
version: "1.0.3"
version: "1.0.4"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
url: "https://pub.dev"
source: hosted
version: "0.6.3"
version: "0.6.5"
json_annotation:
dependency: transitive
description:
name: json_annotation
url: "https://pub.dartlang.org"
sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
url: "https://pub.dev"
source: hosted
version: "4.6.0"
version: "4.8.0"
logging:
dependency: transitive
description:
name: logging
url: "https://pub.dartlang.org"
sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d"
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.1.1"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
url: "https://pub.dev"
source: hosted
version: "0.12.12"
version: "0.12.13"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.1.5"
version: "0.2.0"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
url: "https://pub.dev"
source: hosted
version: "1.8.0"
mime:
dependency: transitive
description:
name: mime
url: "https://pub.dartlang.org"
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.1"
version: "1.0.4"
mobx:
dependency: "direct main"
description:
name: mobx
url: "https://pub.dartlang.org"
sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3+1"
mobx_codegen:
dependency: "direct dev"
description:
name: mobx_codegen
url: "https://pub.dartlang.org"
sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181"
url: "https://pub.dev"
source: hosted
version: "2.0.7+3"
version: "2.1.1"
package_config:
dependency: transitive
description:
name: package_config
url: "https://pub.dartlang.org"
sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
url: "https://pub.dev"
source: hosted
version: "1.8.2"
path_provider:
dependency: "direct main"
description:
name: path_provider
url: "https://pub.dartlang.org"
sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.0.12"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
url: "https://pub.dartlang.org"
sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e
url: "https://pub.dev"
source: hosted
version: "2.0.20"
path_provider_ios:
version: "2.0.22"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_ios
url: "https://pub.dartlang.org"
name: path_provider_foundation
sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74"
url: "https://pub.dev"
source: hosted
version: "2.0.11"
version: "2.1.1"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379
url: "https://pub.dev"
source: hosted
version: "2.1.7"
path_provider_macos:
dependency: transitive
description:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76
url: "https://pub.dev"
source: hosted
version: "2.0.4"
version: "2.0.5"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
sha256: a34ecd7fb548f8e57321fd8e50d865d266941b54e6c3b7758cf8f37c24116905
url: "https://pub.dev"
source: hosted
version: "2.0.7"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.11.1"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
url: "https://pub.dev"
source: hosted
version: "2.1.3"
pointycastle:
dependency: transitive
description:
name: pointycastle
url: "https://pub.dartlang.org"
sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
url: "https://pub.dev"
source: hosted
version: "3.6.2"
pool:
dependency: transitive
description:
name: pool
url: "https://pub.dartlang.org"
sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
url: "https://pub.dev"
source: hosted
version: "1.5.0"
version: "1.5.1"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
url: "https://pub.dev"
source: hosted
version: "4.2.4"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.dartlang.org"
sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.3"
pubspec_parse:
dependency: transitive
description:
name: pubspec_parse
url: "https://pub.dartlang.org"
sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
shelf:
dependency: transitive
description:
name: shelf
url: "https://pub.dartlang.org"
sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
version: "1.4.0"
shelf_web_socket:
dependency: transitive
description:
name: shelf_web_socket
url: "https://pub.dartlang.org"
sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8
url: "https://pub.dev"
source: hosted
version: "1.0.2"
version: "1.0.3"
sky_engine:
dependency: transitive
description: flutter
@ -489,121 +539,138 @@ packages:
dependency: transitive
description:
name: source_gen
url: "https://pub.dartlang.org"
sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d"
url: "https://pub.dev"
source: hosted
version: "1.2.3"
version: "1.2.6"
source_helper:
dependency: transitive
description:
name: source_helper
url: "https://pub.dartlang.org"
sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f"
url: "https://pub.dev"
source: hosted
version: "1.3.3"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "2.1.1"
stream_transform:
dependency: transitive
description:
name: stream_transform
url: "https://pub.dartlang.org"
sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
url: "https://pub.dev"
source: hosted
version: "0.4.12"
version: "0.4.16"
timing:
dependency: transitive
description:
name: timing
url: "https://pub.dartlang.org"
sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.1"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5"
url: "https://pub.dev"
source: hosted
version: "1.3.0"
version: "1.3.1"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
version: "2.1.4"
watcher:
dependency: transitive
description:
name: watcher
url: "https://pub.dartlang.org"
sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
version: "1.0.2"
web_socket_channel:
dependency: transitive
description:
name: web_socket_channel
url: "https://pub.dartlang.org"
sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b
url: "https://pub.dev"
source: hosted
version: "2.2.0"
version: "2.3.0"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
sha256: c0e3a4f7be7dae51d8f152230b86627e3397c1ba8c3fa58e63d44a9f3edc9cef
url: "https://pub.dev"
source: hosted
version: "2.6.1"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86
url: "https://pub.dev"
source: hosted
version: "0.2.0+2"
version: "0.2.0+3"
yaml:
dependency: transitive
description:
name: yaml
url: "https://pub.dartlang.org"
sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370"
url: "https://pub.dev"
source: hosted
version: "3.1.0"
version: "3.1.1"
sdks:
dart: ">=2.17.5 <3.0.0"
flutter: ">=2.8.1"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.0.0"

View file

@ -57,7 +57,7 @@ class AnyPayPayment {
List<String> get outAddresses {
return instructions
.map((instuction) => instuction.outputs.map((out) => out.address))
.map((instruction) => instruction.outputs.map((out) => out.address))
.expand((e) => e)
.toList();
}

View file

@ -80,7 +80,7 @@ class AnyPayApi {
final response = await post(Uri.parse(uri), headers: headers, body: utf8.encode(json.encode(body)));
if (response.statusCode == 400) {
final decodedBody = json.decode(response.body) as Map<String, dynamic>;
throw Exception(decodedBody['message'] as String);
throw Exception(decodedBody['message'] as String? ?? 'Unexpected response\nError code: 400');
}
if (response.statusCode != 200) {

View file

@ -198,4 +198,26 @@ class AddressValidator extends TextValidator {
return [];
}
}
static String? getAddressFromStringPattern(CryptoCurrency type) {
switch (type) {
case CryptoCurrency.xmr:
return '([^0-9a-zA-Z]|^)4[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)8[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)[0-9a-zA-Z]{106}([^0-9a-zA-Z]|\$)';
case CryptoCurrency.btc:
return '([^0-9a-zA-Z]|^)1[0-9a-zA-Z]{32}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)1[0-9a-zA-Z]{33}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)3[0-9a-zA-Z]{32}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)3[0-9a-zA-Z]{33}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)bc1[0-9a-zA-Z]{39}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)bc1[0-9a-zA-Z]{59}([^0-9a-zA-Z]|\$)';
case CryptoCurrency.ltc:
return '([^0-9a-zA-Z]|^)^L[a-zA-Z0-9]{26,33}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)[LM][a-km-zA-HJ-NP-Z1-9]{26,33}([^0-9a-zA-Z]|\$)'
'|([^0-9a-zA-Z]|^)ltc[a-zA-Z0-9]{26,45}([^0-9a-zA-Z]|\$)';
default:
return null;
}
}
}

View file

@ -22,13 +22,13 @@ class WalletLoadingService {
final wallet = await walletService.openWallet(name, password);
if (type == WalletType.monero) {
await upateMoneroWalletPassword(wallet);
await updateMoneroWalletPassword(wallet);
}
return wallet;
}
Future<void> upateMoneroWalletPassword(WalletBase wallet) async {
Future<void> updateMoneroWalletPassword(WalletBase wallet) async {
final key = PreferencesKey.moneroWalletUpdateV1Key(wallet.name);
var isPasswordUpdated = sharedPreferences.getBool(key) ?? false;
@ -37,8 +37,8 @@ class WalletLoadingService {
}
final password = generateWalletPassword();
// Save new generated password with backup key for case
// if wallet will change password, but it will faild to updated in secure storage
// Save new generated password with backup key for case where
// wallet will change password, but it will fail to update in secure storage
final bakWalletName = '#__${wallet.name}_bak__#';
await keyService.saveWalletPassword(walletName: bakWalletName, password: password);
await wallet.changePassword(password);

View file

@ -23,7 +23,10 @@ class LanguageService {
'ar': 'العربية (Arabic)',
'tr': 'Türkçe (Turkish)',
'my': 'မြန်မာ (Burmese)',
'id': 'Bahasa Indonesia (Indonesian)',
'bg': 'Български (Bulgarian)',
'cs': 'čeština (Czech)',
'ur': 'اردو (Urdu)',
'id': 'Bahasa Indonesia (Indonesian)'
};
static const Map<String, String> localeCountryCode = {
@ -46,7 +49,10 @@ class LanguageService {
'ar': 'sau',
'tr': 'tur',
'my': 'mmr',
'id': 'idn',
'bg': 'bgr',
'cs': 'czk',
'ur': 'pak',
'id': 'idn'
};
static final list = <String, String> {};

View file

@ -1,5 +1,4 @@
import 'package:basic_utils/basic_utils.dart';
import 'package:cw_core/wallet_type.dart';
class OpenaliasRecord {
OpenaliasRecord({
@ -22,26 +21,30 @@ class OpenaliasRecord {
return formattedName;
}
static Future<OpenaliasRecord> fetchAddressAndName({
static Future<List<RRecord>?> lookupOpenAliasRecord(String name) async {
try {
final txtRecord = await DnsUtils.lookupRecord(name, RRecordType.TXT, dnssec: true);
return txtRecord;
} catch (e) {
print("${e.toString()}");
return null;
}
}
static OpenaliasRecord fetchAddressAndName({
required String formattedName,
required String ticker,
}) async {
required List<RRecord> txtRecord,
}) {
String address = formattedName;
String name = formattedName;
String note = '';
if (formattedName.contains(".")) {
try {
final txtRecord = await DnsUtils.lookupRecord(
formattedName, RRecordType.TXT,
dnssec: true);
if (txtRecord != null) {
for (RRecord element in txtRecord) {
String record = element.data;
if (record.contains("oa1:$ticker") &&
record.contains("recipient_address")) {
if (record.contains("oa1:$ticker") && record.contains("recipient_address")) {
record = record.replaceAll('\"', "");
final dataList = record.split(";");
@ -78,13 +81,8 @@ class OpenaliasRecord {
break;
}
}
}
} catch (e) {
print("${e.toString()}");
}
}
return OpenaliasRecord(address: address, name: name, description: note);
}
return OpenaliasRecord(address: address, name: name, description: note);
}
}

View file

@ -1,13 +1,15 @@
import 'package:cake_wallet/core/address_validator.dart';
import 'package:cake_wallet/core/yat_service.dart';
import 'package:cake_wallet/entities/openalias_record.dart';
import 'package:cake_wallet/entities/parsed_address.dart';
import 'package:cake_wallet/entities/unstoppable_domain_address.dart';
import 'package:cake_wallet/entities/emoji_string_extension.dart';
import 'package:cake_wallet/twitter/twitter_api.dart';
import 'package:cw_core/crypto_currency.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:cake_wallet/entities/fio_address_provider.dart';
class AddressResolver {
AddressResolver({required this.yatService, required this.walletType});
final YatService yatService;
@ -24,17 +26,50 @@ class AddressResolver {
'nft',
'dao',
'blockchain'
];
];
static String? extractAddressByType({required String raw, required CryptoCurrency type}) {
final addressPattern = AddressValidator.getAddressFromStringPattern(type);
if (addressPattern == null) {
throw 'Unexpected token: $type for getAddressFromStringPattern';
}
final match = RegExp(addressPattern).firstMatch(raw);
return match?.group(0)?.replaceAll(RegExp('[^0-9a-zA-Z]'), '');
}
Future<ParsedAddress> resolve(String text, String ticker) async {
try {
if (text.contains('@') && !text.contains('.')) {
if (text.startsWith('@') && !text.substring(1).contains('@')) {
final formattedName = text.substring(1);
final twitterUser = await TwitterApi.lookupUserByName(userName: formattedName);
final addressFromBio = extractAddressByType(
raw: twitterUser.description, type: CryptoCurrency.fromString(ticker));
if (addressFromBio != null) {
return ParsedAddress.fetchTwitterAddress(address: addressFromBio, name: text);
}
final tweets = twitterUser.tweets;
if (tweets != null) {
var subString = StringBuffer();
tweets.forEach((item) {
subString.writeln(item.text);
});
final userTweetsText = subString.toString();
final addressFromPinnedTweet =
extractAddressByType(raw: userTweetsText, type: CryptoCurrency.fromString(ticker));
if (addressFromPinnedTweet != null) {
return ParsedAddress.fetchTwitterAddress(address: addressFromPinnedTweet, name: text);
}
}
}
if (!text.startsWith('@') && text.contains('@') && !text.contains('.')) {
final bool isFioRegistered = await FioAddressProvider.checkAvail(text);
if (isFioRegistered) {
final address = await FioAddressProvider.getPubAddress(text, ticker);
return ParsedAddress.fetchFioAddress(address: address, name: text);
}
}
if (text.hasOnlyEmojis) {
if (walletType != WalletType.haven) {
@ -55,10 +90,14 @@ class AddressResolver {
return ParsedAddress.fetchUnstoppableDomainAddress(address: address, name: text);
}
if (formattedName.contains(".")) {
final txtRecord = await OpenaliasRecord.lookupOpenAliasRecord(formattedName);
if (txtRecord != null) {
final record = await OpenaliasRecord.fetchAddressAndName(
formattedName: formattedName, ticker: ticker);
formattedName: formattedName, ticker: ticker, txtRecord: txtRecord);
return ParsedAddress.fetchOpenAliasAddress(record: record, name: text);
}
}
} catch (e) {
print(e.toString());
}

View file

@ -1,8 +1,7 @@
import 'package:cake_wallet/entities/openalias_record.dart';
import 'package:cake_wallet/entities/yat_record.dart';
import 'package:flutter/material.dart';
enum ParseFrom { unstoppableDomains, openAlias, yatRecord, fio, notParsed }
enum ParseFrom { unstoppableDomains, openAlias, yatRecord, fio, notParsed, twitter }
class ParsedAddress {
ParsedAddress({
@ -41,11 +40,7 @@ class ParsedAddress {
);
}
factory ParsedAddress.fetchOpenAliasAddress({OpenaliasRecord? record, required String name}){
final formattedName = OpenaliasRecord.formatDomainName(name);
if (record == null || record.address.contains(formattedName)) {
return ParsedAddress(addresses: [name]);
}
factory ParsedAddress.fetchOpenAliasAddress({required OpenaliasRecord record, required String name}){
return ParsedAddress(
addresses: [record.address],
name: record.name,
@ -62,6 +57,14 @@ class ParsedAddress {
);
}
factory ParsedAddress.fetchTwitterAddress({required String address, required String name}){
return ParsedAddress(
addresses: [address],
name: name,
parseFrom: ParseFrom.twitter,
);
}
final List<String> addresses;
final String name;
final String description;

View file

@ -29,6 +29,7 @@ class PreferencesKey {
static const moneroWalletPasswordUpdateV1Base = 'monero_wallet_update_v1';
static const pinTimeOutDuration = 'pin_timeout_duration';
static const lastAuthTimeMilliseconds = 'last_auth_time_milliseconds';
static const lastPopupDate = 'last_popup_date';
static String moneroWalletUpdateV1Key(String name)

View file

@ -143,6 +143,7 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
final inputAddress = responseJSON['payinAddress'] as String;
final refundAddress = responseJSON['refundAddress'] as String;
final extraId = responseJSON['payinExtraId'] as String?;
final payoutAddress = responseJSON['payoutAddress'] as String;
return Trade(
id: id,
@ -154,7 +155,8 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
extraId: extraId,
createdAt: DateTime.now(),
amount: responseJSON['fromAmount']?.toString() ?? _request.fromAmount,
state: TradeState.created);
state: TradeState.created,
payoutAddress: payoutAddress);
}
@override
@ -192,6 +194,7 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
final extraId = responseJSON['payinExtraId'] as String;
final outputTransaction = responseJSON['payoutHash'] as String;
final expiredAtRaw = responseJSON['validUntil'] as String;
final payoutAddress = responseJSON['payoutAddress'] as String;
final expiredAt = DateTime.tryParse(expiredAtRaw)?.toLocal();
return Trade(
@ -204,7 +207,8 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
state: state,
extraId: extraId,
expiredAt: expiredAt,
outputTransaction: outputTransaction);
outputTransaction: outputTransaction,
payoutAddress: payoutAddress);
}
@override
@ -271,6 +275,10 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
switch(currency) {
case CryptoCurrency.zec:
return 'zec';
case CryptoCurrency.usdcpoly:
return 'usdcmatic';
case CryptoCurrency.maticpoly:
return 'maticmainnet';
default:
return currency.title.toLowerCase();
}

View file

@ -150,6 +150,7 @@ class SideShiftExchangeProvider extends ExchangeProvider {
refundAddress: settleAddress,
state: TradeState.created,
amount: _request.depositAmount,
payoutAddress: settleAddress,
createdAt: DateTime.now(),
);
}
@ -244,6 +245,7 @@ class SideShiftExchangeProvider extends ExchangeProvider {
final inputAddress = responseJSON['depositAddress']['address'] as String;
final expectedSendAmount = responseJSON['depositAmount'].toString();
final deposits = responseJSON['deposits'] as List?;
final settleAddress = responseJSON['settleAddress']['address'] as String;
TradeState? state;
String? status;
@ -264,6 +266,7 @@ class SideShiftExchangeProvider extends ExchangeProvider {
amount: expectedSendAmount,
state: state,
expiredAt: expiredAt,
payoutAddress: settleAddress
);
}

View file

@ -108,6 +108,7 @@ class SimpleSwapExchangeProvider extends ExchangeProvider {
final responseJSON = json.decode(response.body) as Map<String, dynamic>;
final id = responseJSON['id'] as String;
final inputAddress = responseJSON['address_from'] as String;
final payoutAddress = responseJSON['address_to'] as String;
final settleAddress = responseJSON['user_refund_address'] as String;
final extraId = responseJSON['extra_id_from'] as String?;
return Trade(
@ -120,6 +121,7 @@ class SimpleSwapExchangeProvider extends ExchangeProvider {
extraId: extraId,
state: TradeState.created,
amount: _request.amount,
payoutAddress: payoutAddress,
createdAt: DateTime.now(),
);
}
@ -189,6 +191,7 @@ class SimpleSwapExchangeProvider extends ExchangeProvider {
final expectedSendAmount = responseJSON['expected_amount'].toString();
final extraId = responseJSON['extra_id_from'] as String?;
final status = responseJSON['status'] as String;
final payoutAddress = responseJSON['address_to'] as String;
final state = TradeState.deserialize(raw: status);
return Trade(
@ -200,6 +203,7 @@ class SimpleSwapExchangeProvider extends ExchangeProvider {
inputAddress: inputAddress,
amount: expectedSendAmount,
state: state,
payoutAddress: payoutAddress,
);
}
@ -231,6 +235,10 @@ class SimpleSwapExchangeProvider extends ExchangeProvider {
return 'usdcpoly';
case CryptoCurrency.usdcsol:
return 'usdcspl';
case CryptoCurrency.matic:
return 'maticerc20';
case CryptoCurrency.maticpoly:
return 'matic';
default:
return currency.title.toLowerCase();
}

View file

@ -21,7 +21,8 @@ class Trade extends HiveObject {
this.extraId,
this.outputTransaction,
this.refundAddress,
this.walletId}) {
this.walletId,
this.payoutAddress}) {
if (provider != null) {
providerRaw = provider.raw;
}
@ -88,6 +89,9 @@ class Trade extends HiveObject {
@HiveField(12)
String? walletId;
@HiveField(13)
String? payoutAddress;
static Trade fromMap(Map<String, Object?> map) {
return Trade(
id: map['id'] as String,

View file

@ -1,22 +1,12 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:isolate';
import 'package:cake_wallet/bitcoin/bitcoin.dart';
import 'package:cake_wallet/core/auth_service.dart';
import 'package:cake_wallet/entities/language_service.dart';
import 'package:cake_wallet/buy/order.dart';
import 'package:cake_wallet/entities/preferences_key.dart';
import 'package:cake_wallet/ionia/ionia_category.dart';
import 'package:cake_wallet/ionia/ionia_merchant.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/store/yat/yat_store.dart';
import 'package:cake_wallet/themes/theme_list.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/utils/exception_handler.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_mailer/flutter_mailer.dart';
import 'package:hive/hive.dart';
import 'package:cake_wallet/di.dart';
import 'package:path_provider/path_provider.dart';
@ -56,14 +46,12 @@ Future<void> main() async {
await runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
FlutterError.onError = (errorDetails) {
_onError(errorDetails);
};
FlutterError.onError = ExceptionHandler.onError;
/// A callback that is invoked when an unhandled error occurs in the root
/// isolate.
PlatformDispatcher.instance.onError = (error, stack) {
_onError(FlutterErrorDetails(exception: error, stack: stack));
ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stack));
return true;
};
@ -154,85 +142,10 @@ Future<void> main() async {
initialMigrationVersion: 19);
runApp(App());
}, (error, stackTrace) async {
_onError(FlutterErrorDetails(exception: error, stack: stackTrace));
ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stackTrace));
});
}
void _saveException(String? error, StackTrace? stackTrace) async {
final appDocDir = await getApplicationDocumentsDirectory();
final file = File('${appDocDir.path}/error.txt');
final exception = {
"${DateTime.now()}": {
"Error": error,
"StackTrace": stackTrace.toString(),
}
};
const String separator =
'''\n\n==========================================================
==========================================================\n\n''';
await file.writeAsString(
jsonEncode(exception) + separator,
mode: FileMode.append,
);
}
void _sendExceptionFile() async {
try {
final appDocDir = await getApplicationDocumentsDirectory();
final file = File('${appDocDir.path}/error.txt');
final MailOptions mailOptions = MailOptions(
subject: 'Mobile App Issue',
recipients: ['support@cakewallet.com'],
attachments: [file.path],
);
final result = await FlutterMailer.send(mailOptions);
// Clear file content if the error was sent or saved.
// On android we can't know if it was sent or saved
if (result.name == MailerResponse.sent.name ||
result.name == MailerResponse.saved.name ||
result.name == MailerResponse.android.name) {
file.writeAsString("", mode: FileMode.write);
}
} catch (e, s) {
_saveException(e.toString(), s);
}
}
void _onError(FlutterErrorDetails errorDetails) {
_saveException(errorDetails.exception.toString(), errorDetails.stack);
WidgetsBinding.instance.addPostFrameCallback(
(timeStamp) {
showPopUp<void>(
context: navigatorKey.currentContext!,
builder: (context) {
return AlertWithTwoActions(
isDividerExist: true,
alertTitle: S.of(context).error,
alertContent: S.of(context).error_dialog_content,
rightButtonText: S.of(context).send,
leftButtonText: S.of(context).do_not_send,
actionRightButton: () {
Navigator.of(context).pop();
_sendExceptionFile();
},
actionLeftButton: () {
Navigator.of(context).pop();
},
);
},
);
},
);
}
Future<void> initialSetup(
{required SharedPreferences sharedPreferences,
required Box<Node> nodes,

View file

@ -330,7 +330,7 @@ Route<dynamic> createRoute(RouteSettings settings) {
getIt.get<ContactListPage>());
case Routes.pickerAddressBook:
final selectedCurrency = settings.arguments as CryptoCurrency;
final selectedCurrency = settings.arguments as CryptoCurrency?;
return MaterialPageRoute<void>(
builder: (_) => getIt.get<ContactListPage>(param1: selectedCurrency));

View file

@ -1,10 +1,9 @@
import 'dart:io';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/utils/share_util.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:share_plus/share_plus.dart';
import 'package:cross_file/cross_file.dart';
import 'package:cake_wallet/utils/show_bar.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart';
@ -110,7 +109,7 @@ class BackupPage extends BasePage {
if (Platform.isAndroid) {
onExportAndroid(context, backup);
} else {
await share(backup);
await share(backup, context);
}
},
actionLeftButton: () => Navigator.of(dialogContext).pop());
@ -140,18 +139,14 @@ class BackupPage extends BasePage {
},
actionLeftButton: () async {
Navigator.of(dialogContext).pop();
await share(backup);
await share(backup, context);
});
});
}
Future<void> share(BackupExportFile backup) async {
const mimeType = 'application/*';
Future<void> share(BackupExportFile backup, BuildContext context) async {
final path = await backupViewModelBase.saveBackupFileLocally(backup);
await Share.shareXFiles(<XFile>[XFile(
path,
name: backup.name,
mimeType: mimeType)]);
await ShareUtil.shareFile(filePath: path, fileName: backup.name, context: context);
await backupViewModelBase.removeBackupFileLocally(backup);
}
}

View file

@ -8,7 +8,6 @@ import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart';
@ -229,6 +228,7 @@ class DashboardPage extends BasePage {
}
await Future<void>.delayed(Duration(seconds: 1));
if (context.mounted) {
await showPopUp<void>(
context: context,
builder: (BuildContext context) {
@ -239,6 +239,7 @@ class DashboardPage extends BasePage {
buttonText: S.of(context).understand,
buttonAction: () => Navigator.of(context).pop());
});
}
});
var needToPresentYat = false;

View file

@ -1,10 +1,8 @@
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/utils/share_util.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:flutter/material.dart';
@ -15,7 +13,6 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:keyboard_actions/keyboard_actions.dart';
import 'package:mobx/mobx.dart';
import 'package:share_plus/share_plus.dart';
class AddressPage extends BasePage {
AddressPage({
@ -100,7 +97,12 @@ class AddressPage extends BasePage {
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
iconSize: 25,
onPressed: () => Share.share(addressListViewModel.address.address),
onPressed: () {
ShareUtil.share(
text: addressListViewModel.address.address,
context: context,
);
},
icon: shareImage,
),
) : null;
@ -115,6 +117,7 @@ class AddressPage extends BasePage {
}
await Future<void>.delayed(Duration(seconds: 1));
if (context.mounted) {
await showPopUp<void>(
context: context,
builder: (BuildContext context) {
@ -129,6 +132,7 @@ class AddressPage extends BasePage {
Navigator.of(context).pop();
});
});
}
});
return KeyboardActions(

View file

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:cw_core/transaction_direction.dart';
import 'package:cake_wallet/generated/i18n.dart';
class TransactionRow extends StatelessWidget {
TransactionRow(
@ -9,6 +8,7 @@ class TransactionRow extends StatelessWidget {
required this.formattedAmount,
required this.formattedFiatAmount,
required this.isPending,
required this.title,
required this.onTap});
final VoidCallback onTap;
@ -17,6 +17,7 @@ class TransactionRow extends StatelessWidget {
final String formattedAmount;
final String formattedFiatAmount;
final bool isPending;
final String title;
@override
Widget build(BuildContext context) {
@ -49,11 +50,7 @@ class TransactionRow extends StatelessWidget {
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
(direction == TransactionDirection.incoming
? S.of(context).received
: S.of(context).sent) +
(isPending ? S.of(context).pending : ''),
Text(title,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,

View file

@ -60,7 +60,8 @@ class TransactionsPage extends StatelessWidget {
formattedFiatAmount:
dashboardViewModel.balanceViewModel.isFiatDisabled
? '' : item.formattedFiatAmount,
isPending: transaction.isPending));
isPending: transaction.isPending,
title: item.formattedTitle + item.formattedStatus));
}
if (item is TradeListItem) {

View file

@ -112,7 +112,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
width: 16,
color: Theme.of(context).primaryTextTheme!.overline!.color!);
_setEffects(context);
_setEffects();
return Container(
child: ScrollableWithBottomSection(
@ -165,14 +165,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
.color!
)
),
child: QrImage(
data: trade.inputAddress ?? fetchingLabel,
backgroundColor: Colors.transparent,
foregroundColor: Theme.of(context)
.accentTextTheme!
.subtitle2!
.color!,
),
child: QrImage(data: trade.inputAddress ?? fetchingLabel),
)))),
Spacer(flex: 3)
]),
@ -241,7 +234,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
);
}
void _setEffects(BuildContext context) {
void _setEffects() {
if (_effectsInstalled) {
return;
}
@ -252,12 +245,12 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
WidgetsBinding.instance.addPostFrameCallback((_) {
showPopUp<void>(
context: context,
builder: (BuildContext context) {
builder: (BuildContext popupContext) {
return AlertWithOneAction(
alertTitle: S.of(context).error,
alertTitle: S.of(popupContext).error,
alertContent: state.error,
buttonText: S.of(context).ok,
buttonAction: () => Navigator.of(context).pop());
buttonText: S.of(popupContext).ok,
buttonAction: () => Navigator.of(popupContext).pop());
});
});
}
@ -266,118 +259,24 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
WidgetsBinding.instance.addPostFrameCallback((_) {
showPopUp<void>(
context: context,
builder: (BuildContext context) {
builder: (BuildContext popupContext) {
return ConfirmSendingAlert(
alertTitle: S.of(context).confirm_sending,
amount: S.of(context).send_amount,
alertTitle: S.of(popupContext).confirm_sending,
amount: S.of(popupContext).send_amount,
amountValue: widget.exchangeTradeViewModel.sendViewModel
.pendingTransaction!.amountFormatted,
fee: S.of(context).send_fee,
fee: S.of(popupContext).send_fee,
feeValue: widget.exchangeTradeViewModel.sendViewModel
.pendingTransaction!.feeFormatted,
rightButtonText: S.of(context).ok,
leftButtonText: S.of(context).cancel,
rightButtonText: S.of(popupContext).ok,
leftButtonText: S.of(popupContext).cancel,
actionRightButton: () async {
Navigator.of(context).pop();
Navigator.of(popupContext).pop();
await widget.exchangeTradeViewModel.sendViewModel
.commitTransaction();
await showPopUp<void>(
context: context,
builder: (BuildContext context) {
return Observer(builder: (_) {
final state = widget
.exchangeTradeViewModel.sendViewModel.state;
if (state is TransactionCommitted) {
return Stack(
children: <Widget>[
Container(
color: Theme.of(context).backgroundColor,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
),
),
Center(
child: Padding(
padding: EdgeInsets.only(
top: 220, left: 24, right: 24),
child: Text(
S.of(context).send_success(widget
.exchangeTradeViewModel
.wallet
.currency
.toString()),
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.headline6!
.color,
decoration: TextDecoration.none,
),
),
),
),
Positioned(
left: 24,
right: 24,
bottom: 24,
child: PrimaryButton(
onPressed: () =>
Navigator.of(context).pop(),
text: S.of(context).send_got_it,
color: Theme.of(context)
.accentTextTheme!
.bodyText1!
.color!,
textColor: Colors.white))
],
);
}
return Stack(
children: <Widget>[
Container(
color: Theme.of(context).backgroundColor,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
),
),
BackdropFilter(
filter: ImageFilter.blur(
sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(
color: Theme.of(context)
.backgroundColor
.withOpacity(0.25)),
child: Center(
child: Padding(
padding: EdgeInsets.only(top: 220),
child: Text(
S.of(context).send_sending,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Theme.of(context).primaryTextTheme!.headline6!.color!,
decoration: TextDecoration.none,
),
),
),
),
),
)
],
);
});
});
transactionStatePopup();
},
actionLeftButton: () => Navigator.of(context).pop(),
actionLeftButton: () => Navigator.of(popupContext).pop(),
feeFiatAmount: widget.exchangeTradeViewModel
.pendingTransactionFeeFiatAmountFormatted,
fiatAmountValue: widget.exchangeTradeViewModel
@ -392,12 +291,12 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
WidgetsBinding.instance.addPostFrameCallback((_) {
showPopUp<void>(
context: context,
builder: (BuildContext context) {
builder: (BuildContext popupContext) {
return AlertWithOneAction(
alertTitle: S.of(context).sending,
alertContent: S.of(context).transaction_sent,
buttonText: S.of(context).ok,
buttonAction: () => Navigator.of(context).pop());
alertTitle: S.of(popupContext).sending,
alertContent: S.of(popupContext).transaction_sent,
buttonText: S.of(popupContext).ok,
buttonAction: () => Navigator.of(popupContext).pop());
});
});
}
@ -405,4 +304,102 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
_effectsInstalled = true;
}
void transactionStatePopup() {
showPopUp<void>(
context: context,
builder: (BuildContext popupContext) {
return Observer(builder: (_) {
final state = widget
.exchangeTradeViewModel.sendViewModel.state;
if (state is TransactionCommitted) {
return Stack(
children: <Widget>[
Container(
color: Theme.of(popupContext).backgroundColor,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
),
),
Center(
child: Padding(
padding: EdgeInsets.only(
top: 220, left: 24, right: 24),
child: Text(
S.of(popupContext).send_success(widget
.exchangeTradeViewModel
.wallet
.currency
.toString()),
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Theme.of(popupContext)
.primaryTextTheme!
.headline6!
.color,
decoration: TextDecoration.none,
),
),
),
),
Positioned(
left: 24,
right: 24,
bottom: 24,
child: PrimaryButton(
onPressed: () =>
Navigator.of(popupContext).pop(),
text: S.of(popupContext).send_got_it,
color: Theme.of(popupContext)
.accentTextTheme!
.bodyText1!
.color!,
textColor: Colors.white))
],
);
}
return Stack(
children: <Widget>[
Container(
color: Theme.of(popupContext).backgroundColor,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
),
),
BackdropFilter(
filter: ImageFilter.blur(
sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(
color: Theme.of(popupContext)
.backgroundColor
.withOpacity(0.25)),
child: Center(
child: Padding(
padding: EdgeInsets.only(top: 220),
child: Text(
S.of(popupContext).send_sending,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Theme.of(popupContext).primaryTextTheme!.headline6!.color!,
decoration: TextDecoration.none,
),
),
),
),
),
)
],
);
});
});
}
}

View file

@ -157,7 +157,8 @@ class _IoniaPaymentStatusPageBodyBodyState extends State<_IoniaPaymentStatusPage
Container(
padding: EdgeInsets.only(left: 40, right: 40, bottom: 20),
child: Text(
S.of(context).proceed_after_one_minute,
widget.viewModel.payingByBitcoin ? S.of(context).bitcoin_payments_require_1_confirmation
: S.of(context).proceed_after_one_minute,
style: textMedium(
color: Theme.of(context).primaryTextTheme!.headline6!.color!,
).copyWith(fontWeight: FontWeight.w500),

View file

@ -1,7 +1,6 @@
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
class FullscreenQRPage extends BasePage {
@ -69,14 +68,10 @@ class FullscreenQRPage extends BasePage {
child: AspectRatio(
aspectRatio: 1.0,
child: Container(
padding: EdgeInsets.all(5),
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
border: Border.all(width: 3, color: Theme.of(context).accentTextTheme!.headline2!.backgroundColor!)),
child: QrImage(
data: qrData,
backgroundColor: isLight ? Colors.transparent : Colors.black,
foregroundColor: Theme.of(context).accentTextTheme!.headline2!.backgroundColor!,
),
child: QrImage(data: qrData),
),
),
),

View file

@ -1,13 +1,11 @@
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
import 'package:cake_wallet/src/widgets/section_divider.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/utils/share_util.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:share_plus/share_plus.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/di.dart';
@ -101,7 +99,12 @@ class ReceivePage extends BasePage {
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
iconSize: 25,
onPressed: () => Share.share(addressListViewModel.address.address),
onPressed: () {
ShareUtil.share(
text: addressListViewModel.address.address,
context: context,
);
},
icon: shareImage
)
);

View file

@ -1,30 +1,29 @@
import 'package:flutter/material.dart';
import 'package:qr/qr.dart';
import 'package:cake_wallet/src/screens/receive/widgets/qr_painter.dart';
import 'package:qr_flutter/qr_flutter.dart' as qr;
class QrImage extends StatelessWidget {
QrImage({
required String data,
required this.data,
this.size = 100.0,
this.backgroundColor,
Color foregroundColor = Colors.black,
int version = 9, // Previous value: 7 something happened after flutter upgrade monero wallets addresses are longer than ver. 7 ???
int errorCorrectionLevel = QrErrorCorrectLevel.L,
}) : _painter = QrPainter(data, foregroundColor, version, errorCorrectionLevel);
this.version = 9, // Previous value: 7 something happened after flutter upgrade monero wallets addresses are longer than ver. 7 ???
this.errorCorrectionLevel = qr.QrErrorCorrectLevel.L,
});
final QrPainter _painter;
final Color? backgroundColor;
final double size;
final String data;
final int version;
final int errorCorrectionLevel;
@override
Widget build(BuildContext context) {
return Container(
width: size,
height: size,
color: backgroundColor,
child: CustomPaint(
painter: _painter,
),
return qr.QrImage(
data: data,
errorCorrectionLevel: errorCorrectionLevel,
version: version,
size: size,
foregroundColor: Colors.black,
backgroundColor: Colors.white,
padding: EdgeInsets.zero,
);
}
}

View file

@ -1,47 +0,0 @@
import 'package:flutter/material.dart';
import 'package:qr/qr.dart';
class QrPainter extends CustomPainter {
QrPainter(
String data,
this.color,
this.version,
this.errorCorrectionLevel,
) : this._qr = QrCode(version, errorCorrectionLevel)..addData(data) {
_p.color = this.color;
_qrImage = QrImage(_qr);
}
final int version;
final int errorCorrectionLevel;
final Color color;
final QrCode _qr;
final _p = Paint()..style = PaintingStyle.fill;
late QrImage _qrImage;
@override
void paint(Canvas canvas, Size size) {
final squareSize = size.shortestSide / _qr.moduleCount;
for (int x = 0; x < _qr.moduleCount; x++) {
for (int y = 0; y < _qr.moduleCount; y++) {
if (_qrImage.isDark(y, x)) {
final squareRect = Rect.fromLTWH(
x * squareSize, y * squareSize, squareSize, squareSize);
canvas.drawRect(squareRect, _p);
}
}
}
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
if (oldDelegate is QrPainter) {
return this.color != oldDelegate.color ||
this.errorCorrectionLevel != oldDelegate.errorCorrectionLevel ||
this.version != oldDelegate.version;
}
return false;
}
}

View file

@ -89,11 +89,7 @@ class QRWidget extends StatelessWidget {
color: Theme.of(context).accentTextTheme!.headline2!.backgroundColor!,
),
),
child: QrImage(
data: addressListViewModel.uri.toString(),
backgroundColor: isLight ? Colors.transparent : Colors.black,
foregroundColor: Theme.of(context).accentTextTheme!.headline2!.backgroundColor!,
),
child: QrImage(data: addressListViewModel.uri.toString()),
),
),
),

View file

@ -1,12 +1,11 @@
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/utils/share_util.dart';
import 'package:cake_wallet/utils/show_bar.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:share_plus/share_plus.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
@ -159,8 +158,12 @@ class WalletSeedPage extends BasePage {
child: Container(
padding: EdgeInsets.only(right: 8.0),
child: PrimaryButton(
onPressed: () =>
Share.share(walletSeedViewModel.seed),
onPressed: () {
ShareUtil.share(
text: walletSeedViewModel.seed,
context: context,
);
},
text: S.of(context).save,
color: Colors.green,
textColor: Colors.white),

View file

@ -379,6 +379,7 @@ class SendPage extends BasePage {
if (state is ExecutedSuccessfullyState) {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (context.mounted) {
showPopUp<void>(
context: context,
builder: (BuildContext context) {
@ -423,6 +424,7 @@ class SendPage extends BasePage {
},
actionLeftButton: () => Navigator.of(context).pop());
});
}
});
}

View file

@ -19,13 +19,18 @@ Future<String> extractAddressFromParsed(
address = parsedAddress.addresses.first;
break;
case ParseFrom.openAlias:
title = S.of(context).openalias_alert_title;
content = S.of(context).openalias_alert_content(parsedAddress.name);
title = S.of(context).address_detected;
content = S.of(context).extracted_address_content('${parsedAddress.name} (OpenAlias)');
address = parsedAddress.addresses.first;
break;
case ParseFrom.fio:
title = S.of(context).address_detected;
content = S.of(context).openalias_alert_content(parsedAddress.name);
content = S.of(context).extracted_address_content('${parsedAddress.name} (FIO)');
address = parsedAddress.addresses.first;
break;
case ParseFrom.twitter:
title = S.of(context).address_detected;
content = S.of(context).extracted_address_content('${parsedAddress.name} (Twitter)');
address = parsedAddress.addresses.first;
break;
case ParseFrom.yatRecord:

View file

@ -2,6 +2,7 @@ import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arro
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:cw_core/node.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
@ -35,6 +36,7 @@ class ConnectionSyncPage extends BasePage {
handler: (context) => _presentReconnectAlert(context),
),
StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)),
if (dashboardViewModel.hasRescan)
SettingsCellWithArrow(
title: S.current.rescan,
handler: (context) => Navigator.of(context).pushNamed(Routes.rescan),

View file

@ -30,6 +30,8 @@ class SettingsLinkProviderCell extends StandardListRow {
color: Palette.blueCraiola));
static void _launchUrl(String url) async {
if (await canLaunch(url)) await launch(url, forceSafariVC: false);
try {
await launch(url, forceSafariVC: false);
} catch (e) {}
}
}

View file

@ -1,131 +0,0 @@
import 'package:cake_wallet/src/screens/wallet_list/wallet_menu_item.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/wallet_list/wallet_list_view_model.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart';
import 'package:cake_wallet/src/screens/auth/auth_page.dart';
import 'package:cake_wallet/palette.dart';
class WalletMenu {
WalletMenu(this.context, this.walletListViewModel);
final WalletListViewModel walletListViewModel;
final BuildContext context;
final List<WalletMenuItem> menuItems = [
WalletMenuItem(
title: S.current.wallet_list_load_wallet,
firstGradientColor: Palette.cornflower,
secondGradientColor: Palette.royalBlue,
image: Image.asset('assets/images/load.png',
height: 24, width: 24, color: Colors.white)),
WalletMenuItem(
title: S.current.show_seed,
firstGradientColor: Palette.moderateOrangeYellow,
secondGradientColor: Palette.moderateOrange,
image: Image.asset('assets/images/eye_action.png',
height: 24, width: 24, color: Colors.white)),
WalletMenuItem(
title: S.current.remove,
firstGradientColor: Palette.lightRed,
secondGradientColor: Palette.persianRed,
image: Image.asset('assets/images/trash.png',
height: 24, width: 24, color: Colors.white)),
WalletMenuItem(
title: S.current.rescan,
firstGradientColor: Palette.shineGreen,
secondGradientColor: Palette.moderateGreen,
image: Image.asset('assets/images/scanner.png',
height: 24, width: 24, color: Colors.white))
];
List<WalletMenuItem> generateItemsForWalletMenu(bool isCurrentWallet) {
final items = <WalletMenuItem>[];
if (!isCurrentWallet) items.add(menuItems[0]);
if (isCurrentWallet) items.add(menuItems[1]);
if (!isCurrentWallet) items.add(menuItems[2]);
if (isCurrentWallet) items.add(menuItems[3]);
return items;
}
Future<void> action(
int index, WalletListItem wallet) async {
switch (index) {
case 0:
await Navigator.of(context).pushNamed(Routes.auth, arguments:
(bool isAuthenticatedSuccessfully, AuthPageState auth) async {
if (!isAuthenticatedSuccessfully) {
return;
}
try {
auth.changeProcessText(
S.of(context).wallet_list_loading_wallet(wallet.name));
await walletListViewModel.loadWallet(wallet);
auth.close();
Navigator.of(context).pop();
} catch (e) {
auth.changeProcessText(S
.of(context)
.wallet_list_failed_to_load(wallet.name, e.toString()));
}
});
break;
case 1:
await Navigator.of(context).pushNamed(Routes.auth, arguments:
(bool isAuthenticatedSuccessfully, AuthPageState auth) async {
if (!isAuthenticatedSuccessfully) {
return;
}
auth.close();
await Navigator.of(context).pushNamed(Routes.seed, arguments: false);
});
break;
case 2:
final isComfirmed = await showPopUp<bool>(
context: context,
builder: (BuildContext context) {
return AlertWithTwoActions(
alertTitle: 'Remove wallet',
alertContent: S.of(context).confirm_delete_wallet,
leftButtonText: S.of(context).cancel,
rightButtonText: S.of(context).remove,
actionLeftButton: () => Navigator.of(context).pop(false),
actionRightButton: () => Navigator.of(context).pop(true));
});
if (isComfirmed == null || !isComfirmed) {
return;
}
await Navigator.of(context).pushNamed(Routes.auth, arguments:
(bool isAuthenticatedSuccessfully, AuthPageState auth) async {
if (!isAuthenticatedSuccessfully) {
return;
}
try {
auth.changeProcessText(
S.of(context).wallet_list_removing_wallet(wallet.name));
await walletListViewModel.remove(wallet);
auth.close();
} catch (e) {
auth.changeProcessText(S
.of(context)
.wallet_list_failed_to_remove(wallet.name, e.toString()));
}
});
break;
case 3:
await Navigator.of(context).pushNamed(Routes.rescan);
break;
default:
break;
}
}
}

View file

@ -1,16 +0,0 @@
import 'dart:ui';
import 'package:flutter/cupertino.dart';
class WalletMenuItem {
WalletMenuItem({
required this.title,
required this.firstGradientColor,
required this.secondGradientColor,
required this.image
});
final String title;
final Color firstGradientColor;
final Color secondGradientColor;
final Image image;
}

View file

@ -1,112 +0,0 @@
import 'dart:ui';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/screens/wallet_list/wallet_menu.dart';
import 'package:cake_wallet/src/screens/wallet_list/wallet_menu_item.dart';
import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/src/widgets/alert_background.dart';
import 'package:cake_wallet/src/widgets/alert_close_button.dart';
class WalletMenuAlert extends StatelessWidget {
WalletMenuAlert({
required this.wallet,
required this.walletMenu,
required this.items
});
final WalletListItem wallet;
final WalletMenu walletMenu;
final List<WalletMenuItem> items;
final closeButton = Image.asset('assets/images/close.png',
color: Palette.darkBlueCraiola,
);
@override
Widget build(BuildContext context) {
return AlertBackground(
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Padding(
padding: EdgeInsets.only(
left: 24,
right: 24,
),
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(14)),
child: Container(
color: Theme.of(context).textTheme!.bodyText1!.decorationColor!,
padding: EdgeInsets.only(left: 24),
child: ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemCount: items.length,
separatorBuilder: (context, _) => Container(
height: 1,
color: Theme.of(context).accentTextTheme!.subtitle1!.backgroundColor!,
),
itemBuilder: (_, index) {
final item = items[index];
return GestureDetector(
onTap: () {
Navigator.of(context).pop();
walletMenu.action(
walletMenu.menuItems.indexOf(item),
wallet);
},
child: Container(
height: 60,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
height: 32,
width: 32,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(4)),
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
item.firstGradientColor,
item.secondGradientColor
]
)
),
child: Center(
child: item.image,
),
),
SizedBox(width: 12),
Expanded(
child: Text(
item.title,
style: TextStyle(
color: Theme.of(context).primaryTextTheme!.headline6!.color!,
fontSize: 18,
fontFamily: 'Lato',
fontWeight: FontWeight.w500,
decoration: TextDecoration.none
),
)
)
],
),
),
);
},
),
),
),
),
AlertCloseButton(image: closeButton)
],
),
);
}
}

View file

@ -0,0 +1,37 @@
import 'dart:convert';
import 'package:cake_wallet/twitter/twitter_user.dart';
import 'package:http/http.dart' as http;
import 'package:cake_wallet/.secrets.g.dart' as secrets;
class TwitterApi {
static const twitterBearerToken = secrets.twitterBearerToken;
static const httpsScheme = 'https';
static const apiHost = 'api.twitter.com';
static const userPath = '/2/users/by/username/';
static Future<TwitterUser> lookupUserByName({required String userName}) async {
final queryParams = {'user.fields': 'description', 'expansions': 'pinned_tweet_id'};
final headers = {'authorization': 'Bearer $twitterBearerToken'};
final uri = Uri(
scheme: httpsScheme,
host: apiHost,
path: userPath + userName,
queryParameters: queryParams,
);
var response = await http.get(uri, headers: headers);
if (response.statusCode != 200) {
throw Exception('Unexpected http status: ${response.statusCode}');
}
final responseJSON = json.decode(response.body) as Map<String, dynamic>;
if (responseJSON['errors'] != null) {
throw Exception(responseJSON['errors'][0]['detail']);
}
return TwitterUser.fromJson(responseJSON);
}
}

View file

@ -0,0 +1,45 @@
class TwitterUser {
TwitterUser(
{required this.id,
required this.username,
required this.name,
required this.description,
this.tweets});
final String id;
final String username;
final String name;
final String description;
final List<Tweet>? tweets;
factory TwitterUser.fromJson(Map<String, dynamic> json) {
return TwitterUser(
id: json['data']['id'] as String,
username: json['data']['username'] as String,
name: json['data']['name'] as String,
description: json['data']['description'] as String? ?? '',
tweets: json['includes'] != null
? List.from(json['includes']['tweets'] as List)
.map((e) => Tweet.fromJson(e as Map<String, dynamic>))
.toList()
: null,
);
}
}
class Tweet {
Tweet({
required this.id,
required this.text,
});
final String id;
final String text;
factory Tweet.fromJson(Map<String, dynamic> json) {
return Tweet(
id: json['id'] as String,
text: json['text'] as String,
);
}
}

View file

@ -0,0 +1,134 @@
import 'dart:convert';
import 'dart:io';
import 'package:cake_wallet/entities/preferences_key.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/main.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mailer/flutter_mailer.dart';
import 'package:path_provider/path_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
class ExceptionHandler {
static bool _hasError = false;
static const _coolDownDurationInDays = 7;
static void _saveException(String? error, StackTrace? stackTrace) async {
final appDocDir = await getApplicationDocumentsDirectory();
final file = File('${appDocDir.path}/error.txt');
final exception = {
"${DateTime.now()}": {
"Error": error,
"StackTrace": stackTrace.toString(),
}
};
const String separator = '''\n\n==========================================================
==========================================================\n\n''';
await file.writeAsString(
jsonEncode(exception) + separator,
mode: FileMode.append,
);
}
static void _sendExceptionFile() async {
try {
final appDocDir = await getApplicationDocumentsDirectory();
final file = File('${appDocDir.path}/error.txt');
final MailOptions mailOptions = MailOptions(
subject: 'Mobile App Issue',
recipients: ['support@cakewallet.com'],
attachments: [file.path],
);
final result = await FlutterMailer.send(mailOptions);
// Clear file content if the error was sent or saved.
// On android we can't know if it was sent or saved
if (result.name == MailerResponse.sent.name ||
result.name == MailerResponse.saved.name ||
result.name == MailerResponse.android.name) {
file.writeAsString("", mode: FileMode.write);
}
} catch (e, s) {
_saveException(e.toString(), s);
}
}
static void onError(FlutterErrorDetails errorDetails) async {
if (kDebugMode) {
FlutterError.presentError(errorDetails);
return;
}
if (_ignoreError(errorDetails.exception.toString())) {
return;
}
_saveException(errorDetails.exception.toString(), errorDetails.stack);
final sharedPrefs = await SharedPreferences.getInstance();
final lastPopupDate =
DateTime.tryParse(sharedPrefs.getString(PreferencesKey.lastPopupDate) ?? '') ??
DateTime.now().subtract(Duration(days: _coolDownDurationInDays + 1));
final durationSinceLastReport = DateTime.now().difference(lastPopupDate).inDays;
if (_hasError || durationSinceLastReport < _coolDownDurationInDays) {
return;
}
_hasError = true;
sharedPrefs.setString(PreferencesKey.lastPopupDate, DateTime.now().toString());
WidgetsBinding.instance.addPostFrameCallback(
(timeStamp) async {
await showPopUp<void>(
context: navigatorKey.currentContext!,
builder: (context) {
return AlertWithTwoActions(
isDividerExist: true,
alertTitle: S.of(context).error,
alertContent: S.of(context).error_dialog_content,
rightButtonText: S.of(context).send,
leftButtonText: S.of(context).do_not_send,
actionRightButton: () {
Navigator.of(context).pop();
_sendExceptionFile();
},
actionLeftButton: () {
Navigator.of(context).pop();
},
);
},
);
_hasError = false;
},
);
}
/// Ignore User related errors or system errors
static bool _ignoreError(String error) =>
_ignoredErrors.any((element) => error.contains(element));
static const List<String> _ignoredErrors = const [
"errno = 103", // SocketException: Software caused connection abort
"errno = 9", // SocketException: Bad file descriptor
"errno = 32", // SocketException: Write failed (OS Error: Broken pipe)
"errno = 60", // SocketException: Operation timed out
"errno = 110", // SocketException: Connection timed out
"errno = 54", // SocketException: Connection reset by peer
"errno = 49", // SocketException: Can't assign requested address
"errno = 28", // OS Error: No space left on device
"PERMISSION_NOT_GRANTED",
];
}

37
lib/utils/share_util.dart Normal file
View file

@ -0,0 +1,37 @@
import 'package:flutter/material.dart';
import 'package:share_plus/share_plus.dart';
import 'package:cross_file/cross_file.dart';
class ShareUtil {
static const _mimeType = 'application/*';
static void share({required String text, required BuildContext context}) {
Share.share(
text,
sharePositionOrigin: _sharePosition(context),
);
}
static Future<void> shareFile({
required String filePath,
required String fileName,
required BuildContext context,
}) async {
Share.shareXFiles(
<XFile>[
XFile(
filePath,
name: fileName,
mimeType: _mimeType,
)
],
sharePositionOrigin: _sharePosition(context),
);
}
static Rect? _sharePosition(BuildContext context) {
final box = context.findRenderObject() as RenderBox?;
return box!.localToGlobal(Offset.zero) & box.size;
}
}

View file

@ -239,7 +239,7 @@ abstract class DashboardViewModelBase with Store {
WalletBase<Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo>
wallet;
bool get hasRescan => wallet.type == WalletType.monero;
bool get hasRescan => wallet.type == WalletType.monero || wallet.type == WalletType.haven;
BalanceViewModel balanceViewModel;

View file

@ -1,5 +1,7 @@
import 'package:cake_wallet/entities/balance_display_mode.dart';
import 'package:cake_wallet/entities/fiat_currency.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cw_core/transaction_direction.dart';
import 'package:cw_core/transaction_info.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/view_model/dashboard/action_list_item.dart';
@ -11,6 +13,7 @@ import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart';
import 'package:cw_core/keyable.dart';
import 'package:cw_core/wallet_type.dart';
class TransactionListItem extends ActionListItem with Keyable {
TransactionListItem(
{required this.transaction,
@ -35,6 +38,30 @@ class TransactionListItem extends ActionListItem with Keyable {
? '---'
: transaction.amountFormatted();
}
String get formattedTitle {
if (transaction.direction == TransactionDirection.incoming) {
return S.current.received;
}
return S.current.sent;
}
String get formattedPendingStatus {
if (transaction.confirmations >= 0 && transaction.confirmations < 10) {
return ' (${transaction.confirmations}/10)';
}
return '';
}
String get formattedStatus {
if (transaction.direction == TransactionDirection.incoming) {
if (balanceViewModel.wallet.type == WalletType.monero ||
balanceViewModel.wallet.type == WalletType.haven) {
return formattedPendingStatus;
}
}
return transaction.isPending ? S.current.pending : '';
}
String get formattedFiatAmount {
var amount = '';

View file

@ -18,8 +18,7 @@ import 'package:cake_wallet/generated/i18n.dart';
part 'exchange_trade_view_model.g.dart';
class ExchangeTradeViewModel = ExchangeTradeViewModelBase
with _$ExchangeTradeViewModel;
class ExchangeTradeViewModel = ExchangeTradeViewModelBase with _$ExchangeTradeViewModel;
abstract class ExchangeTradeViewModelBase with Store {
ExchangeTradeViewModelBase(
@ -73,16 +72,14 @@ abstract class ExchangeTradeViewModelBase with Store {
: '';
@computed
String get pendingTransactionFiatAmountValueFormatted =>
sendViewModel.isFiatDisabled
? '' : sendViewModel.pendingTransactionFiatAmount
+ ' ' + sendViewModel.fiat.title;
String get pendingTransactionFiatAmountValueFormatted => sendViewModel.isFiatDisabled
? ''
: sendViewModel.pendingTransactionFiatAmount + ' ' + sendViewModel.fiat.title;
@computed
String get pendingTransactionFeeFiatAmountFormatted =>
sendViewModel.isFiatDisabled
? '' : sendViewModel.pendingTransactionFeeFiatAmount
+ ' ' + sendViewModel.fiat.title;
String get pendingTransactionFeeFiatAmountFormatted => sendViewModel.isFiatDisabled
? ''
: sendViewModel.pendingTransactionFeeFiatAmount + ' ' + sendViewModel.fiat.title;
@observable
ObservableList<ExchangeTradeItem> items;
@ -122,6 +119,8 @@ abstract class ExchangeTradeViewModelBase with Store {
}
void _updateItems() {
final tagFrom = trade.from.tag != null ? '${trade.from.tag}' + ' ' : '';
final tagTo = trade.to.tag != null ? '${trade.to.tag}' + ' ' : '';
items.clear();
items.add(ExchangeTradeItem(
title: "${trade.provider.title} ${S.current.id}", data: '${trade.id}', isCopied: true));
@ -133,19 +132,19 @@ abstract class ExchangeTradeViewModelBase with Store {
? S.current.memo
: S.current.extra_id;
items.add(ExchangeTradeItem(
title: title, data: '${trade.extraId}', isCopied: false));
items.add(ExchangeTradeItem(title: title, data: '${trade.extraId}', isCopied: false));
}
items.addAll([
ExchangeTradeItem(title: S.current.amount, data: '${trade.amount}', isCopied: false),
ExchangeTradeItem(
title: S.current.amount, data: '${trade.amount}', isCopied: false),
ExchangeTradeItem(
title: S.current.status, data: '${trade.state}', isCopied: false),
ExchangeTradeItem(
title: S.current.widgets_address + ':',
title: S.current.send_to_this_address('${trade.from}', tagFrom) + ':',
data: trade.inputAddress ?? '',
isCopied: true),
ExchangeTradeItem(
title: S.current.arrive_in_this_address('${trade.to}', tagTo) + ':',
data: trade.payoutAddress ?? '',
isCopied: true),
]);
}
}

View file

@ -308,10 +308,11 @@ abstract class ExchangeViewModelBase with Store {
Future<void> _calculateBestRate() async {
final amount = double.tryParse(isFixedRateMode ? receiveAmount : depositAmount) ?? 1;
final _providers = _tradeAvailableProviders
.where((element) => !isFixedRateMode || element.supportsFixedRate).toList();
final result = await Future.wait<double>(
_tradeAvailableProviders
.where((element) => !isFixedRateMode || element.supportsFixedRate)
.map((element) => element.fetchRate(
_providers.map((element) => element.fetchRate(
from: depositCurrency,
to: receiveCurrency,
amount: amount,
@ -324,7 +325,12 @@ abstract class ExchangeViewModelBase with Store {
for (int i=0;i<result.length;i++) {
if (result[i] != 0) {
/// add this provider as its valid for this trade
_sortedAvailableProviders[result[i]] = _tradeAvailableProviders[i];
try {
_sortedAvailableProviders[result[i]] = _providers[i];
} catch (e) {
// will throw "Concurrent modification during iteration" error if modified at the same
// time [createTrade] is called, as this is not a normal map, but a sorted map
}
}
}
if (_sortedAvailableProviders.isNotEmpty) {

View file

@ -1,4 +1,5 @@
import 'dart:async';
import 'package:cake_wallet/anypay/any_pay_chain.dart';
import 'package:mobx/mobx.dart';
import 'package:flutter/foundation.dart';
import 'package:cake_wallet/ionia/ionia_service.dart';
@ -39,6 +40,8 @@ abstract class IoniaPaymentStatusViewModelBase with Store {
Timer? get timer => _timer;
bool get payingByBitcoin => paymentInfo.anyPayPayment.chain == AnyPayChain.btc;
Timer? _timer;
@action

View file

@ -7,7 +7,6 @@ import 'package:flutter/material.dart';
import 'package:mobx/mobx.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:cake_wallet/wallet_type_utils.dart';
import 'package:cake_wallet/wallet_type_utils.dart';
part 'support_view_model.g.dart';
@ -19,7 +18,9 @@ abstract class SupportViewModelBase with Store {
RegularListItem(
title: S.current.faq,
handler: (BuildContext context) async {
if (await canLaunch(url)) await launch(url);
try {
await launch(url);
} catch (e) {}
},
),
LinkListItem(
@ -42,7 +43,7 @@ abstract class SupportViewModelBase with Store {
title: 'Telegram',
icon: 'assets/images/Telegram.png',
linkTitle: '@cakewallet_bot',
link: 'https:t.me/cakewallet_bot'),
link: 'https://t.me/cakewallet_bot'),
LinkListItem(
title: 'Twitter',
icon: 'assets/images/Twitter.png',
@ -84,7 +85,7 @@ abstract class SupportViewModelBase with Store {
// link: 'mailto:support@y.at')
];
static const url = 'https://cakewallet.com/guide/';
static const url = 'https://guides.cakewallet.com';
List<SettingsListItem> items;
}

View file

@ -6,7 +6,7 @@ dependencies:
flutter_cupertino_localizations: ^1.0.1
intl: ^0.17.0
url_launcher: ^6.1.4
qr: ^3.0.1
qr_flutter: ^4.0.0
uuid: 3.0.6
shared_preferences: ^2.0.15
flutter_secure_storage:

View file

@ -398,8 +398,7 @@
"biometric_auth_reason":"امسح بصمة إصبعك للمصادقة",
"version":"الإصدار ${currentVersion}",
"openalias_alert_title":"تم ايجاد العنوان",
"openalias_alert_content":"سوف ترسل الأموال إلى\n${recipient_name}",
"extracted_address_content":"سوف ترسل الأموال إلى\n${recipient_name}",
"card_address":"العنوان:",
"buy":"اشتري",
@ -678,5 +677,10 @@
"enabled":"ممكنة",
"tor_only":"Tor فقط",
"unmatched_currencies": "عملة محفظتك الحالية لا تتطابق مع عملة QR الممسوحة ضوئيًا",
"orbot_running_alert": "يرجى التأكد من تشغيل Orbot قبل الاتصال بهذه العقدة."
"orbot_running_alert": "يرجى التأكد من تشغيل Orbot قبل الاتصال بهذه العقدة.",
"bitcoin_payments_require_1_confirmation": "تتطلب مدفوعات Bitcoin تأكيدًا واحدًا ، والذي قد يستغرق 20 دقيقة أو أكثر. شكرا لصبرك! سيتم إرسال بريد إلكتروني إليك عند تأكيد الدفع.",
"send_to_this_address" : "أرسل ${currency} ${tag}إلى هذا العنوان",
"arrive_in_this_address" : "سيصل ${currency} ${tag}إلى هذا العنوان",
"do_not_send": "لا ترسل",
"error_dialog_content": "عفوًا ، لقد حصلنا على بعض الخطأ.\n\nيرجى إرسال تقرير التعطل إلى فريق الدعم لدينا لتحسين التطبيق."
}

688
res/values/strings_bg.arb Normal file
View file

@ -0,0 +1,688 @@
{
"welcome" : "Добре дошли в",
"cake_wallet" : "Cake Wallet",
"first_wallet_text" : "Невероятен портфейл за Monero, Bitcoin, Litecoin и Haven",
"please_make_selection" : "Моля, изберете отдолу за създаване или възстановяване на портфейл.",
"create_new" : "Създаване на нов портфейл",
"restore_wallet" : "Възстановяване на портфейл",
"monero_com": "Monero.com от Cake Wallet",
"monero_com_wallet_text": "Невероятен портфейл за Monero",
"haven_app": "Haven от Cake Wallet",
"haven_app_wallet_text": "Невероятен портфейл за Haven",
"accounts" : "Профили",
"edit" : "Промени",
"account" : "Профил",
"add" : "Добави",
"address_book" : "Адресна книга",
"contact" : "Контакт",
"please_select" : "Моля, изберете:",
"cancel" : "Откажи",
"ok" : "Ок",
"contact_name" : "Име на контакт",
"reset" : "Нулиране",
"save" : "Запази",
"address_remove_contact" : "Премахни контакт",
"address_remove_content" : "Сигурни ли сте, че искате да премахнете избрания контакт?",
"authenticated" : "Удостоверено",
"authentication" : "Удостоверяване",
"failed_authentication" : "Неуспешно удостоверяване. ${state_error}",
"wallet_menu" : "Меню",
"Blocks_remaining" : "${status} оставащи блока",
"please_try_to_connect_to_another_node" : "Моля, опитайте се да се свържете към друг node.",
"xmr_hidden" : "Скрит",
"xmr_available_balance" : "Наличен баланс",
"xmr_full_balance" : "Пълен баланс",
"send" : "Изпрати",
"receive" : "Получи",
"transactions" : "Транзакции",
"incoming" : "Входящи",
"outgoing" : "Изходящи",
"transactions_by_date" : "Транзакции по дата",
"trades" : "Trades",
"filter_by": "Филтрирай по",
"today" : "Днес",
"yesterday" : "Вчера",
"received" : "Получени",
"sent" : "Изпратени",
"pending" : " (чакащи)",
"rescan" : "Сканирай отново",
"reconnect" : "Reconnect",
"wallets" : "Портфейли",
"show_seed" : "Покажи seed",
"show_keys" : "Покажи seed/keys",
"address_book_menu" : "Адресна книга",
"reconnection" : "Свързване отново",
"reconnect_alert_text" : "Сигурни ли сте, че искате да се свържете отново?",
"exchange" : "Exchange",
"clear" : "Изчисти",
"refund_address" : "Refund address",
"change_exchange_provider" : "Промяна на Exchange Provider",
"you_will_send" : "Обръщане от",
"you_will_get" : "Обръщане в",
"amount_is_guaranteed" : "Сумата за получаване е гарантирана",
"amount_is_estimate" : "Сумата за получаване е ",
"powered_by" : "Powered by ${title}",
"error" : "Грешка",
"estimated" : "Изчислено",
"min_value" : "Мин: ${value} ${currency}",
"max_value" : "Макс: ${value} ${currency}",
"change_currency" : "Смени валута",
"overwrite_amount" : "Промени сума",
"qr_payment_amount" : "Този QR код съдържа сума за плащане. Искате ли да промените стойността?",
"copy_id" : "Копиране на ID",
"exchange_result_write_down_trade_id" : "Моля, запишете trade ID-то, за да продължите.",
"trade_id" : "Trade ID:",
"copied_to_clipboard" : "Копирано",
"saved_the_trade_id" : "Запазих trade ID-то",
"fetching" : "Обработване",
"id" : "ID: ",
"amount" : "Сума: ",
"payment_id" : "Payment ID: ",
"status" : "Статус: ",
"offer_expires_in" : "Предложението изтича след: ",
"trade_is_powered_by" : "This trade is powered by ${provider}",
"copy_address" : "Copy Address",
"exchange_result_confirm" : "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown below. Or you can send from your external wallet to the below address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.",
"exchange_result_description" : "You must send a minimum of ${fetchingLabel} ${from} to the address shown on the next page. If you send an amount lower than ${fetchingLabel} ${from} it may not get converted and it may not be refunded.",
"exchange_result_write_down_ID" : "*Please copy or write down your ID shown above.",
"confirm" : "Потвърждаване",
"confirm_sending" : "Потвърждаване на изпращането",
"commit_transaction_amount_fee" : "Изпълняване на транзакция\nСума: ${amount}\nТакса: ${fee}",
"sending" : "Изпращане",
"transaction_sent" : "Сумата е изпратена!",
"expired" : "Изтекло",
"time" : "${minutes} мин ${seconds} сек",
"send_xmr" : "Изпращане на XMR",
"exchange_new_template" : "Нов шаблон",
"faq" : "FAQ",
"enter_your_pin" : "Въведете PIN",
"loading_your_wallet" : "Зареждане на портфейл",
"new_wallet" : "Нов портфейл",
"wallet_name" : "Име на портфейл",
"continue_text" : "Напред",
"choose_wallet_currency" : "Изберете валута за портфейла:",
"node_new" : "Нов Node",
"node_address" : "Нов адрес",
"node_port" : "Node порт",
"login" : "Влизане",
"password" : "Парола",
"nodes" : "Nodes",
"node_reset_settings_title" : "Възстановяване на настройки",
"nodes_list_reset_to_default_message" : "Сигурни ли сте, че искате да възстановите фабричните настройки?",
"change_current_node" : "Сигурни ли сте, че искате да промените сегашния node на ${node}?",
"change" : "Промени",
"remove_node" : "Премахни node",
"remove_node_message" : "Сигурни ли сте, че искате да премахнете избрания node?",
"remove" : "Премахни",
"delete" : "Изтрий",
"add_new_node" : "Добави нов node",
"change_current_node_title" : "Промени сегашния node",
"node_test" : "Тест",
"node_connection_successful" : "Връзката бе установена успешно",
"node_connection_failed" : "Връзката не можа да бъде установена",
"new_node_testing" : "Тестване на нов node",
"use" : "Смяна на ",
"digit_pin" : "-цифрен PIN",
"share_address" : "Сподели адрес",
"receive_amount" : "Сума",
"subaddresses" : "Подадреси",
"addresses" : "Адреси",
"scan_qr_code" : "Сканирайте QR кода, за да получите адреса",
"qr_fullscreen" : "Натиснете, за да отворите QR кода на цял екран",
"rename" : "Промяна на името",
"choose_account" : "Избиране на профил",
"create_new_account" : "Създаване на нов профил",
"accounts_subaddresses" : "Профили и подадреси",
"restore_restore_wallet" : "Възстановяване на портфейл",
"restore_title_from_seed_keys" : "Възстановяване от seed/keys",
"restore_description_from_seed_keys" : "Възстановете своя портфейл от seed/keys, които сте съхранили на сигурно място",
"restore_next" : "Next",
"restore_title_from_backup" : "Възстановяване от резервно копие",
"restore_description_from_backup" : "Можете да възстановите цялото приложение Cake Wallet от своя резервен файл",
"restore_seed_keys_restore" : "Възстановяне от Seed/Keys",
"restore_title_from_seed" : "Възстановяване от seed",
"restore_description_from_seed" : "Възстановяване на портфейл от кода от 13 или 25 думи",
"restore_title_from_keys" : "Възстановяване от keys",
"restore_description_from_keys" : "Възстановяване на портфейл от генерираните от Вашите тайни ключове клавиши",
"restore_wallet_name" : "Име на портфейл",
"restore_address" : "Адреси",
"restore_view_key_private" : "View key (таен)",
"restore_spend_key_private" : "Spend key (публичен)",
"restore_recover" : "Възстановяване",
"restore_wallet_restore_description" : "Описание на възстановяване на портфейл",
"restore_new_seed" : "Нов seed",
"restore_active_seed" : "Активиране на seed",
"restore_bitcoin_description_from_seed" : "Възстановяване на портфейл чрез код от 24 думи",
"restore_bitcoin_description_from_keys" : "Възстановяване на портфейл чрез WIF, изведен от Вашите private keys",
"restore_bitcoin_title_from_keys" : "Възстановяване от WIF",
"restore_from_date_or_blockheight" : "Моля, въведете дата няколко дни преди създаването на този портфейл. Ако знаете blockheight-а, въведето него вместо това",
"seed_reminder" : "Моля, запишете го в случай на загуба на устройството.",
"seed_title" : "Seed",
"seed_share" : "Споделяне на seed",
"copy" : "Копиране",
"seed_language_choose" : "Моля, изберете език на seed-а:",
"seed_choose" : "Изберете език на seed-а",
"seed_language_next" : "Следващ",
"seed_language_english" : "Английски",
"seed_language_chinese" : "Китайски",
"seed_language_dutch" : "Нидерландски",
"seed_language_german" : "Немски",
"seed_language_japanese" : "Японски",
"seed_language_portuguese" : "Португалски",
"seed_language_russian" : "Руски",
"seed_language_spanish" : "Испански",
"seed_language_french": "Френски",
"seed_language_italian": "Италиански",
"send_title" : "Изпращане",
"send_your_wallet" : "Вашият портфейл",
"send_address" : "${cryptoCurrency} адрес",
"send_payment_id" : "Payment ID (не е задължително)",
"all" : "ALL",
"send_error_minimum_value" : "Минималната сума е 0.01",
"send_error_currency" : "Валутата може да съдържа само числа",
"send_estimated_fee" : "Изчислена такса:",
"send_priority" : "В момента таксата е на ${transactionPriority} приоритетност.\nПриоритетността на транзакцията може да бъде променена в настройките",
"send_creating_transaction" : "Създаване на транзакция",
"send_templates" : "Шаблони",
"send_new" : "Ново",
"send_amount" : "Сума:",
"send_fee" : "Такса:",
"send_name" : "Име",
"send_got_it" : "Готово",
"send_sending" : "Изпращане...",
"send_success" : "Вашите ${crypto} бяха успешно изпратени",
"settings_title" : "Настройки",
"settings_nodes" : "Nodes",
"settings_current_node" : "Сегашен node",
"settings_wallets" : "Портфейли",
"settings_display_balance" : "Показване на баланс",
"settings_currency" : "Валута",
"settings_fee_priority" : "Таксова приоритетност",
"settings_save_recipient_address" : "Запазване адрес на получател",
"settings_personal" : "Лични",
"settings_change_pin" : "Промяна на PIN",
"settings_change_language" : "Промяна на езика",
"settings_allow_biometrical_authentication" : "Позволяване на биометрично удостоверяване.",
"settings_dark_mode" : "Тъмен режим",
"settings_transactions" : "Транзакции",
"settings_trades" : "Сделки",
"settings_display_on_dashboard_list" : "Показване на таблото",
"settings_all" : "Всичко",
"settings_only_trades" : "Само сделки",
"settings_only_transactions" : "Само транзакции",
"settings_none" : "Липсва",
"settings_support" : "Поддръжка",
"settings_terms_and_conditions" : "Условия",
"pin_is_incorrect" : "Грешен PIN",
"setup_pin" : "Настройване на PIN",
"enter_your_pin_again" : "Въведете своя PIN отново",
"setup_successful" : "Вашият PIN бе успешно настроен!",
"wallet_keys" : "Seed/keys на портфейла",
"wallet_seed" : "Seed на портфейла",
"private_key" : "Таен ключ",
"public_key" : "Публичен ключ",
"view_key_private" : "View key (таен)",
"view_key_public" : "View key (публичен)",
"spend_key_private" : "Spend key (таен)",
"spend_key_public" : "Spend key (публичен)",
"copied_key_to_clipboard" : "Копиран ключ: ${key}",
"new_subaddress_title" : "Нов адрес",
"new_subaddress_label_name" : "Име на Label",
"new_subaddress_create" : "Създаване",
"address_label" : "Адресен label",
"subaddress_title" : "Лист от подадреси",
"trade_details_title" : "Подробности на сделката",
"trade_details_id" : "ID",
"trade_details_state" : "Статус",
"trade_details_fetching" : "Обработка",
"trade_details_provider" : "Provider",
"trade_details_created_at" : "Създадено",
"trade_details_pair" : "Pair",
"trade_details_copied" : "${title} копирано",
"trade_history_title" : "История на сделките",
"transaction_details_title" : "Подробности на транзакцията",
"transaction_details_transaction_id" : "Transaction ID",
"transaction_details_date" : "Дата",
"transaction_details_height" : "Height",
"transaction_details_amount" : "Сума",
"transaction_details_fee" : "Такса",
"transaction_details_copied" : "${title} копирано",
"transaction_details_recipient_address" : "Адрес на получател",
"wallet_list_title" : "Monero портфейл",
"wallet_list_create_new_wallet" : "Създаване на нов портфейл",
"wallet_list_restore_wallet" : "Възстановяване на портфейл",
"wallet_list_load_wallet" : "Зареждане на портфейл",
"wallet_list_loading_wallet" : "Зареждане на портфейл ${wallet_name}",
"wallet_list_failed_to_load" : "Грешка при зареждането на портфейл ${wallet_name}. ${error}",
"wallet_list_removing_wallet" : "Премахване на портфейл ${wallet_name}",
"wallet_list_failed_to_remove" : "Грешка при премахването на портфейл${wallet_name}. ${error}",
"widgets_address" : "Адрес",
"widgets_restore_from_blockheight" : "Възстановяване от blockheight",
"widgets_restore_from_date" : "Възстановяване от дата",
"widgets_or" : "или",
"widgets_seed" : "Seed",
"router_no_route" : "Няма дефиниран път за ${name}",
"error_text_account_name" : "Името на профила може да съдържа само букви и числа \nи трябва да е между 1 и 15 символа",
"error_text_contact_name" : "Името на контакта не може да съдържа символите ` , ' \" \nи и трябва да е между 1 и 32 символа",
"error_text_address" : "Адресът на портфейла трябва да отговаря \n на вида криптовалута",
"error_text_node_address" : "Моля, въведете iPv4 адрес",
"error_text_node_port" : "Node port-ът е цяло число между 0 и 65535",
"error_text_payment_id" : "Payment ID-то може да съдържа само между 16 и 64 шестнайсетични символа",
"error_text_xmr" : "XMR сумата не може да надхвърля наличния баланс.\nБроят на цифрите след десетичната запетая може да бъде най-много 12",
"error_text_fiat" : "Сумата не може да надвишава наличния баланс.\nThe number of fraction digits must be less or equal to 2",
"error_text_subaddress_name" : "Името на подадреса не може да съдържат символите ` , ' \" \n и трябва да е между 1 и 20 символа",
"error_text_amount" : "Сумата може да съдържа само числа",
"error_text_wallet_name" : "Името на портфейла може да съдържа само букви, цифри, и символите _ и - \n и трябва да е между 1 и 33 символа",
"error_text_keys" : "Ключовете за портфейл може да съдържат само 64 шестнайсетични символа",
"error_text_crypto_currency" : "Броят на цифрите след десетичната запетая\nможе да бъде най-много 12",
"error_text_minimal_limit" : "Сделка за ${provider} не беше създадена. Сумата е по-малко от минималната: ${min} ${currency}",
"error_text_maximum_limit" : "Сделка за ${provider} не беше създадена. Сумата надвишава максималната: ${max} ${currency}",
"error_text_limits_loading_failed" : "Сделка за ${provider} не беше създадена. Неуспешно зареждане на лимити",
"error_text_template" : "Имената на шаблони и адреси не могат да съдържат ` , ' \" \nи трябва да са между 1 и 106 символа.",
"auth_store_ban_timeout" : "ban_timeout",
"auth_store_banned_for" : "Забрана за ",
"auth_store_banned_minutes" : " минути",
"auth_store_incorrect_password" : "Грешен PIN",
"wallet_store_monero_wallet" : "Monero портфейл",
"wallet_restoration_store_incorrect_seed_length" : "Грешна дължина на seed-а",
"full_balance" : "Пълен баланс",
"available_balance" : "Наличен баланс",
"hidden_balance" : "Скрит баланс",
"sync_status_syncronizing" : "СИНХРОНИЗИРАНЕ",
"sync_status_syncronized" : "СИНХРОНИЗИРАНО",
"sync_status_not_connected" : "НЯМА ВРЪЗКА",
"sync_status_starting_sync" : "ЗАПОЧВАНЕ НА СИНХРОНИЗАЦИЯ",
"sync_status_failed_connect" : "НЕУСПЕШНО СВЪРЗВАНЕ",
"sync_status_connecting" : "СВЪРЗВАНЕ",
"sync_status_connected" : "СВЪРЗВАНЕ",
"sync_status_attempting_sync" : "ОПИТ ЗА СИНХРОНИЗАЦИЯ",
"transaction_priority_slow" : "Бавно",
"transaction_priority_regular" : "Обичайно",
"transaction_priority_medium" : "Средно",
"transaction_priority_fast" : "Бързо",
"transaction_priority_fastest" : "Най-бързо",
"trade_for_not_created" : "Сделка за ${title} не бе създадена.",
"trade_not_created" : "Сделка не бе създадена.",
"trade_id_not_found" : "Сделка ${tradeId} на ${title} не бе намерена.",
"trade_not_found" : "Сделката не бе намерена.",
"trade_state_pending" : "Изчаква се",
"trade_state_confirming" : "Потвърждава се",
"trade_state_trading" : "Trading",
"trade_state_traded" : "Traded",
"trade_state_complete" : "Завършено",
"trade_state_to_be_created" : "Изчаква създаване",
"trade_state_unpaid" : "Неплатено",
"trade_state_underpaid" : "Недостатъчно плащане",
"trade_state_paid_unconfirmed" : "Непотвърдено плащане",
"trade_state_paid" : "Платено",
"trade_state_btc_sent" : "Btc изпратен",
"trade_state_timeout" : "Време за изчакване",
"trade_state_created" : "Създадено",
"trade_state_finished" : "Завършено",
"change_language" : "Смяна на езика",
"change_language_to" : "Смяна на езика на ${language}?",
"paste" : "Поставяне",
"restore_from_seed_placeholder" : "Моля, въведете своя seed тук",
"add_new_word" : "Добавяне на нова дума",
"incorrect_seed" : "Въведеният текст е невалиден.",
"biometric_auth_reason" : "Сканирайте своя пръстов отпечатък",
"version" : "Версия ${currentVersion}",
"extracted_address_content" : "Ще изпратите средства на \n${recipient_name}",
"card_address" : "Адрес:",
"buy" : "Купуване",
"sell": "Продаване",
"placeholder_transactions" : "Вашите транзакции ще се покажат тук",
"placeholder_contacts" : "Вашите контакти ще се покажат тук",
"template" : "Шаблон",
"confirm_delete_template" : "Този шаблон ще бъде изтрит. Искате ли да продължите?",
"confirm_delete_wallet" : "Този портфейл ще бъде изтрит. Искате ли да продължите?",
"picker_description" : "За да изберете ChangeNOW или MorphToken, моля, първо променете своя trading pair",
"change_wallet_alert_title" : "Смяна на сегашния портфейл",
"change_wallet_alert_content" : "Искате ли да смените сегашния портфейл на ${wallet_name}?",
"creating_new_wallet" : "Създаване на нов портфейл",
"creating_new_wallet_error" : "Грешка: ${description}",
"seed_alert_title" : "Внимание",
"seed_alert_content" : "Seed-ът е единственият начин да възстановите портфейла си. Записахте ли го?",
"seed_alert_back" : "Назад",
"seed_alert_yes" : "Да",
"exchange_sync_alert_content" : "Моля, изчакайте синхронизирането на Вашия портфейл",
"pre_seed_title" : "ВАЖНО",
"pre_seed_description" : "На следващата страница ще видите поредица от ${words} думи. Това е вашият таен личен seed и е единственият начин да възстановите портфейла си. Отговорността за съхранението му на сигурно място извън приложението на Cake Wallet е изцяло ВАША.",
"pre_seed_button_text" : "Разбирам. Покажи seed",
"xmr_to_error" : "XMR.TO грешка",
"xmr_to_error_description" : "Невалидна сума - най-много 8 цифри след десетичната запетая",
"provider_error" : "Грешка на ${provider} ",
"use_ssl" : "Използване на SSL",
"trusted" : "Надежден",
"color_theme" : "Цвят",
"light_theme" : "Светло",
"bright_theme" : "Ярко",
"dark_theme" : "Тъмно",
"enter_your_note" : "Въвеждане на бележка…",
"note_optional" : "Бележка (не е задължително)",
"note_tap_to_change" : "Бележка (натиснете за промяна)",
"view_in_block_explorer" : "Вижте в Block Explorer",
"view_transaction_on" : "Вижте транзакция на ",
"transaction_key" : "Transaction Key",
"confirmations" : "потвърждения",
"recipient_address" : "Адрес на получател",
"extra_id" : "Допълнително ID:",
"destination_tag" : "Destination tag:",
"memo" : "Мемо:",
"backup" : "Резервно копие",
"change_password" : "Смяна на парола",
"backup_password" : "Парола за възстановяване",
"write_down_backup_password" : "Моля, запишете своята парола за възстановяване. Тя се използва за импортиране на резервни копия на Вашите файлове.",
"export_backup" : "Експортиране на резервно копие",
"save_backup_password" : "Моля, запишете своята парола за възстановяване. Импортирането на резервни копия не е възможно без нея.",
"backup_file" : "Резервно копие",
"edit_backup_password" : "Промяна на паролата за възстановяване",
"save_backup_password_alert" : "Запазване на паролата за възстановяване",
"change_backup_password_alert" : "Предишните резервни копия не могат да бъдат импортирани с новата парола. Те ще се използва само за нови такива. Are you sure that you want to change backup password?",
"enter_backup_password" : "Въведете парола за възстановяване",
"select_backup_file" : "Избор на резервно копие",
"import" : "Импортиране",
"please_select_backup_file" : "Моля, изберете резервно копие и въведете парола за възстановяване.",
"fixed_rate" : "Постоянен обменен курс",
"fixed_rate_alert" : "Ще можете да въведете сумата за получаване, когато е избранен постоянен обменен курс. Искате ли да изберете постоянен обменен курс?",
"xlm_extra_info" : "Не забравяйте да дадете Memo ID-то, докато изпращате XLM транзакцията за обмена",
"xrp_extra_info" : "Не забравяйте да дадете Destination Tag-а, когато изпращате XRP транзакцията за обмена",
"exchange_incorrect_current_wallet_for_xmr" : "Ако искате да обмените XMR от своя Cake Wallet Monero баланс, първо изберете своя Monero портфейл.",
"confirmed" : "Потвърдено",
"unconfirmed" : "Непотвърдено",
"displayable" : "Възможност за показване",
"submit_request" : "изпращане на заявка",
"buy_alert_content" : "В момента поддържаме покупката само на Bitcoin и Litecoin. За да закупите Bitcoin или Litecoin, създайте или изберете своя Bitcoin или Litecoin портфейл.",
"sell_alert_content": "В момента поддържаме само продажбата на Bitcoin. За да продавате Bitcoin, създайте или изберете своя Bitcoin портфейл.",
"outdated_electrum_wallet_description" : "Нови Bitcoin портфейли, създадени в Cake, сега имат seed от 24 думи. Трябва да създадете нов Bitcoin адрес и да прехвърлите всичките си средства в него и веднага да спрете използването на стари портфейли. Моля, напревете това незабавно, за да подсигурите средствата си.",
"understand" : "Разбирам",
"apk_update" : "APK ъпдейт",
"buy_bitcoin" : "Купуване на Bitcoin",
"buy_with" : "Купуване чрез",
"moonpay_alert_text" : "Сумата трябва да бъде най-малко ${minAmount} ${fiatCurrency}",
"outdated_electrum_wallet_receive_warning": "Ако този адрес има seed от 12 думи и е създаден чрез Cake, НЕ добавяйте Bitcoin в него. Всякакъв Bitcoin, изпратен на този адрес, може да бъде загубен завинаги. Създайте нов портфейл от 24 думи (натиснете менюто горе, вдясно, изберете Портфейли, изберете Създаване на нов портфейл, след това изберете Bitcoin) и НЕЗАБАВНО преместете своя Bitcoin там. Нови (такива с 24 думи) Bitcoin портфейли от Cake са надеждни",
"do_not_show_me": "Не показвай повече това",
"unspent_coins_title" : "Неизползвани монети",
"unspent_coins_details_title" : "Подробности за неизползваните монети",
"freeze" : "Замразяване",
"frozen" : "Замразени",
"coin_control" : "Управление на монетите (не е задължително)",
"address_detected" : "Открит е адрес",
"address_from_domain" : "Този адрес е от ${domain} на Unstoppable Domains",
"add_receiver" : "Добавяне на друг получател (не е задължително)",
"manage_yats" : "Управление на Yats",
"yat_alert_title" : "Търгувайте с крипто много по-лесно чрез Yat",
"yat_alert_content" : "Потребителите на Cake Wallet вече могат да изпращат и получават любимите си валути чрез неповторимо потребителско име от емоджита.",
"get_your_yat" : "Получете своя Yat",
"connect_an_existing_yat" : "Добавете съществуващ Yat",
"connect_yats": "Добавете Yats",
"yat_address" : "Yat Адрес",
"yat" : "Yat",
"address_from_yat" : "Този адрес е от ${emoji} в Yat",
"yat_error" : "Yat грешка",
"yat_error_content" : "Няма адреси, свързани с този Yat. Опитайте с друг Yat",
"choose_address" : "\n\nМоля, изберете адреса:",
"yat_popup_title" : "Адресът на вашия портфейл може да съдържа емоджита.",
"yat_popup_content" : "Вече можете да изпращате и да получавате крипто в Cake Wallet с вашия Yat - кратко потребителско име във формата на емоджи. Управлявайте своите Yats по всяко време в настройките",
"second_intro_title" : "Един емоджи адрес, обединяващ всички останали.",
"second_intro_content" : "Вашият Yat е уникален адрес във формата на емоджи, който играе ролята на всички Ваши дълги шестнайсетични портфейли за всяка валута.",
"third_intro_title" : "Yat добре се сработва с други",
"third_intro_content" : "Yats също живее извън Cake Wallet. Всеки адрес на портфейл може да бъде заменен с Yat!",
"learn_more" : "Научете още",
"search": "Търсене",
"search_language": "Търсене на език",
"search_currency": "Търсене на валута",
"new_template" : "Нов шаблон",
"electrum_address_disclaimer": "Нови адреси се генерират всеки път, когато използвате този, но и предишните продължават да работят",
"wallet_name_exists": "Вече има портфейл с това име. Моля, изберете друго име или преименувайте другия портфейл.",
"market_place": "Магазин",
"cake_pay_title": "Cake Pay Gift Карти",
"cake_pay_subtitle": "Купете гифткарти на намалени цени (само за САЩ)",
"cake_pay_web_cards_title": "Cake Pay Онлайн Карти",
"cake_pay_web_cards_subtitle": "Купете световно признати предплатени и гифт карти",
"about_cake_pay": "Cake Pay Ви позволява лесно да купувате предплатени карти, които веднага могат да се използват с над 150,000 търговци на територията на САЩ.",
"cake_pay_account_note": "Регистрайте се само с един имейл, за да виждате и купувате карти. За някои има дори и отстъпка!",
"already_have_account": "Вече имате профил?",
"create_account": "Създаване на профил",
"privacy_policy": "Политика за поверителността",
"welcome_to_cakepay": "Добре дошли в Cake Pay!",
"sign_up": "Регистрация",
"forgot_password": "Забравена парола",
"reset_password": "Нулиране на парола",
"gift_cards": "Gift Карти",
"setup_your_debit_card": "Настройте своята дебитна карта",
"no_id_required": "Без нужда от документ за самоличност. Използвайте навсякъде",
"how_to_use_card": "Как се ползва тази карта",
"purchase_gift_card": "Купуване на Gift Card",
"verification": "Потвърждаване",
"fill_code": "Моля, въведето кода за потвърждаване, изпратен на Вашия имейл",
"dont_get_code": "Не получихте код?",
"resend_code": "Повторно изпращане",
"debit_card": "Дебитна карта",
"cakepay_prepaid_card": "CakePay предплатена дебитна карта",
"no_id_needed": "Без нужда от документ за самоличност!",
"frequently_asked_questions": "Често задавани въпроси",
"debit_card_terms": "Съхранението и използването на данните от вашата платежна карта в този дигитален портфейл подлежат на условията на съответното съгласие за картодържец от издателя на картата.",
"please_reference_document": "Моля, вижте документите по-долу за повече информация.",
"cardholder_agreement": "Съгласие за картодържец",
"e_sign_consent": "E-Sign съгласие",
"agree_and_continue": "Съгласяване и продължаване",
"email_address": "Имейл адрес",
"agree_to": "Чрез създаването на акаунт вие се съгласявате с ",
"and": "и",
"enter_code": "Въведете код",
"congratulations": "Поздравления!",
"you_now_have_debit_card": "Вече имате дебитна карта",
"min_amount" : "Мин: ${value}",
"max_amount" : "Макс: ${value}",
"enter_amount": "Въведете сума",
"billing_address_info": "Ако Ви попитат за билинг адрес, въведето своя адрес за доставка",
"order_physical_card": "Поръчка на физическа карта",
"add_value": "Добавяне на стойност",
"activate": "Активиране",
"get_a": "Вземете ",
"digital_and_physical_card": " дигитална или физическа предплатена дебитна карта",
"get_card_note": ", която можете да заредите с дигитална валута. Без нужда от допълнителна информация!",
"signup_for_card_accept_terms": "Регистрайте се за картата и приемете условията.",
"add_fund_to_card": "Добавете предплатени средства в картите (до ${value})",
"use_card_info_two": "Средствата се обръщат в USD, когато биват запазени в предплатената карта, а не в дигитална валута.",
"use_card_info_three": "Използвайте дигиталната карта онлайн или чрез безконтактен метод на плащане.",
"optionally_order_card": "По желание поръчайте и физическа карта.",
"hide_details" : "Скриване на подробностите",
"show_details" : "Показване на подробностите",
"upto": "до ${value}",
"discount": "Спестете ${value}%",
"gift_card_amount": "Сума в Gift Card",
"bill_amount": "Искана сума",
"you_pay": "Вие плащате",
"tip": "Tip:",
"custom": "персонализирано",
"by_cake_pay": "от Cake Pay",
"expires": "Изтича",
"mm": "мм",
"yy": "гг",
"online": "Онлайн",
"offline": "Офлайн",
"gift_card_number": "Номер на Gift Card",
"pin_number": "PIN код",
"total_saving": "Общо спестявания",
"last_30_days": "Последните 30 дни",
"avg_savings": "Средни спестявания",
"view_all": "Виж всички",
"active_cards": "Активни карти",
"delete_account": "Изтриване на акаунт",
"cards": "Карти",
"active": "Активиране",
"redeemed": "Използвани",
"gift_card_balance_note": "Гифткарти с наличен баланс ще се покажат тук",
"gift_card_redeemed_note": "Използваните гифткарти ще се покажат тук",
"logout": "Logout",
"add_tip": "Add Tip",
"percentageOf": "от ${amount}",
"is_percentage": "е",
"search_category": "Търсене в категория",
"mark_as_redeemed": "Отбележи като използван",
"more_options": "Още настройки",
"awaiting_payment_confirmation": "Чака се потвърждение на плащането",
"transaction_sent_notice": "Ако процесът продължи повече от 1 минута, проверете някой block explorer и своя имейл.",
"agree": "Съгласен/а съм",
"in_store": "In Store",
"generating_gift_card": "Създаване на Gift Card",
"payment_was_received": "Плащането бе получено.",
"proceed_after_one_minute": "Ако процесът продължи повече от 1 минута, проверете своя имейл.",
"order_id": "ID на поръчка",
"gift_card_is_generated": "Gift Card бе създадена",
"open_gift_card": "Отвори Gift Card",
"contact_support": "Свържи се с отдел поддръжка",
"gift_cards_unavailable": "В момента гифткарти могат да бъдат закупени само с Monero, Bitcoin и Litecoin",
"introducing_cake_pay": "Запознайте се с Cake Pay!",
"cake_pay_learn_more": "Купете и използвайте гифткарти директно в приложението!\nПлъзнете отляво надясно, за да научите още.",
"automatic": "Автоматично",
"fixed_pair_not_supported": "Този fixed pair не се поддържа от избраната борса",
"variable_pair_not_supported": "Този variable pair не се поддържа от избраната борса",
"none_of_selected_providers_can_exchange": "Нито един от избраните provider-ъри не може да направи този превод",
"choose_one": "Изберете едно",
"choose_from_available_options": "Изберете от следните опции:",
"custom_redeem_amount": "Персонализирана сума за използване",
"add_custom_redemption": "Добавете персонализиран Redemption",
"remaining": "оставащи",
"delete_wallet": "Изтриване на портфейл",
"delete_wallet_confirm_message" : "Сигурни ли сте, че искате да изтриете протфейла ${wallet_name}?",
"low_fee": "Ниска такса",
"low_fee_alert": "Използвате ниска приоритетност в мрежата. Това може да доведе до дълго чакане, различни обменни курсове или отказани сделки. Препоръчваме използването на по-висока такса.",
"ignor": "Игнориране",
"use_suggested": "Използване на предложеното",
"do_not_share_warning_text" : "Не споделяйте това с никого, дори и отдел поддръжка.\n\nПарите Ви могат и ще бъдат откраднати!",
"help": "Помощ",
"all_transactions": "Всички транзакции",
"all_trades": "Всички сделкки",
"connection_sync": "Свързване и синхронизиране",
"security_and_backup": "Сигурност и резервни копия",
"create_backup": "Създаване на резервно копие",
"privacy_settings": "Настройки за поверителност",
"privacy": "Поверителност",
"display_settings": "Настройки на екрана",
"other_settings": "Други настройки",
"require_pin_after": "Въведете PIN след",
"always": "Винаги",
"minutes_to_pin_code": "${minute} минути",
"disable_exchange": "Деактивиране на борса",
"advanced_privacy_settings": "Допълнителни настройки за поверителност",
"settings_can_be_changed_later": "Тези настройки могат да бъдат променени по-късно от приложението",
"add_custom_node": "Добавяне на нов персонализиран Node",
"disable_fiat": "Деактивиране на fiat",
"fiat_api": "Fiat API",
"disabled": "Деактивирано",
"enabled": "Активирано",
"tor_only": "Само чрез Tor",
"unmatched_currencies": "Валутата на този портфейл не съвпада с тази от сканирания QR код",
"orbot_running_alert": "Моля, включете Orbot преди да свържете към този node.",
"contact_list_contacts": "Контакти",
"contact_list_wallets": "Моите портфейли",
"bitcoin_payments_require_1_confirmation": "Плащанията с Bitcoin изискват потвърждение, което може да отнеме 20 минути или повече. Благодарим за търпението! Ще получите имейл, когато плащането е потвърдено.",
"send_to_this_address" : "Send ${currency} ${tag}to this address",
"arrive_in_this_address" : "${currency} ${tag}ще отидат на този адрес",
"do_not_send": "Не изпращай",
"error_dialog_content": "Получихме грешка.\n\nМоля, изпратете доклада до нашия отдел поддръжка, за да подобрим приложението."
}

688
res/values/strings_cs.arb Normal file
View file

@ -0,0 +1,688 @@
{
"welcome" : "Vítejte v",
"cake_wallet" : "Cake Wallet",
"first_wallet_text" : "Úžasná peněženka pro Monero, Bitcoin, Litecoin a Haven",
"please_make_selection" : "Prosím vyberte si níže, jestli chcete vytvořit, nebo obnovit peněženku.",
"create_new" : "Vytvořit novou peněženku",
"restore_wallet" : "Obnovit peněženku",
"monero_com": "Monero.com od Cake Wallet",
"monero_com_wallet_text": "Úžasná peněženka pro Monero",
"haven_app": "Haven od Cake Wallet",
"haven_app_wallet_text": "Úžasná peněženka pro Haven",
"accounts" : "Účty",
"edit" : "Upravit",
"account" : "Účet",
"add" : "Přidat",
"address_book" : "Adresář",
"contact" : "Kontakt",
"please_select" : "Zvolte si:",
"cancel" : "Zrušit",
"ok" : "OK",
"contact_name" : "Jméno kontaktu",
"reset" : "Vymazat",
"save" : "Uložit",
"address_remove_contact" : "Smazat kontakt",
"address_remove_content" : "Opravdu chcete smazat označený kontakt?",
"authenticated" : "Ověřeno",
"authentication" : "Ověřování",
"failed_authentication" : "Ověřování selhalo. ${state_error}",
"wallet_menu" : "Menu",
"Blocks_remaining" : "Zbývá ${status} bloků",
"please_try_to_connect_to_another_node" : "Zkuste se prosím připojit k jinému uzlu",
"xmr_hidden" : "Skryto",
"xmr_available_balance" : "Zůstatek (dostupný)",
"xmr_full_balance" : "Zůstatek (celkový)",
"send" : "Poslat",
"receive" : "Přijmout",
"transactions" : "Transakce",
"incoming" : "Příchozí",
"outgoing" : "Odchozí",
"transactions_by_date" : "Transakce podle data",
"trades" : "Obchody",
"filter_by": "Filtrovat podle",
"today" : "Dnes",
"yesterday" : "Včera",
"received" : "Přijato",
"sent" : "Odesláno",
"pending" : " (čeká)",
"rescan" : "Znovu prohledat",
"reconnect" : "Znovu připojit",
"wallets" : "Peněženky",
"show_seed" : "Zobrazit seed",
"show_keys" : "Zobrazit seed/klíče",
"address_book_menu" : "Adresář",
"reconnection" : "Znovu připojit",
"reconnect_alert_text" : "Opravdu se chcete znovu připojit?",
"exchange" : "Směnit",
"clear" : "Smazat",
"refund_address" : "Adresa pro vrácení",
"change_exchange_provider" : "Změnit směnárnu",
"you_will_send" : "Směnit z",
"you_will_get" : "Směnit na",
"amount_is_guaranteed" : "Částka, kterou dostanete, je konečná",
"amount_is_estimate" : "Částka, kterou dostanete, je jen odhad.",
"powered_by" : "Zajišťuje ${title}",
"error" : "Chyba",
"estimated" : "Odhadováno",
"min_value" : "Min: ${value} ${currency}",
"max_value" : "Max: ${value} ${currency}",
"change_currency" : "Změnit měnu",
"overwrite_amount" : "Přepsat částku",
"qr_payment_amount" : "Tento QR kód obsahuje i částku. Chcete přepsat současnou hodnotu?",
"copy_id" : "Kopírovat ID",
"exchange_result_write_down_trade_id" : "Prosím zkopírujte si, nebo zapište si ID transakce (trade ID) pro pokračování.",
"trade_id" : "ID transakce (trade ID):",
"copied_to_clipboard" : "Zkopírováno do schránky",
"saved_the_trade_id" : "Uložil jsem si ID transakce (trade ID)",
"fetching" : "Načítá se",
"id" : "ID: ",
"amount" : "Částka: ",
"payment_id" : "ID platby: ",
"status" : "Status: ",
"offer_expires_in" : "Nabídka vyprší: ",
"trade_is_powered_by" : "Tento obchod zajišťuje ${provider}",
"copy_address" : "Zkopírovat adresu",
"exchange_result_confirm" : "Po stisknutí Potvrdit odešlete ${fetchingLabel} ${from} ze své peněženky s názvem ${walletName} na adresu uvedenou níže. Nebo můžete prostředky poslat ze své externí peněženky na níže uvedenou adresu/QR kód.\n\nProsím stiskněte Potvrdit pro pokračování, nebo se vraťte zpět pro změnu částky.",
"exchange_result_description" : "Musíte poslat minimálně ${fetchingLabel} ${from} na adresu uvedenou na následující stránce. Pokud pošlete nižší částku než ${fetchingLabel} ${from} nemusí dojít ke směně, ani k jejímu vrácení.",
"exchange_result_write_down_ID" : "*Prosím zkopírujte si, nebo zapište si výše uvedené ID.",
"confirm" : "Potvrdit",
"confirm_sending" : "Potvrdit odeslání",
"commit_transaction_amount_fee" : "Odeslat transakci\nČástka: ${amount}\nPoplatek: ${fee}",
"sending" : "Odesílání",
"transaction_sent" : "Transakce odeslána!",
"expired" : "Vypršelo",
"time" : "${minutes}m ${seconds}s",
"send_xmr" : "Odeslat XMR",
"exchange_new_template" : "Nová šablona",
"faq" : "FAQ",
"enter_your_pin" : "Zadejte svůj PIN",
"loading_your_wallet" : "Načítám peněženku",
"new_wallet" : "Nová peněženka",
"wallet_name" : "Název peněženky",
"continue_text" : "Pokračovat",
"choose_wallet_currency" : "Prosím zvolte si měnu pro peněženku:",
"node_new" : "Nový uzel",
"node_address" : "Adresa uzlu",
"node_port" : "Port uzlu",
"login" : "Login",
"password" : "Heslo",
"nodes" : "Uzly",
"node_reset_settings_title" : "Zrušit nastavení",
"nodes_list_reset_to_default_message" : "Opravdu chcete zrušit nastavení a vrátit výchozí hodnotu?",
"change_current_node" : "Opravdu chcete změnit současný uzel na ${node}?",
"change" : "Změnit",
"remove_node" : "Odstranit uzel",
"remove_node_message" : "Opravdu chcete odstranit označený uzel?",
"remove" : "Odstranit",
"delete" : "Smazat",
"add_new_node" : "Přidat nový uzel",
"change_current_node_title" : "Změnit současný uzel",
"node_test" : "Otestovat",
"node_connection_successful" : "Připojení bylo úspěšné",
"node_connection_failed" : "Připojení selhalo",
"new_node_testing" : "Testování nového uzlu",
"use" : "Přepnout na ",
"digit_pin" : "-číselný PIN",
"share_address" : "Sdílet adresu",
"receive_amount" : "Částka",
"subaddresses" : "Subadresy",
"addresses" : "Adresy",
"scan_qr_code" : "Naskenujte QR kód pro získání adresy",
"qr_fullscreen" : "Poklepáním otevřete QR kód na celé obrazovce",
"rename" : "Přejmenovat",
"choose_account" : "Zvolte částku",
"create_new_account" : "Vytvořit nový účet",
"accounts_subaddresses" : "Účty a subadresy",
"restore_restore_wallet" : "Obnovit peněženku",
"restore_title_from_seed_keys" : "Obnovit ze seedu/klíčů",
"restore_description_from_seed_keys" : "Obnovte svou peněženku ze seedu/klíčů, které jste si uložili na bezpečném místě",
"restore_next" : "Další",
"restore_title_from_backup" : "Obnovit ze zálohy",
"restore_description_from_backup" : "Můžete obnovit celou Cake Wallet aplikaci ze souboru se zálohou",
"restore_seed_keys_restore" : "Obnovit ze seedu/klíčů",
"restore_title_from_seed" : "Obnovit ze seedu",
"restore_description_from_seed" : "Obnovte svou peněženku pomocí kombinace 25, nebo 13 slov",
"restore_title_from_keys" : "Obnovit z klíčů",
"restore_description_from_keys" : "Obnovte svou peněženku pomocí generovaných stisků kláves uložených z vašich soukromých klíčů",
"restore_wallet_name" : "Jméno peněženky",
"restore_address" : "Adresa",
"restore_view_key_private" : "Klíč pro zobrazení (soukromý)",
"restore_spend_key_private" : "Klíč pro platby (soukromý)",
"restore_recover" : "Obnovit",
"restore_wallet_restore_description" : "Popis obnovení peněženky",
"restore_new_seed" : "Nový seed",
"restore_active_seed" : "Aktivní seed",
"restore_bitcoin_description_from_seed" : "Obnovte svou peněženku pomocí kombinace 24 slov",
"restore_bitcoin_description_from_keys" : "Obnovte svou peněženku pomocí vygenerovaného WIF řetězce z vašich soukromých klíčů",
"restore_bitcoin_title_from_keys" : "Obnovit z WIF",
"restore_from_date_or_blockheight" : "Prosím zadejte datum z doby několik dnů před tím, než jste si zakládali tuto peněženku. Nebo místo toho zadejte výšku bloku, pokud ji znáte.",
"seed_reminder" : "Prosím zapište si toto pro případ ztráty, nebo poškození telefonu",
"seed_title" : "Seed",
"seed_share" : "Sdílet seed",
"copy" : "Kopírovat",
"seed_language_choose" : "Prosím zvolte si jazyk seedu:",
"seed_choose" : "Zvolte si jazyk seedu",
"seed_language_next" : "Další",
"seed_language_english" : "Angličtina",
"seed_language_chinese" : "Čínština",
"seed_language_dutch" : "Nizozemština",
"seed_language_german" : "Němčina",
"seed_language_japanese" : "Japonština",
"seed_language_portuguese" : "Portugalština",
"seed_language_russian" : "Ruština",
"seed_language_spanish" : "Španělština",
"seed_language_french": "Francouzština",
"seed_language_italian": "Italština",
"send_title" : "Poslat",
"send_your_wallet" : "Vaše peněženka",
"send_address" : "${cryptoCurrency} adresa",
"send_payment_id" : "ID platby (nepovinné)",
"all" : "VŠE",
"send_error_minimum_value" : "Minimální částka je 0,01",
"send_error_currency" : "Měna může obsahovat pouze čísla",
"send_estimated_fee" : "Odhadovaný poplatek:",
"send_priority" : "Momentálně je poplatek nastaven na prioritu: ${transactionPriority}.\nPriorita transakce může být upravena v nastavení.",
"send_creating_transaction" : "Vytváření transakce",
"send_templates" : "Šablony",
"send_new" : "Nová",
"send_amount" : "Částka:",
"send_fee" : "Poplatek:",
"send_name" : "Název",
"send_got_it" : "Rozumím",
"send_sending" : "Odesílání...",
"send_success" : "Vaše ${crypto} bylo úspěšně odesláno",
"settings_title" : "Nastavení",
"settings_nodes" : "Uzly",
"settings_current_node" : "Aktuální uzel",
"settings_wallets" : "Peněženky",
"settings_display_balance" : "Zobrazovat zůstatek",
"settings_currency" : "Měna",
"settings_fee_priority" : "Priorita (poplatky)",
"settings_save_recipient_address" : "Ukládat adresu příjemce",
"settings_personal" : "Osobní",
"settings_change_pin" : "Změnit PIN",
"settings_change_language" : "Změnit jazyk",
"settings_allow_biometrical_authentication" : "Povolit biometrické ověření",
"settings_dark_mode" : "Tmavý režim",
"settings_transactions" : "Transakce",
"settings_trades" : "Obchody",
"settings_display_on_dashboard_list" : "Zobrazit na seznamu na dashboardu",
"settings_all" : "VŠE",
"settings_only_trades" : "Pouze obchody",
"settings_only_transactions" : "Pouze transakce",
"settings_none" : "Žádný",
"settings_support" : "Podpora",
"settings_terms_and_conditions" : "Obchodní podmínky",
"pin_is_incorrect" : "PIN není správný",
"setup_pin" : "Nastavit PIN",
"enter_your_pin_again" : "Zadejte znovu svůj PIN",
"setup_successful" : "Váš PIN byl úspěšně nastaven!",
"wallet_keys" : "Seed/klíče peněženky",
"wallet_seed" : "Seed peněženky",
"private_key" : "Soukromý klíč",
"public_key" : "Veřejný klíč",
"view_key_private" : "Klíč pro zobrazení (soukromý)",
"view_key_public" : "Klíč pro zobrazení (veřejný)",
"spend_key_private" : "Klíč pro platby (soukromý)",
"spend_key_public" : "Klíč pro platby (veřejný)",
"copied_key_to_clipboard" : "Zkopírován ${key} do schránky",
"new_subaddress_title" : "Nová adresa",
"new_subaddress_label_name" : "Popisek",
"new_subaddress_create" : "Vytvořit",
"address_label" : "Popisek adresy",
"subaddress_title" : "Seznam subadres",
"trade_details_title" : "Podrobnosti k obchodu",
"trade_details_id" : "ID",
"trade_details_state" : "Stav",
"trade_details_fetching" : "Získávám",
"trade_details_provider" : "Poskytovatel",
"trade_details_created_at" : "Vytvořeno v",
"trade_details_pair" : "Pár",
"trade_details_copied" : "${title} zkopírováno do schránky",
"trade_history_title" : "Historie obchodů",
"transaction_details_title" : "Podrobnosti o transakci",
"transaction_details_transaction_id" : "ID transakce",
"transaction_details_date" : "Datum",
"transaction_details_height" : "Výška",
"transaction_details_amount" : "Částka",
"transaction_details_fee" : "Poplatek",
"transaction_details_copied" : "${title} zkopírováno do schránky",
"transaction_details_recipient_address" : "Adresa příjemce",
"wallet_list_title" : "Monero Wallet",
"wallet_list_create_new_wallet" : "Vytvořit novou peněženku",
"wallet_list_restore_wallet" : "Obnovit peněženku",
"wallet_list_load_wallet" : "Načíst peněženku",
"wallet_list_loading_wallet" : "Načítám ${wallet_name} peněženku",
"wallet_list_failed_to_load" : "Chyba při načítání ${wallet_name} peněženky. ${error}",
"wallet_list_removing_wallet" : "Odstraňuji ${wallet_name} peněženku",
"wallet_list_failed_to_remove" : "Chyba při odstraňování ${wallet_name} peněženky. ${error}",
"widgets_address" : "Adresa",
"widgets_restore_from_blockheight" : "Obnovit z výšky bloku",
"widgets_restore_from_date" : "Obnovit z data",
"widgets_or" : "nebo",
"widgets_seed" : "Seed",
"router_no_route" : "Pro ${name} není definována žádná cesta",
"error_text_account_name" : "Název účtu může obsahovat jen písmena a čísla\na musí mít délku 1 až 15 znaků",
"error_text_contact_name" : "Jméno kontaktu nemůže obsahovat symboly ` , ' \" \na musí mít délku 1 až 32 znaků",
"error_text_address" : "Adresa peněženky musí odpovídat typu\nkryptoměny",
"error_text_node_address" : "prosím zadejte IPv4 adresu",
"error_text_node_port" : "Port uzlu musí být číslo mezi 0 a 65535",
"error_text_payment_id" : "ID platby se musí skládat z 16 až 64 hexadecimálních znaků",
"error_text_xmr" : "Hodnota XMR nemůže překročit dostupný zůstatek.\nPočet desetinných míst musí být menší, nebo roven 12",
"error_text_fiat" : "Částka nemůže překročit dostupný zůstatek.\nPočet desetinných míst musí být menší, nebo roven 2",
"error_text_subaddress_name" : "Subadresa nemůže obsahovat symboly ` , ' \" \na musí mít délku 1 až 20 znaků",
"error_text_amount" : "Částka může obsahovat pouze čísla",
"error_text_wallet_name" : "Jméno peněženky může obsahovat pouze písmena, čísla, symbol _ \na musí mít délku 1 až 33 znaků",
"error_text_keys" : "Klíče peněženky musí obsahovat 64 hexadecimálních znaků",
"error_text_crypto_currency" : "Počet desetinných míst\nmusí být menší, nebo roven 12",
"error_text_minimal_limit" : "Obchod pro ${provider} nebyl vytvořen. Částka je menší než minimální hodnota: ${min} ${currency}",
"error_text_maximum_limit" : "Obchod pro ${provider} nebyl vytvořen. Částka je větší než maximální hodnota: ${max} ${currency}",
"error_text_limits_loading_failed" : "Obchod pro ${provider} nebyl vytvořen. Selhalo načítání limitů",
"error_text_template" : "Jméno šablony a adresa nemohou obsahovat symboly ` , ' \" \na musí mít délku 1 až 106 znaků",
"auth_store_ban_timeout" : "ban_timeout",
"auth_store_banned_for" : "Zablokován na ",
"auth_store_banned_minutes" : " minut",
"auth_store_incorrect_password" : "Nesprávný PIN",
"wallet_store_monero_wallet" : "Monero Wallet",
"wallet_restoration_store_incorrect_seed_length" : "Nesprávná délka seedu",
"full_balance" : "Celkový zůstatek",
"available_balance" : "Dostupný zůstatek",
"hidden_balance" : "Skrytý zůstatek",
"sync_status_syncronizing" : "SYNCHRONIZUJI",
"sync_status_syncronized" : "SYNCHRONIZOVÁNO",
"sync_status_not_connected" : "NEPŘIPOJENO",
"sync_status_starting_sync" : "SPOUŠTĚNÍ SYNCHRONIZACE",
"sync_status_failed_connect" : "ODPOJENO",
"sync_status_connecting" : "PŘIPOJOVÁNÍ",
"sync_status_connected" : "PŘIPOJENO",
"sync_status_attempting_sync" : "ZAHAJUJI SYNCHR.",
"transaction_priority_slow" : "Pomalá",
"transaction_priority_regular" : "Běžná",
"transaction_priority_medium" : "Střední",
"transaction_priority_fast" : "Rychlá",
"transaction_priority_fastest" : "Nejrychlejší",
"trade_for_not_created" : "Obchod pro ${title} nebyl vytvořen.",
"trade_not_created" : "Obchod nebyl vytvořen",
"trade_id_not_found" : "Obchod ${tradeId} z ${title} nenalezen.",
"trade_not_found" : "Obchod nenalezen.",
"trade_state_pending" : "Čekající",
"trade_state_confirming" : "Ověřování",
"trade_state_trading" : "Obchoduji",
"trade_state_traded" : "Zobchodováno",
"trade_state_complete" : "Kompletní",
"trade_state_to_be_created" : "Bude vytvořen",
"trade_state_unpaid" : "Nezaplaceno",
"trade_state_underpaid" : "Zaplaceno méně",
"trade_state_paid_unconfirmed" : "Nepotvrzeně zaplaceno",
"trade_state_paid" : "Zaplaceno",
"trade_state_btc_sent" : "BTC odesláno",
"trade_state_timeout" : "Vypršel časový limit",
"trade_state_created" : "Vytvořeno",
"trade_state_finished" : "Hotovo",
"change_language" : "Změnit jazyk",
"change_language_to" : "Změnit jazyk na ${language}?",
"paste" : "Vložit",
"restore_from_seed_placeholder" : "Prosím zadejte, nebo vložte ze schránky svůj seed.",
"add_new_word" : "Přidat nové slovo",
"incorrect_seed" : "Zadaný text není správný.",
"biometric_auth_reason" : "Naskenujte otisk prstu pro ověření",
"version" : "Verze ${currentVersion}",
"extracted_address_content" : "Prostředky budete posílat na\n${recipient_name}",
"card_address" : "Adresa:",
"buy" : "Koupit",
"sell": "Prodat",
"placeholder_transactions" : "Vaše transakce budou zobrazeny zde",
"placeholder_contacts" : "Vaše kontakty budou zobrazeny zde",
"template" : "Šablona",
"confirm_delete_template" : "Tato akce smaže tuto šablonu. Přejete si pokračovat?",
"confirm_delete_wallet" : "Tato akce smaže tuto peněženku. Přejete si pokračovat?",
"picker_description" : "Pro volbu ChangeNOW, nebo MorphToken si prosím vyberte nejprve pár pro obchodování",
"change_wallet_alert_title" : "Přepnout peněženku",
"change_wallet_alert_content" : "Opravdu chcete změnit aktivní peněženku na ${wallet_name}?",
"creating_new_wallet" : "Vytvářím novou peněženku",
"creating_new_wallet_error" : "Chyba: ${description}",
"seed_alert_title" : "Pozor",
"seed_alert_content" : "Tento seed představuje jedinou možnost, jak obnovit peněženku. Zapsali jste si ho?",
"seed_alert_back" : "Zpět",
"seed_alert_yes" : "Ano",
"exchange_sync_alert_content" : "Prosím počkejte, dokud nebude vaše peněženka synchronizována",
"pre_seed_title" : "DŮLEŽITÉ",
"pre_seed_description" : "Na následující stránce uvidíte sérii ${words} slov. Je to váš tzv. seed a je to JEDINÁ možnost, jak můžete později obnovit svou peněženku v případě ztráty nebo poruchy. Je VAŠÍ zodpovědností zapsat si ho a uložit si ho na bezpečném místě mimo aplikaci Cake Wallet.",
"pre_seed_button_text" : "Rozumím. Ukaž mi můj seed.",
"xmr_to_error" : "XMR.TO chyba",
"xmr_to_error_description" : "Neplatná částka. Maximálně lze použít 8 desetinných míst",
"provider_error" : "${provider} chyba",
"use_ssl" : "Použít SSL",
"trusted" : "Důvěřovat",
"color_theme" : "Barevný motiv",
"light_theme" : "Světlý",
"bright_theme" : "Jasný",
"dark_theme" : "Tmavý",
"enter_your_note" : "Zadejte poznámku…",
"note_optional" : "Poznámka (nepovinné)",
"note_tap_to_change" : "Poznámka (poklepáním upravit)",
"view_in_block_explorer" : "Zobrazit v Block Exploreru",
"view_transaction_on" : "Zobrazit transakci na ",
"transaction_key" : "Klíč transakce",
"confirmations" : "Potvrzení",
"recipient_address" : "Adresa příjemce",
"extra_id" : "Extra ID:",
"destination_tag" : "Destination Tag:",
"memo" : "Memo:",
"backup" : "Záloha",
"change_password" : "Změnit heslo",
"backup_password" : "Heslo pro zálohy",
"write_down_backup_password" : "Prosím zapište si své heslo pro zálohy, které se používá pro import vašich souborů se zálohami.",
"export_backup" : "Exportovat zálohu",
"save_backup_password" : "Prosím ujistěte se, že máte uschováno heslo pro zálohy. Bez něj nebudete moci naimportovat soubory se zálohami.",
"backup_file" : "Soubor se zálohou",
"edit_backup_password" : "Upravit heslo pro zálohy",
"save_backup_password_alert" : "Uložit heslo pro zálohy",
"change_backup_password_alert" : "Vaše předchozí soubory se zálohami nebude možné naimportovat s novým heslem. Nové heslo bude použito pouze pro nové zálohy. Opravdu chcete změnit heslo pro zálohy?",
"enter_backup_password" : "Zde zadejte své heslo pro zálohy",
"select_backup_file" : "Vybrat soubor se zálohou",
"import" : "Importovat",
"please_select_backup_file" : "Prosím vyberte soubor se zálohou a zadejte heslo pro zálohy.",
"fixed_rate" : "Pevný kurz",
"fixed_rate_alert" : "Když je zvolený pevný kurz, můžete zadat konkrétní částku, kterou chcete dostat. Chcete se přepnout do režimu s pevným kurzem?",
"xlm_extra_info" : "Prosím nezapomeňte zadat Memo ID, když posíláte XLM transakce ke směně",
"xrp_extra_info" : "Prosím nezapomeňte zadat Destination Tag, když posíláte XRP transakce ke směně",
"exchange_incorrect_current_wallet_for_xmr" : "Pokud chcete směnit XMR z Monero částky v Cake Wallet, prosím přepněte se nejprve do své Monero peněženky.",
"confirmed" : "Potvrzeno",
"unconfirmed" : "Nepotvrzeno",
"displayable" : "Zobrazitelné",
"submit_request" : "odeslat požadavek",
"buy_alert_content" : "V současné době podporujeme nákup pouze Bitcoinu a Litecoinu. Pro nákup Bitcoinu, nebo Litecoinu si prosím vytvořte Bitcoinovou, nebo Litecoinovou peněženku, nebo se do ní přepněte.",
"sell_alert_content": "V současné době podporujeme pouze prodej Bitcoinu. Pro prodej Bitcoinu si prosím vytvořte Bitcoinovou peněženku, nebo se do ní přepněte.",
"outdated_electrum_wallet_description" : "Nové Bitcoinové peněženky vytvořené v Cake mají nyní seed se 24 slovy. Je třeba si vytvořit novou Bitcoinovou peněženku se 24 slovy, převést na ni všechny prostředky a přestat používat seed se 12 slovy. Prosím udělejte to hned pro zabezpečení svých prostředků.",
"understand" : "Rozumím",
"apk_update" : "aktualizace APK",
"buy_bitcoin" : "Nakoupit Bitcoin",
"buy_with" : "Nakoupit pomocí",
"moonpay_alert_text" : "Částka musí být větší nebo rovna ${minAmount} ${fiatCurrency}",
"outdated_electrum_wallet_receive_warning": "Tato peněženka má seed se 12 slovy a byla vytvořena pomocí Cake, NEUKLÁDEJTE Bitcoin na tuto peněženku. Jakékoliv BTC převedené na tuto peněženku může být ztraceno. Vytvořte si novou peněženku s 24 slovy (otevřete menu vpravo nahoře, vyberte Peněženky, zvolte Vytvořit novou peněženku a pak zvolte Bitcoin) a IHNED tam přesuňte své BTC. Nové (24-slovní) BTC peněženky z Cake jsou bezpečné",
"do_not_show_me": "Příště nezobrazovat",
"unspent_coins_title" : "Neutracené mince",
"unspent_coins_details_title" : "Podrobnosti o neutracených mincích",
"freeze" : "Zmrazit",
"frozen" : "Zmraženo",
"coin_control" : "Volba mincí (nepovinné)",
"address_detected" : "Adresa detekována",
"address_from_domain" : "Tato adresa je z ${domain} na Unstoppable Domains",
"add_receiver" : "Přidat dalšího příjemce (nepovinné)",
"manage_yats" : "Spravovat Yaty",
"yat_alert_title" : "Posílejte a přijímejte crypto jednodušeji s Yat",
"yat_alert_content" : "Uživatelé Cake Wallet mohou nyní posílat a přijímat všechny své oblíbené měny pomocí něco jako uživatelského jména tvořeného emoji.",
"get_your_yat" : "Získat Yat",
"connect_an_existing_yat" : "Připojit existující Yat",
"connect_yats": "Připojit Yaty",
"yat_address" : "Yat adresa",
"yat" : "Yat",
"address_from_yat" : "Tato adresa je z ${emoji} na Yatu",
"yat_error" : "Yat chyba",
"yat_error_content" : "Žádná adresa není spojena s tímto Yatem. Zkuste jiný Yat",
"choose_address" : "\n\nProsím vyberte adresu:",
"yat_popup_title" : "Adresa Vaší peněženky může být emojifikována.",
"yat_popup_content" : "Nyní můžete posílat a přijímat crypto v Cake Wallet se svým Yatem - krátkým uživatelským jménem složeným z emoji. Spravujte kdykoliv Yaty na stránce s nastavením",
"second_intro_title" : "Jedna emoji adresa vládne všem",
"second_intro_content" : "Váš Yat je jediná unikátní emoji adresa, která nahrazuje všechny Vaše dlouhé hexadecimální adresy pro všechny Vaše měny.",
"third_intro_title" : "Yat dobře spolupracuje s ostatními",
"third_intro_content" : "Yat existuje i mimo Cake Wallet. Jakákoliv adresa peněženky na světě může být nahrazena Yatem!",
"learn_more" : "Zjistit více",
"search": "Hledat",
"search_language": "Hledat jazyk",
"search_currency": "Hledat měnu",
"new_template" : "Nová šablona",
"electrum_address_disclaimer": "Po každém použití je generována nová adresa, ale předchozí adresy také stále fungují",
"wallet_name_exists": "Peněženka s tímto názvem už existuje. Prosím zvolte si jiný název, nebo nejprve přejmenujte nejprve druhou peněženku.",
"market_place": "Obchod",
"cake_pay_title": "Cake Pay dárkové karty",
"cake_pay_subtitle": "Kupte si zlevněné dárkové karty (pouze USA)",
"cake_pay_web_cards_title": "Cake Pay webové karty",
"cake_pay_web_cards_subtitle": "Kupte si celosvětové předplacené a dárkové karty",
"about_cake_pay": "Cake Pay umožňuje jednoduše nakupovat dárkové karty pomocí virtuálních prostředků, které lze okamžitě uplatnit u více než 150 000 obchodníků ve Spojených státech.",
"cake_pay_account_note": "Přihlaste se svou e-mailovou adresou pro zobrazení a nákup karet. Některé jsou dostupné ve slevě!",
"already_have_account": "Máte už účet?",
"create_account": "Vytvořit účet",
"privacy_policy": "Zásady ochrany soukromí",
"welcome_to_cakepay": "Vítejte v Cake Pay!",
"sign_up": "Registrovat se",
"forgot_password": "Zapomenuté heslo",
"reset_password": "Resetovat heslo",
"gift_cards": "Dárkové karty",
"setup_your_debit_card": "Nastavit debetní kartu",
"no_id_required": "Žádní ID není potřeba. Dobijte si a utrácejte kdekoliv",
"how_to_use_card": "Jak použít tuto kartu",
"purchase_gift_card": "Objednat dárkovou kartu",
"verification": "Ověření",
"fill_code": "Prosím vyplňte ověřovací kód zaslaný na Váš e-mail",
"dont_get_code": "Nepřišel Vám kód?",
"resend_code": "Prosím poslat znovu",
"debit_card": "Debetní karta",
"cakepay_prepaid_card": "CakePay předplacená debetní karta",
"no_id_needed": "Žádné ID není potřeba!",
"frequently_asked_questions": "Často kladené otázky",
"debit_card_terms": "Uložení a použití vašeho čísla platební karty (a přihlašovací údaje k vašemu číslu karty) v této digitální peněžence se řídí Obchodními podmínkami smlouvy příslušného držitele karty s vydavatelem karty (v jejich nejaktuálnější verzi).",
"please_reference_document": "Více informací naleznete v dokumentu níže.",
"cardholder_agreement": "Smlouva držitele karty",
"e_sign_consent": "E-Sign souhlas",
"agree_and_continue": "Souhlasím & pokračovat",
"email_address": "E-mailová adresa",
"agree_to": "Vytvořením účtu souhlasíte s ",
"and": "a",
"enter_code": "Zadejte kód",
"congratulations": "Gratulujeme!",
"you_now_have_debit_card": "Nyní máte debetní kartu",
"min_amount" : "Min: ${value}",
"max_amount" : "Max: ${value}",
"enter_amount": "Zadejte částku",
"billing_address_info": "Při dotazu na fakturační adresu, zadejte svou doručovací adresu",
"order_physical_card": "Objednat fyzickou kartu",
"add_value": "Přidat hodnotu",
"activate": "Aktivovat",
"get_a": "Získejte ",
"digital_and_physical_card": " digitální a fyzické předplacené debetní karty,",
"get_card_note": " které můžete nabít digitální měnou. Žádné další informace nejsou vyžadovány!",
"signup_for_card_accept_terms": "Zaregistrujte se pro kartu a souhlaste s podmínkami.",
"add_fund_to_card": "Všechny předplacené prostředky na kartě (až ${value})",
"use_card_info_two": "Prostředky jsou převedeny na USD, když jsou drženy na předplaceném účtu, nikoliv na digitální měnu.",
"use_card_info_three": "Použijte tuto digitální kartu online nebo bezkontaktními platebními metodami.",
"optionally_order_card": "Volitelně objednat fyzickou kartu.",
"hide_details" : "Skrýt detaily",
"show_details" : "Zobrazit detaily",
"upto": "až ${value}",
"discount": "Ušetříte ${value}%",
"gift_card_amount": "Hodnota dárkové karty",
"bill_amount": "Účtovaná částka",
"you_pay": "Zaplatíte",
"tip": "Spropitné:",
"custom": "vlastní",
"by_cake_pay": "od Cake Pay",
"expires": "Vyprší",
"mm": "MM",
"yy": "YY",
"online": "Online",
"offline": "Offline",
"gift_card_number": "Číslo dárkové karty",
"pin_number": "Číslo PIN",
"total_saving": "Celkem ušetřeno",
"last_30_days": "Posledních 30 dnů",
"avg_savings": "Prům. ušetřeno",
"view_all": "Zobrazit vše",
"active_cards": "Aktivní karty",
"delete_account": "Smazat účet",
"cards": "Karty",
"active": "Aktivní",
"redeemed": "Uplatněné",
"gift_card_balance_note": "Dárkové karty se zbývající částkou se zobrazí zde",
"gift_card_redeemed_note": "Dárkové karty, které jste uplatnili, se zobrazí zde",
"logout": "Odhlásit",
"add_tip": "Přidat spropitné",
"percentageOf": "z ${amount}",
"is_percentage": "je",
"search_category": "Hledat kategorii",
"mark_as_redeemed": "Označit jako uplatněný",
"more_options": "Více možností",
"awaiting_payment_confirmation": "Čeká se na potvrzení platby",
"transaction_sent_notice": "Pokud proces nepokročí během 1 minuty, zkontrolujte block explorer a svůj e-mail.",
"agree": "Souhlasím",
"in_store": "V obchodě",
"generating_gift_card": "Generuji dárkovou kartu",
"payment_was_received": "Vaše platba byla přijata.",
"proceed_after_one_minute": "Pokud proces nepokročí během 1 minuty, zkontrolujte svůj e-mail.",
"order_id": "ID objednávky",
"gift_card_is_generated": "Generuje se dárková karta",
"open_gift_card": "Otevřít dárkovou kartu",
"contact_support": "Kontaktovat podporu",
"gift_cards_unavailable": "Dárkové karty jsou v tuto chvíli dostupné pro zakoupení pouze pomocí Monera, Bitcoinu a Litecoinu.",
"introducing_cake_pay": "Představujeme Cake Pay!",
"cake_pay_learn_more": "Okamžitý nákup a uplatnění dárkových karet v aplikaci!\nPřejeďte prstem zleva doprava pro další informace.",
"automatic": "Automatický",
"fixed_pair_not_supported": "Tento pár s pevným kurzem není ve zvolené směnárně podporován",
"variable_pair_not_supported": "Tento pár s tržním kurzem není ve zvolené směnárně podporován",
"none_of_selected_providers_can_exchange": "Žádný ze zvolených poskytovatelů nemůže provést tuto směnu",
"choose_one": "Zvolte si",
"choose_from_available_options": "Zvolte si z dostupných možností:",
"custom_redeem_amount": "Vlastní částka pro uplatnění",
"add_custom_redemption": "Přidat vlastní uplatnění",
"remaining": "zbývá",
"delete_wallet": "Smazat peněženku",
"delete_wallet_confirm_message" : "Opravdu chcete smazat ${wallet_name} peněženku?",
"low_fee": "Nízký poplatek",
"low_fee_alert": "Momentálně máte nastavené nízké poplatky pro transakce. To může způsobovat dlouhé čekání, změnu směnného kurzu, nebo zrušení směny. Doporučujeme nastavit vyšší poplatek.",
"ignor": "Ignorovat",
"use_suggested": "Použít doporučený",
"do_not_share_warning_text" : "Toto nesdílejte s nikým jiným, ani s podporou.\n\nJinak mohou být Vaše prostředky ukradeny!",
"help": "pomoc",
"all_transactions": "Všechny transakce",
"all_trades": "Všechny obchody",
"connection_sync": "Připojení a synch.",
"security_and_backup": "Bezpečnost a zálohy",
"create_backup": "Vytvořit zálohu",
"privacy_settings": "Nastavení soukromí",
"privacy": "Soukromí",
"display_settings": "Nastavení zobrazení",
"other_settings": "Další nastavení",
"require_pin_after": "Vyžadovat PIN po",
"always": "Vždy",
"minutes_to_pin_code": "${minute} minutách",
"disable_exchange": "Zakázat směnárny",
"advanced_privacy_settings": "Pokročilá nastavení soukromí",
"settings_can_be_changed_later": "Tato nastavení mohou být změněna později v nastavení v této aplikaci",
"add_custom_node": "Přidat vlastní uzel",
"disable_fiat": "Zakázat fiat",
"fiat_api": "Fiat API",
"disabled": "Zakázáno",
"enabled": "Povoleno",
"tor_only": "Pouze Tor",
"unmatched_currencies": "Měna vaší současné peněženky neodpovídá té v naskenovaném QR kódu",
"orbot_running_alert": "Prosím ujistěte se, že je Orbot spuštěný, před tím, než se připojíte k tomuto uzlu.",
"contact_list_contacts": "Kontakty",
"contact_list_wallets": "Moje peněženky",
"bitcoin_payments_require_1_confirmation": "U plateb Bitcoinem je vyžadováno alespoň 1 potvrzení, což může trvat 20 minut i déle. Děkujeme za vaši trpělivost! Až bude platba potvrzena, budete informováni e-mailem.",
"send_to_this_address" : "Poslat ${currency} ${tag}na tuto adresu",
"arrive_in_this_address" : "${currency} ${tag}přijde na tuto adresu",
"do_not_send": "Neodesílat",
"error_dialog_content": "Nastala chyba.\n\nProsím odešlete zprávu o chybě naší podpoře, aby mohli zajistit opravu."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Scannen Sie Ihren Fingerabdruck zur Authentifizierung",
"version" : "Version ${currentVersion}",
"openalias_alert_title" : "Adresse Erkannt",
"openalias_alert_content" : "Sie senden Geld an\n${recipient_name}",
"extracted_address_content" : "Sie senden Geld an\n${recipient_name}",
"card_address" : "Adresse:",
"buy" : "Kaufen",
@ -681,6 +680,9 @@
"orbot_running_alert": "Bitte stellen Sie sicher, dass Orbot läuft, bevor Sie sich mit diesem Knoten verbinden.",
"contact_list_contacts": "Kontakte",
"contact_list_wallets": "Meine Geldbörsen",
"bitcoin_payments_require_1_confirmation": "Bitcoin-Zahlungen erfordern 1 Bestätigung, was 20 Minuten oder länger dauern kann. Danke für Ihre Geduld! Sie erhalten eine E-Mail, wenn die Zahlung bestätigt ist.",
"send_to_this_address" : "Senden Sie ${currency} ${tag}an diese Adresse",
"arrive_in_this_address" : "${currency} ${tag}wird an dieser Adresse ankommen",
"do_not_send": "Nicht senden",
"error_dialog_content": "Hoppla, wir haben einen Fehler.\n\nBitte senden Sie den Absturzbericht an unser Support-Team, um die Anwendung zu verbessern."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Scan your fingerprint to authenticate",
"version" : "Version ${currentVersion}",
"openalias_alert_title" : "Address Detected",
"openalias_alert_content" : "You will be sending funds to\n${recipient_name}",
"extracted_address_content" : "You will be sending funds to\n${recipient_name}",
"card_address" : "Address:",
"buy" : "Buy",
@ -681,6 +680,9 @@
"orbot_running_alert": "Please make sure Orbot is running prior to connecting to this node.",
"contact_list_contacts": "Contacts",
"contact_list_wallets": "My Wallets",
"bitcoin_payments_require_1_confirmation": "Bitcoin payments require 1 confirmation, which can take 20 minutes or longer. Thanks for your patience! You will be emailed when the payment is confirmed.",
"send_to_this_address" : "Send ${currency} ${tag}to this address",
"arrive_in_this_address" : "${currency} ${tag}will arrive in this address",
"do_not_send": "Don't send",
"error_dialog_content": "Oops, we got some error.\n\nPlease send the crash report to our support team to make the application better."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Escanee su huella digital para autenticar",
"version" : "Versión ${currentVersion}",
"openalias_alert_title" : "Destinatario detectado",
"openalias_alert_content" : "Enviará fondos a\n${recipient_name}",
"extracted_address_content" : "Enviará fondos a\n${recipient_name}",
"card_address" : "Dirección:",
"buy" : "Comprar",
@ -681,6 +680,9 @@
"orbot_running_alert": "Asegúrese de que Orbot se esté ejecutando antes de conectarse a este nodo.",
"contact_list_contacts": "Contactos",
"contact_list_wallets": "Mis billeteras",
"bitcoin_payments_require_1_confirmation": "Los pagos de Bitcoin requieren 1 confirmación, que puede demorar 20 minutos o más. ¡Gracias por su paciencia! Se le enviará un correo electrónico cuando se confirme el pago.",
"send_to_this_address" : "Enviar ${currency} ${tag}a esta dirección",
"arrive_in_this_address" : "${currency} ${tag}llegará a esta dirección",
"do_not_send": "no enviar",
"error_dialog_content": "Vaya, tenemos un error.\n\nEnvíe el informe de bloqueo a nuestro equipo de soporte para mejorar la aplicación."
}

View file

@ -396,8 +396,7 @@
"biometric_auth_reason" : "Scannez votre empreinte digitale pour vous authentifier",
"version" : "Version ${currentVersion}",
"openalias_alert_title" : "Adresse Détectée",
"openalias_alert_content" : "Vous allez envoyer des fonds à\n${recipient_name}",
"extracted_address_content" : "Vous allez envoyer des fonds à\n${recipient_name}",
"card_address" : "Adresse :",
"buy" : "Acheter",
@ -675,10 +674,13 @@
"disabled": "Désactivé",
"enabled": "Activé",
"tor_only": "Tor uniquement",
"orbot_running_alert": "Veuillez vous assurer qu'Orbot est en cours d'exécution avant de vous connecter à ce nœud.",
"unmatched_currencies": "La devise de votre portefeuille (wallet) actuel ne correspond pas à celle du QR code scanné",
"orbot_running_alert": "Veuillez vous assurer qu'Orbot est en cours d'exécution avant de vous connecter à ce nœud.",
"contact_list_contacts": "Contacts",
"contact_list_wallets": "Mes portefeuilles (wallets)",
"bitcoin_payments_require_1_confirmation": "Les paiements Bitcoin nécessitent 1 confirmation, ce qui peut prendre 20 minutes ou plus. Merci pour votre patience! Vous serez averti par e-mail lorsque le paiement sera confirmé.",
"send_to_this_address" : "Envoyez ${currency} ${tag}à cette adresse",
"arrive_in_this_address" : "${currency} ${tag}arrivera à cette adresse",
"do_not_send": "N'envoyez pas",
"error_dialog_content": "Oups, nous avons eu une erreur.\n\nVeuillez envoyer le rapport de plantage à notre équipe d'assistance pour améliorer l'application."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "प्रमाणित करने के लिए अपने फ़िंगरप्रिंट को स्कैन करें",
"version" : "संस्करण ${currentVersion}",
"openalias_alert_title" : "पता मिला",
"openalias_alert_content" : "आपको धनराशि भेजी जाएगी\n${recipient_name}",
"extracted_address_content" : "आपको धनराशि भेजी जाएगी\n${recipient_name}",
"card_address" : "पता:",
"buy" : "खरीदें",
@ -677,10 +676,13 @@
"disabled": "अक्षम",
"enabled": "सक्रिय",
"tor_only": "Tor केवल",
"orbot_running_alert": "कृपया सुनिश्चित करें कि इस नोड से कनेक्ट करने से पहले Orbot चल रहा है।",
"unmatched_currencies": "आपके वर्तमान वॉलेट की मुद्रा स्कैन किए गए क्यूआर से मेल नहीं खाती" ,
"orbot_running_alert": "कृपया सुनिश्चित करें कि इस नोड से कनेक्ट करने से पहले Orbot चल रहा है।",
"contact_list_contacts": "संपर्क",
"contact_list_wallets": "मेरा बटुआ",
"bitcoin_payments_require_1_confirmation": "बिटकॉइन भुगतान के लिए 1 पुष्टिकरण की आवश्यकता होती है, जिसमें 20 मिनट या अधिक समय लग सकता है। आपके धैर्य के लिए धन्यवाद! भुगतान की पुष्टि होने पर आपको ईमेल किया जाएगा।",
"send_to_this_address" : "इस पते पर ${currency} ${tag}भेजें",
"arrive_in_this_address" : "${currency} ${tag}इस पते पर पहुंचेंगे",
"do_not_send": "मत भेजो",
"error_dialog_content": "ओह, हमसे कुछ गड़बड़ी हुई है.\n\nएप्लिकेशन को बेहतर बनाने के लिए कृपया क्रैश रिपोर्ट हमारी सहायता टीम को भेजें।"
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Skenirajte svoj otisak prsta za autentifikaciju",
"version" : "Verzija ${currentVersion}",
"openalias_alert_title" : "Otkrivena je adresa",
"openalias_alert_content" : "Poslat ćete sredstva primatelju\n${recipient_name}",
"extracted_address_content" : "Poslat ćete sredstva primatelju\n${recipient_name}",
"card_address" : "Adresa:",
"buy" : "Kupi",
@ -681,6 +680,9 @@
"orbot_running_alert": "Provjerite radi li Orbot prije spajanja na ovaj čvor.",
"contact_list_contacts": "Kontakti",
"contact_list_wallets": "Moji novčanici",
"bitcoin_payments_require_1_confirmation": "Bitcoin plaćanja zahtijevaju 1 potvrdu, što može potrajati 20 minuta ili dulje. Hvala na Vašem strpljenju! Dobit ćete e-poruku kada plaćanje bude potvrđeno.",
"send_to_this_address" : "Pošaljite ${currency} ${tag}na ovu adresu",
"arrive_in_this_address" : "${currency} ${tag}će stići na ovu adresu",
"do_not_send": "Ne šalji",
"error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Scansiona la tua impronta per autenticarti",
"version" : "Versione ${currentVersion}",
"openalias_alert_title" : "Indirizzo Rilevato",
"openalias_alert_content" : "Invierai i tuoi fondi a\n${recipient_name}",
"extracted_address_content" : "Invierai i tuoi fondi a\n${recipient_name}",
"card_address" : "Indirizzo:",
"buy" : "Comprare",
@ -681,6 +680,9 @@
"orbot_running_alert": "Assicurati che Orbot sia in esecuzione prima di connetterti a questo nodo.",
"contact_list_contacts": "Contatti",
"contact_list_wallets": "I miei portafogli",
"bitcoin_payments_require_1_confirmation": "I pagamenti in bitcoin richiedono 1 conferma, che può richiedere 20 minuti o più. Grazie per la vostra pazienza! Riceverai un'e-mail quando il pagamento sarà confermato.",
"send_to_this_address" : "Invia ${currency} ${tag}a questo indirizzo",
"arrive_in_this_address" : "${currency} ${tag}arriverà a questo indirizzo",
"do_not_send": "Non inviare",
"error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "प指紋をスキャンして認証する",
"version" : "バージョン ${currentVersion}",
"openalias_alert_title" : "アドレスが検出されました",
"openalias_alert_content" : "に送金します\n${recipient_name}",
"extracted_address_content" : "に送金します\n${recipient_name}",
"card_address" : "住所:",
"buy" : "購入",
@ -681,6 +680,9 @@
"orbot_running_alert": "このードに接続する前に、Orbot が実行されていることを確認してください",
"contact_list_contacts": "連絡先",
"contact_list_wallets": "マイウォレット",
"bitcoin_payments_require_1_confirmation": "ビットコインの支払いには 1 回の確認が必要で、これには 20 分以上かかる場合があります。お待ち頂きまして、ありがとうございます!支払いが確認されると、メールが送信されます。",
"send_to_this_address" : "${currency} ${tag}をこのアドレスに送金",
"arrive_in_this_address" : "${currency} ${tag}はこの住所に到着します",
"do_not_send": "送信しない",
"error_dialog_content": "Spiacenti, abbiamo riscontrato un errore.\n\nSi prega di inviare il rapporto sull'arresto anomalo al nostro team di supporto per migliorare l'applicazione."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "지문을 스캔하여 인증",
"version" : "버전 ${currentVersion}",
"openalias_alert_title" : "주소 감지됨",
"openalias_alert_content" : "당신은에 자금을 보낼 것입니다\n${recipient_name}",
"extracted_address_content" : "당신은에 자금을 보낼 것입니다\n${recipient_name}",
"card_address" : "주소:",
"buy" : "구입",
@ -681,6 +680,9 @@
"orbot_running_alert": "이 노드에 연결하기 전에 Orbot이 실행 중인지 확인하십시오.",
"contact_list_contacts": "콘택트 렌즈",
"contact_list_wallets": "내 지갑",
"bitcoin_payments_require_1_confirmation": "비트코인 결제는 1번의 확인이 필요하며 20분 이상이 소요될 수 있습니다. 기다려 주셔서 감사합니다! 결제가 확인되면 이메일이 전송됩니다.",
"send_to_this_address" : "이 주소로 ${currency} ${tag}송금",
"arrive_in_this_address" : "${currency} ${tag}이(가) 이 주소로 도착합니다",
"do_not_send": "보내지 마세요",
"error_dialog_content": "죄송합니다. 오류가 발생했습니다.\n\n응용 프로그램을 개선하려면 지원 팀에 충돌 보고서를 보내주십시오."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "စစ်မှန်ကြောင်းအထောက်အထားပြရန် သင့်လက်ဗွေကို စကန်ဖတ်ပါ။",
"version" : "ဗားရှင်း ${currentVersion}",
"openalias_alert_title" : "လိပ်စာကို ရှာတွေ့သည်။",
"openalias_alert_content" : "သင်သည် \n${recipient_name} သို့ ရန်ပုံငွေများ ပေးပို့ပါမည်",
"extracted_address_content" : "သင်သည် \n${recipient_name} သို့ ရန်ပုံငွေများ ပေးပို့ပါမည်",
"card_address" : "လိပ်စာ-",
"buy" : "ဝယ်ပါ။",
@ -678,6 +677,12 @@
"enabled" : "ဖွင့်ထားသည်။",
"tor_only" : "Tor သာ",
"unmatched_currencies" : "သင့်လက်ရှိပိုက်ဆံအိတ်၏ငွေကြေးသည် စကင်ဖတ်ထားသော QR နှင့် မကိုက်ညီပါ။",
"orbot_running_alert": "ဤ node သို့မချိတ်ဆက်မီ Orbot အလုပ်လုပ်နေကြောင်း သေချာပါစေ။",
"contact_list_contacts" : "အဆက်အသွယ်များ",
"contact_list_wallets" : "ကျွန်ုပ်၏ ပိုက်ဆံအိတ်များ"
"contact_list_wallets" : "ကျွန်ုပ်၏ ပိုက်ဆံအိတ်များ",
"bitcoin_payments_require_1_confirmation": "Bitcoin ငွေပေးချေမှုများသည် မိနစ် 20 သို့မဟုတ် ထို့ထက်ပိုကြာနိုင်သည် 1 အတည်ပြုချက် လိုအပ်သည်။ မင်းရဲ့စိတ်ရှည်မှုအတွက် ကျေးဇူးတင်ပါတယ်။ ငွေပေးချေမှုကို အတည်ပြုပြီးသောအခါ သင့်ထံ အီးမေးလ်ပို့ပါမည်။",
"send_to_this_address" : "ဤလိပ်စာသို့ ${currency} ${tag}သို့ ပို့ပါ။",
"arrive_in_this_address" : "${currency} ${tag}ဤလိပ်စာသို့ ရောက်ရှိပါမည်။",
"do_not_send": "မပို့ပါနှင့်",
"error_dialog_content": "အိုး၊ ကျွန်ုပ်တို့တွင် အမှားအယွင်းအချို့ရှိသည်။\n\nအပလီကေးရှင်းကို ပိုမိုကောင်းမွန်စေရန်အတွက် ပျက်စီးမှုအစီရင်ခံစာကို ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီရေးအဖွဲ့ထံ ပေးပို့ပါ။"
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Scan uw vingerafdruk om te verifiëren",
"version" : "Versie ${currentVersion}",
"openalias_alert_title" : "Adres Gedetecteerd",
"openalias_alert_content" : "U stuurt geld naar\n${recipient_name}",
"extracted_address_content" : "U stuurt geld naar\n${recipient_name}",
"card_address" : "Adres:",
"buy" : "Kopen",
@ -681,6 +680,9 @@
"orbot_running_alert": "Zorg ervoor dat Orbot actief is voordat u verbinding maakt met dit knooppunt.",
"contact_list_contacts": "Contacten",
"contact_list_wallets": "Mijn portefeuilles",
"bitcoin_payments_require_1_confirmation": "Bitcoin-betalingen vereisen 1 bevestiging, wat 20 minuten of langer kan duren. Dank voor uw geduld! U ontvangt een e-mail wanneer de betaling is bevestigd.",
"send_to_this_address" : "Stuur ${currency} ${tag}naar dit adres",
"arrive_in_this_address" : "${currency} ${tag}komt aan op dit adres",
"do_not_send": "Niet sturen",
"error_dialog_content": "Oeps, er is een fout opgetreden.\n\nStuur het crashrapport naar ons ondersteuningsteam om de applicatie te verbeteren."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Zeskanuj swój odcisk palca, aby uwierzytelnić",
"version" : "Wersja ${currentVersion}",
"openalias_alert_title" : "Wykryto Adres",
"openalias_alert_content" : "Wysyłasz środki na\n${recipient_name}",
"extracted_address_content" : "Wysyłasz środki na\n${recipient_name}",
"card_address" : "Adres:",
"buy" : "Kup",
@ -675,12 +674,15 @@
"disable_fiat": "Wyłącz waluty FIAT",
"fiat_api": "API Walut FIAT",
"disabled": "Wyłączone",
"orbot_running_alert": "Upewnij się, że Orbot działa przed połączeniem z tym węzłem.",
"enabled": "Włączone",
"tor_only": "Tylko sieć Tor",
"unmatched_currencies": "Waluta Twojego obecnego portfela nie zgadza się z waluctą zeskanowanego kodu QR",
"orbot_running_alert": "Upewnij się, że Orbot działa przed połączeniem z tym węzłem.",
"contact_list_contacts": "Łączność",
"contact_list_wallets": "Moje portfele",
"bitcoin_payments_require_1_confirmation": "Płatności Bitcoin wymagają 1 potwierdzenia, co może zająć 20 minut lub dłużej. Dziękuję za cierpliwość! Otrzymasz wiadomość e-mail, gdy płatność zostanie potwierdzona.",
"send_to_this_address" : "Wyślij ${currency} ${tag}na ten adres",
"arrive_in_this_address" : "${currency} ${tag}dotrze na ten adres",
"do_not_send": "Nie wysyłaj",
"error_dialog_content": "Ups, wystąpił błąd.\n\nPrześlij raport o awarii do naszego zespołu wsparcia, aby ulepszyć aplikację."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Digitalize sua impressão digital para autenticar",
"version" : "Versão ${currentVersion}",
"openalias_alert_title" : "Endereço Detectado",
"openalias_alert_content" : "Você enviará fundos para\n${recipient_name}",
"extracted_address_content" : "Você enviará fundos para\n${recipient_name}",
"card_address" : "Endereço:",
"buy" : "Comprar",
@ -680,6 +679,9 @@
"orbot_running_alert": "Certifique-se de que o Orbot esteja em execução antes de se conectar a este nó.",
"contact_list_contacts": "Contatos",
"contact_list_wallets": "minhas carteiras",
"bitcoin_payments_require_1_confirmation": "Os pagamentos em Bitcoin exigem 1 confirmação, o que pode levar 20 minutos ou mais. Obrigado pela sua paciência! Você receberá um e-mail quando o pagamento for confirmado.",
"send_to_this_address" : "Envie ${currency} ${tag}para este endereço",
"arrive_in_this_address" : "${currency} ${tag}chegará neste endereço",
"do_not_send": "não envie",
"error_dialog_content": "Ops, houve algum erro.\n\nPor favor, envie o relatório de falha para nossa equipe de suporte para melhorar o aplicativo."
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Отсканируйте свой отпечаток пальца для аутентификации",
"version" : "Версия ${currentVersion}",
"openalias_alert_title" : "Адрес Обнаружен",
"openalias_alert_content" : "Вы будете отправлять средства\n${recipient_name}",
"extracted_address_content" : "Вы будете отправлять средства\n${recipient_name}",
"card_address" : "Адрес:",
"buy" : "Купить",
@ -681,6 +680,9 @@
"orbot_running_alert": "Перед подключением к этому узлу убедитесь, что Orbot запущен.",
"contact_list_contacts": "Контакты",
"contact_list_wallets": "Мои кошельки",
"bitcoin_payments_require_1_confirmation": "Биткойн-платежи требуют 1 подтверждения, что может занять 20 минут или дольше. Спасибо тебе за твое терпение! Вы получите электронное письмо, когда платеж будет подтвержден.",
"send_to_this_address" : "Отправить ${currency} ${tag}на этот адрес",
"arrive_in_this_address" : "${currency} ${tag}придет на этот адрес",
"do_not_send": "Не отправлять",
"error_dialog_content": "Ой, у нас какая-то ошибка.\n\nПожалуйста, отправьте отчет о сбое в нашу службу поддержки, чтобы сделать приложение лучше."
}

View file

@ -396,8 +396,7 @@
"biometric_auth_reason" : "สแกนลายนิ้วมือของคุณเพื่อยืนยันตัวตน",
"version" : "เวอร์ชัน ${currentVersion}",
"openalias_alert_title" : "พบที่อยู่",
"openalias_alert_content" : "คุณกำลังจะส่งเงินไปยัง\n${recipient_name}",
"extracted_address_content" : "คุณกำลังจะส่งเงินไปยัง\n${recipient_name}",
"card_address" : "ที่อยู่:",
"buy" : "ซื้อ",
@ -679,6 +678,9 @@
"orbot_running_alert": "โปรดตรวจสอบว่า Orbot กำลังทำงานก่อนที่จะเชื่อมต่อกับโหนดนี้",
"contact_list_contacts": "ติดต่อ",
"contact_list_wallets": "กระเป๋าเงินของฉัน",
"bitcoin_payments_require_1_confirmation": "การชำระเงินด้วย Bitcoin ต้องการการยืนยัน 1 ครั้ง ซึ่งอาจใช้เวลา 20 นาทีหรือนานกว่านั้น ขอบคุณสำหรับความอดทนของคุณ! คุณจะได้รับอีเมลเมื่อการชำระเงินได้รับการยืนยัน",
"send_to_this_address" : "ส่ง ${currency} ${tag}ไปยังที่อยู่นี้",
"arrive_in_this_address" : "${currency} ${tag}จะมาถึงที่อยู่นี้",
"do_not_send": "อย่าส่ง",
"error_dialog_content": "อ๊ะ เราพบข้อผิดพลาดบางอย่าง\n\nโปรดส่งรายงานข้อขัดข้องไปยังทีมสนับสนุนของเราเพื่อปรับปรุงแอปพลิเคชันให้ดียิ่งขึ้น"
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "Kimlik doğrulaması için parmak izini okutun",
"version" : "Sürüm ${currentVersion}",
"openalias_alert_title" : "Adres tespit edildi",
"openalias_alert_content" : "Parayı buraya gönderceksin:\n${recipient_name}",
"extracted_address_content" : "Parayı buraya gönderceksin:\n${recipient_name}",
"card_address" : "Adres:",
"buy" : "Alış",
@ -678,6 +677,12 @@
"enabled": "Etkin",
"tor_only": "Yalnızca Tor",
"unmatched_currencies": "Mevcut cüzdanınızın para birimi taranan QR ile eşleşmiyor",
"orbot_running_alert": "Lütfen bu düğüme bağlanmadan önce Orbot'un çalıştığından emin olun.",
"contact_list_contacts": "Rehberim",
"contact_list_wallets": "Cüzdanlarım"
"contact_list_wallets": "Cüzdanlarım",
"bitcoin_payments_require_1_confirmation": "Bitcoin ödemeleri, 20 dakika veya daha uzun sürebilen 1 onay gerektirir. Sabrınız için teşekkürler! Ödeme onaylandığında e-posta ile bilgilendirileceksiniz.",
"send_to_this_address" : "Bu adrese ${currency} ${tag}gönder",
"arrive_in_this_address" : "${currency} ${tag}bu adrese ulaşacak",
"do_not_send": "Gönderme",
"error_dialog_content": "Hay aksi, bir hatamız var.\n\nUygulamayı daha iyi hale getirmek için lütfen kilitlenme raporunu destek ekibimize gönderin."
}

View file

@ -397,8 +397,7 @@
"biometric_auth_reason" : "Відскануйте свій відбиток пальця для аутентифікації",
"version" : "Версія ${currentVersion}",
"openalias_alert_title" : "Виявлено адресу",
"openalias_alert_content" : "Ви будете відправляти кошти\n${recipient_name}",
"extracted_address_content" : "Ви будете відправляти кошти\n${recipient_name}",
"card_address" : "Адреса:",
"buy" : "Купити",
@ -680,6 +679,9 @@
"orbot_running_alert": "Перед підключенням до цього вузла переконайтеся, що Orbot запущено.",
"contact_list_contacts": "Контакти",
"contact_list_wallets": "Мої гаманці",
"bitcoin_payments_require_1_confirmation": "Платежі Bitcoin потребують 1 підтвердження, яке може зайняти 20 хвилин або більше. Дякую за Ваше терпіння! Ви отримаєте електронний лист, коли платіж буде підтверджено.",
"send_to_this_address" : "Надіслати ${currency} ${tag}на цю адресу",
"arrive_in_this_address" : "${currency} ${tag}надійде на цю адресу",
"do_not_send": "Не надсилайте",
"error_dialog_content": "На жаль, ми отримали помилку.\n\nБудь ласка, надішліть звіт про збій нашій команді підтримки, щоб покращити додаток."
}

689
res/values/strings_ur.arb Normal file
View file

@ -0,0 +1,689 @@
{
"welcome" : "میں خوش آمدید",
"cake_wallet" : "Cake والیٹ",
"first_wallet_text" : "Monero، Bitcoin، Litecoin، اور Haven کے لیے زبردست پرس",
"please_make_selection" : "اپنا بٹوہ بنانے یا بازیافت کرنے کے لیے براہ کرم ذیل میں ایک انتخاب کریں۔",
"create_new" : "نیا والیٹ بنائیں",
"restore_wallet" : "والیٹ کو بحال کریں۔",
"monero_com" : "Monero.com بذریعہ Cake والیٹ",
"monero_com_wallet_text" : "Monero کے لئے بہت اچھا پرس",
"haven_app" : "Haven از Cake والیٹ",
"haven_app_wallet_text" : "Havek کے لیے زبردست پرس",
"accounts" : "اکاؤنٹس",
"edit" : "ترمیم",
"account" : "کھاتہ",
"add" : "شامل کریں۔",
"address_book" : "ایڈریس بک",
"contact" : "رابطہ کریں۔",
"please_select" : "براہ مہربانی منتخب کریں:",
"cancel" : "منسوخ کریں۔",
"ok" : "ٹھیک ہے",
"contact_name" : "رابطے کا نام",
"reset" : "دوبارہ ترتیب دیں۔",
"save" : "محفوظ کریں۔",
"address_remove_contact" : "رابطہ ہٹا دیں۔",
"address_remove_content" : "کیا آپ واقعی منتخب رابطہ کو ہٹانا چاہتے ہیں؟",
"authenticated" : "تصدیق شدہ",
"authentication" : "تصدیق",
"failed_authentication" : "ناکام تصدیق۔ ${state_error}",
"wallet_menu" : "مینو",
"Blocks_remaining" : "${status} بلاکس باقی ہیں۔",
"please_try_to_connect_to_another_node" : "براہ کرم کسی دوسرے نوڈ سے جڑنے کی کوشش کریں۔",
"xmr_hidden" : "پوشیدہ",
"xmr_available_balance" : "دستیاب بیلنس",
"xmr_full_balance" : "مکمل بیلنس",
"send" : "بھیجیں",
"receive" : "وصول کریں۔",
"transactions" : "لین دین",
"incoming" : "آنے والا",
"outgoing" : "سبکدوش ہونے والے",
"transactions_by_date" : "تاریخ کے لحاظ سے لین دین",
"trades" : "تجارت",
"filter_by" : "کی طرف سے فلٹر",
"today" : "آج",
"yesterday" : "کل",
"received" : "موصول ہوا۔",
"sent" : "بھیجا",
"pending" : " (زیر التواء)",
"rescan" : "دوبارہ اسکین کریں۔",
"reconnect" : "دوبارہ جڑیں۔",
"wallets" : "بٹوے",
"show_seed" : "بیج دکھائیں۔",
"show_keys" : "بیج / چابیاں دکھائیں۔",
"address_book_menu" : "ایڈریس بک",
"reconnection" : "دوبارہ رابطہ",
"reconnect_alert_text" : "کیا آپ واقعی دوبارہ جڑنا چاہتے ہیں؟",
"exchange" : "تبادلہ",
"clear" : "صاف",
"refund_address" : "رقم کی واپسی کا پتہ",
"change_exchange_provider" : "ایکسچینج فراہم کنندہ کو تبدیل کریں۔",
"you_will_send" : "سے تبدیل کریں۔",
"you_will_get" : "میں تبدیل کریں۔",
"amount_is_guaranteed" : "وصول شدہ رقم کی ضمانت ہے۔",
"amount_is_estimate" : "وصول شدہ رقم ایک تخمینہ ہے۔",
"powered_by" : "${title} کے ذریعے تقویت یافتہ",
"error" : "خرابی",
"estimated" : "تخمینہ لگایا",
"min_value" : "کم سے کم: ${value} ${currency}",
"max_value" : "زیادہ سے زیادہ: ${value} ${currency}",
"change_currency" : "کرنسی تبدیل کریں",
"overwrite_amount" : "رقم کو اوور رائٹ کریں۔",
"qr_payment_amount" : "اس QR کوڈ میں ادائیگی کی رقم شامل ہے۔ کیا آپ موجودہ قدر کو اوور رائٹ کرنا چاہتے ہیں؟",
"copy_id" : "کاپی ID",
"exchange_result_write_down_trade_id" : "جاری رکھنے کے لیے براہ کرم تجارتی ID کاپی کریں یا لکھیں۔",
"trade_id" : "تجارتی ID:",
"copied_to_clipboard" : "کلپ بورڈ پر کاپی کیا گیا۔",
"saved_the_trade_id" : "میں نے تجارتی ID محفوظ کر لی ہے۔",
"fetching" : "لا رہا ہے۔",
"id" : "ID:",
"amount" : "رقم کی رقم:",
"payment_id" : "ادائیگی کی شناخت:",
"status" : "حالت:",
"offer_expires_in" : "پیشکش کی میعاد اس وقت ختم ہو جاتی ہے:",
"trade_is_powered_by" : "یہ تجارت ${provider} کے ذریعے تقویت یافتہ ہے",
"copy_address" : "ایڈریس کاپی کریں۔",
"exchange_result_confirm" : "تصدیق کو دبانے سے، آپ اپنے بٹوے سے ${fetchingLabel} ${from} بھیجیں گے جسے ${walletName} کہتے ہیں نیچے دکھائے گئے پتے پر۔ یا آپ اپنے بیرونی والیٹ سے نیچے دیئے گئے پتے/QR کوڈ پر بھیج سکتے ہیں۔\\n\\nجاری رکھنے کے لیے براہ کرم تصدیق کو دبائیں یا رقم تبدیل کرنے کے لیے واپس جائیں۔",
"exchange_result_description" : "آپ کو اگلے صفحہ پر دکھائے گئے پتے پر کم از کم ${fetchingLabel} ${from} بھیجنا ہوگا۔ اگر آپ ${fetchingLabel} ${from} سے کم رقم بھیجتے ہیں تو یہ تبدیل نہیں ہوسکتی ہے اور اسے واپس نہیں کیا جاسکتا ہے۔",
"exchange_result_write_down_ID" : "*براہ کرم اوپر دکھائی گئی اپنی ID کاپی کریں یا لکھیں۔",
"confirm" : "تصدیق کریں۔",
"confirm_sending" : "بھیجنے کی تصدیق کریں۔",
"commit_transaction_amount_fee" : "لین دین کا ارتکاب کریں\\nرقم: ${amount}\\nفیس: ${fee}",
"sending" : "بھیج رہا ہے۔",
"transaction_sent" : "لین دین بھیجا گیا!",
"expired" : "میعاد ختم",
"time" : "${minutes}m ${seconds}s",
"send_xmr" : "XMR بھیجیں۔",
"exchange_new_template" : "نیا سانچہ",
"faq" : "عمومی سوالات",
"enter_your_pin" : "اپنا PIN درج کریں۔",
"loading_your_wallet" : "آپ کا بٹوہ لوڈ ہو رہا ہے۔",
"new_wallet" : "نیا پرس",
"wallet_name" : "بٹوے کا نام",
"continue_text" : "جاری رہے",
"choose_wallet_currency" : "براہ کرم والیٹ کرنسی کا انتخاب کریں:",
"node_new" : "نیا نوڈ",
"node_address" : "نوڈ ایڈریس",
"node_port" : "نوڈ پورٹ",
"login" : "لاگ ان کریں",
"password" : "پاس ورڈ",
"nodes" : "نوڈس",
"node_reset_settings_title" : "ترتیبات کو دوبارہ ترتیب دیں۔",
"nodes_list_reset_to_default_message" : "کیا آپ واقعی ترتیبات کو ڈیفالٹ پر دوبارہ ترتیب دینا چاہتے ہیں؟",
"change_current_node" : "کیا آپ یقینی طور پر موجودہ نوڈ کو ${node} میں تبدیل کرنا چاہتے ہیں؟",
"change" : "تبدیلی",
"remove_node" : "نوڈ کو ہٹا دیں۔",
"remove_node_message" : "کیا آپ واقعی منتخب نوڈ کو ہٹانا چاہتے ہیں؟",
"remove" : "دور",
"delete" : "حذف کریں۔",
"add_new_node" : "نیا نوڈ شامل کریں۔",
"change_current_node_title" : "موجودہ نوڈ کو تبدیل کریں۔",
"node_test" : "پرکھ",
"node_connection_successful" : "کنکشن کامیاب رہا۔",
"node_connection_failed" : "کنکشن ناکام ہو گیا تھا۔",
"new_node_testing" : "نیا نوڈ ٹیسٹنگ",
"use" : "تبدیل کرنا",
"digit_pin" : "-ہندسوں کا پن",
"share_address" : "پتہ شیئر کریں۔",
"receive_amount" : "رقم",
"subaddresses" : "ذیلی پتے",
"addresses" : "پتے",
"scan_qr_code" : "پتہ حاصل کرنے کے لیے QR کوڈ اسکین کریں۔",
"qr_fullscreen" : "فل سکرین QR کوڈ کھولنے کے لیے تھپتھپائیں۔",
"rename" : "نام تبدیل کریں۔",
"choose_account" : "اکاؤنٹ کا انتخاب کریں۔",
"create_new_account" : "نیا اکاؤنٹ بنانے",
"accounts_subaddresses" : "اکاؤنٹس اور ذیلی پتے",
"restore_restore_wallet" : "والیٹ کو بحال کریں۔",
"restore_title_from_seed_keys" : "بیج / چابیاں سے بحال کریں۔",
"restore_description_from_seed_keys" : "اپنے بٹوے کو بیج / چابیاں سے واپس حاصل کریں جنہیں آپ نے محفوظ جگہ پر محفوظ کیا ہے۔",
"restore_next" : "اگلے",
"restore_title_from_backup" : "بیک اپ سے بحال کریں۔",
"restore_description_from_backup" : "آپ اپنی بیک اپ فائل سے پوری کیک والیٹ ایپ کو بحال کر سکتے ہیں۔",
"restore_seed_keys_restore" : "بیج/کیز کی بحالی",
"restore_title_from_seed" : "بیج سے بحال کریں۔",
"restore_description_from_seed" : "اپنے بٹوے کو 25 لفظ یا 13 الفاظ کے مجموعہ کوڈ سے بحال کریں۔",
"restore_title_from_keys" : "چابیاں سے بحال کریں۔",
"restore_description_from_keys" : "اپنے بٹوے کو اپنی نجی کلیدوں سے محفوظ کردہ کی اسٹروکس سے بحال کریں۔",
"restore_wallet_name" : "بٹوے کا نام",
"restore_address" : "پتہ",
"restore_view_key_private" : "کلید دیکھیں (نجی)",
"restore_spend_key_private" : "خرچ کی کلید (نجی)",
"restore_recover" : "بحال کریں۔",
"restore_wallet_restore_description" : "والیٹ کی بحالی کی تفصیل",
"restore_new_seed" : "نیا بیج",
"restore_active_seed" : "فعال بیج",
"restore_bitcoin_description_from_seed" : "24 الفاظ کے مجموعہ کوڈ سے اپنے بٹوے کو بحال کریں۔",
"restore_bitcoin_description_from_keys" : "اپنی نجی کلیدوں سے تیار کردہ WIF سٹرنگ سے اپنے بٹوے کو بحال کریں۔",
"restore_bitcoin_title_from_keys" : "WIF سے بحال کریں۔",
"restore_from_date_or_blockheight" : "براہ کرم یہ پرس بنانے سے چند دن پہلے کی تاریخ درج کریں۔ یا اگر آپ کو بلاک ہائیٹ معلوم ہے تو براہ کرم اس کی بجائے اسے درج کریں۔",
"seed_reminder" : "اگر آپ اپنا فون کھو دیتے ہیں یا صاف کرتے ہیں تو براہ کرم یہ لکھ دیں۔",
"seed_title" : "بیج",
"seed_share" : "بیج بانٹیں۔",
"copy" : "کاپی",
"seed_language_choose" : "براہ کرم بیج کی زبان کا انتخاب کریں:",
"seed_choose" : "بیج کی زبان کا انتخاب کریں۔",
"seed_language_next" : "اگلے",
"seed_language_english" : "انگریزی",
"seed_language_chinese" : "چینی",
"seed_language_dutch" : "ڈچ",
"seed_language_german" : "جرمن",
"seed_language_japanese" : "جاپانی",
"seed_language_portuguese" : "پرتگالی",
"seed_language_russian" : "روسی",
"seed_language_spanish" : "ہسپانوی",
"seed_language_french" : "فرانسیسی",
"seed_language_italian" : "اطالوی",
"send_title" : "بھیجیں",
"send_your_wallet" : "آپ کا بٹوہ",
"send_address" : "${cryptoCurrency} پتہ",
"send_payment_id" : "ادائیگی کی شناخت (اختیاری)",
"all" : "تمام",
"send_error_minimum_value" : "رقم کی کم از کم قیمت 0.01 ہے۔",
"send_error_currency" : "کرنسی صرف نمبروں پر مشتمل ہو سکتی ہے۔",
"send_estimated_fee" : "تخمینی فیس:",
"send_priority" : "فی الحال فیس ${transactionPriority} کی ترجیح پر سیٹ ہے۔\\nٹرانزیکشن کی ترجیح سیٹنگز میں ایڈجسٹ کی جا سکتی ہے۔",
"send_creating_transaction" : "لین دین کی تخلیق",
"send_templates" : "ٹیمپلیٹس",
"send_new" : "نئی",
"send_amount" : "رقم:",
"send_fee" : "فیس:",
"send_name" : "نام",
"send_got_it" : "یہ مل گیا",
"send_sending" : "بھیج رہا ہے...",
"send_success" : "آپ کا ${crypto} کامیابی کے ساتھ بھیج دیا گیا۔",
"settings_title" : "ترتیبات",
"settings_nodes" : "نوڈس",
"settings_current_node" : "موجودہ نوڈ",
"settings_wallets" : "بٹوے",
"settings_display_balance" : "ڈسپلے بیلنس",
"settings_currency" : "کرنسی",
"settings_fee_priority" : "فیس کی ترجیح",
"settings_save_recipient_address" : "وصول کنندہ کا پتہ محفوظ کریں۔",
"settings_personal" : "ذاتی",
"settings_change_pin" : "پن تبدیل کریں۔",
"settings_change_language" : "زبان تبدیل کریں",
"settings_allow_biometrical_authentication" : "بایومیٹریکل تصدیق کی اجازت دیں۔",
"settings_dark_mode" : "ڈارک موڈ",
"settings_transactions" : "لین دین",
"settings_trades" : "تجارت",
"settings_display_on_dashboard_list" : "ڈیش بورڈ کی فہرست پر ڈسپلے کریں۔",
"settings_all" : "تمام",
"settings_only_trades" : "صرف تجارت",
"settings_only_transactions" : "صرف لین دین",
"settings_none" : "کوئی نہیں۔",
"settings_support" : "حمایت",
"settings_terms_and_conditions" : "شرائط و ضوابط",
"pin_is_incorrect" : "PIN غلط ہے۔",
"setup_pin" : "PIN سیٹ اپ کریں۔",
"enter_your_pin_again" : "اپنا پن دوبارہ درج کریں۔",
"setup_successful" : "آپ کا PIN کامیابی کے ساتھ ترتیب دیا گیا ہے!",
"wallet_keys" : "بٹوے کے بیج / چابیاں",
"wallet_seed" : "بٹوے کا بیج",
"private_key" : "نجی کلید",
"public_key" : "عوامی کلید",
"view_key_private" : "کلید دیکھیں (نجی)",
"view_key_public" : "کلید دیکھیں (عوامی)",
"spend_key_private" : "خرچ کی کلید (نجی)",
"spend_key_public" : "خرچ کی کلید (عوامی)",
"copied_key_to_clipboard" : "${key} کو کلپ بورڈ پر کاپی کیا گیا۔",
"new_subaddress_title" : "نیا پتہ",
"new_subaddress_label_name" : "لیبل کا نام",
"new_subaddress_create" : "بنانا",
"address_label" : "پتے کا خانہ",
"subaddress_title" : "ذیلی ایڈریس کی فہرست",
"trade_details_title" : "تجارت کی تفصیلات",
"trade_details_id" : "ID",
"trade_details_state" : "حالت",
"trade_details_fetching" : "لا رہا ہے۔",
"trade_details_provider" : "فراہم کرنے والا",
"trade_details_created_at" : "پر تخلیق کیا گیا۔",
"trade_details_pair" : "جوڑا",
"trade_details_copied" : "${title} کو کلپ بورڈ پر کاپی کیا گیا۔",
"trade_history_title" : "تجارتی تاریخ",
"transaction_details_title" : "لین دین کی تفصیلات",
"transaction_details_transaction_id" : "ٹرانزیکشن ID",
"transaction_details_date" : "تاریخ",
"transaction_details_height" : "اونچائی",
"transaction_details_amount" : "رقم",
"transaction_details_fee" : "فیس",
"transaction_details_copied" : "${title} کو کلپ بورڈ پر کاپی کیا گیا۔",
"transaction_details_recipient_address" : "وصول کنندگان کے پتے",
"wallet_list_title" : "Monero والیٹ",
"wallet_list_create_new_wallet" : "نیا والیٹ بنائیں",
"wallet_list_restore_wallet" : "والیٹ کو بحال کریں۔",
"wallet_list_load_wallet" : "پرس لوڈ کریں۔",
"wallet_list_loading_wallet" : "${wallet_name} والیٹ لوڈ ہو رہا ہے۔",
"wallet_list_failed_to_load" : "${wallet_name} والیٹ لوڈ کرنے میں ناکام۔ ${error}",
"wallet_list_removing_wallet" : "${wallet_name} والیٹ کو ہٹایا جا رہا ہے۔",
"wallet_list_failed_to_remove" : "${wallet_name} والیٹ کو ہٹانے میں ناکام۔ ${error}",
"widgets_address" : "پتہ",
"widgets_restore_from_blockheight" : "بلاک ہائیٹ سے بحال کریں۔",
"widgets_restore_from_date" : "تاریخ سے بحال کریں۔",
"widgets_or" : "یا",
"widgets_seed" : "بیج",
"router_no_route" : "${name} کے لیے کوئی راستہ متعین نہیں ہے",
"error_text_account_name" : "اکاؤنٹ کا نام صرف حروف، اعداد پر مشتمل ہو سکتا ہے\\nاور 1 سے 15 حروف کے درمیان ہونا چاہیے۔",
"error_text_contact_name" : "رابطہ کے نام میں ` , \\' \" علامات\\nنہیں ہو سکتے اور 1 سے 32 حروف کے درمیان ہونا چاہیے",
"error_text_address" : "والیٹ کا پتہ cryptocurrency کی قسم\\nکے مطابق ہونا چاہیے۔",
"error_text_node_address" : "براہ کرم ایک iPv4 پتہ درج کریں۔",
"error_text_node_port" : "نوڈ پورٹ میں صرف 0 اور 65535 کے درمیان نمبر ہوسکتے ہیں۔",
"error_text_payment_id" : "ادائیگی کی ID ہیکس میں صرف 16 سے 64 حروف پر مشتمل ہو سکتی ہے۔",
"error_text_xmr" : "XMR قدر دستیاب بیلنس سے زیادہ نہیں ہو سکتی۔\\nفرکشن ہندسوں کی تعداد 12 سے کم یا اس کے برابر ہونی چاہیے۔",
"error_text_fiat" : "رقم کی قدر دستیاب بیلنس سے زیادہ نہیں ہو سکتی۔\\nفرکشن ہندسوں کی تعداد 2 کے برابر یا کم ہونی چاہیے۔",
"error_text_subaddress_name" : "ذیلی پتے کے نام میں ` , \\ ' \" علامتیں نہیں ہو سکتی ہیں اور 1 اور 20 حروف کے درمیان ہونی چاہئیں",
"error_text_amount" : "رقم صرف اعداد پر مشتمل ہو سکتی ہے۔",
"error_text_wallet_name" : "والیٹ کے نام میں صرف حروف، اعداد، _ - علامتیں\\nاور 1 سے 33 حروف کے درمیان ہونی چاہئیں",
"error_text_keys" : "والیٹ کیز ہیکس میں صرف 64 حروف پر مشتمل ہو سکتی ہیں۔",
"error_text_crypto_currency" : "کسر ہندسوں کی تعداد\\n12 سے کم یا مساوی ہونی چاہیے۔",
"error_text_minimal_limit" : "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ رقم کم سے کم ہے: ${min} ${currency}",
"error_text_maximum_limit" : "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ رقم زیادہ سے زیادہ سے زیادہ ہے: ${max} ${currency}",
"error_text_limits_loading_failed" : "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ حدود کی لوڈنگ ناکام ہو گئی۔",
"error_text_template" : "ٹیمپلیٹ کا نام اور پتہ `` , \\' \" علامتوں پر مشتمل نہیں ہو سکتا ہے اور 1 اور 106 حروف کے درمیان ہونا چاہیے",
"auth_store_ban_timeout" : "پابندی_وقت ختم",
"auth_store_banned_for" : "کے لیے پابندی لگا دی گئی۔",
"auth_store_banned_minutes" : " منٹ",
"auth_store_incorrect_password" : "غلط PIN",
"wallet_store_monero_wallet" : "مونیرو والیٹ",
"wallet_restoration_store_incorrect_seed_length" : "غلط بیج کی لمبائی",
"full_balance" : "مکمل بیلنس",
"available_balance" : "دستیاب بیلنس",
"hidden_balance" : "پوشیدہ بیلنس",
"sync_status_syncronizing" : "مطابقت پذیری",
"sync_status_syncronized" : "مطابقت پذیر",
"sync_status_not_connected" : "منسلک نہیں",
"sync_status_starting_sync" : "مطابقت پذیری شروع کر رہا ہے۔",
"sync_status_failed_connect" : "منقطع",
"sync_status_connecting" : "جڑ رہا ہے۔",
"sync_status_connected" : "منسلک",
"sync_status_attempting_sync" : "ہم آہنگی کی کوشش کر رہا ہے۔",
"transaction_priority_slow" : "سست",
"transaction_priority_regular" : "باقاعدہ",
"transaction_priority_medium" : "درمیانہ",
"transaction_priority_fast" : "تیز",
"transaction_priority_fastest" : "تیز ترین",
"trade_for_not_created" : "${title} کے لیے تجارت نہیں بنائی گئی ہے۔",
"trade_not_created" : "تجارت پیدا نہیں ہوئی۔",
"trade_id_not_found" : "ٹریڈ ${tradeId} از ${title} نہیں ملا۔",
"trade_not_found" : "تجارت نہیں ملی۔",
"trade_state_pending" : "زیر التواء",
"trade_state_confirming" : "تصدیق کر رہا ہے۔",
"trade_state_trading" : "تجارت",
"trade_state_traded" : "تجارت کی۔",
"trade_state_complete" : "مکمل",
"trade_state_to_be_created" : "پیدا کیا جائے۔",
"trade_state_unpaid" : "بلا معاوضہ",
"trade_state_underpaid" : "کم معاوضہ",
"trade_state_paid_unconfirmed" : "غیر تصدیق شدہ ادائیگی",
"trade_state_paid" : "ادا کیا",
"trade_state_btc_sent" : "Btc بھیجا گیا۔",
"trade_state_timeout" : "وقت ختم",
"trade_state_created" : "بنایا",
"trade_state_finished" : "ختم",
"change_language" : "زبان تبدیل کریں",
"change_language_to" : "زبان کو ${language} میں تبدیل کریں؟",
"paste" : "چسپاں کریں۔",
"restore_from_seed_placeholder" : "براہ کرم اپنا بیج یہاں درج کریں یا پیسٹ کریں۔",
"add_new_word" : "نیا لفظ شامل کریں۔",
"incorrect_seed" : "درج کردہ متن درست نہیں ہے۔",
"biometric_auth_reason" : "تصدیق کرنے کے لیے اپنے فنگر پرنٹ کو اسکین کریں۔",
"version" : "ورژن ${currentVersion}",
"openalias_alert_title" : "پتہ کا پتہ چلا",
"openalias_alert_content" : "آپ کو فنڈز بھیجیں گے\\n${recipient_name}",
"card_address" : "پتہ:",
"buy" : "خریدنے",
"sell" : "بیچنا",
"placeholder_transactions" : "آپ کے لین دین یہاں دکھائے جائیں گے۔",
"placeholder_contacts" : "آپ کے رابطے یہاں دکھائے جائیں گے۔",
"template" : "سانچے",
"confirm_delete_template" : "یہ عمل اس ٹیمپلیٹ کو حذف کر دے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟",
"confirm_delete_wallet" : "اس کارروائی سے یہ پرس حذف ہو جائے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟",
"picker_description" : "ChangeNOW یا MorphToken کو منتخب کرنے کے لیے، براہ کرم پہلے اپنا تجارتی جوڑا تبدیل کریں۔",
"change_wallet_alert_title" : "موجودہ پرس تبدیل کریں۔",
"change_wallet_alert_content" : "کیا آپ موجودہ والیٹ کو ${wallet_name} میں تبدیل کرنا چاہتے ہیں؟",
"creating_new_wallet" : "نیا پرس بنانا",
"creating_new_wallet_error" : "خرابی: ${description}",
"seed_alert_title" : "توجہ",
"seed_alert_content" : "بیج آپ کے بٹوے کو بازیافت کرنے کا واحد طریقہ ہے۔ کیا آپ نے اسے لکھا ہے؟",
"seed_alert_back" : "واپس جاو",
"seed_alert_yes" : "ہاں میرے پاس ہے",
"exchange_sync_alert_content" : "براہ کرم اس وقت تک انتظار کریں جب تک آپ کا بٹوہ مطابقت پذیر نہ ہو جائے۔",
"pre_seed_title" : "اہم",
"pre_seed_description" : "اگلے صفحے پر آپ کو ${words} الفاظ کا ایک سلسلہ نظر آئے گا۔ یہ آپ کا انوکھا اور نجی بیج ہے اور یہ آپ کے بٹوے کو ضائع یا خرابی کی صورت میں بازیافت کرنے کا واحد طریقہ ہے۔ اسے لکھنا اور اسے کیک والیٹ ایپ سے باہر کسی محفوظ جگہ پر اسٹور کرنا آپ کی ذمہ داری ہے۔",
"pre_seed_button_text" : "میں سمجھتا ہوں۔ مجھے میرا بیج دکھاؤ",
"xmr_to_error" : "XMR.TO غلطی",
"xmr_to_error_description" : "غلط رقم۔ اعشاریہ پوائنٹ کے بعد زیادہ سے زیادہ 8 ہندسے",
"provider_error" : "${provider} خرابی۔",
"use_ssl" : "SSL استعمال کریں۔",
"trusted" : "قابل اعتماد",
"color_theme" : "رنگین تھیم",
"light_theme" : "روشنی",
"bright_theme" : "روشن",
"dark_theme" : "اندھیرا",
"enter_your_note" : "اپنا نوٹ درج کریں…",
"note_optional" : "نوٹ (اختیاری)",
"note_tap_to_change" : "نوٹ (تبدیل کرنے کے لیے تھپتھپائیں)",
"view_in_block_explorer" : "بلاک ایکسپلورر میں دیکھیں",
"view_transaction_on" : "لین دین دیکھیں آن",
"transaction_key" : "لین دین کی کلید",
"confirmations" : "تصدیقات",
"recipient_address" : "وصول کنندہ کا پتہ",
"extra_id" : "اضافی ID:",
"destination_tag" : "منزل کا ٹیگ:",
"memo" : "میمو:",
"backup" : "بیک اپ",
"change_password" : "پاس ورڈ تبدیل کریں",
"backup_password" : "بیک اپ پاس ورڈ",
"write_down_backup_password" : "براہ کرم اپنا بیک اپ پاس ورڈ لکھیں، جو آپ کی بیک اپ فائلوں کی درآمد کے لیے استعمال ہوتا ہے۔",
"export_backup" : "بیک اپ برآمد کریں۔",
"save_backup_password" : "براہ کرم یقینی بنائیں کہ آپ نے اپنا بیک اپ پاس ورڈ محفوظ کر لیا ہے۔ آپ اس کے بغیر اپنی بیک اپ فائلیں درآمد نہیں کر سکیں گے۔",
"backup_file" : "بیک اپ فائل",
"edit_backup_password" : "بیک اپ پاس ورڈ میں ترمیم کریں۔",
"save_backup_password_alert" : "بیک اپ پاس ورڈ محفوظ کریں۔",
"change_backup_password_alert" : "آپ کی پچھلی بیک اپ فائلیں نئے بیک اپ پاس ورڈ کے ساتھ درآمد کرنے کے لیے دستیاب نہیں ہوں گی۔ نیا بیک اپ پاس ورڈ صرف نئی بیک اپ فائلوں کے لیے استعمال کیا جائے گا۔ کیا آپ واقعی بیک اپ پاس ورڈ تبدیل کرنا چاہتے ہیں؟",
"enter_backup_password" : "یہاں بیک اپ پاس ورڈ درج کریں۔",
"select_backup_file" : "بیک اپ فائل کو منتخب کریں۔",
"import" : "درآمد کریں۔",
"please_select_backup_file" : "براہ کرم بیک اپ فائل منتخب کریں اور بیک اپ پاس ورڈ درج کریں۔",
"fixed_rate" : "مقررہ شرح",
"fixed_rate_alert" : "فکسڈ ریٹ موڈ چیک ہونے پر آپ وصولی رقم درج کر سکیں گے۔ کیا آپ فکسڈ ریٹ موڈ پر سوئچ کرنا چاہتے ہیں؟",
"xlm_extra_info" : "ایکسچینج کے لیے XLM ٹرانزیکشن بھیجتے وقت براہ کرم میمو ID بتانا نہ بھولیں۔",
"xrp_extra_info" : "ایکسچینج کے لیے XRP ٹرانزیکشن بھیجتے وقت ڈیسٹینیشن ٹیگ بتانا نہ بھولیں۔",
"exchange_incorrect_current_wallet_for_xmr" : "اگر آپ اپنے Cake والیٹ Monero بیلنس سے XMR کا تبادلہ کرنا چاہتے ہیں، تو براہ کرم پہلے اپنے Monero والیٹ پر جائیں۔",
"confirmed" : "تصدیق شدہ",
"unconfirmed" : "غیر تصدیق شدہ",
"displayable" : "قابل نمائش",
"submit_request" : "درخواست بھیج دو",
"buy_alert_content" : "فی الحال ہم صرف Bitcoin اور Litecoin کی خریداری کی حمایت کرتے ہیں۔ Bitcoin یا Litecoin خریدنے کے لیے، براہ کرم اپنا Bitcoin یا Litecoin والیٹ بنائیں یا اس میں سوئچ کریں۔",
"sell_alert_content" : "ہم فی الحال صرف Bitcoin کی فروخت کی حمایت کرتے ہیں۔ Bitcoin فروخت کرنے کے لیے، براہ کرم اپنا Bitcoin والیٹ بنائیں یا اس میں سوئچ کریں۔",
"outdated_electrum_wallet_description" : "Cake میں بنائے گئے نئے Bitcoin بٹوے میں اب 24 الفاظ کا بیج ہے۔ یہ لازمی ہے کہ آپ ایک نیا Bitcoin والیٹ بنائیں اور اپنے تمام فنڈز کو نئے 24 الفاظ والے والیٹ میں منتقل کریں، اور 12 الفاظ کے بیج والے بٹوے کا استعمال بند کریں۔ براہ کرم اپنے فنڈز کو محفوظ بنانے کے لیے فوری طور پر ایسا کریں۔",
"understand" : "میں سمجھتا ہوں۔",
"apk_update" : "APK اپ ڈیٹ",
"buy_bitcoin" : "Bitcoin خریدیں۔",
"buy_with" : "کے ساتھ خریدیں۔",
"moonpay_alert_text" : "رقم کی قدر ${minAmount} ${fiatCurrency} کے برابر یا زیادہ ہونی چاہیے۔",
"outdated_electrum_wallet_receive_warning" : "اگر اس پرس میں 12 الفاظ کا بیج ہے اور اسے Cake میں بنایا گیا ہے، تو اس بٹوے میں Bitcoin جمع نہ کریں۔ اس بٹوے میں منتقل کیا گیا کوئی بھی BTC ضائع ہو سکتا ہے۔ ایک نیا 24 الفاظ والا والیٹ بنائیں (اوپر دائیں جانب مینو کو تھپتھپائیں، Wallets کو منتخب کریں، نیا والیٹ بنائیں، پھر Bitcoin کو منتخب کریں) اور فوری طور پر اپنے BTC کو وہاں منتقل کریں۔ Cake کے نئے (24-لفظوں) BTC بٹوے محفوظ ہیں۔",
"do_not_show_me" : "مجھے یہ دوبارہ مت دکھانا",
"unspent_coins_title" : "غیر خرچ شدہ سکے ۔",
"unspent_coins_details_title" : "غیر خرچ شدہ سککوں کی تفصیلات",
"freeze" : "منجمد",
"frozen" : "منجمد",
"coin_control" : "سکے کنٹرول (اختیاری)",
"address_detected" : "پتہ کا پتہ چلا",
"address_from_domain" : "یہ پتہ نہ رکنے والے ڈومینز پر ${domain} کا ہے۔",
"add_receiver" : "دوسرا وصول کنندہ شامل کریں (اختیاری)",
"manage_yats" : "یاٹس کا انتظام کریں۔",
"yat_alert_title" : "Yat کے ساتھ زیادہ آسانی سے کریپٹو بھیجیں اور وصول کریں۔",
"yat_alert_content" : "Cake والیٹ کے صارفین اب ایک قسم کے ایموجی پر مبنی صارف نام کے ساتھ اپنی تمام پسندیدہ کرنسیاں بھیج اور وصول کر سکتے ہیں۔",
"get_your_yat" : "اپنی Yat حاصل کریں۔",
"connect_an_existing_yat" : "ایک موجودہ Yat کو جوڑیں۔",
"connect_yats" : "Yats کو جوڑیں۔",
"yat_address" : "Yat ایڈریس",
"yat" : "Yat",
"address_from_yat" : "یہ پتہ Yat پر ${emoji} کا ہے۔",
"yat_error" : "Yat غلطی",
"yat_error_content" : "اس Yat کے ساتھ کوئی پتے منسلک نہیں ہیں۔ ایک اور یات آزمائیں۔",
"choose_address" : "\\n\\nبراہ کرم پتہ منتخب کریں:",
"yat_popup_title" : "آپ کے بٹوے کا پتہ ایموجائز کیا جا سکتا ہے۔",
"yat_popup_content" : "اب آپ Cake Wallet میں اپنے Yat کے ساتھ کرپٹو بھیج اور وصول کر سکتے ہیں - ایک مختصر، ایموجی پر مبنی صارف نام۔ ترتیبات کی سکرین پر کسی بھی وقت Yats کا نظم کریں۔",
"second_intro_title" : "ان سب پر حکمرانی کے لیے ایک ایموجی ایڈریس",
"second_intro_content" : "آپ کا Yat ایک منفرد ایموجی ایڈریس ہے جو آپ کی تمام کرنسیوں کے لیے آپ کے تمام لمبے ہیکسا ڈیسیمل پتوں کی جگہ لے لیتا ہے۔",
"third_intro_title" : "Yat دوسروں کے ساتھ اچھی طرح کھیلتا ہے۔",
"third_intro_content" : "Yats بھی Cake والیٹ سے باہر رہتے ہیں۔ زمین پر کسی بھی بٹوے کے پتے کو Yat سے تبدیل کیا جا سکتا ہے!",
"learn_more" : "اورجانیے",
"search" : "تلاش کریں۔",
"search_language" : "زبان تلاش کریں۔",
"search_currency" : "کرنسی تلاش کریں۔",
"new_template" : "نیا سانچہ",
"electrum_address_disclaimer" : "جب بھی آپ ایک کا استعمال کرتے ہیں تو ہم نئے پتے تیار کرتے ہیں، لیکن پچھلے پتے کام کرتے رہتے ہیں۔",
"wallet_name_exists" : "اس نام کا پرس پہلے سے موجود ہے۔ براہ کرم ایک مختلف نام منتخب کریں یا پہلے دوسرے بٹوے کا نام تبدیل کریں۔",
"market_place" : "بازار",
"cake_pay_title" : "Cake پے گفٹ کارڈز",
"cake_pay_subtitle" : "رعایتی گفٹ کارڈز خریدیں (صرف امریکہ)",
"cake_pay_web_cards_title" : "Cake پے ویب کارڈز",
"cake_pay_web_cards_subtitle" : "دنیا بھر میں پری پیڈ کارڈز اور گفٹ کارڈز خریدیں۔",
"about_cake_pay" : "Cake پے آپ کو ورچوئل اثاثوں کے ساتھ گفٹ کارڈز آسانی سے خریدنے کی اجازت دیتا ہے، جو ریاستہائے متحدہ میں 150,000 سے زیادہ تاجروں پر فوری طور پر خرچ کیے جا سکتے ہیں۔",
"cake_pay_account_note" : "کارڈز دیکھنے اور خریدنے کے لیے صرف ایک ای میل ایڈریس کے ساتھ سائن اپ کریں۔ کچھ رعایت پر بھی دستیاب ہیں!",
"already_have_account" : "پہلے سے ہی اکاؤنٹ ہے؟",
"create_account" : "اکاؤنٹ بنائیں",
"privacy_policy" : "رازداری کی پالیسی",
"welcome_to_cakepay" : "Cake پے میں خوش آمدید!",
"sign_up" : "سائن اپ",
"forgot_password" : "پاسورڈ بھول گے",
"reset_password" : "پاس ورڈ ری سیٹ",
"gift_cards" : "گفٹ کارڈز",
"setup_your_debit_card" : "اپنا ڈیبٹ کارڈ ترتیب دیں۔",
"no_id_required" : "کوئی ID درکار نہیں۔ ٹاپ اپ اور کہیں بھی خرچ کریں۔",
"how_to_use_card" : "اس کارڈ کو استعمال کرنے کا طریقہ",
"purchase_gift_card" : "گفٹ کارڈ خریدیں۔",
"verification" : "تصدیق",
"fill_code" : "براہ کرم اپنے ای میل پر فراہم کردہ تصدیقی کوڈ کو پُر کریں۔",
"dont_get_code" : "کوڈ نہیں ملتا؟",
"resend_code" : "براہ کرم اسے دوبارہ بھیجیں۔",
"debit_card" : "ڈیبٹ کارڈ",
"cakepay_prepaid_card" : "Cake پے پری پیڈ ڈیبٹ کارڈ",
"no_id_needed" : "شناخت کی ضرورت نہیں!",
"frequently_asked_questions" : "اکثر پوچھے گئے سوالات",
"debit_card_terms" : "اس ڈیجیٹل والیٹ میں آپ کے ادائیگی کارڈ نمبر (اور آپ کے ادائیگی کارڈ نمبر سے متعلقہ اسناد) کا ذخیرہ اور استعمال ادائیگی کارڈ جاری کنندہ کے ساتھ قابل اطلاق کارڈ ہولڈر کے معاہدے کی شرائط و ضوابط کے ساتھ مشروط ہے، جیسا کہ وقتاً فوقتاً نافذ ہوتا ہے۔",
"please_reference_document" : "مزید معلومات کے لیے براہ کرم نیچے دی گئی دستاویزات کا حوالہ دیں۔",
"cardholder_agreement" : "کارڈ ہولڈر کا معاہدہ",
"e_sign_consent" : "ای سائن کنسنٹ",
"agree_and_continue" : "اتفاق کریں اور جاری رکھیں",
"email_address" : "ای میل اڈریس",
"agree_to" : "اکاؤنٹ بنا کر آپ اس سے اتفاق کرتے ہیں۔",
"and" : "اور",
"enter_code" : "کوڈ درج کریں",
"congratulations" : "مبارک ہو!",
"you_now_have_debit_card" : "اب آپ کے پاس ڈیبٹ کارڈ ہے۔",
"min_amount" : "کم سے کم: ${value}",
"max_amount" : "زیادہ سے زیادہ: ${value}",
"enter_amount" : "رقم درج کریں۔",
"billing_address_info" : "اگر آپ سے بلنگ کا پتہ پوچھا جائے تو اپنا شپنگ ایڈریس فراہم کریں۔",
"order_physical_card" : "فزیکل کارڈ آرڈر کریں۔",
"add_value" : "قدر شامل کریں۔",
"activate" : "محرک کریں",
"get_a" : "حاصل",
"digital_and_physical_card" : " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ",
"get_card_note" : " جسے آپ ڈیجیٹل کرنسیوں کے ساتھ دوبارہ لوڈ کر سکتے ہیں۔ کوئی اضافی معلومات کی ضرورت نہیں!",
"signup_for_card_accept_terms" : "کارڈ کے لیے سائن اپ کریں اور شرائط کو قبول کریں۔",
"add_fund_to_card" : "کارڈز میں پری پیڈ فنڈز شامل کریں (${value} تک)",
"use_card_info_two" : "رقوم کو امریکی ڈالر میں تبدیل کیا جاتا ہے جب پری پیڈ اکاؤنٹ میں رکھا جاتا ہے، ڈیجیٹل کرنسیوں میں نہیں۔",
"use_card_info_three" : "ڈیجیٹل کارڈ آن لائن یا کنٹیکٹ لیس ادائیگی کے طریقوں کے ساتھ استعمال کریں۔",
"optionally_order_card" : "اختیاری طور پر ایک فزیکل کارڈ آرڈر کریں۔",
"hide_details" : "تفصیلات چھپائیں۔",
"show_details" : "تفصیلات دکھائیں",
"upto" : "${value} تک",
"discount" : "${value}% بچائیں",
"gift_card_amount" : "گفٹ کارڈ کی رقم",
"bill_amount" : "بل رقم",
"you_pay" : "تم ادا کرو",
"tip" : "ٹپ:",
"custom" : "اپنی مرضی کے مطابق",
"by_cake_pay" : "Cake پے کے ذریعے",
"expires" : "میعاد ختم",
"mm" : "MM",
"yy" : "YY",
"online" : "آن لائن",
"offline" : "آف لائن",
"gift_card_number" : "گفٹ کارڈ نمبر",
"pin_number" : "پن نمبر",
"total_saving" : "کل بچت",
"last_30_days" : "آخری 30 دن",
"avg_savings" : "اوسط بچت",
"view_all" : "سب دیکھیں",
"active_cards" : "فعال کارڈز",
"delete_account" : "کھاتہ مٹا دو",
"cards" : "کارڈز",
"active" : "فعال",
"redeemed" : "چھڑایا",
"gift_card_balance_note" : "باقی بیلنس والے گفٹ کارڈز یہاں ظاہر ہوں گے۔",
"gift_card_redeemed_note" : "آپ نے جن گفٹ کارڈز کو بھنایا ہے وہ یہاں ظاہر ہوں گے۔",
"logout" : "لاگ آوٹ",
"add_tip" : "ٹپ شامل کریں۔",
"percentageOf" : "${amount} کا",
"is_percentage" : "ہے",
"search_category" : "زمرہ تلاش کریں۔",
"mark_as_redeemed" : "ریڈیم کے بطور نشان زد کریں۔",
"more_options" : "مزید زرائے",
"awaiting_payment_confirmation" : "ادائیگی کی تصدیق کے منتظر",
"transaction_sent_notice" : "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے، تو بلاک ایکسپلورر اور اپنا ای میل چیک کریں۔",
"agree" : "متفق",
"in_store" : "اسٹور میں",
"generating_gift_card" : "گفٹ کارڈ تیار کرنا",
"payment_was_received" : "آپ کی ادائیگی موصول ہو گئی۔",
"proceed_after_one_minute" : "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے تو اپنا ای میل چیک کریں۔",
"order_id" : "ID آرڈر کریں۔",
"gift_card_is_generated" : "گفٹ کارڈ بنتا ہے۔",
"open_gift_card" : "گفٹ کارڈ کھولیں۔",
"contact_support" : "سپورٹ سے رابطہ کریں۔",
"gift_cards_unavailable" : "گفٹ کارڈز اس وقت صرف Monero، Bitcoin اور Litecoin کے ساتھ خریداری کے لیے دستیاب ہیں۔",
"introducing_cake_pay" : "Cake پے کا تعارف!",
"cake_pay_learn_more" : "ایپ میں فوری طور پر گفٹ کارڈز خریدیں اور بھنائیں!\\nمزید جاننے کے لیے بائیں سے دائیں سوائپ کریں۔",
"automatic" : "خودکار",
"fixed_pair_not_supported" : "یہ مقررہ جوڑا منتخب کردہ تبادلے کے ساتھ تعاون یافتہ نہیں ہے۔",
"variable_pair_not_supported" : "یہ متغیر جوڑا منتخب ایکسچینجز کے ساتھ تعاون یافتہ نہیں ہے۔",
"none_of_selected_providers_can_exchange" : "منتخب فراہم کنندگان میں سے کوئی بھی یہ تبادلہ نہیں کر سکتا",
"choose_one" : "ایک کا انتخاب کریں",
"choose_from_available_options" : "دستیاب اختیارات میں سے انتخاب کریں:",
"custom_redeem_amount" : "حسب ضرورت چھڑانے کی رقم",
"add_custom_redemption" : "حسب ضرورت چھٹکارا شامل کریں۔",
"remaining" : "باقی",
"delete_wallet" : "پرس کو حذف کریں۔",
"delete_wallet_confirm_message" : "کیا آپ واقعی ${wallet_name} والیٹ کو حذف کرنا چاہتے ہیں؟",
"low_fee" : "کم فیس",
"low_fee_alert" : "آپ فی الحال کم نیٹ ورک فیس کی ترجیح استعمال کر رہے ہیں۔ یہ طویل انتظار، مختلف شرحوں، یا منسوخ شدہ تجارتوں کا سبب بن سکتا ہے۔ ہم بہتر تجربہ کے لیے زیادہ فیس مقرر کرنے کی تجویز کرتے ہیں۔",
"ignor" : "نظر انداز کرنا",
"use_suggested" : "تجویز کردہ استعمال کریں۔",
"do_not_share_warning_text" : "سپورٹ سمیت کسی اور کے ساتھ ان کا اشتراک نہ کریں۔\\n\\nآپ کے فنڈز چوری ہو سکتے ہیں اور ہو جائیں گے!",
"help" : "مدد",
"all_transactions" : "تمام لین دین",
"all_trades" : "تمام تجارت",
"connection_sync" : "کنکشن اور مطابقت پذیری",
"security_and_backup" : "سیکیورٹی اور بیک اپ",
"create_backup" : "بیک اپ بنائیں",
"privacy_settings" : "رازداری کی ترتیبات",
"privacy" : "رازداری",
"display_settings" : "ڈسپلے کی ترتیبات",
"other_settings" : "دیگر ترتیبات",
"require_pin_after" : "اس کے بعد PIN کی ضرورت ہے۔",
"always" : "ہمیشہ",
"minutes_to_pin_code" : "${minute} منٹ",
"disable_exchange" : "تبادلے کو غیر فعال کریں۔",
"advanced_privacy_settings" : "اعلی درجے کی رازداری کی ترتیبات",
"settings_can_be_changed_later" : "ان ترتیبات کو بعد میں ایپ کی ترتیبات میں تبدیل کیا جا سکتا ہے۔",
"add_custom_node" : "نیا کسٹم نوڈ شامل کریں۔",
"disable_fiat" : "فیاٹ کو غیر فعال کریں۔",
"fiat_api" : "Fiat API",
"disabled" : "معذور",
"enabled" : "فعال",
"tor_only" : "صرف Tor",
"unmatched_currencies" : "آپ کے پرس کی موجودہ کرنسی اسکین شدہ QR سے مماثل نہیں ہے۔",
"orbot_running_alert" : "براہ کرم یقینی بنائیں کہ اس نوڈ سے منسلک ہونے سے پہلے Orbot چل رہا ہے۔",
"contact_list_contacts" : "رابطے",
"contact_list_wallets" : "میرے بٹوے",
"send_to_this_address" : "اس پتے پر ${currency} ${tag} بھیجیں۔",
"arrive_in_this_address" : "${currency} ${tag}اس پتے پر پہنچے گا۔",
"do_not_send" : "مت بھیجیں۔",
"error_dialog_content" : "افوہ، ہمیں کچھ خرابی ملی۔\n\nایپلی کیشن کو بہتر بنانے کے لیے براہ کرم کریش رپورٹ ہماری سپورٹ ٹیم کو بھیجیں۔"
}

View file

@ -398,8 +398,7 @@
"biometric_auth_reason" : "扫描指纹进行身份认证",
"version" : "版本 ${currentVersion}",
"openalias_alert_title" : "检测到地址",
"openalias_alert_content" : "您将汇款至\n${recipient_name}",
"extracted_address_content" : "您将汇款至\n${recipient_name}",
"card_address" : "地址:",
"buy" : "购买",
@ -679,6 +678,9 @@
"orbot_running_alert": "请确保 Orbot 在连接到此节点之前正在运行。",
"contact_list_contacts": "联系人",
"contact_list_wallets": "我的钱包",
"bitcoin_payments_require_1_confirmation": "比特币支付需要 1 次确认,这可能需要 20 分钟或更长时间。谢谢你的耐心!确认付款后,您将收到电子邮件。",
"send_to_this_address" : "发送 ${currency} ${tag}到这个地址",
"arrive_in_this_address" : "${currency} ${tag}将到达此地址",
"do_not_send": "不要发送",
"error_dialog_content": "糟糕,我们遇到了一些错误。\n\n请将崩溃报告发送给我们的支持团队以改进应用程序。"
}

View file

@ -14,14 +14,14 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_ANDROID_TYPE=$1
MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="1.2.5"
MONERO_COM_BUILD_NUMBER=36
MONERO_COM_VERSION="1.2.7"
MONERO_COM_BUILD_NUMBER=38
MONERO_COM_BUNDLE_ID="com.monero.app"
MONERO_COM_PACKAGE="com.monero.app"
CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.5.6"
CAKEWALLET_BUILD_NUMBER=141
CAKEWALLET_VERSION="4.5.8"
CAKEWALLET_BUILD_NUMBER=144
CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet"
CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet"

View file

@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN)
APP_IOS_TYPE=$1
MONERO_COM_NAME="Monero.com"
MONERO_COM_VERSION="1.2.5"
MONERO_COM_BUILD_NUMBER=33
MONERO_COM_VERSION="1.2.7"
MONERO_COM_BUILD_NUMBER=35
MONERO_COM_BUNDLE_ID="com.cakewallet.monero"
CAKEWALLET_NAME="Cake Wallet"
CAKEWALLET_VERSION="4.5.6"
CAKEWALLET_BUILD_NUMBER=138
CAKEWALLET_VERSION="4.5.8"
CAKEWALLET_BUILD_NUMBER=140
CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet"
HAVEN_NAME="Haven"

View file

@ -29,6 +29,7 @@ class SecretKey {
SecretKey('anypayToken', () => ''),
SecretKey('onramperApiKey', () => ''),
SecretKey('ioniaClientId', () => ''),
SecretKey('twitterBearerToken', () => ''),
];
final String name;