diff --git a/.gitignore b/.gitignore
index 4ba16a949..9fce14fcf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -149,6 +149,7 @@ lib/zcash/zcash.dart
ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
ios/Runner/Assets.xcassets/AppIcon.appiconset/*.png
+ios/AppIcon.icon/*
ios/Runner/Info.plist
android/app/src/main/res/mipmap-*
@@ -181,6 +182,7 @@ macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
macos/Runner/Configs/AppInfo.xcconfig
macos/Runner.xcodeproj/project.pbxproj
+macos/AppIcon.icon/*
integration_test/playground.dart
diff --git a/assets/images/ios_icons/cakewallet-app.icon/Assets/base.svg b/assets/images/ios_icons/cakewallet-app.icon/Assets/base.svg
new file mode 100644
index 000000000..86a87f253
--- /dev/null
+++ b/assets/images/ios_icons/cakewallet-app.icon/Assets/base.svg
@@ -0,0 +1,26 @@
+
diff --git a/assets/images/ios_icons/cakewallet-app.icon/Assets/cake-dark.svg b/assets/images/ios_icons/cakewallet-app.icon/Assets/cake-dark.svg
new file mode 100644
index 000000000..df312447a
--- /dev/null
+++ b/assets/images/ios_icons/cakewallet-app.icon/Assets/cake-dark.svg
@@ -0,0 +1,31 @@
+
diff --git a/assets/images/ios_icons/cakewallet-app.icon/Assets/cake-tinted.svg b/assets/images/ios_icons/cakewallet-app.icon/Assets/cake-tinted.svg
new file mode 100644
index 000000000..62b0e9cba
--- /dev/null
+++ b/assets/images/ios_icons/cakewallet-app.icon/Assets/cake-tinted.svg
@@ -0,0 +1,42 @@
+
diff --git a/assets/images/ios_icons/cakewallet-app.icon/icon.json b/assets/images/ios_icons/cakewallet-app.icon/icon.json
new file mode 100644
index 000000000..686e8f53c
--- /dev/null
+++ b/assets/images/ios_icons/cakewallet-app.icon/icon.json
@@ -0,0 +1,62 @@
+{
+ "fill" : {
+ "linear-gradient" : [
+ "extended-gray:1.00000,1.00000",
+ "srgb:0.93725,0.93725,0.97255,1.00000"
+ ],
+ "orientation" : {
+ "start" : {
+ "x" : 0.5,
+ "y" : 0
+ },
+ "stop" : {
+ "x" : 0.5,
+ "y" : 0.7
+ }
+ }
+ },
+ "groups" : [
+ {
+ "layers" : [
+ {
+ "fill" : "none",
+ "glass-specializations" : [
+ {
+ "value" : false
+ },
+ {
+ "appearance" : "dark",
+ "value" : false
+ }
+ ],
+ "hidden" : false,
+ "image-name-specializations" : [
+ {
+ "value" : "base.svg"
+ },
+ {
+ "appearance" : "dark",
+ "value" : "cake-dark.svg"
+ },
+ {
+ "appearance" : "tinted",
+ "value" : "cake-tinted.svg"
+ }
+ ],
+ "name" : "cake-dark"
+ }
+ ],
+ "shadow" : {
+ "kind" : "neutral",
+ "opacity" : 0.5
+ },
+ "translucency" : {
+ "enabled" : true,
+ "value" : 0.5
+ }
+ }
+ ],
+ "supported-platforms" : {
+ "squares" : "shared"
+ }
+}
\ No newline at end of file
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@2x.png
deleted file mode 100644
index 3fd15f3ce..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@2x~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@2x~ipad.png
deleted file mode 100644
index 3fd15f3ce..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@2x~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@3x.png
deleted file mode 100644
index b6ff994f6..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20~ipad.png
deleted file mode 100644
index 4be1a2317..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-20~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29.png
deleted file mode 100644
index 219f2c6be..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@2x.png
deleted file mode 100644
index ae94bb0ac..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@2x~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@2x~ipad.png
deleted file mode 100644
index ae94bb0ac..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@2x~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@3x.png
deleted file mode 100644
index 0ef9d3bbf..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29~ipad.png
deleted file mode 100644
index 219f2c6be..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-29~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@2x.png
deleted file mode 100644
index 9fdb32376..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@2x~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@2x~ipad.png
deleted file mode 100644
index 9fdb32376..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@2x~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@3x.png
deleted file mode 100644
index 485f8b37b..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40~ipad.png
deleted file mode 100644
index 3fd15f3ce..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-40~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-60@2x~car.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-60@2x~car.png
deleted file mode 100644
index 485f8b37b..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-60@2x~car.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-60@3x~car.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-60@3x~car.png
deleted file mode 100644
index 50148e6dc..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-60@3x~car.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-83.5@2x~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-83.5@2x~ipad.png
deleted file mode 100644
index 8f290ada2..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon-83.5@2x~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@2x.png
deleted file mode 100644
index 485f8b37b..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@2x~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@2x~ipad.png
deleted file mode 100644
index b11d7332f..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@2x~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@3x.png
deleted file mode 100644
index 50148e6dc..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon~ios-marketing.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon~ios-marketing.png
deleted file mode 100644
index 1fce95553..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon~ios-marketing.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon~ipad.png b/assets/images/ios_icons/cakewallet_ios_icons/AppIcon~ipad.png
deleted file mode 100644
index 7d4a82186..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/AppIcon~ipad.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Contents.json b/assets/images/ios_icons/cakewallet_ios_icons/Contents.json
deleted file mode 100644
index 858a40ad8..000000000
--- a/assets/images/ios_icons/cakewallet_ios_icons/Contents.json
+++ /dev/null
@@ -1,533 +0,0 @@
-{
- "images" : [
- {
- "filename" : "Icon-App-20x20@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "20x20"
- },
- {
- "filename" : "Icon-App-20x20@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "20x20"
- },
- {
- "filename" : "Icon-App-29x29@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "29x29"
- },
- {
- "filename" : "Icon-App-29x29@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "29x29"
- },
- {
- "filename" : "Icon-App-38x38@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "38x38"
- },
- {
- "filename" : "Icon-App-38x38@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "38x38"
- },
- {
- "filename" : "Icon-App-40x40@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "40x40"
- },
- {
- "filename" : "Icon-App-40x40@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "40x40"
- },
- {
- "filename" : "Icon-App-60x60@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "60x60"
- },
- {
- "filename" : "Icon-App-60x60@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "60x60"
- },
- {
- "filename" : "Icon-App-64x64@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "64x64"
- },
- {
- "filename" : "Icon-App-64x64@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "64x64"
- },
- {
- "filename" : "Icon-App-68x68@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "68x68"
- },
- {
- "filename" : "Icon-App-76x76@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "76x76"
- },
- {
- "filename" : "Icon-App-83.5x83.5@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "83.5x83.5"
- },
- {
- "filename" : "Icon-App-1024x1024@1x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "size" : "1024x1024"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-20x20@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "20x20"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-20x20@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "20x20"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-29x29@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "29x29"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-29x29@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "29x29"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-38x38@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "38x38"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-38x38@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "38x38"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-40x40@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "40x40"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-40x40@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "40x40"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-60x60@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "60x60"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-60x60@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "60x60"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-64x64@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "64x64"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-64x64@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "64x64"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-68x68@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "68x68"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-76x76@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "76x76"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-83.5x83.5@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "83.5x83.5"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "dark"
- }
- ],
- "filename" : "Icon-App-Dark-1024x1024@1x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "size" : "1024x1024"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-20x20@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "20x20"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-20x20@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "20x20"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-29x29@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "29x29"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-29x29@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "29x29"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-38x38@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "38x38"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-38x38@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "38x38"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-40x40@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "40x40"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-40x40@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "40x40"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-60x60@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "60x60"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-60x60@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "60x60"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-64x64@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "64x64"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-64x64@3x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "3x",
- "size" : "64x64"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-68x68@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "68x68"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-76x76@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "76x76"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-83.5x83.5@2x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "scale" : "2x",
- "size" : "83.5x83.5"
- },
- {
- "appearances" : [
- {
- "appearance" : "luminosity",
- "value" : "tinted"
- }
- ],
- "filename" : "Icon-App-Tinted-1024x1024@1x.png",
- "idiom" : "universal",
- "platform" : "ios",
- "size" : "1024x1024"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-1024x1024@1x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-1024x1024@1x.png
deleted file mode 100644
index 97e29fa54..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-1024x1024@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-20x20@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-20x20@2x.png
deleted file mode 100644
index e20857184..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-20x20@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-20x20@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-20x20@3x.png
deleted file mode 100644
index a2f3f60d0..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-20x20@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-29x29@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-29x29@2x.png
deleted file mode 100644
index a263c8caa..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-29x29@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-29x29@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-29x29@3x.png
deleted file mode 100644
index 800bbd19d..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-29x29@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-38x38@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-38x38@2x.png
deleted file mode 100644
index 9012cbd7f..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-38x38@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-38x38@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-38x38@3x.png
deleted file mode 100644
index 678ae1bc8..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-38x38@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-40x40@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-40x40@2x.png
deleted file mode 100644
index 2007f0abd..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-40x40@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-40x40@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-40x40@3x.png
deleted file mode 100644
index 277de169c..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-40x40@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-60x60@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-60x60@2x.png
deleted file mode 100644
index 277de169c..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-60x60@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-60x60@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-60x60@3x.png
deleted file mode 100644
index fd0150fec..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-60x60@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-64x64@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-64x64@2x.png
deleted file mode 100644
index a1d384727..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-64x64@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-64x64@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-64x64@3x.png
deleted file mode 100644
index 1869f2003..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-64x64@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-68x68@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-68x68@2x.png
deleted file mode 100644
index d91f61d52..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-68x68@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-76x76@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-76x76@2x.png
deleted file mode 100644
index c8d3d0e0c..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-76x76@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-83.5x83.5@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-83.5x83.5@2x.png
deleted file mode 100644
index f39b97cd2..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-83.5x83.5@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-1024x1024@1x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-1024x1024@1x.png
deleted file mode 100644
index 7c80e0ca1..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-1024x1024@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-20x20@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-20x20@2x.png
deleted file mode 100644
index fa9200cd2..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-20x20@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-20x20@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-20x20@3x.png
deleted file mode 100644
index 0952320a8..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-20x20@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-29x29@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-29x29@2x.png
deleted file mode 100644
index d7f1b5eb1..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-29x29@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-29x29@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-29x29@3x.png
deleted file mode 100644
index 574f334f4..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-29x29@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-38x38@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-38x38@2x.png
deleted file mode 100644
index afb6d8508..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-38x38@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-38x38@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-38x38@3x.png
deleted file mode 100644
index f424dbca3..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-38x38@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-40x40@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-40x40@2x.png
deleted file mode 100644
index 1a9382507..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-40x40@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-40x40@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-40x40@3x.png
deleted file mode 100644
index 14128555a..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-40x40@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-60x60@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-60x60@2x.png
deleted file mode 100644
index 14128555a..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-60x60@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-60x60@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-60x60@3x.png
deleted file mode 100644
index 91a3d6917..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-60x60@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-64x64@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-64x64@2x.png
deleted file mode 100644
index 14ccfdb99..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-64x64@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-64x64@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-64x64@3x.png
deleted file mode 100644
index 50194ba05..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-64x64@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-68x68@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-68x68@2x.png
deleted file mode 100644
index 8b2a2ffdd..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-68x68@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-76x76@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-76x76@2x.png
deleted file mode 100644
index 14966ac89..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-76x76@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-83.5x83.5@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-83.5x83.5@2x.png
deleted file mode 100644
index abefc5d82..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Dark-83.5x83.5@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-1024x1024@1x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-1024x1024@1x.png
deleted file mode 100644
index c497febe0..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-1024x1024@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-20x20@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-20x20@2x.png
deleted file mode 100644
index 53255259c..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-20x20@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-20x20@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-20x20@3x.png
deleted file mode 100644
index 969d0640b..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-20x20@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-29x29@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-29x29@2x.png
deleted file mode 100644
index 63e21c173..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-29x29@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-29x29@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-29x29@3x.png
deleted file mode 100644
index fc71d8e2b..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-29x29@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-38x38@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-38x38@2x.png
deleted file mode 100644
index f74321c04..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-38x38@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-38x38@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-38x38@3x.png
deleted file mode 100644
index d4d4da741..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-38x38@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-40x40@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-40x40@2x.png
deleted file mode 100644
index b165e2b75..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-40x40@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-40x40@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-40x40@3x.png
deleted file mode 100644
index e5abf0ed1..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-40x40@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-60x60@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-60x60@2x.png
deleted file mode 100644
index e5abf0ed1..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-60x60@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-60x60@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-60x60@3x.png
deleted file mode 100644
index 2401f7905..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-60x60@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-64x64@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-64x64@2x.png
deleted file mode 100644
index ca5f496bf..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-64x64@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-64x64@3x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-64x64@3x.png
deleted file mode 100644
index 615dbdac8..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-64x64@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-68x68@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-68x68@2x.png
deleted file mode 100644
index 180e341f5..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-68x68@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-76x76@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-76x76@2x.png
deleted file mode 100644
index dd284895f..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-76x76@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-83.5x83.5@2x.png b/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-83.5x83.5@2x.png
deleted file mode 100644
index 428705c82..000000000
Binary files a/assets/images/ios_icons/cakewallet_ios_icons/Icon-App-Tinted-83.5x83.5@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Contents.json b/assets/images/ios_icons/monero_ios_icons/Contents.json
deleted file mode 100644
index d0d98aa17..000000000
--- a/assets/images/ios_icons/monero_ios_icons/Contents.json
+++ /dev/null
@@ -1 +0,0 @@
-{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}}
\ No newline at end of file
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-1024x1024@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-1024x1024@1x.png
deleted file mode 100644
index 22b43da1a..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-1024x1024@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@1x.png
deleted file mode 100644
index 55f006709..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@2x.png
deleted file mode 100644
index 9ac20f5d6..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@3x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@3x.png
deleted file mode 100644
index d6a44407e..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-20x20@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@1x.png
deleted file mode 100644
index eae48aa12..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@2x.png
deleted file mode 100644
index ffa4c0e80..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@3x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@3x.png
deleted file mode 100644
index 3f8c0acc0..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-29x29@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@1x.png
deleted file mode 100644
index 9ac20f5d6..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@2x.png
deleted file mode 100644
index 14644910d..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@3x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@3x.png
deleted file mode 100644
index 359371094..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-40x40@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-50x50@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-50x50@1x.png
deleted file mode 100644
index 95ffad635..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-50x50@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-50x50@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-50x50@2x.png
deleted file mode 100644
index f5270fda9..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-50x50@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-57x57@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-57x57@1x.png
deleted file mode 100644
index 2c1b9be5b..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-57x57@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-57x57@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-57x57@2x.png
deleted file mode 100644
index d71092f8e..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-57x57@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-60x60@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-60x60@2x.png
deleted file mode 100644
index 359371094..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-60x60@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-60x60@3x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-60x60@3x.png
deleted file mode 100644
index 300ae990b..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-60x60@3x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-72x72@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-72x72@1x.png
deleted file mode 100644
index bf884a35c..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-72x72@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-72x72@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-72x72@2x.png
deleted file mode 100644
index a66916e64..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-72x72@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-76x76@1x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-76x76@1x.png
deleted file mode 100644
index 8a4813d1e..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-76x76@1x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-76x76@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-76x76@2x.png
deleted file mode 100644
index 577a8af9f..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-76x76@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monero_ios_icons/Icon-App-83.5x83.5@2x.png b/assets/images/ios_icons/monero_ios_icons/Icon-App-83.5x83.5@2x.png
deleted file mode 100644
index 77597a4cf..000000000
Binary files a/assets/images/ios_icons/monero_ios_icons/Icon-App-83.5x83.5@2x.png and /dev/null differ
diff --git a/assets/images/ios_icons/monerocom-app.icon/Assets/monero-tinted.svg b/assets/images/ios_icons/monerocom-app.icon/Assets/monero-tinted.svg
new file mode 100644
index 000000000..d2e7f9064
--- /dev/null
+++ b/assets/images/ios_icons/monerocom-app.icon/Assets/monero-tinted.svg
@@ -0,0 +1,25 @@
+
diff --git a/assets/images/ios_icons/monerocom-app.icon/Assets/monerocom-icon-app-dark.svg b/assets/images/ios_icons/monerocom-app.icon/Assets/monerocom-icon-app-dark.svg
new file mode 100644
index 000000000..3f2a6834e
--- /dev/null
+++ b/assets/images/ios_icons/monerocom-app.icon/Assets/monerocom-icon-app-dark.svg
@@ -0,0 +1,51 @@
+
diff --git a/assets/images/ios_icons/monerocom-app.icon/Assets/monerocom-icon-app.svg b/assets/images/ios_icons/monerocom-app.icon/Assets/monerocom-icon-app.svg
new file mode 100644
index 000000000..0abff0181
--- /dev/null
+++ b/assets/images/ios_icons/monerocom-app.icon/Assets/monerocom-icon-app.svg
@@ -0,0 +1,25 @@
+
diff --git a/assets/images/ios_icons/monerocom-app.icon/icon.json b/assets/images/ios_icons/monerocom-app.icon/icon.json
new file mode 100644
index 000000000..c115ef005
--- /dev/null
+++ b/assets/images/ios_icons/monerocom-app.icon/icon.json
@@ -0,0 +1,52 @@
+{
+ "fill" : {
+ "linear-gradient" : [
+ "display-p3:1.00000,1.00000,1.00000,1.00000",
+ "srgb:0.93725,0.93725,0.97255,1.00000"
+ ],
+ "orientation" : {
+ "start" : {
+ "x" : 0.5,
+ "y" : 0
+ },
+ "stop" : {
+ "x" : 0.5,
+ "y" : 0.7
+ }
+ }
+ },
+ "groups" : [
+ {
+ "layers" : [
+ {
+ "glass" : false,
+ "image-name-specializations" : [
+ {
+ "value" : "monerocom-icon-app.svg"
+ },
+ {
+ "appearance" : "dark",
+ "value" : "monerocom-icon-app-dark.svg"
+ },
+ {
+ "appearance" : "tinted",
+ "value" : "monero-tinted.svg"
+ }
+ ],
+ "name" : "monerocom-icon-app-dark"
+ }
+ ],
+ "shadow" : {
+ "kind" : "neutral",
+ "opacity" : 0.5
+ },
+ "translucency" : {
+ "enabled" : true,
+ "value" : 0.5
+ }
+ }
+ ],
+ "supported-platforms" : {
+ "squares" : "shared"
+ }
+}
\ No newline at end of file
diff --git a/cw_bitcoin/lib/lightning/lightning_wallet.dart b/cw_bitcoin/lib/lightning/lightning_wallet.dart
index 91890d20f..deef7204b 100644
--- a/cw_bitcoin/lib/lightning/lightning_wallet.dart
+++ b/cw_bitcoin/lib/lightning/lightning_wallet.dart
@@ -213,14 +213,14 @@ class LightningWallet {
PrepareLnurlPayRequest request;
if (inputType is InputType_LightningAddress) {
request = PrepareLnurlPayRequest(
- amountSats: amountSats!,
+ amount: amountSats!,
payRequest: inputType.field0.payRequest,
validateSuccessActionUrl: optionalValidateSuccessActionUrl,
feePolicy: feePolicy,
);
} else {
request = PrepareLnurlPayRequest(
- amountSats: amountSats!,
+ amount: amountSats!,
payRequest: (inputType as InputType_LnurlPay).field0,
validateSuccessActionUrl: optionalValidateSuccessActionUrl,
feePolicy: feePolicy,
diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock
index 4d33cf36d..b7e893e90 100644
--- a/cw_bitcoin/pubspec.lock
+++ b/cw_bitcoin/pubspec.lock
@@ -134,11 +134,11 @@ packages:
dependency: "direct main"
description:
path: "."
- ref: "v0.11.0"
- resolved-ref: "4a6110477c526ddf236c6b5d4ad064802062f5ad"
+ ref: "v0.14.0"
+ resolved-ref: e18b6437daaf0572de6aea2439c2ec4d22658bbb
url: "https://github.com/breez/breez-sdk-spark-flutter"
source: git
- version: "0.11.0"
+ version: "0.14.0"
bs58check:
dependency: transitive
description:
diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml
index d58919ea1..28e99f483 100644
--- a/cw_bitcoin/pubspec.yaml
+++ b/cw_bitcoin/pubspec.yaml
@@ -72,7 +72,7 @@ dependencies:
breez_sdk_spark_flutter:
git:
url: https://github.com/breez/breez-sdk-spark-flutter
- ref: v0.11.0
+ ref: v0.14.0
dev_dependencies:
flutter_test:
diff --git a/cw_core/lib/currencies_with_memo.dart b/cw_core/lib/currencies_with_memo.dart
new file mode 100644
index 000000000..e12a14b31
--- /dev/null
+++ b/cw_core/lib/currencies_with_memo.dart
@@ -0,0 +1,13 @@
+import 'package:cw_core/crypto_currency.dart';
+
+enum MemoLabelType { destinationTag, memo }
+
+const Map _currenciesRequiringMemo = {
+ CryptoCurrency.xrp: MemoLabelType.destinationTag,
+ CryptoCurrency.xlm: MemoLabelType.memo,
+ CryptoCurrency.ton: MemoLabelType.memo,
+ CryptoCurrency.eos: MemoLabelType.memo,
+ CryptoCurrency.hbar: MemoLabelType.memo,
+};
+
+MemoLabelType? memoLabelTypeFor(CryptoCurrency currency) => _currenciesRequiringMemo[currency];
diff --git a/cw_core/lib/db/sqlite.dart b/cw_core/lib/db/sqlite.dart
index 311344a96..593b1b14f 100644
--- a/cw_core/lib/db/sqlite.dart
+++ b/cw_core/lib/db/sqlite.dart
@@ -41,7 +41,7 @@ Future initDb({String? pathOverride}) async {
}
}
await db?.close();
- db = await openDatabase(dbFile.path, version: 6,
+ db = await openDatabase(dbFile.path, version: 7,
onUpgrade: (Database db, int oldVersion, int newVersion) async {
printV("migrating: $oldVersion, $newVersion");
if (oldVersion <= 1) {
@@ -96,6 +96,14 @@ CREATE TABLE IF NOT EXISTS BalanceCardStyleSettings (
if (oldVersion <= 5) {
await _createTradeTable(db);
}
+ if (oldVersion <= 6) {
+ await _addColumnIfNotExists(
+ db,
+ table: 'Trade',
+ column: 'toAddressExtraId',
+ definition: 'TEXT',
+ );
+ }
},
onCreate: (Database db, int version) async {
await db.execute(
@@ -234,6 +242,7 @@ CREATE TABLE IF NOT EXISTS Trade (
refundAddress TEXT,
walletId TEXT,
payoutAddress TEXT,
+ toAddressExtraId TEXT,
password TEXT,
providerId TEXT,
providerName TEXT,
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 66410e642..e661632c8 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -1,15 +1,11 @@
PODS:
- bitbox_flutter (0.0.1):
- Flutter
- - breez_sdk_spark_flutter (0.11.0):
+ - breez_sdk_spark_flutter (0.14.0):
- Flutter
- connectivity_plus (0.0.1):
- Flutter
- CryptoSwift (1.8.4)
- - cw_decred (0.0.1):
- - Flutter
- - cw_mweb (0.0.1):
- - Flutter
- device_display_brightness (0.0.1):
- Flutter
- device_info_plus (0.0.1):
@@ -67,8 +63,6 @@ PODS:
- Flutter
- flutter_mailer (0.0.1):
- Flutter
- - flutter_native_splash (2.4.3):
- - Flutter
- flutter_secure_storage (6.0.0):
- Flutter
- fluttertoast (0.0.2):
@@ -79,16 +73,12 @@ PODS:
- Flutter
- integration_test (0.0.1):
- Flutter
- - local_auth_darwin (0.0.1):
- - Flutter
- - FlutterMacOS
- OrderedSet (6.0.3)
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- - payjoin_flutter (0.23.0)
- permission_handler_apple (9.3.0):
- Flutter
- quick_actions_ios (0.0.1):
@@ -96,10 +86,6 @@ PODS:
- reown_yttrium (0.0.1):
- Flutter
- YttriumWrapper (= 0.8.35)
- - rive_common (0.0.1):
- - Flutter
- - rlz (0.0.1):
- - Flutter
- SDWebImage (5.21.2):
- SDWebImage/Core (= 5.21.2)
- SDWebImage/Core (5.21.2)
@@ -110,8 +96,6 @@ PODS:
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- - sp_scanner (0.0.1):
- - Flutter
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
@@ -152,17 +136,12 @@ PODS:
- Flutter
- wakelock_plus (0.0.1):
- Flutter
- - warp_api (0.0.1):
- - Flutter
- YttriumWrapper (0.8.35)
DEPENDENCIES:
- bitbox_flutter (from `.symlinks/plugins/bitbox_flutter/ios`)
- - breez_sdk_spark_flutter (from `.symlinks/plugins/breez_sdk_spark_flutter/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- CryptoSwift
- - cw_decred (from `.symlinks/plugins/cw_decred/ios`)
- - cw_mweb (from `.symlinks/plugins/cw_mweb/ios`)
- device_display_brightness (from `.symlinks/plugins/device_display_brightness/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- devicelocale (from `.symlinks/plugins/devicelocale/ios`)
@@ -174,25 +153,19 @@ DEPENDENCIES:
- flutter_local_authentication (from `.symlinks/plugins/flutter_local_authentication/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`)
- - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- in_app_review (from `.symlinks/plugins/in_app_review/ios`)
- integration_test (from `.symlinks/plugins/integration_test/ios`)
- - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- - payjoin_flutter (from `.symlinks/plugins/payjoin_flutter/ios`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- quick_actions_ios (from `.symlinks/plugins/quick_actions_ios/ios`)
- reown_yttrium (from `.symlinks/plugins/reown_yttrium/ios`)
- - rive_common (from `.symlinks/plugins/rive_common/ios`)
- - rlz (from `.symlinks/plugins/rlz/ios`)
- sensitive_clipboard (from `.symlinks/plugins/sensitive_clipboard/ios`)
- share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- - sp_scanner (from `.symlinks/plugins/sp_scanner/ios`)
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`)
- torch_dart (from `.symlinks/plugins/torch_dart/ios`)
@@ -200,7 +173,6 @@ DEPENDENCIES:
- universal_ble (from `.symlinks/plugins/universal_ble/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`)
- - warp_api (from `.symlinks/plugins/warp_api/ios`)
SPEC REPOS:
https://github.com/CocoaPods/Specs.git:
@@ -216,14 +188,8 @@ SPEC REPOS:
EXTERNAL SOURCES:
bitbox_flutter:
:path: ".symlinks/plugins/bitbox_flutter/ios"
- breez_sdk_spark_flutter:
- :path: ".symlinks/plugins/breez_sdk_spark_flutter/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/ios"
- cw_decred:
- :path: ".symlinks/plugins/cw_decred/ios"
- cw_mweb:
- :path: ".symlinks/plugins/cw_mweb/ios"
device_display_brightness:
:path: ".symlinks/plugins/device_display_brightness/ios"
device_info_plus:
@@ -246,8 +212,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_mailer:
:path: ".symlinks/plugins/flutter_mailer/ios"
- flutter_native_splash:
- :path: ".symlinks/plugins/flutter_native_splash/ios"
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
fluttertoast:
@@ -258,32 +222,22 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/in_app_review/ios"
integration_test:
:path: ".symlinks/plugins/integration_test/ios"
- local_auth_darwin:
- :path: ".symlinks/plugins/local_auth_darwin/darwin"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
- payjoin_flutter:
- :path: ".symlinks/plugins/payjoin_flutter/ios"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
quick_actions_ios:
:path: ".symlinks/plugins/quick_actions_ios/ios"
reown_yttrium:
:path: ".symlinks/plugins/reown_yttrium/ios"
- rive_common:
- :path: ".symlinks/plugins/rive_common/ios"
- rlz:
- :path: ".symlinks/plugins/rlz/ios"
sensitive_clipboard:
:path: ".symlinks/plugins/sensitive_clipboard/ios"
share_plus:
:path: ".symlinks/plugins/share_plus/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
- sp_scanner:
- :path: ".symlinks/plugins/sp_scanner/ios"
sqflite_darwin:
:path: ".symlinks/plugins/sqflite_darwin/darwin"
sqlite3_flutter_libs:
@@ -298,60 +252,49 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/url_launcher_ios/ios"
wakelock_plus:
:path: ".symlinks/plugins/wakelock_plus/ios"
- warp_api:
- :path: ".symlinks/plugins/warp_api/ios"
SPEC CHECKSUMS:
bitbox_flutter: 9505732798041c413152669751beeaecc5fe400f
- breez_sdk_spark_flutter: 5bf9ff7455198c770b908c5d2ee52283474225f1
+ breez_sdk_spark_flutter: ed3b6709b8ce9b40309d8728640eade5b19e8a0d
connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
CryptoSwift: e64e11850ede528a02a0f3e768cec8e9d92ecb90
- cw_decred: a02cf30175a46971c1e2fa22c48407534541edc6
- cw_mweb: 3aea2fb35b2bd04d8b2d21b83216f3b8fb768d85
- device_display_brightness: 04374ebd653619292c1d996f00f42877ea19f17f
- device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89
- devicelocale: bd64aa714485a8afdaded0892c1e7d5b7f680cf8
+ device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7
+ device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
+ devicelocale: 35ba84dc7f45f527c3001535d8c8d104edd5d926
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
dnssec_proof: d461cac7bd3301eb7447f87936745a0c1ae0a67e
- fast_scanner: 2cb1ad3e69e645e9980fb4961396ce5804caa3e3
- file_picker: 9b3292d7c8bc68c8a7bf8eb78f730e49c8efc517
+ fast_scanner: 44c00940355a51258cd6c2085734193cd23d95bc
+ file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
- flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
- flutter_local_authentication: 989278c681612f1ee0e36019e149137f114b9d7f
- flutter_local_notifications: a5a732f069baa862e728d839dd2ebb904737effb
- flutter_mailer: 3a8cd4f36c960fb04528d5471097270c19fec1c4
- flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf
- flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418
- fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1
- image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
- in_app_review: 7dd1ea365263f834b8464673f9df72c80c17c937
- integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
- local_auth_darwin: d2e8c53ef0c4f43c646462e3415432c4dab3ae19
+ flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
+ flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb
+ flutter_local_notifications: ff50f8405aaa0ccdc7dcfb9022ca192e8ad9688f
+ flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83
+ flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
+ fluttertoast: 21eecd6935e7064cc1fcb733a4c5a428f3f24f0f
+ image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
+ in_app_review: 436034b18594851a7328d7f1c2ed5ec235b79cfc
+ integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
- package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
- path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
- payjoin_flutter: d9d4c8aa16bd5dfedb9b21d0edc8199e0187d96e
- permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
- quick_actions_ios: 4b07fb49d8d8f3518d7565fbb7a91014067a7d82
- reown_yttrium: cee334ade64725b1d83f7b34c706a6aae2696d58
- rive_common: dd421daaf9ae69f0125aa761dd96abd278399952
- rlz: 3f4022361f540a5c26d9d2474fea1d2455b69d8d
+ package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
+ path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
+ permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
+ quick_actions_ios: 56f3cbaa71e94f212838d1f9fe354bd0734779bf
+ reown_yttrium: c0e87e5965fa60a3559564cc35cffbba22976089
SDWebImage: 9f177d83116802728e122410fb25ad88f5c7608a
- sensitive_clipboard: 161e9abc3d56b3131309d8a321eb4690a803c16b
- share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
- shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
- sp_scanner: b1bc9321690980bdb44bba7ec85d5543e716d1b5
- sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
+ sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986
+ share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f
+ shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
+ sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
sqlite3: 73513155ec6979715d3904ef53a8d68892d4032b
- sqlite3_flutter_libs: 83f8e9f5b6554077f1d93119fe20ebaa5f3a9ef1
+ sqlite3_flutter_libs: 86f82662868ee26ff3451f73cac9c5fc2a1f57fa
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
- torch_dart: f4620705d10f05492fab047f2fa1c3a600e7d17d
- uni_links: ed8c961e47ed9ce42b6d91e1de8049e38a4b3152
- universal_ble: ff19787898040d721109c6324472e5dd4bc86adc
- url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
- wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556
- warp_api: 997d8fb3e777669bc6260d0c12e56cd40b9db1d1
+ torch_dart: d2cf778332cc6e6a3b362dcf45e4dde52bc34e35
+ uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
+ universal_ble: cf52a7b3fd2e7c14d6d7262e9fdadb72ab6b88a6
+ url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
+ wakelock_plus: 76957ab028e12bfa4e66813c99e46637f367fc7e
YttriumWrapper: 31e937fe9fbe0f1314d2ca6be9ce9b379a059966
PODFILE CHECKSUM: 5296465b1c6d14d506230356756826012f65d97a
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 6df8e02bf..acde3147e 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -18,6 +18,7 @@
724FDA327BF191BC29DCAA2E /* Constants.swift in Resources */ = {isa = PBXBuildFile; fileRef = 0CCA7ADAD6FF9185EBBB2BCA /* Constants.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; };
73138617307FA4F838D21D62 /* ServiceLogger.swift in Resources */ = {isa = PBXBuildFile; fileRef = F42258C3697CFE3C8C8D1933 /* ServiceLogger.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+ 8482AC522FBB29FF00FFF059 /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = 8482AC512FBB29FF00FFF059 /* AppIcon.icon */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@@ -73,6 +74,7 @@
78D25C60B94E9D9E48D52E5E /* ResourceHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResourceHelper.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ResourceHelper.swift"; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
7D3364C03978A8A74B6D586E /* LnurlPay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPay.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPay.swift"; sourceTree = ""; };
+ 8482AC512FBB29FF00FFF059 /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = AppIcon.icon; sourceTree = ""; };
91C524F800843E0A3F17E004 /* ReceivePayment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReceivePayment.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/ReceivePayment.swift"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
@@ -175,6 +177,7 @@
97C146EF1CF9000F007C117D /* Products */,
84389F1A05D5860790D82820 /* Pods */,
06957875428D0F5AAE053765 /* Frameworks */,
+ 8482AC512FBB29FF00FFF059 /* AppIcon.icon */,
);
sourceTree = "";
};
@@ -301,6 +304,7 @@
2193F104374FA2746CE8945B /* ResourceHelper.swift in Resources */,
F5EE19868D6F10D814BF73AD /* SDKNotificationService.swift in Resources */,
B6C6E59403ACDE44724C12F4 /* ServiceConfig.swift in Resources */,
+ 8482AC522FBB29FF00FFF059 /* AppIcon.icon in Resources */,
73138617307FA4F838D21D62 /* ServiceLogger.swift in Resources */,
495FEFF9B395392FED3425DE /* TaskProtocol.swift in Resources */,
A1B4A70C9CFA13AB71662216 /* LnurlPay.swift in Resources */,
@@ -519,7 +523,7 @@
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 1.0.1;
- PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet;
+ PRODUCT_BUNDLE_IDENTIFIER = com.cakewallet.monero;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -671,7 +675,7 @@
);
MARKETING_VERSION = 1.0.1;
ONLY_ACTIVE_ARCH = NO;
- PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet;
+ PRODUCT_BUNDLE_IDENTIFIER = com.cakewallet.monero;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -714,7 +718,7 @@
"$(PROJECT_DIR)/Flutter",
);
MARKETING_VERSION = 1.0.1;
- PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet;
+ PRODUCT_BUNDLE_IDENTIFIER = com.cakewallet.monero;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
diff --git a/lib/exchange/provider/chainflip_exchange_provider.dart b/lib/exchange/provider/chainflip_exchange_provider.dart
index 2d8acf8a2..e82fa6d4a 100644
--- a/lib/exchange/provider/chainflip_exchange_provider.dart
+++ b/lib/exchange/provider/chainflip_exchange_provider.dart
@@ -51,6 +51,9 @@ class ChainflipExchangeProvider extends ExchangeProvider {
@override
bool get supportsFixedRate => false;
+ @override
+ bool get supportsMemoOrDestinationTag => false;
+
@override
ExchangeProviderDescription get description =>
ExchangeProviderDescription.chainflip;
diff --git a/lib/exchange/provider/changenow_exchange_provider.dart b/lib/exchange/provider/changenow_exchange_provider.dart
index d32a7d27d..15913b29e 100644
--- a/lib/exchange/provider/changenow_exchange_provider.dart
+++ b/lib/exchange/provider/changenow_exchange_provider.dart
@@ -189,6 +189,7 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
if (!isFixedRateMode) 'fromAmount': request.fromAmount,
if (isFixedRateMode) 'toAmount': request.toAmount,
'address': request.toAddress,
+ if (request.toAddressExtraId.isNotEmpty) 'extraId': request.toAddressExtraId,
'flow': _getFlow(isFixedRateMode),
'type': type,
'refundAddress': request.refundAddress,
@@ -248,6 +249,7 @@ class ChangeNowExchangeProvider extends ExchangeProvider {
state: TradeState.created,
payoutAddress: payoutAddress,
isSendAll: isSendAll,
+ toAddressExtraId: request.toAddressExtraId,
);
}
diff --git a/lib/exchange/provider/exchange_provider.dart b/lib/exchange/provider/exchange_provider.dart
index 55f422a9e..cdcfe3a55 100644
--- a/lib/exchange/provider/exchange_provider.dart
+++ b/lib/exchange/provider/exchange_provider.dart
@@ -19,6 +19,8 @@ abstract class ExchangeProvider {
bool get supportsOnionAddress => false;
+ bool get supportsMemoOrDestinationTag => true;
+
@override
String toString() => title;
diff --git a/lib/exchange/provider/exolix_exchange_provider.dart b/lib/exchange/provider/exolix_exchange_provider.dart
index fe0191594..6cd5fea71 100644
--- a/lib/exchange/provider/exolix_exchange_provider.dart
+++ b/lib/exchange/provider/exolix_exchange_provider.dart
@@ -198,6 +198,8 @@ class ExolixExchangeProvider extends ExchangeProvider {
'networkFrom': _networkFor(request.fromCurrency),
'networkTo': _networkFor(request.toCurrency),
'withdrawalAddress': await _normalizeAddress(request.toAddress),
+ if (request.toAddressExtraId.isNotEmpty)
+ 'withdrawalExtraId': request.toAddressExtraId,
'refundAddress': await _normalizeAddress(request.refundAddress),
'rateType': _getRateType(isFixedRateMode),
'apiToken': apiKey,
@@ -315,6 +317,7 @@ class ExolixExchangeProvider extends ExchangeProvider {
state: TradeState.created,
payoutAddress: payoutAddress,
isSendAll: isSendAll,
+ toAddressExtraId: request.toAddressExtraId,
);
}
diff --git a/lib/exchange/provider/jupiter_exchange_provider.dart b/lib/exchange/provider/jupiter_exchange_provider.dart
index 6fc47e97b..9fa954ed1 100644
--- a/lib/exchange/provider/jupiter_exchange_provider.dart
+++ b/lib/exchange/provider/jupiter_exchange_provider.dart
@@ -41,6 +41,9 @@ class JupiterExchangeProvider extends ExchangeProvider {
@override
bool get supportsFixedRate => false; // Jupiter doesn't support fixed rate
+ @override
+ bool get supportsMemoOrDestinationTag => false;
+
@override
ExchangeProviderDescription get description => ExchangeProviderDescription.jupiter;
diff --git a/lib/exchange/provider/letsexchange_exchange_provider.dart b/lib/exchange/provider/letsexchange_exchange_provider.dart
index 8e5f4970a..14012f1e5 100644
--- a/lib/exchange/provider/letsexchange_exchange_provider.dart
+++ b/lib/exchange/provider/letsexchange_exchange_provider.dart
@@ -174,7 +174,7 @@ class LetsExchangeExchangeProvider extends ExchangeProvider {
if (!isFixedRateMode) 'deposit_amount': request.fromAmount.toString(),
'withdrawal': withdrawalAddress,
if (isFixedRateMode) 'withdrawal_amount': request.toAmount.toString(),
- 'withdrawal_extra_id': '',
+ 'withdrawal_extra_id': request.toAddressExtraId,
'return': returnAddress,
'rate_id': rateId,
if (networkFrom != null) 'network_from': networkFrom,
@@ -302,6 +302,7 @@ class LetsExchangeExchangeProvider extends ExchangeProvider {
expiredAt: expiredAt,
extraId: extraId,
isSendAll: isSendAll,
+ toAddressExtraId: request.toAddressExtraId,
);
} catch (e, s) {
ExchangeProviderLogger.logError(
diff --git a/lib/exchange/provider/near_Intents_exchange_provider.dart b/lib/exchange/provider/near_Intents_exchange_provider.dart
index 544bd3f30..dbe6ebdcf 100644
--- a/lib/exchange/provider/near_Intents_exchange_provider.dart
+++ b/lib/exchange/provider/near_Intents_exchange_provider.dart
@@ -88,6 +88,9 @@ class NearIntentsExchangeProvider extends ExchangeProvider {
@override
bool get supportsFixedRate => true;
+ @override
+ bool get supportsMemoOrDestinationTag => false;
+
@override
ExchangeProviderDescription get description =>
ExchangeProviderDescription.nearIntents;
diff --git a/lib/exchange/provider/sideshift_exchange_provider.dart b/lib/exchange/provider/sideshift_exchange_provider.dart
index 2a49c0bc5..e1c18ccb7 100644
--- a/lib/exchange/provider/sideshift_exchange_provider.dart
+++ b/lib/exchange/provider/sideshift_exchange_provider.dart
@@ -216,6 +216,7 @@ class SideShiftExchangeProvider extends ExchangeProvider {
final body = {
'affiliateId': affiliateId,
'settleAddress': request.toAddress,
+ if (request.toAddressExtraId.isNotEmpty) 'settleMemo': request.toAddressExtraId,
'refundAddress': request.refundAddress,
};
@@ -336,6 +337,7 @@ class SideShiftExchangeProvider extends ExchangeProvider {
createdAt: DateTime.now(),
isSendAll: isSendAll,
extraId: depositMemo,
+ toAddressExtraId: request.toAddressExtraId,
);
}
diff --git a/lib/exchange/provider/simpleswap_exchange_provider.dart b/lib/exchange/provider/simpleswap_exchange_provider.dart
index 85ee57cad..de59f3e85 100644
--- a/lib/exchange/provider/simpleswap_exchange_provider.dart
+++ b/lib/exchange/provider/simpleswap_exchange_provider.dart
@@ -180,7 +180,8 @@ class SimpleSwapExchangeProvider extends ExchangeProvider {
"amount": request.fromAmount,
"fixed": isFixedRateMode,
"user_refund_address": _normalizeAddress(request.refundAddress),
- "address_to": _normalizeAddress(request.toAddress)
+ "address_to": _normalizeAddress(request.toAddress),
+ if (request.toAddressExtraId.isNotEmpty) "extra_id_to": request.toAddressExtraId,
};
final uri = Uri.https(apiAuthority, createExchangePath, params);
@@ -289,6 +290,7 @@ class SimpleSwapExchangeProvider extends ExchangeProvider {
payoutAddress: payoutAddress,
createdAt: DateTime.now(),
isSendAll: isSendAll,
+ toAddressExtraId: request.toAddressExtraId,
);
}
diff --git a/lib/exchange/provider/stealth_ex_exchange_provider.dart b/lib/exchange/provider/stealth_ex_exchange_provider.dart
index 22c4be96c..a6064715a 100644
--- a/lib/exchange/provider/stealth_ex_exchange_provider.dart
+++ b/lib/exchange/provider/stealth_ex_exchange_provider.dart
@@ -186,6 +186,7 @@ class StealthExExchangeProvider extends ExchangeProvider {
'amount':
isFixedRateMode ? double.parse(request.toAmount) : double.parse(request.fromAmount),
'address': _normalizeAddress(request.toAddress),
+ if (request.toAddressExtraId.isNotEmpty) 'extra_id': request.toAddressExtraId,
'refund_address': _normalizeAddress(request.refundAddress),
'additional_fee_percent': _additionalFeePercent,
};
@@ -299,6 +300,7 @@ class StealthExExchangeProvider extends ExchangeProvider {
expiredAt: expiredAt,
extraId: extraId,
isSendAll: isSendAll,
+ toAddressExtraId: request.toAddressExtraId,
);
} catch (e, s) {
ExchangeProviderLogger.logError(
diff --git a/lib/exchange/provider/swapsxyz_exchange_provider.dart b/lib/exchange/provider/swapsxyz_exchange_provider.dart
index 0d9d8728a..6eb1b161f 100644
--- a/lib/exchange/provider/swapsxyz_exchange_provider.dart
+++ b/lib/exchange/provider/swapsxyz_exchange_provider.dart
@@ -54,6 +54,9 @@ class SwapsXyzExchangeProvider extends ExchangeProvider {
@override
bool get supportsFixedRate => false;
+ @override
+ bool get supportsMemoOrDestinationTag => false;
+
@override
ExchangeProviderDescription get description =>
ExchangeProviderDescription.swapsXyz;
diff --git a/lib/exchange/provider/swaptrade_exchange_provider.dart b/lib/exchange/provider/swaptrade_exchange_provider.dart
index 912334462..847f6a422 100644
--- a/lib/exchange/provider/swaptrade_exchange_provider.dart
+++ b/lib/exchange/provider/swaptrade_exchange_provider.dart
@@ -37,6 +37,9 @@ class SwapTradeExchangeProvider extends ExchangeProvider {
@override
bool get supportsFixedRate => false;
+ @override
+ bool get supportsMemoOrDestinationTag => false;
+
@override
ExchangeProviderDescription get description => ExchangeProviderDescription.swapTrade;
diff --git a/lib/exchange/provider/thorchain_exchange.provider.dart b/lib/exchange/provider/thorchain_exchange.provider.dart
index aacf04b3f..1d05a4fa9 100644
--- a/lib/exchange/provider/thorchain_exchange.provider.dart
+++ b/lib/exchange/provider/thorchain_exchange.provider.dart
@@ -36,6 +36,9 @@ class ThorChainExchangeProvider extends ExchangeProvider {
@override
bool get supportsFixedRate => false;
+ @override
+ bool get supportsMemoOrDestinationTag => false;
+
@override
ExchangeProviderDescription get description => ExchangeProviderDescription.thorChain;
diff --git a/lib/exchange/provider/trocador_exchange_provider.dart b/lib/exchange/provider/trocador_exchange_provider.dart
index 99e8b05a7..a9d977dd6 100644
--- a/lib/exchange/provider/trocador_exchange_provider.dart
+++ b/lib/exchange/provider/trocador_exchange_provider.dart
@@ -235,6 +235,7 @@ class TrocadorExchangeProvider extends ExchangeProvider {
if (!isFixedRateMode) 'amount_from': request.fromAmount,
if (isFixedRateMode) 'amount_to': request.toAmount,
'address': request.toAddress,
+ if (request.toAddressExtraId.isNotEmpty) 'address_memo': request.toAddressExtraId,
'refund': request.refundAddress,
'refund_memo': '0',
};
@@ -392,6 +393,7 @@ class TrocadorExchangeProvider extends ExchangeProvider {
payoutAddress: payoutAddress,
isSendAll: isSendAll,
extraId: addressProviderMemo,
+ toAddressExtraId: request.toAddressExtraId,
);
}
diff --git a/lib/exchange/provider/xoswap_exchange_provider.dart b/lib/exchange/provider/xoswap_exchange_provider.dart
index 35ede0bf8..0c8dff7c8 100644
--- a/lib/exchange/provider/xoswap_exchange_provider.dart
+++ b/lib/exchange/provider/xoswap_exchange_provider.dart
@@ -321,6 +321,7 @@ class XOSwapExchangeProvider extends ExchangeProvider {
'fromAddress': request.refundAddress,
'toAmount': request.toAmount,
'toAddress': request.toAddress,
+ if (request.toAddressExtraId.isNotEmpty) 'toAddressTag': request.toAddressExtraId,
'pairId': pairId,
};
@@ -424,6 +425,7 @@ class XOSwapExchangeProvider extends ExchangeProvider {
payoutAddress: payoutAddress,
extraId: extraId,
isSendAll: isSendAll,
+ toAddressExtraId: request.toAddressExtraId,
);
} catch (e, s) {
ExchangeProviderLogger.logError(
diff --git a/lib/exchange/trade.dart b/lib/exchange/trade.dart
index b6052c2f5..42968a4f3 100644
--- a/lib/exchange/trade.dart
+++ b/lib/exchange/trade.dart
@@ -27,6 +27,7 @@ class Trade {
this.refundAddress,
this.walletId,
this.payoutAddress,
+ this.toAddressExtraId,
this.password,
this.providerId,
this.providerName,
@@ -86,6 +87,9 @@ class Trade {
String? refundAddress;
String? walletId;
String? payoutAddress;
+
+ // holds the receive address memo or destination tag that was passed for this trade
+ String? toAddressExtraId;
String? password;
String? providerId;
String? providerName;
@@ -221,6 +225,7 @@ class Trade {
'refundAddress': refundAddress,
'walletId': walletId,
'payoutAddress': payoutAddress,
+ 'toAddressExtraId': toAddressExtraId,
'password': password,
'providerId': providerId,
'providerName': providerName,
@@ -264,6 +269,7 @@ class Trade {
refundAddress: row['refundAddress'] as String?,
walletId: row['walletId'] as String?,
payoutAddress: row['payoutAddress'] as String?,
+ toAddressExtraId: row['toAddressExtraId'] as String?,
password: row['password'] as String?,
providerId: row['providerId'] as String?,
providerName: row['providerName'] as String?,
diff --git a/lib/exchange/trade_request.dart b/lib/exchange/trade_request.dart
index 826bd8733..833e4b126 100644
--- a/lib/exchange/trade_request.dart
+++ b/lib/exchange/trade_request.dart
@@ -8,6 +8,7 @@ class TradeRequest {
required this.refundAddress,
required this.fromAmount,
this.toAmount = '',
+ this.toAddressExtraId = '',
this.isFixedRate = false});
final CryptoCurrency fromCurrency;
@@ -16,5 +17,6 @@ class TradeRequest {
final String refundAddress;
final String fromAmount;
final String toAmount;
+ final String toAddressExtraId;
final bool isFixedRate;
}
diff --git a/lib/new-ui/pages/swap_page.dart b/lib/new-ui/pages/swap_page.dart
index 642929414..30f0d155d 100644
--- a/lib/new-ui/pages/swap_page.dart
+++ b/lib/new-ui/pages/swap_page.dart
@@ -12,6 +12,7 @@ import 'package:cake_wallet/new-ui/widgets/keyboard_hide_overlay.dart';
import 'package:cake_wallet/new-ui/widgets/modern_button.dart';
import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
import 'package:cake_wallet/new-ui/widgets/send_page/fiat_amount_bar.dart';
+import 'package:cake_wallet/new-ui/widgets/send_page/send_memo_input.dart';
import 'package:cake_wallet/new-ui/widgets/send_page/send_syncing_indicator.dart';
import 'package:cake_wallet/new-ui/widgets/swap_page/provider_selector_page.dart';
import 'package:cake_wallet/new-ui/widgets/swap_page/refund_address_modal.dart';
@@ -37,6 +38,7 @@ import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart';
import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
import 'package:cake_wallet/view_model/wallet_switcher_view_model.dart';
import 'package:cw_core/crypto_currency.dart';
+import 'package:cw_core/currencies_with_memo.dart';
import 'package:cw_core/currency.dart';
import 'package:cw_core/sync_status.dart';
import 'package:cw_core/utils/print_verbose.dart';
@@ -837,12 +839,43 @@ class SwapAmountBoxState extends State {
final amountController = TextEditingController();
final fiatAmountController = TextEditingController();
final amountFocusNode = FocusNode();
+ final memoController = TextEditingController();
+ ReactionDisposer? _memoReactionDisposer;
+ VoidCallback? _memoListener;
@override
void initState() {
_selectedCurrency = widget.initialCurrency;
super.initState();
+
+ if (widget.isReceiverCard) {
+ memoController.text = widget.exchangeViewModel.receiveAddressExtraId;
+
+ _memoListener = () {
+ if (widget.exchangeViewModel.receiveAddressExtraId != memoController.text) {
+ widget.exchangeViewModel.receiveAddressExtraId = memoController.text;
+ }
+ };
+ memoController.addListener(_memoListener!);
+
+ _memoReactionDisposer =
+ reaction((_) => widget.exchangeViewModel.receiveAddressExtraId, (String value) {
+ if (memoController.text != value) {
+ memoController.text = value;
+ }
+ });
+ }
+ }
+
+ @override
+ void dispose() {
+ if (_memoListener != null) {
+ memoController.removeListener(_memoListener!);
+ }
+ _memoReactionDisposer?.call();
+ memoController.dispose();
+ super.dispose();
}
late Currency _selectedCurrency;
@@ -1128,7 +1161,29 @@ class SwapAmountBoxState extends State {
],
);
},
- )
+ ),
+ if (widget.isReceiverCard)
+ Observer(builder: (_) {
+ final selected = widget.exchangeViewModel.receiveCurrency;
+ final labelType = memoLabelTypeFor(selected);
+ if (labelType == null) return const SizedBox.shrink();
+
+ final isDestinationTag = labelType == MemoLabelType.destinationTag;
+ final hint = isDestinationTag
+ ? S.of(context).destination_tag_optional
+ : S.of(context).memo_optional;
+ final disclaimer = isDestinationTag
+ ? S.of(context).destination_tag_swap_disclaimer
+ : S.of(context).memo_swap_disclaimer;
+
+ return NewSendMemoInput(
+ memoController: memoController,
+ maxMemoLength: isDestinationTag ? 20 : 256,
+ memoLength: memoController.text.length,
+ hintText: hint,
+ disclaimerText: disclaimer,
+ );
+ }),
],
),
),
diff --git a/lib/new-ui/widgets/send_page/send_confirm_sheet.dart b/lib/new-ui/widgets/send_page/send_confirm_sheet.dart
index d793216df..853a82adb 100644
--- a/lib/new-ui/widgets/send_page/send_confirm_sheet.dart
+++ b/lib/new-ui/widgets/send_page/send_confirm_sheet.dart
@@ -15,7 +15,6 @@ import 'package:cw_core/crypto_amount_format.dart';
import 'package:cw_core/crypto_currency.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
-import 'package:flutter_svg/flutter_svg.dart';
import 'package:mobx/mobx.dart';
class SendConfirmSheet extends StatefulWidget {
@@ -216,8 +215,10 @@ class SendTransactionDetails extends StatelessWidget {
final showAddress = !sendViewModel.outputs.any((e) =>
RegExp(AddressValidator.bolt11InvoiceMatcher).hasMatch(e.address.toLowerCase()) ||
RegExp(AddressValidator.lnurlMatcher).hasMatch(e.address.toLowerCase()) ||
- RegExp(AddressValidator.lnurlMatcher)
- .hasMatch(e.parsedAddress.addresses.first.toLowerCase()));
+ (e.isParsedAddress &&
+ e.parsedAddress.addresses.isNotEmpty &&
+ RegExp(AddressValidator.lnurlMatcher)
+ .hasMatch(e.parsedAddress.addresses.first.toLowerCase())));
final outputs = sendViewModel.outputs;
diff --git a/lib/new-ui/widgets/send_page/send_memo_input.dart b/lib/new-ui/widgets/send_page/send_memo_input.dart
index dd5e21682..ccc990d70 100644
--- a/lib/new-ui/widgets/send_page/send_memo_input.dart
+++ b/lib/new-ui/widgets/send_page/send_memo_input.dart
@@ -8,11 +8,15 @@ class NewSendMemoInput extends StatelessWidget {
{super.key,
required this.memoController,
required this.maxMemoLength,
- required this.memoLength});
+ required this.memoLength,
+ this.hintText,
+ this.disclaimerText});
final TextEditingController memoController;
final int maxMemoLength;
final int memoLength;
+ final String? hintText;
+ final String? disclaimerText;
@override
Widget build(BuildContext context) {
@@ -30,8 +34,8 @@ class NewSendMemoInput extends StatelessWidget {
child: TextField(
maxLength: maxMemoLength,
controller: memoController,
- decoration:
- InputDecoration(hintText: S.of(context).memo_optional, counterText: ""),
+ decoration: InputDecoration(
+ hintText: hintText ?? S.of(context).memo_optional, counterText: ""),
),
),
SizedBox(width: 12),
@@ -52,9 +56,12 @@ class NewSendMemoInput extends StatelessWidget {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
- Text(S.of(context).memo_disclaimer,
- style: TextStyle(
- fontSize: 12, color: Theme.of(context).colorScheme.onSurfaceVariant)),
+ Expanded(
+ child: Text(disclaimerText ?? S.of(context).memo_disclaimer,
+ style: TextStyle(
+ fontSize: 12,
+ color: Theme.of(context).colorScheme.onSurfaceVariant)),
+ ),
Text("${memoController.text.length} / ${maxMemoLength}",
style: TextStyle(fontSize: 12, color: Theme.of(context).colorScheme.primary))
],
diff --git a/lib/new-ui/widgets/swap_page/swap_confirm_sheet.dart b/lib/new-ui/widgets/swap_page/swap_confirm_sheet.dart
index 43db8c20b..9ccfb1453 100644
--- a/lib/new-ui/widgets/swap_page/swap_confirm_sheet.dart
+++ b/lib/new-ui/widgets/swap_page/swap_confirm_sheet.dart
@@ -14,6 +14,7 @@ import 'package:cake_wallet/src/widgets/new_list_row/new_list_section.dart';
import 'package:cake_wallet/view_model/exchange/exchange_trade_view_model.dart';
import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
+import 'package:cw_core/currencies_with_memo.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
@@ -191,7 +192,19 @@ class SwapTransactionDetails extends StatelessWidget {
showArrow: false,
trailingText: exchangeViewModel.receiveAddressDisplayName ??
middleTruncate(
- exchangeTradeViewModel.trade.payoutAddress ?? "", 8, 8))
+ exchangeTradeViewModel.trade.payoutAddress ?? "", 8, 8)),
+ if ((exchangeTradeViewModel.trade.toAddressExtraId ?? '').isNotEmpty)
+ ListItemRegularRow(
+ keyValue: "receive memo",
+ showArrow: false,
+ label: memoLabelTypeFor(exchangeViewModel.receiveCurrency) ==
+ MemoLabelType.destinationTag
+ ? S.of(context).destination_tag
+ : S.of(context).memo,
+ trailingText: middleTruncate(
+ exchangeTradeViewModel.trade.toAddressExtraId ?? "", 8, 8),
+ copyableText: exchangeTradeViewModel.trade.toAddressExtraId,
+ ),
],
"${S.of(context).swap_id} (${S.of(context).tap_to_copy})": [
ListItemRegularRow(
diff --git a/lib/src/screens/wallet_connect/services/walletkit_service.dart b/lib/src/screens/wallet_connect/services/walletkit_service.dart
index fad06532e..5e215ea7e 100644
--- a/lib/src/screens/wallet_connect/services/walletkit_service.dart
+++ b/lib/src/screens/wallet_connect/services/walletkit_service.dart
@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:convert';
import 'dart:typed_data';
+import 'package:cw_core/utils/print_verbose.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:eth_sig_util/util/utils.dart';
import 'package:flutter/material.dart';
@@ -149,6 +150,9 @@ abstract class WalletKitServiceBase with Store {
_refreshPairings();
+ sessions.clear();
+ auth.clear();
+
final newSessions = _walletKit.sessions.getAll();
sessions.addAll(newSessions);
@@ -181,16 +185,16 @@ abstract class WalletKitServiceBase with Store {
}
@action
- Future _emitEvent() async {
+ Future _emitEvent({int retries = 0}) async {
final isOnline = _walletKit.core.connectivity.isOnline.value;
- if (!isOnline) {
+ if (!isOnline && retries < 3) {
await Future.delayed(const Duration(milliseconds: 500));
- _emitEvent();
+ await _emitEvent(retries: ++retries);
return;
}
- final sessions = _walletKit.sessions.getAll();
- for (var session in sessions) {
+ final engineSessions = _walletKit.sessions.getAll();
+ for (var session in engineSessions) {
final chainKeys = walletKeyService.getKeysForChain(appStore.wallet!);
for (var chain in chainKeys) {
for (var chainID in chain.chains) {
@@ -200,13 +204,12 @@ abstract class WalletKitServiceBase with Store {
namespaces: session.namespaces,
);
if (events.contains('accountsChanged')) {
- final chainKeys = walletKeyService.getKeysForChain(appStore.wallet!);
- _walletKit.emitSessionEvent(
+ await _walletKit.emitSessionEvent(
topic: session.topic,
chainId: chainID,
event: SessionEventParams(
name: 'accountsChanged',
- data: [chainKeys.first.publicKey],
+ data: [chain.publicKey],
),
);
}
@@ -215,6 +218,7 @@ abstract class WalletKitServiceBase with Store {
try {
await deletePairing(topic: session.pairingTopic);
} catch (_) {}
+ sessions.removeWhere((s) => s.topic == session.topic);
_refreshPairings();
}
} catch (_) {}
@@ -242,6 +246,10 @@ abstract class WalletKitServiceBase with Store {
_walletKit.core.pairing.onPairingDelete.unsubscribe(_onPairingDelete);
_walletKit.core.pairing.onPairingExpire.unsubscribe(_onPairingDelete);
+ sessions.clear();
+ auth.clear();
+ pairings.clear();
+
isInitialized = false;
}
@@ -511,23 +519,57 @@ abstract class WalletKitServiceBase with Store {
@action
Future deletePairing({required String topic}) async {
- final topicSessions = sessions.where((element) => element.pairingTopic == topic);
+ final topicSessions =
+ sessions.where((element) => element.pairingTopic == topic).toList();
await _walletKit.core.pairing.disconnect(topic: topic);
for (var session in topicSessions) {
- await _walletKit.disconnectSession(
- topic: session.topic,
- reason: Errors.getSdkError(Errors.USER_DISCONNECTED).toSignError(),
- );
+ try {
+ await _walletKit.disconnectSession(
+ topic: session.topic,
+ reason: Errors.getSdkError(Errors.USER_DISCONNECTED).toSignError(),
+ );
+ } catch (_) {}
}
+
+ await _removePairingTopicFromLocalStorage(topic);
+ sessions.clear();
+ sessions.addAll(_walletKit.sessions.getAll());
+ _refreshPairings();
}
@action
Future disconnectSession({required String topic}) async {
- await walletKit.disconnectSession(
- topic: topic,
- reason: Errors.getSdkError(Errors.USER_DISCONNECTED).toSignError(),
- );
+ String? pairingTopic;
+ for (final s in sessions) {
+ if (s.topic == topic) {
+ pairingTopic = s.pairingTopic;
+ break;
+ }
+ }
+ pairingTopic ??= _walletKit.sessions.get(topic)?.pairingTopic;
+
+ try {
+ await walletKit.disconnectSession(
+ topic: topic,
+ reason: Errors.getSdkError(Errors.USER_DISCONNECTED).toSignError(),
+ );
+ } catch (e) {
+ printV('disconnectSession: $e');
+ }
+
+ sessions.clear();
+ sessions.addAll(_walletKit.sessions.getAll());
+
+ if (pairingTopic != null &&
+ !_walletKit.sessions.getAll().any((s) => s.pairingTopic == pairingTopic)) {
+ await _removePairingTopicFromLocalStorage(pairingTopic);
+ try {
+ await _walletKit.core.pairing.disconnect(topic: pairingTopic);
+ } catch (_) {}
+ }
+
+ _refreshPairings();
}
@action
@@ -637,6 +679,17 @@ abstract class WalletKitServiceBase with Store {
return jsonList.map((item) => item as String).toList();
}
+ Future _removePairingTopicFromLocalStorage(String pairingTopic) async {
+ final key = getKeyForStoringTopicsForWallet();
+ if (key.isEmpty) return;
+
+ final topics = getPairingTopicsForWallet(key);
+ if (!topics.contains(pairingTopic)) return;
+
+ topics.remove(pairingTopic);
+ await sharedPreferences.setString(key, jsonEncode(topics));
+ }
+
Future savePairingTopicToLocalStorage(String pairingTopic) async {
// Get key specific to the current wallet
final key = getKeyForStoringTopicsForWallet();
diff --git a/lib/src/widgets/bottom_sheet/token_selection_bottom_sheet.dart b/lib/src/widgets/bottom_sheet/token_selection_bottom_sheet.dart
index ea21c69f3..3910f876c 100644
--- a/lib/src/widgets/bottom_sheet/token_selection_bottom_sheet.dart
+++ b/lib/src/widgets/bottom_sheet/token_selection_bottom_sheet.dart
@@ -77,48 +77,78 @@ class _TokenSelectionContentState extends State<_TokenSelectionContent> {
@override
void initState() {
super.initState();
- selectedNetwork = widget.fixedNetwork ?? WalletType.ethereum;
+ final baseNetwork = widget.fixedNetwork ?? WalletType.ethereum;
+ selectedNetwork = _resolveGenericETHDetectionResultToSpecificChain(baseNetwork, widget.paymentRequest.scheme.isNotEmpty);
_autoSelectToken();
}
bool get _isNetworkSelectable =>
widget.fixedNetwork == null || isEVMCompatibleChain(widget.fixedNetwork!);
+ CryptoCurrency? _tokenMatchingContract(List tokens, String? rawContract) {
+ final trimmed = rawContract?.trim();
+ if (trimmed == null || trimmed.isEmpty) return null;
+
+ for (final token in tokens) {
+ if (token is Erc20Token && token.contractAddress.toLowerCase() == trimmed.toLowerCase()) {
+ return token;
+ } else if (token is SPLToken && token.mintAddress == trimmed) {
+ return token;
+ } else if (token is TronToken && token.contractAddress == trimmed) {
+ return token;
+ }
+ }
+ return null;
+ }
+
+ WalletType _resolveGenericETHDetectionResultToSpecificChain(WalletType network, bool hasURIScheme) {
+ if(hasURIScheme || network != WalletType.ethereum) return network;
+
+ final current = widget.paymentViewModel.currentWalletType;
+ if (isEVMCompatibleChain(current)) return current;
+ return network;
+ }
+
Future _autoSelectToken() async {
- if (selectedNetwork == null) return;
+ final initialNetwork = selectedNetwork;
+ if (initialNetwork == null || !mounted) return;
+
+ final network = _resolveGenericETHDetectionResultToSpecificChain(initialNetwork, widget.paymentRequest.scheme.isNotEmpty);
setState(() {
+ selectedNetwork = network;
isLoadingTokens = true;
tokenLoadError = null;
});
try {
- final tokens = await TokenUtilities.getAvailableTokensForNetwork(
- selectedNetwork!,
- );
+ final tokens = await TokenUtilities.getAvailableTokensForNetwork(network);
+ if (!mounted) return;
if (tokens.isEmpty) {
setState(() {
tokenLoadError = 'No tokens available';
isLoadingTokens = false;
+ selectedToken = null;
});
return;
}
+ final matchedToken =
+ _tokenMatchingContract(tokens, widget.paymentRequest.contractAddress) ?? tokens.first;
+
setState(() {
- selectedToken = tokens.firstWhere((e) {
- return (e is Erc20Token && e.contractAddress == widget.paymentRequest.contractAddress) ||
- (e is SPLToken && e.mintAddress == widget.paymentRequest.contractAddress) ||
- (e is TronToken && e.contractAddress == widget.paymentRequest.contractAddress);
- }, orElse: () => tokens.first);
+ selectedToken = matchedToken;
isLoadingTokens = false;
+ tokenLoadError = null;
});
} catch (e) {
printV('Auto-select token error: $e');
+ if (!mounted) return;
setState(() {
tokenLoadError = 'Failed to load tokens';
isLoadingTokens = false;
- selectedToken = walletTypeToCryptoCurrency(selectedNetwork!);
+ selectedToken = walletTypeToCryptoCurrency(network);
});
}
}
diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart
index 9811a999e..108c78ff3 100644
--- a/lib/view_model/exchange/exchange_view_model.dart
+++ b/lib/view_model/exchange/exchange_view_model.dart
@@ -57,6 +57,7 @@ import 'package:cake_wallet/view_model/send/fees_view_model.dart';
import 'package:cake_wallet/view_model/unspent_coins/unspent_coins_list_view_model.dart';
import 'package:cw_core/crypto_amount_format.dart';
import 'package:cw_core/crypto_currency.dart';
+import 'package:cw_core/currencies_with_memo.dart';
import 'package:cw_core/erc20_token.dart';
import 'package:cw_core/spl_token.dart';
import 'package:cw_core/sync_status.dart';
@@ -124,12 +125,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
_useTorOnly = _settingsStore.exchangeStatus == ExchangeApiMode.torOnly;
_setProviders();
const excludeDepositCurrencies = [CryptoCurrency.btt];
- const excludeReceiveCurrencies = [
- CryptoCurrency.xlm,
- CryptoCurrency.xrp,
- CryptoCurrency.bnb,
- CryptoCurrency.btt
- ];
+ const excludeReceiveCurrencies = [CryptoCurrency.btt];
_initialPairBasedOnWallet();
unspentCoinsListViewModel.initialSetup().then((_) {
@@ -391,6 +387,9 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
@observable
String receiveAddress;
+ @observable
+ String receiveAddressExtraId = '';
+
@observable
String? receiveAddressDisplayName;
@@ -436,13 +435,18 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
@computed
Future> get receiveWallets async {
- WalletType? type;
- type = cryptoCurrencyOrTokenToWalletType(receiveCurrency);
- if (type == null) {
- type = cryptoCurrencyOrTokenToWalletType(CryptoCurrency.fromString(receiveCurrency.tag ?? ""));
- }
+ try {
+ WalletType? type;
+ type = cryptoCurrencyOrTokenToWalletType(receiveCurrency);
+ if (type == null) {
+ type =
+ cryptoCurrencyOrTokenToWalletType(CryptoCurrency.fromString(receiveCurrency.tag ?? ""));
+ }
- return await WalletInfo.selectList("type = ?", [type!.index]);
+ return await WalletInfo.selectList("type = ?", [type!.index]);
+ } catch (e) {
+ return [];
+ }
}
Future> addressesForAccountsWallet(WalletInfo wallet) async {
@@ -761,6 +765,9 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
currency == receiveCurrency)) {
receiveAddress = "";
}
+ if (currency != receiveCurrency) {
+ receiveAddressExtraId = "";
+ }
receiveCurrency = currency;
isFixedRateMode = false;
@@ -884,6 +891,9 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
(provider.description == ExchangeProviderDescription.swapsXyz ||
provider.description == ExchangeProviderDescription.nearIntents);
+ bool _excludeProviderForReceiveExtraId(ExchangeProvider provider) =>
+ memoLabelTypeFor(receiveCurrency) != null && !provider.supportsMemoOrDestinationTag;
+
Future calculateBestRate() async {
if (depositCurrency == receiveCurrency) {
bestRate = 0.0;
@@ -895,6 +905,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
final validProvidersForAmount = _tradeAvailableProviders.where((provider) {
if (_excludeProviderForSwapAll(provider)) return false;
+ if (_excludeProviderForReceiveExtraId(provider)) return false;
final limits = _providerLimits[provider];
@@ -972,6 +983,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
try {
final futures = selectedProviders
.where((provider) => providerList.contains(provider))
+ .where((provider) => !_excludeProviderForReceiveExtraId(provider))
.map((provider) async {
final limits = await provider
.fetchLimits(
@@ -1050,6 +1062,13 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
}
}
+ if (forcedProvider != null && _excludeProviderForReceiveExtraId(forcedProvider!)) {
+ tradeState = TradeIsCreatedFailure(
+ title: S.current.trade_not_created,
+ error: S.current.none_of_selected_providers_can_exchange);
+ return;
+ }
+
Map providers;
if (forcedProvider != null) {
providers = {forcedProviderRate: forcedProvider!};
@@ -1138,6 +1157,10 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
if (isFixedRateMode && provider.supportsFixedRate == false) {
continue;
}
+
+ if (_excludeProviderForReceiveExtraId(provider)) {
+ continue;
+ }
// Skip Swaps.xyz when sending from external
if (isSendFromExternal &&
@@ -1160,6 +1183,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
toAmount: _receiveAmount.replaceAll(',', '.'),
refundAddress: depositAddress,
toAddress: receiveAddress,
+ toAddressExtraId: receiveAddressExtraId.trim(),
isFixedRate: isFixedRateMode,
);
@@ -1260,6 +1284,7 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with
depositCurrency == wallet.currency ? wallet.walletAddresses.addressForExchange : '';
receiveAddress =
receiveCurrency == wallet.currency ? wallet.walletAddresses.addressForExchange : '';
+ receiveAddressExtraId = '';
isDepositAddressEnabled = !(depositCurrency == wallet.currency);
isFixedRateMode = false;
_onPairChange();
diff --git a/lib/view_model/payment/payment_view_model.dart b/lib/view_model/payment/payment_view_model.dart
index 13fca7ee3..258758e9b 100644
--- a/lib/view_model/payment/payment_view_model.dart
+++ b/lib/view_model/payment/payment_view_model.dart
@@ -3,6 +3,8 @@ import 'dart:async';
import 'package:cake_wallet/core/universal_address_detector.dart';
import 'package:cake_wallet/evm/evm.dart';
import 'package:cake_wallet/reactions/wallet_connect.dart';
+import 'package:cake_wallet/solana/solana.dart';
+import 'package:cake_wallet/tron/tron.dart';
import 'package:cake_wallet/store/app_store.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:cw_core/wallet_info.dart';
@@ -41,7 +43,7 @@ abstract class PaymentViewModelBase with Store {
return getChainIdByCryptoCurrency(_lastDetectionResult!.detectedCurrency!);
}
- return evm!.getChainIdByWalletType(detectedWalletType!);
+ return evm?.getChainIdByWalletType(detectedWalletType!);
}
@observable
@@ -52,7 +54,7 @@ abstract class PaymentViewModelBase with Store {
@computed
int? get currentChainId {
- if (!isEVMCompatibleChain(currentWalletType)) return null;
+ if (!isEVMCompatibleChain(currentWalletType) || evm == null) return null;
return evm!.getSelectedChainId(appStore.wallet!);
}
@@ -74,6 +76,18 @@ abstract class PaymentViewModelBase with Store {
return PaymentFlowResult.incompatible('Unable to detect address type');
}
+ if (detectedWalletType == WalletType.solana && solana == null) {
+ return PaymentFlowResult.incompatible('Solana is not available in this app build.');
+ }
+ if (detectedWalletType == WalletType.tron && tron == null) {
+ return PaymentFlowResult.incompatible('Tron is not available in this app build.');
+ }
+ if (isEVMCompatibleChain(detectedWalletType!) && evm == null) {
+ return PaymentFlowResult.incompatible(
+ 'Ethereum-compatible addresses are not supported in this app build.',
+ );
+ }
+
final currentWallet = appStore.wallet;
if (currentWallet != null &&
@@ -124,7 +138,7 @@ abstract class PaymentViewModelBase with Store {
@action
Future selectChain() async {
- if (detectedWalletType == null) return;
+ if (detectedWalletType == null || evm == null || detectedChainId == null) return;
final node =
appStore.settingsStore.getCurrentNode(detectedWalletType!, chainId: detectedChainId);
@@ -173,7 +187,7 @@ class PaymentFlowResult {
chainId = getChainIdByCryptoCurrency(addressDetectionResult.detectedCurrency!);
}
if (chainId == null && addressDetectionResult.detectedWalletType != null) {
- chainId = evm!.getChainIdByWalletType(addressDetectionResult.detectedWalletType!);
+ chainId = evm?.getChainIdByWalletType(addressDetectionResult.detectedWalletType!);
}
return PaymentFlowResult._(
@@ -228,7 +242,7 @@ class PaymentFlowResult {
chainId = getChainIdByCryptoCurrency(addressDetectionResult.detectedCurrency!);
}
if (chainId == null) {
- chainId = evm!.getChainIdByWalletType(wallet.type);
+ chainId = evm?.getChainIdByWalletType(wallet.type);
}
return PaymentFlowResult._(
@@ -250,7 +264,7 @@ class PaymentFlowResult {
chainId = getChainIdByCryptoCurrency(addressDetectionResult.detectedCurrency!);
}
if (chainId == null) {
- chainId = evm!.getChainIdByWalletType(wallets.first.type);
+ chainId = evm?.getChainIdByWalletType(wallets.first.type);
}
return PaymentFlowResult._(
@@ -272,7 +286,7 @@ class PaymentFlowResult {
chainId = getChainIdByCryptoCurrency(addressDetectionResult.detectedCurrency!);
}
if (chainId == null) {
- chainId = evm!.getChainIdByWalletType(walletType);
+ chainId = evm?.getChainIdByWalletType(walletType);
}
return PaymentFlowResult._(
diff --git a/lib/view_model/trade_details_view_model.dart b/lib/view_model/trade_details_view_model.dart
index 54f7615e1..c2639fc04 100644
--- a/lib/view_model/trade_details_view_model.dart
+++ b/lib/view_model/trade_details_view_model.dart
@@ -26,6 +26,7 @@ import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.d
import 'package:cake_wallet/store/app_store.dart';
import 'package:cake_wallet/utils/date_formatter.dart';
import 'package:cake_wallet/utils/show_bar.dart';
+import 'package:cw_core/currencies_with_memo.dart';
import 'package:cw_core/utils/print_verbose.dart';
import 'package:flutter/services.dart';
import 'package:mobx/mobx.dart';
@@ -182,6 +183,18 @@ abstract class TradeDetailsViewModelBase with Store {
));
}
+ final destinationMemo = trade.toAddressExtraId;
+ final destinationCurrency = trade.to;
+ if (destinationMemo != null &&
+ destinationMemo.isNotEmpty &&
+ destinationCurrency != null) {
+ final isDestinationTag =
+ memoLabelTypeFor(destinationCurrency) == MemoLabelType.destinationTag;
+ items.add(StandartListItem(
+ title: isDestinationTag ? S.current.destination_tag : S.current.memo,
+ value: destinationMemo));
+ }
+
items.add(StandartListItem(
title: S.current.trade_details_provider, value: trade.provider.toString()));
diff --git a/macos/Podfile.lock b/macos/Podfile.lock
index ccdbe0c7c..594c53e5b 100644
--- a/macos/Podfile.lock
+++ b/macos/Podfile.lock
@@ -5,6 +5,8 @@ PODS:
- FlutterMacOS
- connectivity_plus (0.0.1):
- FlutterMacOS
+ - cw_decred (0.0.1):
+ - FlutterMacOS
- cw_mweb (0.0.1):
- FlutterMacOS
- device_info_plus (0.0.1):
@@ -28,12 +30,19 @@ PODS:
- FlutterMacOS (1.0.0)
- in_app_review (2.0.0):
- FlutterMacOS
+ - local_auth_darwin (0.0.1):
+ - Flutter
+ - FlutterMacOS
- OrderedSet (6.0.3)
- package_info_plus (0.0.1):
- FlutterMacOS
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
+ - rive_common (0.0.1):
+ - FlutterMacOS
+ - rlz (0.0.1):
+ - FlutterMacOS
- share_plus (0.0.1):
- FlutterMacOS
- shared_preferences_foundation (0.0.1):
@@ -83,6 +92,7 @@ DEPENDENCIES:
- bitbox_flutter (from `Flutter/ephemeral/.symlinks/plugins/bitbox_flutter/macos`)
- breez_sdk_spark_flutter (from `Flutter/ephemeral/.symlinks/plugins/breez_sdk_spark_flutter/macos`)
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
+ - cw_decred (from `Flutter/ephemeral/.symlinks/plugins/cw_decred/macos`)
- cw_mweb (from `Flutter/ephemeral/.symlinks/plugins/cw_mweb/macos`)
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
- devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`)
@@ -95,8 +105,11 @@ DEPENDENCIES:
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)
- in_app_review (from `Flutter/ephemeral/.symlinks/plugins/in_app_review/macos`)
+ - local_auth_darwin (from `Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin`)
- package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`)
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
+ - rive_common (from `Flutter/ephemeral/.symlinks/plugins/rive_common/macos`)
+ - rlz (from `Flutter/ephemeral/.symlinks/plugins/rlz/macos`)
- share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`)
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
- sp_scanner (from `Flutter/ephemeral/.symlinks/plugins/sp_scanner/macos`)
@@ -119,6 +132,8 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral/.symlinks/plugins/breez_sdk_spark_flutter/macos
connectivity_plus:
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
+ cw_decred:
+ :path: Flutter/ephemeral/.symlinks/plugins/cw_decred/macos
cw_mweb:
:path: Flutter/ephemeral/.symlinks/plugins/cw_mweb/macos
device_info_plus:
@@ -143,10 +158,16 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral
in_app_review:
:path: Flutter/ephemeral/.symlinks/plugins/in_app_review/macos
+ local_auth_darwin:
+ :path: Flutter/ephemeral/.symlinks/plugins/local_auth_darwin/darwin
package_info_plus:
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos
path_provider_foundation:
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
+ rive_common:
+ :path: Flutter/ephemeral/.symlinks/plugins/rive_common/macos
+ rlz:
+ :path: Flutter/ephemeral/.symlinks/plugins/rlz/macos
share_plus:
:path: Flutter/ephemeral/.symlinks/plugins/share_plus/macos
shared_preferences_foundation:
@@ -167,34 +188,38 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos
SPEC CHECKSUMS:
- bitbox_flutter: b3c6d3c4970b134a78a17fddef0ef429cfec2593
- breez_sdk_spark_flutter: b7826ff465c65d620a03560c28c384f44c2dc383
- connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e
- cw_mweb: 4746a3b5cc5bd4afe6fadd2481c4f7b239e391d0
- device_info_plus: b0fafc687fb901e2af612763340f1b0d4352f8e5
- devicelocale: 456a07c045d3113938aa4983065bd8526e2af792
+ bitbox_flutter: 16088f5c7febacf894f4d07bbdfb441c9f0757fe
+ breez_sdk_spark_flutter: 2e864a52e699546aedea3d64d0e0cc88bc0ac595
+ connectivity_plus: 0a976dfd033b59192912fa3c6c7b54aab5093802
+ cw_decred: 0c93fbeb31bd97a6ad4ec5680960af0943bfca78
+ cw_mweb: 7440b12ead811dda972a9918442ea2a458e8742c
+ device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
+ devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225
dnssec_proof: d461cac7bd3301eb7447f87936745a0c1ae0a67e
- fast_scanner: a4ead8e56f185cd565e25250fdb97fa669ea1d2e
- file_selector_macos: 6280b52b459ae6c590af5d78fc35c7267a3c4b31
- flutter_inappwebview_macos: c2d68649f9f8f1831bfcd98d73fd6256366d9d1d
- flutter_local_authentication: 2f9a2682f498abcc12d7e9729b5007a947170fdc
- flutter_local_notifications: 4bf37a31afde695b56091b4ae3e4d9c7a7e6cda0
- flutter_secure_storage_macos: 3dacac420d84c4d0dc5e868194ee43c8664ec797
+ fast_scanner: d31bae07e2653403a69dac99fb710c1722b16a97
+ file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d
+ flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b
+ flutter_local_authentication: 85674893931e1c9cfa7c9e4f5973cb8c56b018b0
+ flutter_local_notifications: 4ccab5b7a22835214a6672e3f9c5e8ae207dab36
+ flutter_secure_storage_macos: d56e2d218c1130b262bef8b4a7d64f88d7f9c9ea
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
- in_app_review: 66e7680752b632d83f4f0e88b34d52ed303fbff4
+ in_app_review: 866c9b17c87a7b46a395bda43f5d3ca02deb585a
+ local_auth_darwin: fa4b06454df7df8e97c18d7ee55151c57e7af0de
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
- package_info_plus: f0052d280d17aa382b932f399edf32507174e870
- path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
- share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc
- shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
- sp_scanner: d9316427b628dd86d6e9e3c5d42ed6b4b410157c
- sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
+ package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b
+ path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
+ rive_common: 9580b9f1f08a8c85006083078e80479edf3db26a
+ rlz: fa94ecbcb2ca519363c320ec7a0f22525a536b59
+ share_plus: 1fa619de8392a4398bfaf176d441853922614e89
+ shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
+ sp_scanner: 269d96e0ec3173e69156be7239b95182be3b8303
+ sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
sqlite3: 73513155ec6979715d3904ef53a8d68892d4032b
- sqlite3_flutter_libs: 83f8e9f5b6554077f1d93119fe20ebaa5f3a9ef1
- torch_dart: 7e4f682c34ee0d967a35977102590094a7510c90
- universal_ble: ff19787898040d721109c6324472e5dd4bc86adc
- url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673
- wakelock_plus: 917609be14d812ddd9e9528876538b2263aaa03b
+ sqlite3_flutter_libs: 86f82662868ee26ff3451f73cac9c5fc2a1f57fa
+ torch_dart: 2e94855e15fcc87bd824e179f1f9c3e0f1e1d302
+ universal_ble: cf52a7b3fd2e7c14d6d7262e9fdadb72ab6b88a6
+ url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
+ wakelock_plus: 9d63063ffb7af1c215209769067c57103bde719d
PODFILE CHECKSUM: 65ec1541137fb5b35d00490dec1bb48d4d9586bb
diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj
index 6474af82d..fec311d11 100644
--- a/macos/Runner.xcodeproj/project.pbxproj
+++ b/macos/Runner.xcodeproj/project.pbxproj
@@ -27,6 +27,7 @@
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
83FF6BF911B29965D3589BE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BD06F8F6E3797AC031038136 /* Pods_Runner.framework */; };
+ 8438E2252FBBAEF1003EC0C4 /* AppIcon.icon in Resources */ = {isa = PBXBuildFile; fileRef = 8438E2242FBBAEF1003EC0C4 /* AppIcon.icon */; };
9F565D5929954F53009A75FB /* secRandom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F565D5729954F53009A75FB /* secRandom.swift */; };
CE5899C52F71669A008E754F /* libwownero_wallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE5899C32F71669A008E754F /* libwownero_wallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
CE5899C62F71669A008E754F /* libmonero_wallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE5899C42F71669A008E754F /* libmonero_wallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
@@ -85,6 +86,7 @@
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; };
81434A9891ECC211D4A12B7B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ 8438E2242FBBAEF1003EC0C4 /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = AppIcon.icon; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; };
981E08F6A19E64F1F4D21DB8 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; };
9F1E7BFB2BF2D27500C28C9A /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; };
@@ -128,6 +130,7 @@
33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */,
9B6E7CA3983216A9E173F00F /* Pods */,
+ 8438E2242FBBAEF1003EC0C4 /* AppIcon.icon */,
);
sourceTree = "";
};
@@ -271,6 +274,7 @@
files = (
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
+ 8438E2252FBBAEF1003EC0C4 /* AppIcon.icon in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 96d3fee1a..000000000
--- a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "info": {
- "version": 1,
- "author": "xcode"
- },
- "images": [
- {
- "size": "16x16",
- "idiom": "mac",
- "filename": "app_icon_16.png",
- "scale": "1x"
- },
- {
- "size": "16x16",
- "idiom": "mac",
- "filename": "app_icon_32.png",
- "scale": "2x"
- },
- {
- "size": "32x32",
- "idiom": "mac",
- "filename": "app_icon_32.png",
- "scale": "1x"
- },
- {
- "size": "32x32",
- "idiom": "mac",
- "filename": "app_icon_64.png",
- "scale": "2x"
- },
- {
- "size": "128x128",
- "idiom": "mac",
- "filename": "app_icon_128.png",
- "scale": "1x"
- },
- {
- "size": "128x128",
- "idiom": "mac",
- "filename": "app_icon_256.png",
- "scale": "2x"
- },
- {
- "size": "256x256",
- "idiom": "mac",
- "filename": "app_icon_256.png",
- "scale": "1x"
- },
- {
- "size": "256x256",
- "idiom": "mac",
- "filename": "app_icon_512.png",
- "scale": "2x"
- },
- {
- "size": "512x512",
- "idiom": "mac",
- "filename": "app_icon_512.png",
- "scale": "1x"
- },
- {
- "size": "512x512",
- "idiom": "mac",
- "filename": "app_icon_1024.png",
- "scale": "2x"
- }
- ]
-}
\ No newline at end of file
diff --git a/macos/Runner/Assets.xcassets/Contents.json b/macos/Runner/Assets.xcassets/Contents.json
new file mode 100644
index 000000000..73c00596a
--- /dev/null
+++ b/macos/Runner/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb
index 8077e97f4..d779be350 100644
--- a/res/values/strings_ar.arb
+++ b/res/values/strings_ar.arb
@@ -308,6 +308,8 @@
"descending": "تنازلي",
"description": "الوصف",
"destination_tag": "وسم الوجهة:",
+ "destination_tag_optional": "علامة الوجهة (اختياري)",
+ "destination_tag_swap_disclaimer": "مطلوب من قبل المتلقي لإيداع أموالك. العلامة المفقودة أو الخاطئة تعني فقدان الأموال.",
"deuro_about_deuro": "حول dEURO",
"deuro_collect_interest": "تحصيل",
"deuro_reinvest_interest": "إعادة الاستثمار",
@@ -616,6 +618,7 @@
"memo": "مذكرة",
"memo_disclaimer": "ستكون هذه المذكرة مرئية للمستلم",
"memo_optional": "مذكرة (اختيارية)",
+ "memo_swap_disclaimer": "مطلوب من قبل المتلقي لإيداع أموالك. المذكرة المفقودة أو الخاطئة تعني فقدان الأموال.",
"message": "رسالة",
"message_verified": "تم التحقق من الرسالة بنجاح",
"messages": "الرسائل",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "هل أموالك مفقودة؟",
"zcash_card_scan": "مسح",
"zcash_card_warning": "لا تُغلق التطبيق حتى يكتمل الإجراء، لأنك إن فعلت ذلك فستحتاج هذه العملية إلى البدء من جديد من البداية."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb
index 9fb31cff8..b10eb9822 100644
--- a/res/values/strings_bg.arb
+++ b/res/values/strings_bg.arb
@@ -308,6 +308,8 @@
"descending": "Низходящо",
"description": "Описание",
"destination_tag": "Таг на получателя:",
+ "destination_tag_optional": "Етикет за дестинация (по избор)",
+ "destination_tag_swap_disclaimer": "Изисква се от получателя, за да кредитира вашите средства. Липсващ или грешен етикет означава загубени средства.",
"deuro_about_deuro": "Относно dEURO",
"deuro_collect_interest": "Събери",
"deuro_reinvest_interest": "Реинвестирай",
@@ -616,6 +618,7 @@
"memo": "Мемо",
"memo_disclaimer": "Това поле „memo“ ще бъде видимо за получателя",
"memo_optional": "Мемо (по избор)",
+ "memo_swap_disclaimer": "Изисква се от получателя, за да кредитира вашите средства. Липсваща или грешна бележка означава загуба на средства.",
"message": "Съобщение",
"message_verified": "Съобщението беше успешно потвърдено",
"messages": "Съобщения",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "Липсват средства?",
"zcash_card_scan": "Сканирай",
"zcash_card_warning": "Не затваряйте приложението, докато процедурата не приключи. Ако го направите, процесът ще трябва да започне отначало."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb
index b8eaafbc9..461977785 100644
--- a/res/values/strings_cs.arb
+++ b/res/values/strings_cs.arb
@@ -308,6 +308,8 @@
"descending": "Sestupně",
"description": "Popis",
"destination_tag": "Cílový tag:",
+ "destination_tag_optional": "Cílová značka (volitelné)",
+ "destination_tag_swap_disclaimer": "Požadováno příjemcem k připsání vašich prostředků. Chybějící nebo nesprávný štítek znamená ztracené prostředky.",
"deuro_about_deuro": "O dEURO",
"deuro_collect_interest": "Vybrat",
"deuro_reinvest_interest": "Reinvestovat",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Tato poznámka bude viditelná příjemci",
"memo_optional": "Memo (volitelné)",
+ "memo_swap_disclaimer": "Požadováno příjemcem k připsání vašich prostředků. Chybějící nebo nesprávný záznam znamená ztracené finanční prostředky.",
"message": "Zpráva",
"message_verified": "Zpráva byla úspěšně ověřena",
"messages": "Zprávy",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "Chybějící prostředky?",
"zcash_card_scan": "Skenovat",
"zcash_card_warning": "Nezavírejte aplikaci, dokud se postup nedokončí. Pokud tak učiníte, bude nutné tento proces spustit znovu od začátku."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb
index 382da7d98..8378c21a0 100644
--- a/res/values/strings_de.arb
+++ b/res/values/strings_de.arb
@@ -308,6 +308,8 @@
"descending": "Absteigend",
"description": "Beschreibung",
"destination_tag": "Ziel-Tag:",
+ "destination_tag_optional": "Ziel-Tag (optional)",
+ "destination_tag_swap_disclaimer": "Wird vom Empfänger benötigt, um Ihr Geld gutzuschreiben. Fehlendes oder falsches Etikett bedeutet verlorenes Geld.",
"deuro_about_deuro": "Über dEURO",
"deuro_collect_interest": "Einziehen",
"deuro_reinvest_interest": "Reinvestieren",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Dieses Memo wird für den Empfänger sichtbar sein",
"memo_optional": "Memo (optional)",
+ "memo_swap_disclaimer": "Wird vom Empfänger benötigt, um Ihr Geld gutzuschreiben. Ein fehlendes oder falsches Memo bedeutet verlorenes Geld.",
"message": "Nachricht",
"message_verified": "Die Nachricht wurde erfolgreich verifiziert",
"messages": "Nachrichten",
@@ -1378,4 +1381,4 @@
"zcash_card_missing_funds": "Fehlende Gelder?",
"zcash_card_scan": "Scannen",
"zcash_card_warning": "Schließen Sie die App nicht, bis der Vorgang abgeschlossen ist. Andernfalls muss der Vorgang von Grund auf neu gestartet werden."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb
index a4a497972..deb88f4c1 100644
--- a/res/values/strings_en.arb
+++ b/res/values/strings_en.arb
@@ -310,6 +310,8 @@
"descending": "Descending",
"description": "Description",
"destination_tag": "Destination tag:",
+ "destination_tag_optional": "Destination tag (optional)",
+ "destination_tag_swap_disclaimer": "Required by the receiver to credit your funds. Missing or wrong tag means lost funds.",
"deuro_about_deuro": "About dEURO",
"deuro_collect_interest": "Collect",
"deuro_reinvest_interest": "Reinvest",
@@ -620,6 +622,7 @@
"memo": "Memo",
"memo_disclaimer": "This memo will be visible to the receiver",
"memo_optional": "Memo (optional)",
+ "memo_swap_disclaimer": "Required by the receiver to credit your funds. Missing or wrong memo means lost funds.",
"message": "Message",
"message_verified": "The message was successfully verified",
"messages": "Messages",
diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb
index 9c9fe3d81..7c972bd0b 100644
--- a/res/values/strings_es.arb
+++ b/res/values/strings_es.arb
@@ -308,6 +308,8 @@
"descending": "Descendente",
"description": "Descripción",
"destination_tag": "Etiqueta de destino:",
+ "destination_tag_optional": "Etiqueta de destino (opcional)",
+ "destination_tag_swap_disclaimer": "Requerido por el receptor para acreditar sus fondos. La etiqueta faltante o incorrecta significa fondos perdidos.",
"deuro_about_deuro": "Acerca de dEURO",
"deuro_collect_interest": "Cobrar",
"deuro_reinvest_interest": "Reinvertir",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Este memo será visible para el destinatario",
"memo_optional": "Memo (opcional)",
+ "memo_swap_disclaimer": "Requerido por el receptor para acreditar sus fondos. Una nota faltante o incorrecta significa fondos perdidos.",
"message": "Mensaje",
"message_verified": "El mensaje se verificó correctamente",
"messages": "Mensajes",
@@ -1376,4 +1379,4 @@
"zcash_card_missing_funds": "¿Faltan fondos?",
"zcash_card_scan": "Escanear",
"zcash_card_warning": "No cierre la aplicación hasta que se complete el procedimiento; si lo hace, este proceso deberá reiniciarse desde cero."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_fa.arb b/res/values/strings_fa.arb
index 167c4fa57..937d906a5 100644
--- a/res/values/strings_fa.arb
+++ b/res/values/strings_fa.arb
@@ -306,6 +306,8 @@
"descending": "نزولی",
"description": "توضیحات",
"destination_tag": "برچسب مقصد:",
+ "destination_tag_optional": "برچسب مقصد (اختیاری)",
+ "destination_tag_swap_disclaimer": "توسط گیرنده برای اعتبار وجوه شما مورد نیاز است. برچسب گم شده یا اشتباه به معنای از دست رفتن وجوه است.",
"deuro_about_deuro": "درباره dEURO",
"deuro_collect_interest": "دریافت",
"deuro_reinvest_interest": "سرمایهگذاری مجدد",
@@ -614,6 +616,7 @@
"memo": "یادداشت",
"memo_disclaimer": "این یادداشت برای گیرنده قابل مشاهده خواهد بود",
"memo_optional": "یادداشت (اختیاری)",
+ "memo_swap_disclaimer": "توسط گیرنده برای اعتبار وجوه شما مورد نیاز است. یادداشت گم شده یا اشتباه به معنای از دست رفتن وجوه است.",
"message": "پیام",
"message_verified": "پیام با موفقیت تأیید شد",
"messages": "پیامها",
@@ -1371,4 +1374,4 @@
"zcash_card_missing_funds": "موجودی گم شده؟",
"zcash_card_scan": "اسکن",
"zcash_card_warning": "تا زمانی که این فرایند کامل نشده است، برنامه را نبندید؛ در غیر این صورت، این فرایند باید از ابتدا دوباره شروع شود."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb
index 7fb51b38d..ecfb6ad42 100644
--- a/res/values/strings_fr.arb
+++ b/res/values/strings_fr.arb
@@ -308,6 +308,8 @@
"descending": "Décroissant",
"description": "Description",
"destination_tag": "Tag de destination :",
+ "destination_tag_optional": "Balise de destination (facultatif)",
+ "destination_tag_swap_disclaimer": "Requis par le destinataire pour créditer vos fonds. Une étiquette manquante ou erronée signifie une perte de fonds.",
"deuro_about_deuro": "À propos de dEURO",
"deuro_collect_interest": "Collecter",
"deuro_reinvest_interest": "Réinvestir",
@@ -616,6 +618,7 @@
"memo": "Mémo",
"memo_disclaimer": "Ce mémo sera visible par le destinataire",
"memo_optional": "Mémo (facultatif)",
+ "memo_swap_disclaimer": "Requis par le destinataire pour créditer vos fonds. Un mémo manquant ou erroné signifie une perte de fonds.",
"message": "Message",
"message_verified": "Le message a été vérifié avec succès",
"messages": "Messages",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "Fonds manquants ?",
"zcash_card_scan": "Scanner",
"zcash_card_warning": "Ne fermez pas l'application tant que la procédure n'est pas terminée. Si vous le faites, ce processus devra redémarrer depuis le début."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_gn.arb b/res/values/strings_gn.arb
index e17fd2748..36418cfaa 100644
--- a/res/values/strings_gn.arb
+++ b/res/values/strings_gn.arb
@@ -249,6 +249,8 @@
"descending": "Oguejy",
"description": "Ñemombe’u",
"destination_tag": "Teramoĩha hag̃ua:",
+ "destination_tag_optional": "Etiqueta destino rehegua (opcional) .",
+ "destination_tag_swap_disclaimer": "Ojeruréva receptor oacredita haguã nde fondo. Etiqueta ofaltáva térã ojavýva he'ise fondo okañýva.",
"dfx_option_description": "Ejogua cripto EUR ha CHF reheve. Oipurukuaa hag̃ua ñemuhára michĩ ha mba’apohaguasu Europape.",
"did_you_back_up_seeds": "¿Rejapo raʼe backup opaite nde raʼỹi rehegua?",
"didnt_get_code": "¿Nererejapýi kódigo?",
@@ -479,6 +481,7 @@
"memo": "Mandu’a",
"memo_disclaimer": "Ko memo ojehecháta ohupytývape",
"memo_optional": "Memo (opcional)",
+ "memo_swap_disclaimer": "Ojeruréva receptor oacredita haguã nde fondo. Memo ofaltáva térã ojavýva he'ise fondo okañýva.",
"message": "Marandu",
"message_verified": "Pe marandu ojehechajey porã",
"methods": "Mba’éichapa",
@@ -1113,4 +1116,4 @@
"zcash_card_missing_funds": "¿Nde fondo okañy?",
"zcash_card_scan": "Escanear",
"zcash_card_warning": "Ani remboty pe app pe procedimiento opa hag̃ua, rejapo ramo upéicha ko proceso tekotevẽta oñepyrũ jey cero guive."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb
index c0a4d5150..e966ac2ef 100644
--- a/res/values/strings_ha.arb
+++ b/res/values/strings_ha.arb
@@ -308,6 +308,8 @@
"descending": "Mai saukowa",
"description": "Bayanin",
"destination_tag": "Alamar makoma:",
+ "destination_tag_optional": "Alamar wuri (na zaɓi)",
+ "destination_tag_swap_disclaimer": "Mai karɓa ya buƙaci ya ba da kuɗin ku. Bacewa ko kuskuren tag yana nufin asarar kuɗi.",
"deuro_about_deuro": "Game da dEURO",
"deuro_collect_interest": "Karɓa",
"deuro_reinvest_interest": "Sake saka",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Wannan memo zai kasance a bayyane ga mai karɓa",
"memo_optional": "Memo (na zaɓi)",
+ "memo_swap_disclaimer": "Mai karɓa ya buƙaci ya ba da kuɗin ku. Memo na ɓace ko kuskure yana nufin asarar kuɗi.",
"message": "Saƙo",
"message_verified": "An tabbatar da saƙon cikin nasara",
"messages": "Saƙonni",
@@ -1377,4 +1380,4 @@
"zcash_card_missing_funds": "Kuɗi sun ɓace?",
"zcash_card_scan": "Duba",
"zcash_card_warning": "Kada ku rufe manhajar har sai an kammala aikin; idan kun yi haka, wannan tsari zai buƙaci a sake farawa daga farko."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb
index a1ce0c33b..67fd75d52 100644
--- a/res/values/strings_hi.arb
+++ b/res/values/strings_hi.arb
@@ -308,6 +308,8 @@
"descending": "अवरोही",
"description": "विवरण",
"destination_tag": "गंतव्य टैग:",
+ "destination_tag_optional": "गंतव्य टैग (वैकल्पिक)",
+ "destination_tag_swap_disclaimer": "प्राप्तकर्ता द्वारा आपके फंड को क्रेडिट करना आवश्यक है। गुम या गलत टैग का अर्थ है खोया हुआ धन।",
"deuro_about_deuro": "dEURO के बारे में",
"deuro_collect_interest": "एकत्र करें",
"deuro_reinvest_interest": "पुनर्निवेश करें",
@@ -616,6 +618,7 @@
"memo": "मेमो",
"memo_disclaimer": "यह मेमो प्राप्तकर्ता को दिखाई देगा",
"memo_optional": "मेमो (वैकल्पिक)",
+ "memo_swap_disclaimer": "प्राप्तकर्ता द्वारा आपके फंड को क्रेडिट करना आवश्यक है। मेमो के गुम या गलत होने का अर्थ है धन की हानि।",
"message": "संदेश",
"message_verified": "संदेश सफलतापूर्वक सत्यापित हो गया",
"messages": "संदेश",
@@ -733,8 +736,8 @@
"payjoin_unavailable_sheet_title": "Payjoin उपलब्ध क्यों नहीं है?",
"payment_id": "भुगतान आईडी: ",
"payment_made_easy": "भुगतान करना आसान",
- "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।",
"payment_was_received": "आपका भुगतान प्राप्त हो गया।",
+ "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।",
"payments": "भुगतान",
"pending": " (लंबित)",
"percentageOf": "${amount} का",
@@ -1376,4 +1379,4 @@
"zcash_card_missing_funds": "फंड गायब हैं?",
"zcash_card_scan": "स्कैन",
"zcash_card_warning": "प्रक्रिया पूरी होने तक ऐप बंद न करें। यदि आप ऐसा करते हैं, तो यह प्रक्रिया शुरू से फिर से शुरू करनी होगी।"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb
index a8e281b3f..6b4491117 100644
--- a/res/values/strings_hr.arb
+++ b/res/values/strings_hr.arb
@@ -308,6 +308,8 @@
"descending": "Silazno",
"description": "Opis",
"destination_tag": "Odredišna oznaka:",
+ "destination_tag_optional": "Oznaka odredišta (nije obavezno)",
+ "destination_tag_swap_disclaimer": "Primatelj zahtijeva da kreditira vaša sredstva. Nedostatak ili pogrešna oznaka znači gubitak sredstava.",
"deuro_about_deuro": "O dEURO-u",
"deuro_collect_interest": "Preuzmi",
"deuro_reinvest_interest": "Reinvestiraj",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Ova će bilješka biti vidljiva primatelju",
"memo_optional": "Memo (nije obavezno)",
+ "memo_swap_disclaimer": "Primatelj zahtijeva da kreditira vaša sredstva. Nedostatak ili pogrešan dopis znači gubitak sredstava.",
"message": "Poruka",
"message_verified": "Poruka je uspješno verificirana",
"messages": "Poruke",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "Nedostaju sredstva?",
"zcash_card_scan": "Skeniraj",
"zcash_card_warning": "Ne zatvarajte aplikaciju dok se postupak ne dovrši; ako to učinite, postupak će se morati ponovno pokrenuti ispočetka."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb
index c003dc3bb..211829818 100644
--- a/res/values/strings_hy.arb
+++ b/res/values/strings_hy.arb
@@ -308,6 +308,8 @@
"descending": "Նվազման կարգով",
"description": "Նկարագրություն",
"destination_tag": "Նշանակման թեգը:",
+ "destination_tag_optional": "Նպատակակետի պիտակ (ըստ ցանկության)",
+ "destination_tag_swap_disclaimer": "Ստացողի կողմից պահանջվում է ձեր միջոցները վարկավորելու համար: Բացակայող կամ սխալ պիտակ նշանակում է կորցրած միջոցներ:",
"deuro_about_deuro": "dEURO-ի մասին",
"deuro_collect_interest": "Հավաքել",
"deuro_reinvest_interest": "Վերաներդնել",
@@ -616,6 +618,7 @@
"memo": "Մեմո",
"memo_disclaimer": "Այս հուշագիրը տեսանելի կլինի ստացողին",
"memo_optional": "Մեմո (ըստ ցանկության)",
+ "memo_swap_disclaimer": "Ստացողի կողմից պահանջվում է ձեր միջոցները վարկավորելու համար: Հուշագրի բացակայությունը կամ սխալը նշանակում է կորցրած միջոցներ:",
"message": "Հաղորդագրություն",
"message_verified": "Հաղորդագրությունը հաջողությամբ ստուգվեց",
"messages": "Հաղորդագրություններ",
@@ -1372,4 +1375,4 @@
"zcash_card_missing_funds": "Միջոցները բացակա՞յում են",
"zcash_card_scan": "Սկանավորել",
"zcash_card_warning": "Մի փակեք հավելվածը մինչև ընթացակարգի ավարտը, քանի որ հակառակ դեպքում այս գործընթացը պետք է վերագործարկվի զրոյից։"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb
index b89942b19..7dff8cb87 100644
--- a/res/values/strings_id.arb
+++ b/res/values/strings_id.arb
@@ -308,6 +308,8 @@
"descending": "Menurun",
"description": "Deskripsi",
"destination_tag": "Tag tujuan:",
+ "destination_tag_optional": "Tag tujuan (opsional)",
+ "destination_tag_swap_disclaimer": "Diperlukan oleh penerima untuk mengkreditkan dana Anda. Tag yang hilang atau salah berarti dana hilang.",
"deuro_about_deuro": "Tentang dEURO",
"deuro_collect_interest": "Kumpulkan",
"deuro_reinvest_interest": "Investasikan kembali",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Memo ini akan terlihat oleh penerima",
"memo_optional": "Memo (opsional)",
+ "memo_swap_disclaimer": "Diperlukan oleh penerima untuk mengkreditkan dana Anda. Memo yang hilang atau salah berarti dana hilang.",
"message": "Pesan",
"message_verified": "Pesan berhasil diverifikasi",
"messages": "Pesan",
@@ -1377,4 +1380,4 @@
"zcash_card_missing_funds": "Dana hilang?",
"zcash_card_scan": "Pindai",
"zcash_card_warning": "Jangan tutup aplikasi sampai prosedur selesai. Jika Anda melakukannya, proses ini harus dimulai ulang dari awal."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb
index b90718c40..30cc74790 100644
--- a/res/values/strings_it.arb
+++ b/res/values/strings_it.arb
@@ -308,6 +308,8 @@
"descending": "Decrescente",
"description": "Descrizione",
"destination_tag": "Tag di destinazione:",
+ "destination_tag_optional": "Tag di destinazione (facoltativo)",
+ "destination_tag_swap_disclaimer": "Richiesto dal destinatario per accreditare i tuoi fondi. Tag mancante o sbagliato significa perdita di fondi.",
"deuro_about_deuro": "Informazioni su dEURO",
"deuro_collect_interest": "Raccogli",
"deuro_reinvest_interest": "Reinvesti",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Questo memo sarà visibile al destinatario",
"memo_optional": "Memo (facoltativo)",
+ "memo_swap_disclaimer": "Richiesto dal destinatario per accreditare i tuoi fondi. Una nota mancante o errata significa perdita di fondi.",
"message": "Messaggio",
"message_verified": "Il messaggio è stato verificato con successo",
"messages": "Messaggi",
@@ -1376,4 +1379,4 @@
"zcash_card_missing_funds": "Fondi mancanti?",
"zcash_card_scan": "Scansiona",
"zcash_card_warning": "Non chiudere l'app finché la procedura non è completata, altrimenti sarà necessario riavviare il processo da zero."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb
index 0db5a0617..aefc4fa70 100644
--- a/res/values/strings_ja.arb
+++ b/res/values/strings_ja.arb
@@ -308,6 +308,8 @@
"descending": "降順",
"description": "説明",
"destination_tag": "宛先タグ:",
+ "destination_tag_optional": "宛先タグ (オプション)",
+ "destination_tag_swap_disclaimer": "受取人があなたの資金を入金するために必要とします。タグが欠落しているか間違っていると、資金が失われます。",
"deuro_about_deuro": "dEUROについて",
"deuro_collect_interest": "受け取る",
"deuro_reinvest_interest": "再投資",
@@ -617,6 +619,7 @@
"memo": "メモ",
"memo_disclaimer": "このメモは受取人に表示されます",
"memo_optional": "メモ(任意)",
+ "memo_swap_disclaimer": "受取人があなたの資金を入金するために必要とします。メモの紛失または間違ったメモは資金の損失を意味します。",
"message": "メッセージ",
"message_verified": "メッセージは正常に検証されました",
"messages": "メッセージ",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "資金が見当たりませんか?",
"zcash_card_scan": "スキャン",
"zcash_card_warning": "手順が完了するまでアプリを閉じないでください。閉じると、このプロセスを最初からやり直す必要があります。"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb
index 2cbfd964e..5f762a9f1 100644
--- a/res/values/strings_ko.arb
+++ b/res/values/strings_ko.arb
@@ -308,6 +308,8 @@
"descending": "내림차순",
"description": "설명",
"destination_tag": "목적지 태그:",
+ "destination_tag_optional": "대상 태그(선택사항)",
+ "destination_tag_swap_disclaimer": "귀하의 자금을 입금하기 위해 수신자가 필요합니다. 태그가 없거나 잘못된 경우 자금 손실이 발생합니다.",
"deuro_about_deuro": "dEURO 소개",
"deuro_collect_interest": "수령",
"deuro_reinvest_interest": "재투자",
@@ -616,6 +618,7 @@
"memo": "메모",
"memo_disclaimer": "이 메모는 수신자에게 표시됩니다.",
"memo_optional": "메모(선택)",
+ "memo_swap_disclaimer": "귀하의 자금을 입금하기 위해 수신자가 필요합니다. 누락되거나 잘못된 메모는 자금 손실을 의미합니다.",
"message": "메시지",
"message_verified": "메시지가 성공적으로 검증되었습니다",
"messages": "메시지",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "자금이 사라졌나요?",
"zcash_card_scan": "스캔",
"zcash_card_warning": "절차가 완료될 때까지 앱을 닫지 마십시오. 닫으면 이 과정을 처음부터 다시 시작해야 합니다."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb
index 288f3dc9f..a5a7cf60e 100644
--- a/res/values/strings_my.arb
+++ b/res/values/strings_my.arb
@@ -308,6 +308,8 @@
"descending": "အနိမ့်မှအမြင့်သို့",
"description": "ဖော်ပြချက်",
"destination_tag": "ဦးတည်ရာ Tag:",
+ "destination_tag_optional": "ဦးတည်ရာတဂ် (ချန်လှပ်ထားနိုင်သည်)",
+ "destination_tag_swap_disclaimer": "သင့်ရန်ပုံငွေများကို အကြွေးတင်ရန်အတွက် လက်ခံသူမှ လိုအပ်ပါသည်။ ပျောက်ဆုံးနေသော သို့မဟုတ် မှားယွင်းသော tag ဆိုသည်မှာ ဆုံးရှုံးသွားသော ရန်ပုံငွေများကို ဆိုလိုသည်။",
"deuro_about_deuro": "dEURO အကြောင်း",
"deuro_collect_interest": "ရယူ",
"deuro_reinvest_interest": "ပြန်လည်ရင်းနှီးမြှုပ်နှံရန်",
@@ -616,6 +618,7 @@
"memo": "မှတ်စု",
"memo_disclaimer": "ဤ memo ကို လက်ခံသူက မြင်နိုင်ပါမည်။",
"memo_optional": "Memo (ရွေးချယ်နိုင်သည်)",
+ "memo_swap_disclaimer": "သင့်ရန်ပုံငွေများကို အကြွေးတင်ရန်အတွက် လက်ခံသူမှ လိုအပ်ပါသည်။ မှတ်စုတို ပျောက်ဆုံးခြင်း သို့မဟုတ် မှားယွင်းခြင်းဆိုသည်မှာ ဆုံးရှုံးသွားသော ရန်ပုံငွေများကို ဆိုလိုသည်။",
"message": "မက်ဆေ့ချ်",
"message_verified": "မက်ဆေ့ချ်ကို အောင်မြင်စွာ အတည်ပြုပြီးပါပြီ",
"messages": "မက်ဆေ့ချ်များ",
@@ -1373,4 +1376,4 @@
"zcash_card_missing_funds": "ငွေကြေး ပျောက်ဆုံးနေပါသလား?",
"zcash_card_scan": "စကင်",
"zcash_card_warning": "လုပ်ငန်းစဉ် ပြီးဆုံးသည်အထိ အက်ပ်ကို မပိတ်ပါနှင့်။ ပိတ်လိုက်ပါက ဤလုပ်ငန်းစဉ်ကို အစမှ ပြန်လည်စတင်ရမည်ဖြစ်သည်။"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb
index 12d1bb54b..8acc1558b 100644
--- a/res/values/strings_nl.arb
+++ b/res/values/strings_nl.arb
@@ -306,6 +306,8 @@
"descending": "Aflopend",
"description": "Beschrijving",
"destination_tag": "Bestemmingstag:",
+ "destination_tag_optional": "Bestemmingstag (optioneel)",
+ "destination_tag_swap_disclaimer": "Vereist door de ontvanger om uw geld te crediteren. Ontbrekende of verkeerde tag betekent verloren geld.",
"deuro_about_deuro": "Over dEURO",
"deuro_collect_interest": "Verzamelen",
"deuro_reinvest_interest": "Herinvesteren",
@@ -613,6 +615,7 @@
"memo": "Memo",
"memo_disclaimer": "Deze memo is zichtbaar voor de ontvanger",
"memo_optional": "Memo (optioneel)",
+ "memo_swap_disclaimer": "Vereist door de ontvanger om uw geld te crediteren. Ontbrekende of verkeerde memo betekent verloren geld.",
"message": "Bericht",
"message_verified": "Het bericht is succesvol geverifieerd",
"messages": "Berichten",
@@ -1371,4 +1374,4 @@
"zcash_card_missing_funds": "Fondsen ontbreken?",
"zcash_card_scan": "Scannen",
"zcash_card_warning": "Sluit de app niet voordat de procedure is voltooid. Als je dit wel doet, moet dit proces helemaal opnieuw worden gestart."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb
index 5389b181d..e4f72081c 100644
--- a/res/values/strings_pl.arb
+++ b/res/values/strings_pl.arb
@@ -308,6 +308,8 @@
"descending": "Malejąco",
"description": "Opis",
"destination_tag": "Tag docelowy:",
+ "destination_tag_optional": "Znacznik miejsca docelowego (opcjonalnie)",
+ "destination_tag_swap_disclaimer": "Wymagane przez odbiorcę w celu uznania Twoich środków. Brakujący lub błędny tag oznacza utratę środków.",
"deuro_about_deuro": "O dEURO",
"deuro_collect_interest": "Odbierz",
"deuro_reinvest_interest": "Reinwestuj",
@@ -615,6 +617,7 @@
"memo": "Memo",
"memo_disclaimer": "To memo będzie widoczne dla odbiorcy",
"memo_optional": "Memo (opcjonalne)",
+ "memo_swap_disclaimer": "Wymagane przez odbiorcę w celu uznania Twoich środków. Brakująca lub błędna notatka oznacza utratę środków.",
"message": "Wiadomość",
"message_verified": "Wiadomość została pomyślnie zweryfikowana",
"messages": "Wiadomości",
@@ -1372,4 +1375,4 @@
"zcash_card_missing_funds": "Brakuje środków?",
"zcash_card_scan": "Skanuj",
"zcash_card_warning": "Nie zamykaj aplikacji do czasu zakończenia procedury. Jeśli to zrobisz, proces będzie musiał rozpocząć się od nowa."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb
index 118cd47db..fd938d123 100644
--- a/res/values/strings_pt.arb
+++ b/res/values/strings_pt.arb
@@ -308,6 +308,8 @@
"descending": "Descendente",
"description": "Descrição",
"destination_tag": "Tag de destino:",
+ "destination_tag_optional": "Tag de destino (opcional)",
+ "destination_tag_swap_disclaimer": "Exigido pelo destinatário para creditar seus fundos. Etiqueta ausente ou errada significa perda de fundos.",
"deuro_about_deuro": "Sobre dEURO",
"deuro_collect_interest": "Coletar",
"deuro_reinvest_interest": "Reinvestir",
@@ -617,6 +619,7 @@
"memo": "Memo",
"memo_disclaimer": "Este memo ficará visível para o destinatário",
"memo_optional": "Memo (opcional)",
+ "memo_swap_disclaimer": "Exigido pelo destinatário para creditar seus fundos. Memorando ausente ou errado significa perda de fundos.",
"message": "Mensagem",
"message_verified": "A mensagem foi verificada com sucesso",
"messages": "Mensagens",
@@ -1376,4 +1379,4 @@
"zcash_card_missing_funds": "Fundos em falta?",
"zcash_card_scan": "Escanear",
"zcash_card_warning": "Não feche o aplicativo até que o procedimento seja concluído; se você fizer isso, esse processo precisará ser reiniciado do zero."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_pt_BR.arb b/res/values/strings_pt_BR.arb
index 2f5e17e30..1e178453e 100644
--- a/res/values/strings_pt_BR.arb
+++ b/res/values/strings_pt_BR.arb
@@ -306,6 +306,8 @@
"descending": "Decrescente",
"description": "Descrição",
"destination_tag": "Tag de destino:",
+ "destination_tag_optional": "Tag de destino (opcional)",
+ "destination_tag_swap_disclaimer": "Exigido pelo destinatário para creditar seus fundos. Etiqueta ausente ou errada significa perda de fundos.",
"deuro_about_deuro": "Sobre dEURO",
"deuro_collect_interest": "Coletar",
"deuro_reinvest_interest": "Reinvestir",
@@ -612,6 +614,7 @@
"memo": "Memo",
"memo_disclaimer": "Este memo será visível para o destinatário",
"memo_optional": "Memo (opcional)",
+ "memo_swap_disclaimer": "Exigido pelo destinatário para creditar seus fundos. Memorando ausente ou errado significa perda de fundos.",
"message": "Mensagem",
"message_verified": "A mensagem foi verificada com sucesso",
"messages": "Mensagens",
@@ -1368,4 +1371,4 @@
"zcash_card_missing_funds": "Fundos ausentes?",
"zcash_card_scan": "Escanear",
"zcash_card_warning": "Não feche o app até que o procedimento seja concluído; caso contrário, este processo precisará ser reiniciado do zero."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb
index 828e899bb..cd85cdfb8 100644
--- a/res/values/strings_ru.arb
+++ b/res/values/strings_ru.arb
@@ -308,6 +308,8 @@
"descending": "По убыванию",
"description": "Описание",
"destination_tag": "Тег назначения:",
+ "destination_tag_optional": "Тег назначения (необязательно)",
+ "destination_tag_swap_disclaimer": "Требуется получателю для зачисления ваших средств. Отсутствие или неправильный тег означает потерю средств.",
"deuro_about_deuro": "О dEURO",
"deuro_collect_interest": "Собрать",
"deuro_reinvest_interest": "Реинвестировать",
@@ -616,6 +618,7 @@
"memo": "Мемо",
"memo_disclaimer": "Это примечание будет видно получателю",
"memo_optional": "Мемо (необязательно)",
+ "memo_swap_disclaimer": "Требуется получателю для зачисления ваших средств. Отсутствие или неправильная памятка означает потерю средств.",
"message": "Сообщение",
"message_verified": "Сообщение было успешно проверено",
"messages": "Сообщения",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "Не хватает средств?",
"zcash_card_scan": "Сканировать",
"zcash_card_warning": "Не закрывайте приложение до завершения процедуры. Если вы это сделаете, процесс придется перезапустить с нуля."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb
index f0abd0399..e2b41f44b 100644
--- a/res/values/strings_th.arb
+++ b/res/values/strings_th.arb
@@ -308,6 +308,8 @@
"descending": "จากมากไปน้อย",
"description": "คำอธิบาย",
"destination_tag": "แท็กปลายทาง:",
+ "destination_tag_optional": "แท็กปลายทาง (ไม่บังคับ)",
+ "destination_tag_swap_disclaimer": "ผู้รับต้องการให้เครดิตเงินของคุณ แท็กที่หายไปหรือผิดหมายถึงสูญเสียเงิน",
"deuro_about_deuro": "เกี่ยวกับ dEURO",
"deuro_collect_interest": "รับ",
"deuro_reinvest_interest": "ลงทุนซ้ำ",
@@ -616,6 +618,7 @@
"memo": "บันทึก",
"memo_disclaimer": "บันทึกนี้จะมองเห็นได้โดยผู้รับ",
"memo_optional": "บันทึก (ไม่บังคับ)",
+ "memo_swap_disclaimer": "ผู้รับต้องการให้เครดิตเงินของคุณ บันทึกที่หายไปหรือผิดหมายถึงสูญเสียเงิน",
"message": "ข้อความ",
"message_verified": "ตรวจสอบข้อความสำเร็จแล้ว",
"messages": "ข้อความ",
@@ -1373,4 +1376,4 @@
"zcash_card_missing_funds": "ยอดเงินหายไป?",
"zcash_card_scan": "สแกน",
"zcash_card_warning": "อย่าปิดแอปจนกว่าขั้นตอนจะเสร็จสิ้น หากคุณปิดแอป กระบวนการนี้จะต้องเริ่มใหม่ตั้งแต่ต้น"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb
index 71a87c25a..98d6d91d0 100644
--- a/res/values/strings_tl.arb
+++ b/res/values/strings_tl.arb
@@ -308,6 +308,8 @@
"descending": "Pababa",
"description": "Paglalarawan",
"destination_tag": "Destination tag:",
+ "destination_tag_optional": "Destination tag (opsyonal)",
+ "destination_tag_swap_disclaimer": "Kinakailangan ng tatanggap na ikredito ang iyong mga pondo. Ang nawawala o maling tag ay nangangahulugan ng mga nawalang pondo.",
"deuro_about_deuro": "Tungkol sa dEURO",
"deuro_collect_interest": "Kolektahin",
"deuro_reinvest_interest": "Muling i-invest",
@@ -616,6 +618,7 @@
"memo": "Memo",
"memo_disclaimer": "Makikita ng tatanggap ang memo na ito",
"memo_optional": "Memo (opsyonal)",
+ "memo_swap_disclaimer": "Kinakailangan ng tatanggap na ikredito ang iyong mga pondo. Ang nawawala o maling memo ay nangangahulugan ng nawalang pondo.",
"message": "Mensahe",
"message_verified": "Matagumpay na na-verify ang mensahe",
"messages": "Mga Mensahe",
@@ -1373,4 +1376,4 @@
"zcash_card_missing_funds": "Nawawalang pondo?",
"zcash_card_scan": "I-scan",
"zcash_card_warning": "Huwag isara ang app hanggang sa makumpleto ang proseso; kung gagawin mo ito, kakailanganing magsimula muli mula sa simula."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb
index 346b35d0d..1f2a1219d 100644
--- a/res/values/strings_tr.arb
+++ b/res/values/strings_tr.arb
@@ -308,6 +308,8 @@
"descending": "Azalan",
"description": "Açıklama",
"destination_tag": "Hedef etiketi:",
+ "destination_tag_optional": "Hedef etiketi (isteğe bağlı)",
+ "destination_tag_swap_disclaimer": "Alıcının paranızı yatırması için gereklidir. Eksik veya yanlış etiket, para kaybı anlamına gelir.",
"deuro_about_deuro": "dEURO hakkında",
"deuro_collect_interest": "Topla",
"deuro_reinvest_interest": "Yeniden yatır",
@@ -616,6 +618,7 @@
"memo": "Not",
"memo_disclaimer": "Bu memo alıcı tarafından görülebilecektir",
"memo_optional": "Memo (isteğe bağlı)",
+ "memo_swap_disclaimer": "Alıcının paranızı yatırması için gereklidir. Eksik veya yanlış not, para kaybı anlamına gelir.",
"message": "Mesaj",
"message_verified": "Mesaj başarıyla doğrulandı",
"messages": "Mesajlar",
@@ -1373,4 +1376,4 @@
"zcash_card_missing_funds": "Bakiye eksik mi?",
"zcash_card_scan": "Tara",
"zcash_card_warning": "İşlem tamamlanana kadar uygulamayı kapatmayın; aksi takdirde bu işlemin baştan yeniden başlatılması gerekecektir."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb
index 769221508..63ed3b1e7 100644
--- a/res/values/strings_uk.arb
+++ b/res/values/strings_uk.arb
@@ -308,6 +308,8 @@
"descending": "За спаданням",
"description": "Опис",
"destination_tag": "Тег призначення:",
+ "destination_tag_optional": "Тег призначення (необов’язково)",
+ "destination_tag_swap_disclaimer": "Потрібний одержувачу для зарахування ваших коштів. Відсутній або неправильний тег означає втрату коштів.",
"deuro_about_deuro": "Про dEURO",
"deuro_collect_interest": "Зібрати",
"deuro_reinvest_interest": "Реінвестувати",
@@ -616,6 +618,7 @@
"memo": "Мемо",
"memo_disclaimer": "Ця примітка буде видима одержувачу",
"memo_optional": "Мемо (необов'язково)",
+ "memo_swap_disclaimer": "Потрібний одержувачу для зарахування ваших коштів. Відсутня або неправильна нотатка означає втрату коштів.",
"message": "Повідомлення",
"message_verified": "Повідомлення було успішно перевірено",
"messages": "Повідомлення",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "Зникли кошти?",
"zcash_card_scan": "Сканувати",
"zcash_card_warning": "Не закривайте застосунок, доки процедура не завершиться. Якщо ви це зробите, цей процес потрібно буде перезапустити з нуля."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb
index 9285c8e7e..b43075057 100644
--- a/res/values/strings_ur.arb
+++ b/res/values/strings_ur.arb
@@ -308,6 +308,8 @@
"descending": "نزولی",
"description": "تفصیل",
"destination_tag": "ڈیسٹینیشن ٹیگ:",
+ "destination_tag_optional": "منزل کا ٹیگ (اختیاری)",
+ "destination_tag_swap_disclaimer": "وصول کنندہ کے ذریعہ آپ کے فنڈز کو کریڈٹ کرنے کی ضرورت ہے۔ گمشدہ یا غلط ٹیگ کا مطلب ہے کھوئے ہوئے فنڈز۔",
"deuro_about_deuro": "dEURO کے بارے میں",
"deuro_collect_interest": "وصول کریں",
"deuro_reinvest_interest": "دوبارہ سرمایہ کاری کریں",
@@ -616,6 +618,7 @@
"memo": "میمو",
"memo_disclaimer": "یہ میمو وصول کنندہ کو نظر آئے گا۔",
"memo_optional": "میمو (اختیاری)",
+ "memo_swap_disclaimer": "وصول کنندہ کے ذریعہ آپ کے فنڈز کو کریڈٹ کرنے کی ضرورت ہے۔ گمشدہ یا غلط میمو کا مطلب ہے کھوئے ہوئے فنڈز۔",
"message": "پیغام",
"message_verified": "پیغام کی کامیابی سے تصدیق ہو گئی",
"messages": "پیغامات",
@@ -1375,4 +1378,4 @@
"zcash_card_missing_funds": "فنڈز غائب ہیں؟",
"zcash_card_scan": "اسکین کریں",
"zcash_card_warning": "طریقہ کار مکمل ہونے تک ایپ بند نہ کریں۔ اگر آپ ایسا کریں گے تو یہ عمل شروع سے دوبارہ شروع کرنا پڑے گا۔"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb
index 5ce21b68c..f53e3a8a2 100644
--- a/res/values/strings_vi.arb
+++ b/res/values/strings_vi.arb
@@ -307,6 +307,8 @@
"descending": "Giảm dần",
"description": "Mô tả",
"destination_tag": "Thẻ đích:",
+ "destination_tag_optional": "Thẻ đích (tùy chọn)",
+ "destination_tag_swap_disclaimer": "Người nhận yêu cầu ghi có tiền của bạn. Thẻ bị thiếu hoặc sai có nghĩa là tiền bị mất.",
"deuro_about_deuro": "Giới thiệu về dEURO",
"deuro_collect_interest": "Thu",
"deuro_reinvest_interest": "Tái đầu tư",
@@ -615,6 +617,7 @@
"memo": "Ghi chú",
"memo_disclaimer": "Ghi chú này sẽ hiển thị cho người nhận",
"memo_optional": "Ghi chú (tùy chọn)",
+ "memo_swap_disclaimer": "Người nhận yêu cầu ghi có tiền của bạn. Bản ghi nhớ bị thiếu hoặc sai có nghĩa là tiền bị mất.",
"message": "Tin nhắn",
"message_verified": "Tin nhắn đã được xác minh thành công",
"messages": "Tin nhắn",
@@ -1370,4 +1373,4 @@
"zcash_card_missing_funds": "Thiếu tiền?",
"zcash_card_scan": "Quét",
"zcash_card_warning": "Không đóng ứng dụng cho đến khi quy trình hoàn tất; nếu bạn làm vậy, quy trình này sẽ phải bắt đầu lại từ đầu."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb
index 29ebbe6c4..2039dd57a 100644
--- a/res/values/strings_yo.arb
+++ b/res/values/strings_yo.arb
@@ -308,6 +308,8 @@
"descending": "Sísọ̀kalẹ̀",
"description": "Apejuwe",
"destination_tag": "Ami ìbùdó:",
+ "destination_tag_optional": "Aami ibi-afẹde (aṣayan)",
+ "destination_tag_swap_disclaimer": "Ti beere lọwọ olugba lati gbese awọn owo rẹ. Sonu tabi ti ko tọ tag tumo si sọnu owo.",
"deuro_about_deuro": "Nipa dEURO",
"deuro_collect_interest": "Gba",
"deuro_reinvest_interest": "Tun fi èrè padà sí i",
@@ -617,6 +619,7 @@
"memo": "Àkọsílẹ̀",
"memo_disclaimer": "Akọsilẹ yii yoo han si olugba",
"memo_optional": "Akọsilẹ (aṣayan)",
+ "memo_swap_disclaimer": "Ti beere lọwọ olugba lati gbese awọn owo rẹ. Pipadanu tabi akọsilẹ aṣiṣe tumọ si awọn owo ti o sọnu.",
"message": "Ifiranṣẹ",
"message_verified": "A ti jẹrisi ifiranṣẹ naa ni aṣeyọri",
"messages": "Awọn ifiranṣẹ",
@@ -1374,4 +1377,4 @@
"zcash_card_missing_funds": "Ṣe owó rẹ sọnù?",
"zcash_card_scan": "Ṣàwárí",
"zcash_card_warning": "Maṣe pa ohun elo naa titi ilana naa yoo fi pari; bí o bá ṣe bẹ́ẹ̀, ilana yìí yóò ní láti tún bẹ̀rẹ̀ láti ìbẹ̀rẹ̀."
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb
index 766d79737..1691da606 100644
--- a/res/values/strings_zh.arb
+++ b/res/values/strings_zh.arb
@@ -308,6 +308,8 @@
"descending": "降序",
"description": "描述",
"destination_tag": "目标标签:",
+ "destination_tag_optional": "目的地标签(可选)",
+ "destination_tag_swap_disclaimer": "收款人要求存入您的资金。标签丢失或错误意味着资金损失。",
"deuro_about_deuro": "关于 dEURO",
"deuro_collect_interest": "领取",
"deuro_reinvest_interest": "再投资",
@@ -616,6 +618,7 @@
"memo": "备注",
"memo_disclaimer": "此备注将对接收方可见",
"memo_optional": "备注(可选)",
+ "memo_swap_disclaimer": "收款人要求存入您的资金。备忘录丢失或错误意味着资金损失。",
"message": "消息",
"message_verified": "消息已成功验证",
"messages": "消息",
@@ -1373,4 +1376,4 @@
"zcash_card_missing_funds": "资金不见了?",
"zcash_card_scan": "扫描",
"zcash_card_warning": "在该过程完成之前请勿关闭应用程序,否则该过程将需要从头重新开始。"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_zh_tw.arb b/res/values/strings_zh_tw.arb
index c85a7b648..dd920063c 100644
--- a/res/values/strings_zh_tw.arb
+++ b/res/values/strings_zh_tw.arb
@@ -259,6 +259,8 @@
"descending": "降序",
"description": "描述",
"destination_tag": "目的地標籤:",
+ "destination_tag_optional": "目的地標籤(可選)",
+ "destination_tag_swap_disclaimer": "收款人要求存入您的資金。標籤丟失或錯誤意味著資金損失。",
"deuro_about_deuro": "關於 dEURO",
"deuro_collect_interest": "領取",
"deuro_reinvest_interest": "再投資",
@@ -523,6 +525,7 @@
"max_amount": "最大: ${value}",
"max_value": "最大值:${value} ${currency}",
"memo": "備註",
+ "memo_swap_disclaimer": "收款人要求存入您的資金。備忘錄丟失或錯誤意味著資金損失。",
"message": "訊息",
"message_verified": "訊息已成功驗證",
"messages": "訊息",
@@ -1177,4 +1180,4 @@
"youCanGoBackToYourDapp": "您現在可以返回您的 dApp",
"your": "您的",
"yy": "YY"
-}
+}
\ No newline at end of file
diff --git a/scripts/ios/app_icon.sh b/scripts/ios/app_icon.sh
index adc1c36ea..df8dd0009 100755
--- a/scripts/ios/app_icon.sh
+++ b/scripts/ios/app_icon.sh
@@ -1,225 +1,17 @@
#!/bin/sh
-CONTENTS_JSON_PATH=""
-
-ICON_20_2x_PATH=""
-ICON_20_3x_PATH=""
-ICON_29_2x_PATH=""
-ICON_29_3x_PATH=""
-ICON_38_2x_PATH=""
-ICON_38_3x_PATH=""
-ICON_40_2x_PATH=""
-ICON_40_3x_PATH=""
-ICON_60_2x_PATH=""
-ICON_60_3x_PATH=""
-ICON_64_2x_PATH=""
-ICON_64_3x_PATH=""
-ICON_68_2x_PATH=""
-ICON_76_2x_PATH=""
-ICON_83_5_2x_PATH=""
-ICON_1024_1x_PATH=""
-
-ICON_DARK_20_2x_PATH=""
-ICON_DARK_20_3x_PATH=""
-ICON_DARK_29_2x_PATH=""
-ICON_DARK_29_3x_PATH=""
-ICON_DARK_38_2x_PATH=""
-ICON_DARK_38_3x_PATH=""
-ICON_DARK_40_2x_PATH=""
-ICON_DARK_40_3x_PATH=""
-ICON_DARK_60_2x_PATH=""
-ICON_DARK_60_3x_PATH=""
-ICON_DARK_64_2x_PATH=""
-ICON_DARK_64_3x_PATH=""
-ICON_DARK_68_2x_PATH=""
-ICON_DARK_76_2x_PATH=""
-ICON_DARK_83_5_2x_PATH=""
-ICON_DARK_1024_1x_PATH=""
-
-ICON_TINTED_20_2x_PATH=""
-ICON_TINTED_20_3x_PATH=""
-ICON_TINTED_29_2x_PATH=""
-ICON_TINTED_29_3x_PATH=""
-ICON_TINTED_38_2x_PATH=""
-ICON_TINTED_38_3x_PATH=""
-ICON_TINTED_40_2x_PATH=""
-ICON_TINTED_40_3x_PATH=""
-ICON_TINTED_60_2x_PATH=""
-ICON_TINTED_60_3x_PATH=""
-ICON_TINTED_64_2x_PATH=""
-ICON_TINTED_64_3x_PATH=""
-ICON_TINTED_68_2x_PATH=""
-ICON_TINTED_76_2x_PATH=""
-ICON_TINTED_83_5_2x_PATH=""
-ICON_TINTED_1024_1x_PATH=""
-
-DEST_DIR_PATH=`pwd`/../../ios/Runner/Assets.xcassets/AppIcon.appiconset
-mkdir -p $DEST_DIR_PATH
+DEST_DIR_PATH="`pwd`/../../ios/AppIcon.icon"
+SRC_DIR_PATH="`pwd`/../../assets/images/ios_icons"
+mkdir -p "$DEST_DIR_PATH"
case $APP_IOS_TYPE in
"monero.com")
- ICON_DIRECTORY=monero_ios_icons;;
+ ICON_DIRECTORY="monerocom-app.icon"
+ ;;
"cakewallet")
- ICON_DIRECTORY=cakewallet_ios_icons;;
+ ICON_DIRECTORY="cakewallet-app.icon"
+ ;;
esac
-CONTENTS_JSON_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Contents.json
-
-ICON_20_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-20x20@2x.png
-ICON_20_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-20x20@3x.png
-ICON_29_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-29x29@2x.png
-ICON_29_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-29x29@3x.png
-ICON_38_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-38x38@2x.png
-ICON_38_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-38x38@3x.png
-ICON_40_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-40x40@2x.png
-ICON_40_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-40x40@3x.png
-ICON_60_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-60x60@2x.png
-ICON_60_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-60x60@3x.png
-ICON_64_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-64x64@2x.png
-ICON_64_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-64x64@3x.png
-ICON_68_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-68x68@2x.png
-ICON_76_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-76x76@2x.png
-ICON_83_5_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-83.5x83.5@2x.png
-ICON_1024_1x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-1024x1024@1x.png
-
-ICON_DARK_20_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-20x20@2x.png
-ICON_DARK_20_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-20x20@3x.png
-ICON_DARK_29_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-29x29@2x.png
-ICON_DARK_29_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-29x29@3x.png
-ICON_DARK_38_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-38x38@2x.png
-ICON_DARK_38_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-38x38@3x.png
-ICON_DARK_40_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-40x40@2x.png
-ICON_DARK_40_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-40x40@3x.png
-ICON_DARK_60_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-60x60@2x.png
-ICON_DARK_60_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-60x60@3x.png
-ICON_DARK_64_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-64x64@2x.png
-ICON_DARK_64_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-64x64@3x.png
-ICON_DARK_68_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-68x68@2x.png
-ICON_DARK_76_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-76x76@2x.png
-ICON_DARK_83_5_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-83.5x83.5@2x.png
-ICON_DARK_1024_1x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Dark-1024x1024@1x.png
-
-ICON_TINTED_20_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-20x20@2x.png
-ICON_TINTED_20_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-20x20@3x.png
-ICON_TINTED_29_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-29x29@2x.png
-ICON_TINTED_29_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-29x29@3x.png
-ICON_TINTED_38_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-38x38@2x.png
-ICON_TINTED_38_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-38x38@3x.png
-ICON_TINTED_40_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-40x40@2x.png
-ICON_TINTED_40_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-40x40@3x.png
-ICON_TINTED_60_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-60x60@2x.png
-ICON_TINTED_60_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-60x60@3x.png
-ICON_TINTED_64_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-64x64@2x.png
-ICON_TINTED_64_3x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-64x64@3x.png
-ICON_TINTED_68_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-68x68@2x.png
-ICON_TINTED_76_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-76x76@2x.png
-ICON_TINTED_83_5_2x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-83.5x83.5@2x.png
-ICON_TINTED_1024_1x_PATH=`pwd`/../../assets/images/ios_icons/$ICON_DIRECTORY/Icon-App-Tinted-1024x1024@1x.png
-
-rm $DEST_DIR_PATH/Contents.json
-
-rm $DEST_DIR_PATH/Icon-App-20x20@2x.png
-rm $DEST_DIR_PATH/Icon-App-20x20@3x.png
-rm $DEST_DIR_PATH/Icon-App-29x29@2x.png
-rm $DEST_DIR_PATH/Icon-App-29x29@3x.png
-rm $DEST_DIR_PATH/Icon-App-38x38@2x.png
-rm $DEST_DIR_PATH/Icon-App-38x38@3x.png
-rm $DEST_DIR_PATH/Icon-App-40x40@2x.png
-rm $DEST_DIR_PATH/Icon-App-40x40@3x.png
-rm $DEST_DIR_PATH/Icon-App-60x60@2x.png
-rm $DEST_DIR_PATH/Icon-App-60x60@3x.png
-rm $DEST_DIR_PATH/Icon-App-64x64@2x.png
-rm $DEST_DIR_PATH/Icon-App-64x64@3x.png
-rm $DEST_DIR_PATH/Icon-App-68x68@2x.png
-rm $DEST_DIR_PATH/Icon-App-76x76@2x.png
-rm $DEST_DIR_PATH/Icon-App-83.5x83.5@2x.png
-rm $DEST_DIR_PATH/Icon-App-1024x1024@1x.png
-
-rm $DEST_DIR_PATH/Icon-App-Dark-20x20@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-20x20@3x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-29x29@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-29x29@3x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-38x38@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-38x38@3x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-40x40@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-40x40@3x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-60x60@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-60x60@3x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-64x64@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-64x64@3x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-68x68@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-76x76@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-83.5x83.5@2x.png
-rm $DEST_DIR_PATH/Icon-App-Dark-1024x1024@1x.png
-
-rm $DEST_DIR_PATH/Icon-App-Tinted-20x20@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-20x20@3x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-29x29@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-29x29@3x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-38x38@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-38x38@3x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-40x40@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-40x40@3x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-60x60@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-60x60@3x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-64x64@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-64x64@3x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-68x68@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-76x76@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-83.5x83.5@2x.png
-rm $DEST_DIR_PATH/Icon-App-Tinted-1024x1024@1x.png
-
-ln -s $CONTENTS_JSON_PATH $DEST_DIR_PATH/Contents.json
-
-ln -s $ICON_20_2x_PATH $DEST_DIR_PATH/Icon-App-20x20@2x.png
-ln -s $ICON_20_3x_PATH $DEST_DIR_PATH/Icon-App-20x20@3x.png
-ln -s $ICON_29_2x_PATH $DEST_DIR_PATH/Icon-App-29x29@2x.png
-ln -s $ICON_29_3x_PATH $DEST_DIR_PATH/Icon-App-29x29@3x.png
-ln -s $ICON_38_2x_PATH $DEST_DIR_PATH/Icon-App-38x38@2x.png
-ln -s $ICON_38_3x_PATH $DEST_DIR_PATH/Icon-App-38x38@3x.png
-ln -s $ICON_40_2x_PATH $DEST_DIR_PATH/Icon-App-40x40@2x.png
-ln -s $ICON_40_3x_PATH $DEST_DIR_PATH/Icon-App-40x40@3x.png
-ln -s $ICON_60_2x_PATH $DEST_DIR_PATH/Icon-App-60x60@2x.png
-ln -s $ICON_60_3x_PATH $DEST_DIR_PATH/Icon-App-60x60@3x.png
-ln -s $ICON_64_2x_PATH $DEST_DIR_PATH/Icon-App-64x64@2x.png
-ln -s $ICON_64_3x_PATH $DEST_DIR_PATH/Icon-App-64x64@3x.png
-ln -s $ICON_68_2x_PATH $DEST_DIR_PATH/Icon-App-68x68@2x.png
-ln -s $ICON_76_2x_PATH $DEST_DIR_PATH/Icon-App-76x76@2x.png
-ln -s $ICON_83_5_2x_PATH $DEST_DIR_PATH/Icon-App-83.5x83.5@2x.png
-ln -s $ICON_1024_1x_PATH $DEST_DIR_PATH/Icon-App-1024x1024@1x.png
-
-ln -s $ICON_DARK_20_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-20x20@2x.png
-ln -s $ICON_DARK_20_3x_PATH $DEST_DIR_PATH/Icon-App-Dark-20x20@3x.png
-ln -s $ICON_DARK_29_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-29x29@2x.png
-ln -s $ICON_DARK_29_3x_PATH $DEST_DIR_PATH/Icon-App-Dark-29x29@3x.png
-ln -s $ICON_DARK_38_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-38x38@2x.png
-ln -s $ICON_DARK_38_3x_PATH $DEST_DIR_PATH/Icon-App-Dark-38x38@3x.png
-ln -s $ICON_DARK_40_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-40x40@2x.png
-ln -s $ICON_DARK_40_3x_PATH $DEST_DIR_PATH/Icon-App-Dark-40x40@3x.png
-ln -s $ICON_DARK_60_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-60x60@2x.png
-ln -s $ICON_DARK_60_3x_PATH $DEST_DIR_PATH/Icon-App-Dark-60x60@3x.png
-ln -s $ICON_DARK_64_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-64x64@2x.png
-ln -s $ICON_DARK_64_3x_PATH $DEST_DIR_PATH/Icon-App-Dark-64x64@3x.png
-ln -s $ICON_DARK_68_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-68x68@2x.png
-ln -s $ICON_DARK_76_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-76x76@2x.png
-ln -s $ICON_DARK_83_5_2x_PATH $DEST_DIR_PATH/Icon-App-Dark-83.5x83.5@2x.png
-ln -s $ICON_DARK_1024_1x_PATH $DEST_DIR_PATH/Icon-App-Dark-1024x1024@1x.png
-
-ln -s $ICON_TINTED_20_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-20x20@2x.png
-ln -s $ICON_TINTED_20_3x_PATH $DEST_DIR_PATH/Icon-App-Tinted-20x20@3x.png
-ln -s $ICON_TINTED_29_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-29x29@2x.png
-ln -s $ICON_TINTED_29_3x_PATH $DEST_DIR_PATH/Icon-App-Tinted-29x29@3x.png
-ln -s $ICON_TINTED_38_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-38x38@2x.png
-ln -s $ICON_TINTED_38_3x_PATH $DEST_DIR_PATH/Icon-App-Tinted-38x38@3x.png
-ln -s $ICON_TINTED_40_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-40x40@2x.png
-ln -s $ICON_TINTED_40_3x_PATH $DEST_DIR_PATH/Icon-App-Tinted-40x40@3x.png
-ln -s $ICON_TINTED_60_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-60x60@2x.png
-ln -s $ICON_TINTED_60_3x_PATH $DEST_DIR_PATH/Icon-App-Tinted-60x60@3x.png
-ln -s $ICON_TINTED_64_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-64x64@2x.png
-ln -s $ICON_TINTED_64_3x_PATH $DEST_DIR_PATH/Icon-App-Tinted-64x64@3x.png
-ln -s $ICON_TINTED_68_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-68x68@2x.png
-ln -s $ICON_TINTED_76_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-76x76@2x.png
-ln -s $ICON_TINTED_83_5_2x_PATH $DEST_DIR_PATH/Icon-App-Tinted-83.5x83.5@2x.png
-ln -s $ICON_TINTED_1024_1x_PATH $DEST_DIR_PATH/Icon-App-Tinted-1024x1024@1x.png
-
-
+rm -rf $DEST_DIR_PATH
+cp -r "$SRC_DIR_PATH/$ICON_DIRECTORY" "$DEST_DIR_PATH"
\ No newline at end of file
diff --git a/scripts/macos/app_icon.sh b/scripts/macos/app_icon.sh
index 28ca9c17b..27f166a96 100755
--- a/scripts/macos/app_icon.sh
+++ b/scripts/macos/app_icon.sh
@@ -1,44 +1,17 @@
#!/bin/sh
-ICON_16_PATH=""
-ICON_32_PATH=""
-ICON_64_PATH=""
-ICON_128_PATH=""
-ICON_256_PATH=""
-ICON_1024_PATH=""
-DEST_DIR_PATH=`pwd`/../../macos/Runner/Assets.xcassets/AppIcon.appiconset
+DEST_DIR_PATH="`pwd`/../../macos/AppIcon.icon"
+SRC_DIR_PATH="`pwd`/../../assets/images/ios_icons"
+mkdir -p "$DEST_DIR_PATH"
case $APP_MACOS_TYPE in
"monero.com")
- ICON_16_PATH=`pwd`/../../assets/images/macos_icons/monero_macos_icons/monero_macos_16.png
- ICON_32_PATH=`pwd`/../../assets/images/macos_icons/monero_macos_icons/monero_macos_32.png
- ICON_64_PATH=`pwd`/../../assets/images/macos_icons/monero_macos_icons/monero_macos_64.png
- ICON_128_PATH=`pwd`/../../assets/images/macos_icons/monero_macos_icons/monero_macos_128.png
- ICON_256_PATH=`pwd`/../../assets/images/macos_icons/monero_macos_icons/monero_macos_256.png
- ICON_512_PATH=`pwd`/../../assets/images/macos_icons/monero_macos_icons/monero_macos_512.png
- ICON_1024_PATH=`pwd`/../../assets/images/macos_icons/monero_macos_icons/monero_macos_1024.png;;
+ ICON_DIRECTORY="monerocom-app.icon"
+ ;;
"cakewallet")
- ICON_16_PATH=`pwd`/../../assets/images/macos_icons/cakewallet_macos_icons/cakewallet_macos_16.png
- ICON_32_PATH=`pwd`/../../assets/images/macos_icons/cakewallet_macos_icons/cakewallet_macos_32.png
- ICON_64_PATH=`pwd`/../../assets/images/macos_icons/cakewallet_macos_icons/cakewallet_macos_64.png
- ICON_128_PATH=`pwd`/../../assets/images/macos_icons/cakewallet_macos_icons/cakewallet_macos_128.png
- ICON_256_PATH=`pwd`/../../assets/images/macos_icons/cakewallet_macos_icons/cakewallet_macos_256.png
- ICON_512_PATH=`pwd`/../../assets/images/macos_icons/cakewallet_macos_icons/cakewallet_macos_512.png
- ICON_1024_PATH=`pwd`/../../assets/images/macos_icons/cakewallet_macos_icons/cakewallet_macos_1024.png;;
+ ICON_DIRECTORY="cakewallet-app.icon"
+ ;;
esac
-rm $DEST_DIR_PATH/app_icon_16.png
-rm $DEST_DIR_PATH/app_icon_32.png
-rm $DEST_DIR_PATH/app_icon_64.png
-rm $DEST_DIR_PATH/app_icon_128.png
-rm $DEST_DIR_PATH/app_icon_256.png
-rm $DEST_DIR_PATH/app_icon_512.png
-rm $DEST_DIR_PATH/app_icon_1024.png
-
-ln -s $ICON_16_PATH $DEST_DIR_PATH/app_icon_16.png
-ln -s $ICON_32_PATH $DEST_DIR_PATH/app_icon_32.png
-ln -s $ICON_64_PATH $DEST_DIR_PATH/app_icon_64.png
-ln -s $ICON_128_PATH $DEST_DIR_PATH/app_icon_128.png
-ln -s $ICON_256_PATH $DEST_DIR_PATH/app_icon_256.png
-ln -s $ICON_512_PATH $DEST_DIR_PATH/app_icon_512.png
-ln -s $ICON_1024_PATH $DEST_DIR_PATH/app_icon_1024.png
\ No newline at end of file
+rm -rf $DEST_DIR_PATH
+cp -r "$SRC_DIR_PATH/$ICON_DIRECTORY" "$DEST_DIR_PATH"
\ No newline at end of file