Branding, terms of service and privacy policy
What changed, and why it matters
This commit is a routine rebranding and legal-disclosure update. It renames the app from 'monero_light_wallet' to 'skylight_wallet' across Android, iOS, macOS, Linux, Windows, and web; swaps the package name/namespace to 'org.magicgrants.skylight'; adds new launcher icons; and introduces in-app Terms of Service and Privacy Policy screens. There are no code changes that alter security behavior, cryptography, network handling, or data flow.
No security action required. If reviewing for release readiness, verify that the new package name and application ID are correctly reflected in app store listings and that the markdown asset files referenced in pubspec.yaml (assets/privacy_policy.md, assets/terms_of_service.md) actually exist, since they are declared but not shown in this commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff is almost entirely mechanical: package import renames from monero_light_wallet to skylight_wallet, application ID and bundle identifier changes, label/title string updates, binary icon replacements, and the addition of two new static Flutter screens (TermsOfService and PrivacyPolicy) plus navigation routes. A few ElevatedButton widgets are changed to FilledButton for UI consistency. pubspec.yaml adds flutter_launcher_icons and gpt_markdown dependencies and lists markdown asset files, but no markdown rendering code is added in this commit. No functional wallet, Tor, storage, or networking logic is modified.
Changed components
Application branding and metadataIn-app legal/disclosure screens (Terms of Service, Privacy Policy)pubspec.yaml dependencies (flutter_launcher_icons, gpt_markdown)UI button stylingInspect captured patch +582 / −303
diff --git a/README.md b/README.md
index a1c0bee..1bc39a5 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# monero_light_wallet
+# skylight_wallet
A new Flutter project.
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index f58e14d..ba6eafc 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -6,7 +6,7 @@ plugins {
}
android {
- namespace = "com.example.monero_light_wallet"
+ namespace = "org.magicgrants.skylight"
compileSdk = flutter.compileSdkVersion
ndkVersion = "28.1.13356709"
@@ -22,7 +22,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId = "com.example.monero_light_wallet"
+ applicationId = "org.magicgrants.skylight"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 6ead506..a0a0473 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -6,7 +6,7 @@
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<application
- android:label="monero_light_wallet"
+ android:label="Skylight Wallet"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false">
diff --git a/android/app/src/main/kotlin/com/example/monero_light_wallet/MainActivity.kt b/android/app/src/main/kotlin/com/example/monero_light_wallet/MainActivity.kt
index 3528398..d02b51d 100644
--- a/android/app/src/main/kotlin/com/example/monero_light_wallet/MainActivity.kt
+++ b/android/app/src/main/kotlin/com/example/monero_light_wallet/MainActivity.kt
@@ -1,4 +1,4 @@
-package com.example.monero_light_wallet
+package org.magicgrants.skylight
import io.flutter.embedding.android.FlutterFragmentActivity
diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png
new file mode 100644
index 0000000..4a1b5ae
Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..4a1b5ae
Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png
new file mode 100644
index 0000000..2bbe632
Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..2bbe632
Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..321c083
Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..321c083
Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..e6536a1
Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..e6536a1
Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..faf1a2e
Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png differ
diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..faf1a2e
Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..c79c58a
--- /dev/null
+++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@color/ic_launcher_background"/>
+ <foreground>
+ <inset
+ android:drawable="@drawable/ic_launcher_foreground"
+ android:inset="16%" />
+ </foreground>
+</adaptive-icon>
diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
index db77bb4..6442904 100644
Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
index 17987b7..6a3960f 100644
Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index 09d4391..da824a2 100644
Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index d5f1c8d..3edf1d3 100644
Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 4d6372e..c75218e 100644
Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..e5b0636
--- /dev/null
+++ b/android/app/src/main/res/values/colors.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="ic_launcher_background">#263F5F</color>
+</resources>
\ No newline at end of file
diff --git a/assets/launcher_icon.png b/assets/launcher_icon.png
new file mode 100644
index 0000000..b2f8cb5
Binary files /dev/null and b/assets/launcher_icon.png differ
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index c817d25..99f978d 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -427,7 +427,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
@@ -484,7 +484,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
index d36b1fa..d0d98aa 100644
--- a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,122 +1 @@
-{
- "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" : "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" : "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"
- }
-}
+{"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/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
index dc9ada4..3e961bc 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
index 7353c41..1548213 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
index 797d452..3d8f988 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
index 6ed2d93..c0181da 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
index 4cd7b00..2afb0a5 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
index fe73094..adb6647 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
index 321773c..dc211c7 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
index 797d452..3d8f988 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
index 502f463..4d0ce3a 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
index 0ec3034..96e2157 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
new file mode 100644
index 0000000..3c713ef
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
new file mode 100644
index 0000000..ccb06d5
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
new file mode 100644
index 0000000..064b88c
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
new file mode 100644
index 0000000..0d76ab2
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
index 0ec3034..96e2157 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
index e9f5fea..19d4651 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
new file mode 100644
index 0000000..6442904
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
new file mode 100644
index 0000000..3edf1d3
Binary files /dev/null and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
index 84ac32a..c17cf40 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
index 8953cba..50ba330 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ
diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
index 0467bf1..167ab80 100644
Binary files a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index dc93cb3..9d9e97a 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -13,7 +13,7 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
- <string>monero_light_wallet</string>
+ <string>skylight</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb
index 60345b8..e1e96e8 100644
--- a/lib/l10n/app_en.arb
+++ b/lib/l10n/app_en.arb
@@ -10,7 +10,7 @@
"pending": "Pending",
"fieldEmptyError": "This field cannot be empty.",
"welcomeTitle": "Welcome!",
- "welcomeDescription": "Light Monero Wallet is one of the simplest Monero wallets. We will help you set up a wallet and connect to a server.",
+ "welcomeDescription": "Skylight is one of the simplest Monero wallets. We will help you set up a wallet and connect to a server.",
"welcomeGetStarted": "Get Started",
"restoreWarningTitle": "Restore Warning",
"restoreWarningDescription": "Are you sure? The server that you connect to will be able to see your past and future Monero transaction history.",
diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart
index 24b0cd1..27c85ce 100644
--- a/lib/l10n/app_localizations.dart
+++ b/lib/l10n/app_localizations.dart
@@ -161,7 +161,7 @@ abstract class AppLocalizations {
/// No description provided for @welcomeDescription.
///
/// In en, this message translates to:
- /// **'Light Monero Wallet is one of the simplest Monero wallets. We will help you set up a wallet and connect to a server.'**
+ /// **'Skylight is one of the simplest Monero wallets. We will help you set up a wallet and connect to a server.'**
String get welcomeDescription;
/// No description provided for @welcomeGetStarted.
diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart
index eea20da..20e2243 100644
--- a/lib/l10n/app_localizations_en.dart
+++ b/lib/l10n/app_localizations_en.dart
@@ -40,7 +40,7 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get welcomeDescription =>
- 'Light Monero Wallet is one of the simplest Monero wallets. We will help you set up a wallet and connect to a server.';
+ 'Skylight is one of the simplest Monero wallets. We will help you set up a wallet and connect to a server.';
@override
String get welcomeGetStarted => 'Get Started';
diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart
index 8f72070..499d3e0 100644
--- a/lib/l10n/app_localizations_pt.dart
+++ b/lib/l10n/app_localizations_pt.dart
@@ -40,7 +40,7 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get welcomeDescription =>
- 'A Light Monero Wallet é uma das carteiras Monero mais simples. Nós o ajudaremos a configurar uma carteira e se conectar a um servidor.';
+ 'A Skylight é uma das mais simples carteiras de Monero. Nós o ajudaremos a configurar uma carteira e se conectar à um servidor.';
@override
String get welcomeGetStarted => 'Começar';
diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb
index 0dae9c3..68c23f4 100644
--- a/lib/l10n/app_pt.arb
+++ b/lib/l10n/app_pt.arb
@@ -10,7 +10,7 @@
"pending": "Pendente",
"fieldEmptyError": "Este campo não pode ficar vazio.",
"welcomeTitle": "Bem-vindo!",
- "welcomeDescription": "A Light Monero Wallet é uma das carteiras Monero mais simples. Nós o ajudaremos a configurar uma carteira e se conectar a um servidor.",
+ "welcomeDescription": "A Skylight é uma das mais simples carteiras de Monero. Nós o ajudaremos a configurar uma carteira e se conectar à um servidor.",
"welcomeGetStarted": "Começar",
"restoreWarningTitle": "Aviso de Restauração",
"restoreWarningDescription": "Você tem certeza? O servidor ao qual você se conectar poderá ver seu histórico de transações Monero passadas e futuras.",
diff --git a/lib/main.dart b/lib/main.dart
index 4cd6be9..27f314f 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,33 +1,35 @@
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/periodic_tasks.dart';
-import 'package:monero_light_wallet/screens/unlock.dart';
-import 'package:monero_light_wallet/services/shared_preferences_service.dart';
+import 'package:skylight_wallet/periodic_tasks.dart';
+import 'package:skylight_wallet/screens/privacy_policy.dart';
+import 'package:skylight_wallet/screens/terms_of_service.dart';
+import 'package:skylight_wallet/screens/unlock.dart';
+import 'package:skylight_wallet/services/shared_preferences_service.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:timeago/timeago.dart' as timeago;
-import 'package:monero_light_wallet/models/fiat_rate_model.dart';
-import 'package:monero_light_wallet/screens/confirm_send.dart';
-import 'package:monero_light_wallet/screens/lws_details.dart';
-import 'package:monero_light_wallet/screens/lws_keys.dart';
-import 'package:monero_light_wallet/screens/scan_qr.dart';
-import 'package:monero_light_wallet/screens/secret_keys.dart';
-import 'package:monero_light_wallet/services/tor_service.dart';
-import 'package:monero_light_wallet/models/language_model.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/screens/settings.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/screens/connection_setup.dart';
-import 'package:monero_light_wallet/screens/generate_seed.dart';
-import 'package:monero_light_wallet/screens/receive.dart';
-import 'package:monero_light_wallet/screens/send.dart';
-import 'package:monero_light_wallet/screens/tx_details.dart';
-import 'package:monero_light_wallet/screens/create_wallet.dart';
-import 'package:monero_light_wallet/screens/restore_wallet.dart';
-import 'package:monero_light_wallet/screens/restore_warning.dart';
-import 'package:monero_light_wallet/screens/wallet_home.dart';
-import 'package:monero_light_wallet/screens/welcome.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/models/fiat_rate_model.dart';
+import 'package:skylight_wallet/screens/confirm_send.dart';
+import 'package:skylight_wallet/screens/lws_details.dart';
+import 'package:skylight_wallet/screens/lws_keys.dart';
+import 'package:skylight_wallet/screens/scan_qr.dart';
+import 'package:skylight_wallet/screens/secret_keys.dart';
+import 'package:skylight_wallet/services/tor_service.dart';
+import 'package:skylight_wallet/models/language_model.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/screens/settings.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/screens/connection_setup.dart';
+import 'package:skylight_wallet/screens/generate_seed.dart';
+import 'package:skylight_wallet/screens/receive.dart';
+import 'package:skylight_wallet/screens/send.dart';
+import 'package:skylight_wallet/screens/tx_details.dart';
+import 'package:skylight_wallet/screens/create_wallet.dart';
+import 'package:skylight_wallet/screens/restore_wallet.dart';
+import 'package:skylight_wallet/screens/restore_warning.dart';
+import 'package:skylight_wallet/screens/wallet_home.dart';
+import 'package:skylight_wallet/screens/welcome.dart';
+import 'package:skylight_wallet/util/logging.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
@@ -102,7 +104,7 @@ class MyApp extends StatelessWidget {
}
return MaterialApp(
- title: 'Monero Light Wallet',
+ title: 'Skylight Monero Wallet',
localizationsDelegates:
AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
@@ -131,6 +133,8 @@ class MyApp extends StatelessWidget {
'/scan_qr': (context) => ScanQrScreen(),
'/receive': (context) => ReceiveScreen(),
'/tx_details': (context) => TxDetailsScreen(),
+ '/terms_of_service': (context) => TermsOfService(),
+ '/privacy_policy': (context) => PrivacyPolicy(),
},
);
}
@@ -141,7 +145,7 @@ class MyApp extends StatelessWidget {
}
return MaterialApp(
- title: 'Monero Light Wallet',
+ title: 'Skylight Monero Wallet',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
),
diff --git a/lib/models/fiat_rate_model.dart b/lib/models/fiat_rate_model.dart
index 6ac9b07..033674b 100644
--- a/lib/models/fiat_rate_model.dart
+++ b/lib/models/fiat_rate_model.dart
@@ -1,10 +1,10 @@
import 'dart:async';
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/services/shared_preferences_service.dart';
-import 'package:monero_light_wallet/services/tor_service.dart';
-import 'package:monero_light_wallet/util/logging.dart';
-import 'package:monero_light_wallet/util/socks_http.dart';
+import 'package:skylight_wallet/services/shared_preferences_service.dart';
+import 'package:skylight_wallet/services/tor_service.dart';
+import 'package:skylight_wallet/util/logging.dart';
+import 'package:skylight_wallet/util/socks_http.dart';
class FiatRateModel with ChangeNotifier {
double? _rate;
diff --git a/lib/models/language_model.dart b/lib/models/language_model.dart
index 2c5148e..2aedb10 100644
--- a/lib/models/language_model.dart
+++ b/lib/models/language_model.dart
@@ -1,7 +1,7 @@
import 'dart:ui';
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/services/shared_preferences_service.dart';
+import 'package:skylight_wallet/services/shared_preferences_service.dart';
class LanguageModel with ChangeNotifier {
String _language = PlatformDispatcher.instance.locale.languageCode;
diff --git a/lib/models/wallet_model.dart b/lib/models/wallet_model.dart
index 59c6652..82b9680 100644
--- a/lib/models/wallet_model.dart
+++ b/lib/models/wallet_model.dart
@@ -14,14 +14,14 @@ import 'package:monero/monero.dart' as monero;
import 'package:monero/src/monero.dart';
import 'package:monero/src/wallet2.dart';
-import 'package:monero_light_wallet/consts.dart';
-import 'package:monero_light_wallet/services/shared_preferences_service.dart';
-import 'package:monero_light_wallet/services/tor_service.dart';
-import 'package:monero_light_wallet/util/formatting.dart';
-import 'package:monero_light_wallet/util/height.dart';
-import 'package:monero_light_wallet/util/logging.dart';
-import 'package:monero_light_wallet/util/wallet.dart';
-import 'package:monero_light_wallet/util/wallet_password.dart';
+import 'package:skylight_wallet/consts.dart';
+import 'package:skylight_wallet/services/shared_preferences_service.dart';
+import 'package:skylight_wallet/services/tor_service.dart';
+import 'package:skylight_wallet/util/formatting.dart';
+import 'package:skylight_wallet/util/height.dart';
+import 'package:skylight_wallet/util/logging.dart';
+import 'package:skylight_wallet/util/wallet.dart';
+import 'package:skylight_wallet/util/wallet_password.dart';
String generateHexString(int length) {
final Random random = Random.secure();
diff --git a/lib/periodic_tasks.dart b/lib/periodic_tasks.dart
index 2a3d22c..7fc808b 100644
--- a/lib/periodic_tasks.dart
+++ b/lib/periodic_tasks.dart
@@ -1,10 +1,10 @@
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/services/notifications_service.dart';
-import 'package:monero_light_wallet/services/shared_preferences_service.dart';
-import 'package:monero_light_wallet/services/tor_service.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/services/notifications_service.dart';
+import 'package:skylight_wallet/services/shared_preferences_service.dart';
+import 'package:skylight_wallet/services/tor_service.dart';
+import 'package:skylight_wallet/util/logging.dart';
import 'package:workmanager/workmanager.dart';
-import 'package:monero_light_wallet/consts.dart' as consts;
+import 'package:skylight_wallet/consts.dart' as consts;
class PeriodicTasks {
static const txNotifier = 'txNotifier';
diff --git a/lib/screens/confirm_send.dart b/lib/screens/confirm_send.dart
index 06d2c37..69cd0dc 100644
--- a/lib/screens/confirm_send.dart
+++ b/lib/screens/confirm_send.dart
@@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
// ignore: implementation_imports
import 'package:monero/src/monero.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/fiat_rate_model.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/util/formatting.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/fiat_rate_model.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/util/formatting.dart';
+import 'package:skylight_wallet/util/logging.dart';
import 'package:provider/provider.dart';
class ConfirmSendScreenArgs {
@@ -256,9 +256,10 @@ class _ConfirmSendScreenState extends State<ConfirmSendScreen> {
),
],
),
- ElevatedButton(
+ FilledButton.icon(
onPressed: _confirmSend,
- child: Stack(
+ icon: Icon(Icons.arrow_outward_rounded),
+ label: Stack(
alignment: Alignment.center,
children: [
if (!_isLoading)
diff --git a/lib/screens/connection_setup.dart b/lib/screens/connection_setup.dart
index 06545b3..5fc1206 100644
--- a/lib/screens/connection_setup.dart
+++ b/lib/screens/connection_setup.dart
@@ -1,12 +1,12 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-import 'package:monero_light_wallet/util/socks_http.dart';
+import 'package:skylight_wallet/util/socks_http.dart';
import 'package:provider/provider.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/services/tor_service.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/services/tor_service.dart';
class ConnectionSetupScreen extends StatefulWidget {
const ConnectionSetupScreen({super.key});
@@ -252,7 +252,7 @@ class _ConnectionSetupScreenState extends State<ConnectionSetupScreen> {
),
),
if (_connectionSuccess)
- ElevatedButton(
+ FilledButton(
onPressed: _saveConnection,
child: Text(i18n.connectionSetupContinueButton),
),
diff --git a/lib/screens/create_wallet.dart b/lib/screens/create_wallet.dart
index b88a55d..55d0d58 100644
--- a/lib/screens/create_wallet.dart
+++ b/lib/screens/create_wallet.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
class CreateWalletScreenArgs {
String toastMessage;
@@ -39,7 +39,7 @@ class _CreateWalletScreenState extends State<CreateWalletScreen> {
final i18n = AppLocalizations.of(context)!;
return Scaffold(
- appBar: AppBar(title: Text('Monero Light Wallet')),
+ appBar: AppBar(title: Text('Skylight Monero Wallet')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
@@ -66,7 +66,7 @@ class _CreateWalletScreenState extends State<CreateWalletScreen> {
Navigator.pushNamed(context, '/restore_warning'),
child: Text(i18n.createWalletRestoreExistingButton),
),
- ElevatedButton(
+ FilledButton(
onPressed: () => Navigator.pushNamedAndRemoveUntil(
context,
'/generate_seed',
diff --git a/lib/screens/generate_seed.dart b/lib/screens/generate_seed.dart
index f25dc4d..21b7d55 100644
--- a/lib/screens/generate_seed.dart
+++ b/lib/screens/generate_seed.dart
@@ -1,11 +1,11 @@
import 'dart:async';
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/screens/create_wallet.dart';
-import 'package:monero_light_wallet/util/height.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/screens/create_wallet.dart';
+import 'package:skylight_wallet/util/height.dart';
+import 'package:skylight_wallet/util/logging.dart';
import 'package:provider/provider.dart';
class GenerateSeedScreen extends StatefulWidget {
@@ -114,7 +114,7 @@ class _GenerateSeedScreenState extends State<GenerateSeedScreen> {
}).toList(),
),
if (_seed.isNotEmpty && _restoreHeight > 0)
- ElevatedButton(
+ FilledButton(
onPressed: () => Navigator.pushNamedAndRemoveUntil(
context,
'/lws_details',
diff --git a/lib/screens/lws_details.dart b/lib/screens/lws_details.dart
index ed0d4e4..cb6108c 100644
--- a/lib/screens/lws_details.dart
+++ b/lib/screens/lws_details.dart
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
import 'package:provider/provider.dart';
class LwsDetailsScreen extends StatelessWidget {
@@ -98,7 +98,7 @@ class LwsDetailsScreen extends StatelessWidget {
),
],
),
- ElevatedButton(
+ FilledButton(
onPressed: () => Navigator.pushNamedAndRemoveUntil(
context,
'/wallet_home',
diff --git a/lib/screens/lws_keys.dart b/lib/screens/lws_keys.dart
index 11a410e..657611b 100644
--- a/lib/screens/lws_keys.dart
+++ b/lib/screens/lws_keys.dart
@@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
class LwsKeysScreen extends StatefulWidget {
const LwsKeysScreen({super.key});
diff --git a/lib/screens/privacy_policy.dart b/lib/screens/privacy_policy.dart
new file mode 100644
index 0000000..ab15d3b
--- /dev/null
+++ b/lib/screens/privacy_policy.dart
@@ -0,0 +1,132 @@
+import 'package:flutter/material.dart';
+
+class BulletList extends StatelessWidget {
+ final List<String> items;
+ const BulletList({super.key, required this.items});
+
+ Widget _buildBullet(String text) {
+ return Padding(
+ padding: EdgeInsets.symmetric(vertical: 4.0),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Padding(
+ padding: EdgeInsets.only(top: 6.0, right: 8.0),
+ child: Icon(Icons.circle, size: 8),
+ ),
+ Expanded(child: Text(text, style: TextStyle(fontSize: 14))),
+ ],
+ ),
+ );
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return Padding(
+ padding: EdgeInsets.only(bottom: 10.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: items.map(_buildBullet).toList(),
+ ),
+ );
+ }
+}
+
+class PrivacyPolicy extends StatelessWidget {
+ const PrivacyPolicy({super.key});
+
+ TextStyle get headingStyle =>
+ TextStyle(fontSize: 20, fontWeight: FontWeight.bold);
+
+ TextStyle get subheadingStyle =>
+ TextStyle(fontSize: 16, fontWeight: FontWeight.w600);
+
+ TextStyle get bodyStyle => TextStyle(fontSize: 14, height: 1.4);
+
+ TextStyle get monospaceStyle =>
+ TextStyle(fontSize: 13, fontFamily: 'monospace', height: 1.4);
+
+ Widget sectionHeading(String text) => Padding(
+ padding: EdgeInsets.only(top: 18.0, bottom: 6.0),
+ child: Text(text, style: subheadingStyle),
+ );
+
+ Widget paragraph(String text) => Padding(
+ padding: EdgeInsets.only(bottom: 10.0),
+ child: Text(text, style: bodyStyle),
+ );
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(title: Text('Privacy Policy')),
+ body: SafeArea(
+ child: SingleChildScrollView(
+ padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 20.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text('Updated 2025-09-19', style: bodyStyle),
+ SizedBox(height: 32),
+
+ paragraph(
+ 'MAGIC Grants (“we”) respect your privacy and are committed to protecting it through our compliance with this policy.',
+ ),
+ paragraph(
+ 'This policy applies to information we collect through your direct use of the Skylight Wallet app. It does not apply to information we collect by any other means. This policy is subject to change, so make sure to periodically review this policy.',
+ ),
+
+ sectionHeading('Information We Do Not Collect'),
+ paragraph(
+ 'We do not collect any usage data. The app does not send any private keys, including private spend keys, mnemonic seeds, and private view keys to MAGIC Grants. The app does not connect to any servers run by MAGIC Grants.',
+ ),
+ paragraph(
+ 'You do not need to make an account with MAGIC Grants to use the app.',
+ ),
+ paragraph(
+ 'MAGIC Grants may be able to review information provided by the App Store that you are using, if you download this app from an App Store.',
+ ),
+
+ sectionHeading('Information You May Share with Third Parties'),
+ paragraph(
+ 'When using Skylight Wallet, you need to specify a server to connect to. This will share your cryptocurrency address and private view key with this server. You will also share transactions you create with this server. This is necessary for the core functionality of the wallet.',
+ ),
+ paragraph(
+ 'MAGIC Grants does not provide a default server. You must research the server that you want to use and any terms of service or privacy policies associated with that server before you connect to that server.',
+ ),
+ paragraph(
+ 'You may choose to avoid using a third party by connecting to a server that you operate.',
+ ),
+
+ sectionHeading('Other Connections to Third Parties'),
+ paragraph(
+ 'The app connects to services provided by third parties for your convenience. These include:',
+ ),
+ BulletList(
+ items: [
+ 'Block explorers, for viewing information about your transactions.',
+ 'Price quotes, for displaying richer information about your transactions.',
+ 'Cryptocurrency nodes, for the app to learn information about the cryptocurrency network’s status.',
+ ],
+ ),
+ paragraph(
+ 'Within the app, connections to these services are protected automatically with Tor. However, MAGIC Grants does not warrant that these connections are bug-free, or that these protections are fit for a particular purpose.',
+ ),
+ paragraph(
+ 'Please be mindful of the third party connections that you make when using the App. The App may contain links to websites that, when clicked, open outside of Tor in your default web browser.',
+ ),
+
+ sectionHeading('When You Contact Us'),
+ paragraph(
+ 'There is no mechanism for contacting us within the application. If you contact us through a different means, then we may learn and retain information about you, such as your email address, account identifier, and the contents of your communications.',
+ ),
+ paragraph(
+ 'Before sending any app logs, make sure to review their contents for any potentially sensitive information. Remove this information before sending any information to us.',
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/screens/receive.dart b/lib/screens/receive.dart
index 2f22096..27868a9 100644
--- a/lib/screens/receive.dart
+++ b/lib/screens/receive.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/services/shared_preferences_service.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/services/shared_preferences_service.dart';
import 'package:provider/provider.dart';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:share_plus/share_plus.dart';
@@ -121,7 +121,7 @@ class _ReceiveScreenState extends State<ReceiveScreen> {
spacing: 20,
mainAxisAlignment: MainAxisAlignment.center,
children: [
- ElevatedButton.icon(
+ FilledButton.icon(
onPressed: () =>
SharePlus.instance.share(ShareParams(text: _address)),
icon: Icon(Icons.share),
diff --git a/lib/screens/restore_wallet.dart b/lib/screens/restore_wallet.dart
index dc50893..0f9f1db 100644
--- a/lib/screens/restore_wallet.dart
+++ b/lib/screens/restore_wallet.dart
@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/util/logging.dart';
import 'package:provider/provider.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
class RestoreWalletScreen extends StatefulWidget {
const RestoreWalletScreen({super.key});
@@ -72,7 +72,7 @@ class _RestoreWalletScreenState extends State<RestoreWalletScreen> {
final i18n = AppLocalizations.of(context)!;
return Scaffold(
- appBar: AppBar(title: Text('Monero Light Wallet')),
+ appBar: AppBar(title: Text('Skylight Monero Wallet')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
@@ -133,7 +133,7 @@ class _RestoreWalletScreenState extends State<RestoreWalletScreen> {
onPressed: () => Navigator.pop(context),
child: Text(i18n.cancel),
),
- ElevatedButton(
+ FilledButton(
onPressed: _restore,
child: Text(i18n.restoreWalletRestoreButton),
),
diff --git a/lib/screens/restore_warning.dart b/lib/screens/restore_warning.dart
index fb23198..96f76ba 100644
--- a/lib/screens/restore_warning.dart
+++ b/lib/screens/restore_warning.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
class RestoreWarningScreen extends StatelessWidget {
const RestoreWarningScreen({super.key});
@@ -9,7 +9,7 @@ class RestoreWarningScreen extends StatelessWidget {
final i18n = AppLocalizations.of(context)!;
return Scaffold(
- appBar: AppBar(title: Text('Monero Light Wallet')),
+ appBar: AppBar(title: Text('Skylight Monero Wallet')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
@@ -36,7 +36,7 @@ class RestoreWarningScreen extends StatelessWidget {
Navigator.pushNamed(context, '/restore_wallet'),
child: Text(i18n.restoreWarningContinueButton),
),
- ElevatedButton(
+ FilledButton(
onPressed: () => Navigator.pop(context),
child: Text(i18n.cancel),
),
diff --git a/lib/screens/scan_qr.dart b/lib/screens/scan_qr.dart
index 77b313a..17d4749 100644
--- a/lib/screens/scan_qr.dart
+++ b/lib/screens/scan_qr.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:mobile_scanner/mobile_scanner.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/screens/send.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/screens/send.dart';
import 'package:provider/provider.dart';
class ScanQrScreen extends StatefulWidget {
diff --git a/lib/screens/secret_keys.dart b/lib/screens/secret_keys.dart
index eee205c..46e6996 100644
--- a/lib/screens/secret_keys.dart
+++ b/lib/screens/secret_keys.dart
@@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
class SecretKeysScreen extends StatelessWidget {
const SecretKeysScreen({super.key});
diff --git a/lib/screens/send.dart b/lib/screens/send.dart
index be96c36..acc28ba 100644
--- a/lib/screens/send.dart
+++ b/lib/screens/send.dart
@@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/screens/confirm_send.dart';
-import 'package:monero_light_wallet/widgets/monero_amount.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/screens/confirm_send.dart';
+import 'package:skylight_wallet/widgets/monero_amount.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
class SendScreenArgs {
String destinationAddress;
@@ -199,10 +199,6 @@ class _SendScreenState extends State<SendScreen> {
mainAxisAlignment: MainAxisAlignment.center,
spacing: 20,
children: [
- // Text(
- // i18n.sendTitle,
- // style: Theme.of(context).textTheme.headlineMedium,
- // ),
TextField(
controller: _destinationAddressController,
maxLines: null,
@@ -286,9 +282,10 @@ class _SendScreenState extends State<SendScreen> {
onPressed: () => Navigator.pop(context),
child: Text(i18n.cancel),
),
- ElevatedButton(
+ FilledButton.icon(
onPressed: _send,
- child: Stack(
+ icon: Icon(Icons.arrow_outward_rounded),
+ label: Stack(
alignment: Alignment.center,
children: [
if (!_isLoading)
diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart
index 4358ae1..024a78a 100644
--- a/lib/screens/settings.dart
+++ b/lib/screens/settings.dart
@@ -1,17 +1,17 @@
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/util/logging.dart';
import 'package:provider/provider.dart';
import 'package:local_auth/local_auth.dart';
-import 'package:monero_light_wallet/consts.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/fiat_rate_model.dart';
-import 'package:monero_light_wallet/models/language_model.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/periodic_tasks.dart';
-import 'package:monero_light_wallet/services/notifications_service.dart';
-import 'package:monero_light_wallet/services/shared_preferences_service.dart';
-import 'package:monero_light_wallet/widgets/wallet_navigation_bar.dart';
+import 'package:skylight_wallet/consts.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/fiat_rate_model.dart';
+import 'package:skylight_wallet/models/language_model.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/periodic_tasks.dart';
+import 'package:skylight_wallet/services/notifications_service.dart';
+import 'package:skylight_wallet/services/shared_preferences_service.dart';
+import 'package:skylight_wallet/widgets/wallet_navigation_bar.dart';
class SettingsScreen extends StatefulWidget {
const SettingsScreen({super.key});
@@ -385,6 +385,16 @@ class _SettingsScreenState extends State<SettingsScreen> {
foregroundColor: WidgetStateProperty.all(Colors.red),
),
),
+ Spacer(),
+ TextButton(
+ onPressed: () =>
+ Navigator.pushNamed(context, '/terms_of_service'),
+ child: Text('Terms of Service'),
+ ),
+ TextButton(
+ onPressed: () => Navigator.pushNamed(context, '/privacy_policy'),
+ child: Text('Privacy Policy'),
+ ),
],
),
),
diff --git a/lib/screens/terms_of_service.dart b/lib/screens/terms_of_service.dart
new file mode 100644
index 0000000..40b5c0a
--- /dev/null
+++ b/lib/screens/terms_of_service.dart
@@ -0,0 +1,144 @@
+import 'package:flutter/material.dart';
+
+class TermsOfService extends StatelessWidget {
+ const TermsOfService({super.key});
+
+ TextStyle get headingStyle =>
+ TextStyle(fontSize: 20, fontWeight: FontWeight.bold);
+
+ TextStyle get subheadingStyle =>
+ TextStyle(fontSize: 16, fontWeight: FontWeight.w600);
+
+ TextStyle get bodyStyle => TextStyle(fontSize: 14, height: 1.4);
+
+ TextStyle get monospaceStyle =>
+ TextStyle(fontSize: 13, fontFamily: 'monospace', height: 1.4);
+
+ Widget sectionHeading(String text) => Padding(
+ padding: EdgeInsets.only(top: 18.0, bottom: 6.0),
+ child: Text(text, style: subheadingStyle),
+ );
+
+ Widget paragraph(String text) => Padding(
+ padding: EdgeInsets.only(bottom: 10.0),
+ child: Text(text, style: bodyStyle),
+ );
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(title: Text('Terms of Service')),
+ body: SafeArea(
+ child: SingleChildScrollView(
+ padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 20.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text('Updated 2025-09-19', style: bodyStyle),
+ SizedBox(height: 12),
+
+ sectionHeading('Acceptance'),
+ paragraph(
+ 'These Terms of Service (ToS) are entered into by and between You and MAGIC Grants, a Colorado nonprofit corporation (“we” or “us”). These terms govern your access to and use of Skylight Wallet (the “App”).',
+ ),
+ paragraph(
+ 'Please read the Terms of Service carefully before you start to use the App. By using the App you accept and agree to be bound and abide by these Terms of Service and our Privacy Policy. If you do not agree to these Terms of Service or the Privacy Policy, then you must not access or use the App.',
+ ),
+
+ sectionHeading('Updates to the Terms of Service'),
+ paragraph(
+ 'We may revise and update these Terms of Service from time to time in our sole discretion. All changes are effective immediately when we post them, and apply to all access to and use of the App thereafter.',
+ ),
+ paragraph(
+ 'Your continued use of the App following the posting of revised Terms of Service means that you accept and agree to the changes. You are expected to check this page from time to time so you are aware of any changes, as they are binding on you.',
+ ),
+
+ sectionHeading('All MIT License Terms Apply'),
+ paragraph(
+ 'The App is released under the MIT open source license permission notice, incorporated below:',
+ ),
+
+ Container(
+ width: double.infinity,
+ // padding: EdgeInsets.symmetric(vertical: 12),
+ margin: EdgeInsets.only(bottom: 10.0),
+ decoration: BoxDecoration(
+ // color: Theme.of(
+ // context,
+ // ).colorScheme.surfaceVariant.withOpacity(0.08),
+ borderRadius: BorderRadius.circular(6.0),
+ ),
+ child: Text(
+ 'THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.',
+ style: monospaceStyle,
+ ),
+ ),
+
+ sectionHeading('Security'),
+ paragraph(
+ 'You are fully responsible for the security of your funds when using the App. You agree that MAGIC Grants is not liable for your loss of funds, including due to any bugs that are present in the application. You agree that MAGIC Grants has not warranted that the App is secure for your desired purpose. You agree that MAGIC Grants has not claimed that the App is bug-free.',
+ ),
+ paragraph(
+ 'You acknowledge that MAGIC Grants is not responsible for any loss of funds or other harms that could arise from related networks and software, including but not limited to the cryptocurrency networks that you connect to.',
+ ),
+
+ sectionHeading('No Custody by MAGIC Grants'),
+ paragraph(
+ 'MAGIC Grants, the developer of this App, does not have custody of your funds while you are using the App. Skylight Wallet is a self-custody wallet. MAGIC Grants does not transmit funds for You. MAGIC Grants is not an exchange or money services business.',
+ ),
+ paragraph(
+ 'The App does not store cryptocurrencies, including Monero, Litecoin or Bitcoin. Cryptocurrencies exist only by virtue of the ownership record maintained in their respective networks. Any transfer of title in cryptocurrency occurs within a decentralized cryptocurrency network, and not in the App.',
+ ),
+
+ sectionHeading('Restricted Use'),
+ paragraph(
+ 'You may not use the App if it is prohibited in your jurisdiction. You may not use the App in connection with an illegal purpose. You are responsible for compliance with local laws and regulations.',
+ ),
+
+ sectionHeading('Third Party Services'),
+ paragraph(
+ 'The App includes links to other sites and resources provided by third parties, and the App incorporates information provided by third parties for convenience. MAGIC Grants does not guarantee that these sites, resources, and information are accurate or fit for Your desired purpose. We have no control over the contents of those sites or resources, and accept no responsibility for them or for any loss or damage that may arise from your use of them. If you decide to access any of the third-party services linked in this App, you do so entirely at your own risk and subject to the terms and conditions of use for such Apps.',
+ ),
+
+ sectionHeading('Tax Matters'),
+ paragraph(
+ 'The users of the App are solely responsible in determining what, if any, taxes apply to their cryptocurrency transactions. We are not responsible for determining any taxes that apply to such transactions.',
+ ),
+
+ sectionHeading('Indemnification'),
+ paragraph(
+ "You agree to defend, indemnify, and hold harmless MAGIC Grants, its affiliates, licensors, and service providers, and its and their respective officers, directors, employees, contractors, agents, licensors, suppliers, successors, and assigns from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses, or fees (including reasonable attorneys' fees) arising out of or relating to your violation of these Terms of Service or your use of the App, including, but not limited to, any use of the App's content, services, and products other than as expressly authorized in these Terms of Service, or your use of any information obtained from the App.",
+ ),
+
+ sectionHeading('Governing Law and Jurisdiction'),
+ paragraph(
+ 'All matters relating to the App and these Terms of Service, and any dispute or claim arising therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the internal laws of the State of Colorado without giving effect to any choice or conflict of law provision or rule (whether of the State of Colorado or any other jurisdiction).',
+ ),
+ paragraph(
+ 'Any legal suit, action, or proceeding arising out of, or related to, these Terms of Service or the App shall be instituted exclusively in the federal courts of the United States or the courts of the State of Colorado, although we retain the right to bring any suit, action, or proceeding against you for breach of these Terms of Service in your country of residence or any other relevant country. You waive any and all objections to the exercise of jurisdiction over you by such courts and to venue in such courts.',
+ ),
+
+ sectionHeading('Arbitration'),
+ paragraph(
+ 'At our sole discretion, we may require You to submit any disputes arising from these Terms of Service or use of the App, including disputes arising from or concerning their interpretation, violation, invalidity, non-performance, or termination, to final and binding arbitration under the Rules of Arbitration of the American Arbitration Association applying Colorado law.',
+ ),
+
+ sectionHeading('Waiver and Severability'),
+ paragraph(
+ 'No waiver by MAGIC Grants of any term or condition set out in these Terms of Service shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of MAGIC Grants to assert a right or provision under these Terms of Service shall not constitute a waiver of such right or provision.',
+ ),
+ paragraph(
+ 'If any provision of these Terms of Service is held by a court or other tribunal of competent jurisdiction to be invalid, illegal, or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of the Terms of Service will continue in full force and effect.',
+ ),
+
+ sectionHeading('Entire Agreement'),
+ paragraph(
+ 'The Terms of Service and our Privacy Policy constitute the sole and entire agreement between You and MAGIC Grants regarding the App and supersede all prior and contemporaneous understandings, agreements, representations, and warranties, both written and oral, regarding the App.',
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/screens/tx_details.dart b/lib/screens/tx_details.dart
index a5a3ce1..a291f42 100644
--- a/lib/screens/tx_details.dart
+++ b/lib/screens/tx_details.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:intl/intl.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
class TxDetailsScreen extends StatelessWidget {
const TxDetailsScreen({super.key});
diff --git a/lib/screens/unlock.dart b/lib/screens/unlock.dart
index 1bf154a..81f3100 100644
--- a/lib/screens/unlock.dart
+++ b/lib/screens/unlock.dart
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:local_auth/local_auth.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/util/logging.dart';
class UnlockScreen extends StatefulWidget {
const UnlockScreen({super.key});
@@ -50,7 +50,7 @@ class _UnlockScreenState extends State<UnlockScreen> {
final i18n = AppLocalizations.of(context)!;
return Scaffold(
- appBar: AppBar(title: Text('Monero Light Wallet')),
+ appBar: AppBar(title: Text('Skylight Monero Wallet')),
body: SafeArea(
child: Center(
child: FilledButton.icon(
diff --git a/lib/screens/wallet_home.dart b/lib/screens/wallet_home.dart
index 681f0d8..67d5d30 100644
--- a/lib/screens/wallet_home.dart
+++ b/lib/screens/wallet_home.dart
@@ -1,18 +1,18 @@
import 'dart:math' as math;
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
-import 'package:monero_light_wallet/models/fiat_rate_model.dart';
-import 'package:monero_light_wallet/services/tor_service.dart';
-import 'package:monero_light_wallet/widgets/fiat_amount.dart';
-import 'package:monero_light_wallet/widgets/monero_amount.dart';
-import 'package:monero_light_wallet/widgets/status_icon.dart';
+import 'package:skylight_wallet/models/fiat_rate_model.dart';
+import 'package:skylight_wallet/services/tor_service.dart';
+import 'package:skylight_wallet/widgets/fiat_amount.dart';
+import 'package:skylight_wallet/widgets/monero_amount.dart';
+import 'package:skylight_wallet/widgets/status_icon.dart';
import 'package:provider/provider.dart';
import 'package:skeletonizer/skeletonizer.dart';
import 'package:timeago/timeago.dart' as timeago;
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
-import 'package:monero_light_wallet/consts.dart' as consts;
-import 'package:monero_light_wallet/widgets/wallet_navigation_bar.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/consts.dart' as consts;
+import 'package:skylight_wallet/widgets/wallet_navigation_bar.dart';
enum LwsConnectionStatus { disconnected, connecting, connected }
@@ -121,8 +121,8 @@ class _WalletHomeScreenState extends State<WalletHomeScreen> {
right: 0,
child: Column(
spacing: 10,
+ // TODO: this can be made better
children: [
- // TODO: this can be made better
if (!wallet.usingTor &&
lwsConnectionIconStatus ==
StatusIconStatus.complete)
@@ -226,7 +226,7 @@ class _WalletHomeScreenState extends State<WalletHomeScreen> {
spacing: 10,
mainAxisAlignment: MainAxisAlignment.center,
children: [
- ElevatedButton.icon(
+ FilledButton.icon(
style: ButtonStyle(),
label: Text(i18n.homeReceive),
icon: Transform.rotate(
@@ -236,7 +236,7 @@ class _WalletHomeScreenState extends State<WalletHomeScreen> {
onPressed: () =>
Navigator.pushNamed(context, '/receive'),
),
- ElevatedButton.icon(
+ FilledButton.icon(
label: Text(i18n.homeSend),
icon: Icon(Icons.arrow_outward_rounded),
onPressed: () => Navigator.pushNamed(context, '/send'),
diff --git a/lib/screens/welcome.dart b/lib/screens/welcome.dart
index 8814724..a3ee4c5 100644
--- a/lib/screens/welcome.dart
+++ b/lib/screens/welcome.dart
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
-import 'package:monero_light_wallet/models/wallet_model.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/models/wallet_model.dart';
import 'package:provider/provider.dart';
class WelcomeScreen extends StatefulWidget {
@@ -41,7 +41,7 @@ class _WalletHomeScreenState extends State<WelcomeScreen> {
final i18n = AppLocalizations.of(context)!;
return Scaffold(
- appBar: AppBar(title: Text('Monero Light Wallet')),
+ appBar: AppBar(title: Text('Skylight Monero Wallet')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
@@ -59,7 +59,7 @@ class _WalletHomeScreenState extends State<WelcomeScreen> {
style: Theme.of(context).textTheme.bodyLarge,
),
),
- ElevatedButton(
+ FilledButton(
onPressed: () =>
Navigator.pushNamed(context, '/connection_setup'),
child: Text(i18n.welcomeGetStarted),
diff --git a/lib/services/tor_service.dart b/lib/services/tor_service.dart
index 4ff350d..682ca86 100644
--- a/lib/services/tor_service.dart
+++ b/lib/services/tor_service.dart
@@ -2,7 +2,7 @@ import 'dart:async';
import 'dart:io';
import 'package:flutter_riverpod/flutter_riverpod.dart';
-import 'package:monero_light_wallet/util/logging.dart';
+import 'package:skylight_wallet/util/logging.dart';
import 'package:path_provider/path_provider.dart';
import 'package:tor_ffi_plugin/tor_ffi_plugin.dart';
diff --git a/lib/util/dirs.dart b/lib/util/dirs.dart
index 673033c..74dec35 100644
--- a/lib/util/dirs.dart
+++ b/lib/util/dirs.dart
@@ -1,7 +1,7 @@
import 'dart:io';
import 'package:path_provider/path_provider.dart';
-import 'package:monero_light_wallet/consts.dart' as consts;
+import 'package:skylight_wallet/consts.dart' as consts;
Future<Directory> getTorDataDir() async {
final documentsDirPath = (await getApplicationDocumentsDirectory());
diff --git a/lib/util/height.dart b/lib/util/height.dart
index 366440f..410128a 100644
--- a/lib/util/height.dart
+++ b/lib/util/height.dart
@@ -2,9 +2,9 @@ import 'dart:async';
import 'dart:convert';
import 'dart:math';
-import 'package:monero_light_wallet/util/logging.dart';
-import 'package:monero_light_wallet/util/socks_http.dart';
-import 'package:monero_light_wallet/services/tor_service.dart';
+import 'package:skylight_wallet/util/logging.dart';
+import 'package:skylight_wallet/util/socks_http.dart';
+import 'package:skylight_wallet/services/tor_service.dart';
Future<int> getCurrentBlockchainHeight() async {
final urls = [
diff --git a/lib/util/socks_http.dart b/lib/util/socks_http.dart
index 32486e4..cee8988 100644
--- a/lib/util/socks_http.dart
+++ b/lib/util/socks_http.dart
@@ -1,7 +1,7 @@
import 'dart:convert';
import 'dart:io';
-import 'package:monero_light_wallet/util/socks_socket.dart';
+import 'package:skylight_wallet/util/socks_socket.dart';
class ParsedHttpResponse {
final String httpVersion;
diff --git a/lib/util/wallet.dart b/lib/util/wallet.dart
index f5cee17..a7425ea 100644
--- a/lib/util/wallet.dart
+++ b/lib/util/wallet.dart
@@ -1,5 +1,5 @@
import 'package:path_provider/path_provider.dart';
-import 'package:monero_light_wallet/consts.dart' as consts;
+import 'package:skylight_wallet/consts.dart' as consts;
Future<String> getWalletPath([String? walletFileName]) async {
var path = (await getApplicationDocumentsDirectory()).path;
diff --git a/lib/util/wallet_password.dart b/lib/util/wallet_password.dart
index f25442b..31e8efd 100644
--- a/lib/util/wallet_password.dart
+++ b/lib/util/wallet_password.dart
@@ -2,7 +2,7 @@ import 'dart:math';
import 'dart:typed_data';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
-import 'package:monero_light_wallet/consts.dart';
+import 'package:skylight_wallet/consts.dart';
String genWalletPassword() {
final byteLength = 16;
diff --git a/lib/widgets/wallet_navigation_bar.dart b/lib/widgets/wallet_navigation_bar.dart
index 7a42582..95fdcbf 100644
--- a/lib/widgets/wallet_navigation_bar.dart
+++ b/lib/widgets/wallet_navigation_bar.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:monero_light_wallet/l10n/app_localizations.dart';
+import 'package:skylight_wallet/l10n/app_localizations.dart';
class WalletNavigationBar extends StatelessWidget {
final int selectedIndex;
diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt
index d4d8990..bfd34b0 100644
--- a/linux/CMakeLists.txt
+++ b/linux/CMakeLists.txt
@@ -4,10 +4,10 @@ project(runner LANGUAGES CXX)
# The name of the executable created for the application. Change this to change
# the on-disk name of your application.
-set(BINARY_NAME "monero_light_wallet")
+set(BINARY_NAME "skylight_wallet")
# The unique GTK application identifier for this application. See:
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
-set(APPLICATION_ID "com.example.monero_light_wallet")
+set(APPLICATION_ID "org.magicgrants.skylight")
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake.
diff --git a/linux/runner/my_application.cc b/linux/runner/my_application.cc
index 157aca4..37ae633 100644
--- a/linux/runner/my_application.cc
+++ b/linux/runner/my_application.cc
@@ -40,11 +40,11 @@ static void my_application_activate(GApplication* application) {
if (use_header_bar) {
GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
gtk_widget_show(GTK_WIDGET(header_bar));
- gtk_header_bar_set_title(header_bar, "monero_light_wallet");
+ gtk_header_bar_set_title(header_bar, "skylight_wallet");
gtk_header_bar_set_show_close_button(header_bar, TRUE);
gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
} else {
- gtk_window_set_title(window, "monero_light_wallet");
+ gtk_window_set_title(window, "skylight_wallet");
}
gtk_window_set_default_size(window, 1280, 720);
diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj
index 7f91241..e38f9cc 100644
--- a/macos/Runner.xcodeproj/project.pbxproj
+++ b/macos/Runner.xcodeproj/project.pbxproj
@@ -64,7 +64,7 @@
331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
- 33CC10ED2044A3C60003C045 /* monero_light_wallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "monero_light_wallet.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 33CC10ED2044A3C60003C045 /* skylight_wallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "skylight_wallet.app"; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
@@ -131,7 +131,7 @@
33CC10EE2044A3C60003C045 /* Products */ = {
isa = PBXGroup;
children = (
- 33CC10ED2044A3C60003C045 /* monero_light_wallet.app */,
+ 33CC10ED2044A3C60003C045 /* skylight_wallet.app */,
331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
);
name = Products;
@@ -217,7 +217,7 @@
);
name = Runner;
productName = Runner;
- productReference = 33CC10ED2044A3C60003C045 /* monero_light_wallet.app */;
+ productReference = 33CC10ED2044A3C60003C045 /* skylight_wallet.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -388,7 +388,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.example.moneroLightWallet.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/monero_light_wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/monero_light_wallet";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/skylight_wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/skylight";
};
name = Debug;
};
@@ -402,7 +402,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.example.moneroLightWallet.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/monero_light_wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/monero_light_wallet";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/skylight_wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/skylight";
};
name = Release;
};
@@ -416,7 +416,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.example.moneroLightWallet.RunnerTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/monero_light_wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/monero_light_wallet";
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/skylight_wallet.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/skylight";
};
name = Profile;
};
diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 9ebce43..1f68ba3 100644
--- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -15,7 +15,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
- BuildableName = "monero_light_wallet.app"
+ BuildableName = "skylight_wallet.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
@@ -31,7 +31,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
- BuildableName = "monero_light_wallet.app"
+ BuildableName = "skylight_wallet.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
@@ -66,7 +66,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
- BuildableName = "monero_light_wallet.app"
+ BuildableName = "skylight_wallet.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
@@ -83,7 +83,7 @@
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
- BuildableName = "monero_light_wallet.app"
+ BuildableName = "skylight_wallet.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig
index 08b058e..d99dff7 100644
--- a/macos/Runner/Configs/AppInfo.xcconfig
+++ b/macos/Runner/Configs/AppInfo.xcconfig
@@ -5,7 +5,7 @@
// 'flutter create' template.
// The application's name. By default this is also the title of the Flutter window.
-PRODUCT_NAME = monero_light_wallet
+PRODUCT_NAME = skylight_wallet
// The application's bundle identifier
PRODUCT_BUNDLE_IDENTIFIER = com.example.moneroLightWallet
diff --git a/pubspec.lock b/pubspec.lock
index 11d4d87..8f109be 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -1,6 +1,14 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
+ archive:
+ dependency: transitive
+ description:
+ name: archive
+ sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.7"
args:
dependency: transitive
description:
@@ -33,6 +41,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.4.0"
+ checked_yaml:
+ dependency: transitive
+ description:
+ name: checked_yaml
+ sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.4"
+ cli_util:
+ dependency: transitive
+ description:
+ name: cli_util
+ sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.4.2"
clock:
dependency: transitive
description:
@@ -126,6 +150,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
+ flutter_launcher_icons:
+ dependency: "direct main"
+ description:
+ name: flutter_launcher_icons
+ sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.14.4"
flutter_lints:
dependency: "direct dev"
description:
@@ -171,6 +203,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
+ flutter_math_fork:
+ dependency: transitive
+ description:
+ name: flutter_math_fork
+ sha256: "6d5f2f1aa57ae539ffb0a04bb39d2da67af74601d685a161aff7ce5bda5fa407"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.4"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
@@ -253,6 +293,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
+ gpt_markdown:
+ dependency: "direct main"
+ description:
+ name: gpt_markdown
+ sha256: "8174983f2ed7d8576d25810913e3afe3f8ffdaa3172c0c823b7cfc289b67f380"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.4"
http:
dependency: "direct main"
description:
@@ -269,6 +317,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.1.2"
+ image:
+ dependency: transitive
+ description:
+ name: image
+ sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.5.4"
intl:
dependency: "direct main"
description:
@@ -285,6 +341,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.6.7"
+ json_annotation:
+ dependency: transitive
+ description:
+ name: json_annotation
+ sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.9.0"
leak_tracker:
dependency: transitive
description:
@@ -550,6 +614,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.8"
+ posix:
+ dependency: transitive
+ description:
+ name: posix
+ sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61"
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.3"
provider:
dependency: "direct main"
description:
@@ -810,6 +882,14 @@ packages:
relative: true
source: path
version: "0.0.1"
+ tuple:
+ dependency: transitive
+ description:
+ name: tuple
+ sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.2"
typed_data:
dependency: transitive
description:
@@ -962,6 +1042,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.5.0"
+ yaml:
+ dependency: transitive
+ description:
+ name: yaml
+ sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.3"
sdks:
dart: ">=3.9.0 <4.0.0"
flutter: ">=3.35.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 3ec2167..84ce7e8 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
-name: monero_light_wallet
-description: "A new Flutter project."
+name: skylight_wallet
+description: "A light Monero wallet."
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: "none" # Remove this line if you wish to publish to pub.dev
@@ -21,6 +21,13 @@ version: 1.0.0+1
environment:
sdk: ^3.8.1
+flutter_launcher_icons:
+ android: true
+ ios: true
+ image_path: "assets/launcher_icon.png"
+ adaptive_icon_background: "#263F5F"
+ adaptive_icon_foreground: "assets/launcher_icon.png"
+
# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
# consider running `flutter pub upgrade --major-versions`. Alternatively,
@@ -66,6 +73,8 @@ dependencies:
skeletonizer: ^2.1.0+1
flutter_secure_storage: ^9.2.4
local_auth: ^2.3.0
+ flutter_launcher_icons: ^0.14.4
+ gpt_markdown: ^1.1.4
dev_dependencies:
flutter_test:
@@ -92,6 +101,8 @@ flutter:
# To add assets to your application, add an assets section, like this:
assets:
- assets/icons/
+ - assets/privacy_policy.md
+ - assets/terms_of_service.md
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/to/resolution-aware-images
diff --git a/test/widget_test.dart b/test/widget_test.dart
index a742de3..faea900 100644
--- a/test/widget_test.dart
+++ b/test/widget_test.dart
@@ -8,7 +8,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
-import 'package:monero_light_wallet/main.dart';
+import 'package:skylight_wallet/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
diff --git a/web/index.html b/web/index.html
index 9f3167d..936d139 100644
--- a/web/index.html
+++ b/web/index.html
@@ -23,13 +23,13 @@
<!-- iOS meta tags & icons -->
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
- <meta name="apple-mobile-web-app-title" content="monero_light_wallet">
+ <meta name="apple-mobile-web-app-title" content="skylight_wallet">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>
- <title>monero_light_wallet</title>
+ <title>skylight_wallet</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
diff --git a/web/manifest.json b/web/manifest.json
index e274e6b..6d2d975 100644
--- a/web/manifest.json
+++ b/web/manifest.json
@@ -1,6 +1,6 @@
{
- "name": "monero_light_wallet",
- "short_name": "monero_light_wallet",
+ "name": "skylight_wallet",
+ "short_name": "skylight_wallet",
"start_url": ".",
"display": "standalone",
"background_color": "#0175C2",
diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt
index df8a4f0..0d2952f 100644
--- a/windows/CMakeLists.txt
+++ b/windows/CMakeLists.txt
@@ -1,10 +1,10 @@
# Project-level configuration.
cmake_minimum_required(VERSION 3.14)
-project(monero_light_wallet LANGUAGES CXX)
+project(skylight_wallet LANGUAGES CXX)
# The name of the executable created for the application. Change this to change
# the on-disk name of your application.
-set(BINARY_NAME "monero_light_wallet")
+set(BINARY_NAME "skylight_wallet")
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
# versions of CMake.
diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc
index 39b58ee..4b14e5f 100644
--- a/windows/runner/Runner.rc
+++ b/windows/runner/Runner.rc
@@ -90,12 +90,12 @@ BEGIN
BLOCK "040904e4"
BEGIN
VALUE "CompanyName", "com.example" "\0"
- VALUE "FileDescription", "monero_light_wallet" "\0"
+ VALUE "FileDescription", "skylight_wallet" "\0"
VALUE "FileVersion", VERSION_AS_STRING "\0"
- VALUE "InternalName", "monero_light_wallet" "\0"
+ VALUE "InternalName", "skylight_wallet" "\0"
VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0"
- VALUE "OriginalFilename", "monero_light_wallet.exe" "\0"
- VALUE "ProductName", "monero_light_wallet" "\0"
+ VALUE "OriginalFilename", "skylight_wallet.exe" "\0"
+ VALUE "ProductName", "skylight_wallet" "\0"
VALUE "ProductVersion", VERSION_AS_STRING "\0"
END
END
diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp
index 1ed4beb..1b3974e 100644
--- a/windows/runner/main.cpp
+++ b/windows/runner/main.cpp
@@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
FlutterWindow window(project);
Win32Window::Point origin(10, 10);
Win32Window::Size size(1280, 720);
- if (!window.Create(L"monero_light_wallet", origin, size)) {
+ if (!window.Create(L"skylight_wallet", origin, size)) {
return EXIT_FAILURE;
}
window.SetQuitOnClose(true);
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.