Skip to content

Commit

Permalink
v3.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mytonwalletorg committed Nov 17, 2024
1 parent 7aa5fc9 commit d5cc2fe
Show file tree
Hide file tree
Showing 98 changed files with 2,800 additions and 1,390 deletions.
3 changes: 2 additions & 1 deletion capacitor.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,21 @@ const config: CapacitorConfig = {
android: {
path: 'mobile/android',
includePlugins: [
'@capacitor-community/bluetooth-le',
'@capacitor-mlkit/barcode-scanning',
'@capacitor/app',
'@capacitor/filesystem',
'@capacitor/clipboard',
'@capacitor/share',
'@capacitor/haptics',
'@capacitor/status-bar',
'@capgo/capacitor-native-biometric',
'@capgo/native-audio',
'@mauricewegner/capacitor-navigation-bar',
'@sina_kh/mtw-capacitor-status-bar',
'capacitor-native-settings',
'capacitor-plugin-safe-area',
'cordova-plugin-inappbrowser',
'mtw-capacitor-usb-hid',
'native-dialog',
'native-bottom-sheet',
'capacitor-secure-storage-plugin',
Expand Down
1 change: 1 addition & 0 deletions changelogs/3.0.36.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Bug fixes and performance improvements
19 changes: 19 additions & 0 deletions changelogs/3.1.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Previously, we introduced the first-ever multichain wallet on TON with support for TON & TRON networks. Now, we're back with exciting new updates! Here's what's inside:

• Auto-lock feature and an ability to change password for enhanced wallet security.

• Easier dapp navigation: connected applications are now displayed in the "Explore" section.

•️ Connect your Ledger on a mobile device: Bluetooth and USB options are available depending on your platform.

• Convenient operations through W5 Gasless and Mintless Jettons for TON users. Make transactions even with zero $TON balance.

•️ With anti-poisoning, MyTonWallet automatically detects suspicious addresses and marks them with a ‘Scam’ label.

•️ Search for saved addresses: easily filter addresses using test auto-suggest.

• New deeplinks for quick access: send TON, USDT, jettons, NFTs, perform swaps or stake in one click.

• Switched our UI links to Tonscan, the first and the most powerful TON explorer.

• Updated UI animations, bug fixes, performance improvements, and other tiny optimizations for a smoother, more enjoyable experience.
2 changes: 2 additions & 0 deletions mobile/android/app/capacitor.build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ android {

apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
dependencies {
implementation project(':capacitor-community-bluetooth-le')
implementation project(':capacitor-mlkit-barcode-scanning')
implementation project(':capacitor-app')
implementation project(':capacitor-filesystem')
Expand All @@ -21,6 +22,7 @@ dependencies {
implementation project(':sina_kh-mtw-capacitor-status-bar')
implementation project(':capacitor-native-settings')
implementation project(':capacitor-plugin-safe-area')
implementation project(':mtw-capacitor-usb-hid')
implementation project(':native-dialog')
implementation project(':native-bottom-sheet')
implementation project(':capacitor-secure-storage-plugin')
Expand Down
12 changes: 11 additions & 1 deletion mobile/android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
Expand Down Expand Up @@ -83,4 +84,13 @@
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<!-- To get access to the flashlight (required by barcode-scanner) -->
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<!-- To connect to the ledger devices -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" />
</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
Expand All @@ -17,11 +19,15 @@
import androidx.core.view.WindowInsetsControllerCompat;
import androidx.interpolator.view.animation.FastOutSlowInInterpolator;

import com.getcapacitor.Bridge;
import com.getcapacitor.BridgeActivity;

import java.util.Date;

public class MainActivity extends BridgeActivity {
private boolean keep = true;
private final int DELAY = 1000;
private long lastTouchEventTimestamp = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand Down Expand Up @@ -90,4 +96,27 @@ private void updateStatusBarStyle() {
windowInsetsControllerCompat.setAppearanceLightStatusBars(!style.equals("DARK"));
windowInsetsControllerCompat.setAppearanceLightNavigationBars(!style.equals("DARK"));
}

@Override
public boolean dispatchTouchEvent(MotionEvent event) {
triggerTouchEvent();
return super.dispatchTouchEvent(event);
}

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
triggerTouchEvent();
return super.dispatchKeyEvent(event);
}

private void triggerTouchEvent() {
Bridge bridge = getBridge();
if (bridge == null)
return;
long now = new Date().getTime();
if (now < lastTouchEventTimestamp + 5000)
return;
lastTouchEventTimestamp = now;
bridge.triggerWindowJSEvent("touch");
}
}
6 changes: 6 additions & 0 deletions mobile/android/capacitor.settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
include ':capacitor-android'
project(':capacitor-android').projectDir = new File('../../node_modules/@capacitor/android/capacitor')

include ':capacitor-community-bluetooth-le'
project(':capacitor-community-bluetooth-le').projectDir = new File('../../node_modules/@capacitor-community/bluetooth-le/android')

include ':capacitor-mlkit-barcode-scanning'
project(':capacitor-mlkit-barcode-scanning').projectDir = new File('../../node_modules/@capacitor-mlkit/barcode-scanning/android')

Expand Down Expand Up @@ -38,6 +41,9 @@ project(':capacitor-native-settings').projectDir = new File('../../node_modules/
include ':capacitor-plugin-safe-area'
project(':capacitor-plugin-safe-area').projectDir = new File('../../node_modules/capacitor-plugin-safe-area/android')

include ':mtw-capacitor-usb-hid'
project(':mtw-capacitor-usb-hid').projectDir = new File('../../node_modules/mtw-capacitor-usb-hid/android')

include ':native-dialog'
project(':native-dialog').projectDir = new File('../plugins/native-dialog/android')

Expand Down
8 changes: 8 additions & 0 deletions mobile/ios/App/App.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

/* Begin PBXBuildFile section */
0EB354256D6B4E26B50364CD /* Pods_MyTonWallet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BABB2300AAC81FD0F3E47EB /* Pods_MyTonWallet.framework */; };
27E5F5BB2CE402F4006A9298 /* MyTonWalletApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E5F5BA2CE402EC006A9298 /* MyTonWalletApp.swift */; };
27E5F5BD2CE40454006A9298 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E5F5BC2CE40453006A9298 /* main.swift */; };
2FAD9763203C412B000D30F8 /* config.xml in Resources */ = {isa = PBXBuildFile; fileRef = 2FAD9762203C412B000D30F8 /* config.xml */; };
50379B232058CBB4000EE86E /* capacitor.config.json in Resources */ = {isa = PBXBuildFile; fileRef = 50379B222058CBB4000EE86E /* capacitor.config.json */; };
504EC3081FED79650016851F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504EC3071FED79650016851F /* AppDelegate.swift */; };
Expand All @@ -19,6 +21,8 @@

/* Begin PBXFileReference section */
1BABB2300AAC81FD0F3E47EB /* Pods_MyTonWallet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MyTonWallet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
27E5F5BA2CE402EC006A9298 /* MyTonWalletApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyTonWalletApp.swift; sourceTree = "<group>"; };
27E5F5BC2CE40453006A9298 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = "<group>"; };
2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = "<group>"; };
50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = "<group>"; };
504EC3041FED79650016851F /* MyTonWallet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MyTonWallet.app; sourceTree = BUILT_PRODUCTS_DIR; };
Expand Down Expand Up @@ -78,7 +82,9 @@
isa = PBXGroup;
children = (
50379B222058CBB4000EE86E /* capacitor.config.json */,
27E5F5BC2CE40453006A9298 /* main.swift */,
504EC3071FED79650016851F /* AppDelegate.swift */,
27E5F5BA2CE402EC006A9298 /* MyTonWalletApp.swift */,
504EC30B1FED79650016851F /* Main.storyboard */,
504EC30E1FED79650016851F /* Assets.xcassets */,
504EC3101FED79650016851F /* LaunchScreen.storyboard */,
Expand Down Expand Up @@ -213,7 +219,9 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
27E5F5BB2CE402F4006A9298 /* MyTonWalletApp.swift in Sources */,
504EC3081FED79650016851F /* AppDelegate.swift in Sources */,
27E5F5BD2CE40454006A9298 /* main.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
1 change: 0 additions & 1 deletion mobile/ios/App/App/AppDelegate.swift
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import UIKit
import Capacitor

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?
Expand Down
8 changes: 7 additions & 1 deletion mobile/ios/App/App/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@
<key>NSFaceIDUsageDescription</key>
<string>For an easier and faster operation verification.</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>We need access to your photo library to save your awesome NFTs!</string>
<string>Photo library access is needed to download NFTs.</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Bluetooth access is needed to connect Ledger.</string>
<key>UIBackgroundModes</key>
<array>
<string>bluetooth-central</string>
</array>
</dict>
</plist>
28 changes: 28 additions & 0 deletions mobile/ios/App/App/MyTonWalletApp.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import UIKit
import Capacitor

class MyTonWalletApp: UIApplication {

private var lastTouchEventTimestamp = TimeInterval(0)

override func sendEvent(_ event: UIEvent) {
super.sendEvent(event)

guard let touches = event.allTouches,
!touches.isEmpty else {
return
}

let now = Date().timeIntervalSince1970
guard now >= lastTouchEventTimestamp + 5 else {
return
}

guard let vc = (delegate as? AppDelegate)?.window?.rootViewController as? CAPBridgeViewController else {
return
}
lastTouchEventTimestamp = now
vc.bridge?.triggerWindowJSEvent(eventName: "touch")
}

}
8 changes: 8 additions & 0 deletions mobile/ios/App/App/main.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import UIKit

UIApplicationMain(
CommandLine.argc,
CommandLine.unsafeArgv,
NSStringFromClass(MyTonWalletApp.self),
NSStringFromClass(AppDelegate.self)
)
4 changes: 3 additions & 1 deletion mobile/ios/App/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ install! 'cocoapods', :disable_input_output_paths => true
def capacitor_pods
pod 'Capacitor', :path => '../../../node_modules/@capacitor/ios'
pod 'CapacitorCordova', :path => '../../../node_modules/@capacitor/ios'
pod 'CapacitorCommunityBluetoothLe', :path => '../../../node_modules/@capacitor-community/bluetooth-le'
pod 'CapacitorMlkitBarcodeScanning', :path => '../../../node_modules/@capacitor-mlkit/barcode-scanning'
pod 'CapacitorApp', :path => '../../../node_modules/@capacitor/app'
pod 'CapacitorAppLauncher', :path => '../../../node_modules/@capacitor/app-launcher'
Expand All @@ -26,6 +27,7 @@ def capacitor_pods
pod 'CapacitorNativeSettings', :path => '../../../node_modules/capacitor-native-settings'
pod 'CapacitorPluginSafeArea', :path => '../../../node_modules/capacitor-plugin-safe-area'
pod 'CapacitorSecureStoragePlugin', :path => '../../../node_modules/capacitor-secure-storage-plugin'
pod 'MtwCapacitorUsbHid', :path => '../../../node_modules/mtw-capacitor-usb-hid'
pod 'NativeBottomSheet', :path => '../../plugins/native-bottom-sheet'
pod 'NativeDialog', :path => '../../plugins/native-dialog'
pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins'
Expand All @@ -34,7 +36,7 @@ end
target 'MyTonWallet' do
capacitor_pods
# Add your Pods here
pod 'FloatingPanel', :git => 'https://github.com/mytonwalletorg/FloatingPanel', :commit => '124f09299ee26544cad45f95f2e3cb085b76f11a'
pod 'FloatingPanel', :git => 'https://github.com/mytonwalletorg/FloatingPanel', :commit => 'f58a8b94008540e680faba61867debf8b3cec682'
end

post_install do |installer|
Expand Down
20 changes: 16 additions & 4 deletions mobile/ios/App/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ PODS:
- Capacitor
- CapacitorClipboard (6.0.1):
- Capacitor
- CapacitorCommunityBluetoothLe (6.0.1):
- Capacitor
- CapacitorCordova (6.1.2)
- CapacitorFilesystem (6.0.1):
- Capacitor
Expand Down Expand Up @@ -85,6 +87,8 @@ PODS:
- GTMSessionFetcher/Core (< 4.0, >= 1.1)
- MLImage (= 1.0.0-beta5)
- MLKitCommon (~> 10.0)
- MtwCapacitorUsbHid (0.0.1):
- Capacitor
- nanopb (2.30910.0):
- nanopb/decode (= 2.30910.0)
- nanopb/encode (= 2.30910.0)
Expand All @@ -107,6 +111,7 @@ DEPENDENCIES:
- "CapacitorApp (from `../../../node_modules/@capacitor/app`)"
- "CapacitorAppLauncher (from `../../../node_modules/@capacitor/app-launcher`)"
- "CapacitorClipboard (from `../../../node_modules/@capacitor/clipboard`)"
- "CapacitorCommunityBluetoothLe (from `../../../node_modules/@capacitor-community/bluetooth-le`)"
- "CapacitorCordova (from `../../../node_modules/@capacitor/ios`)"
- "CapacitorFilesystem (from `../../../node_modules/@capacitor/filesystem`)"
- "CapacitorHaptics (from `../../../node_modules/@capacitor/haptics`)"
Expand All @@ -118,8 +123,9 @@ DEPENDENCIES:
- "CapgoCapacitorNativeBiometric (from `../../../node_modules/@capgo/capacitor-native-biometric`)"
- "CapgoNativeAudio (from `../../../node_modules/@capgo/native-audio`)"
- CordovaPlugins (from `../capacitor-cordova-ios-plugins`)
- FloatingPanel (from `https://github.com/mytonwalletorg/FloatingPanel`, commit `124f09299ee26544cad45f95f2e3cb085b76f11a`)
- FloatingPanel (from `https://github.com/mytonwalletorg/FloatingPanel`, commit `f58a8b94008540e680faba61867debf8b3cec682`)
- "MauricewegnerCapacitorNavigationBar (from `../../../node_modules/@mauricewegner/capacitor-navigation-bar`)"
- MtwCapacitorUsbHid (from `../../../node_modules/mtw-capacitor-usb-hid`)
- NativeBottomSheet (from `../../plugins/native-bottom-sheet`)
- NativeDialog (from `../../plugins/native-dialog`)
- "SinaKhMtwCapacitorSplashScreen (from `../../../node_modules/@sina_kh/mtw-capacitor-splash-screen`)"
Expand Down Expand Up @@ -150,6 +156,8 @@ EXTERNAL SOURCES:
:path: "../../../node_modules/@capacitor/app-launcher"
CapacitorClipboard:
:path: "../../../node_modules/@capacitor/clipboard"
CapacitorCommunityBluetoothLe:
:path: "../../../node_modules/@capacitor-community/bluetooth-le"
CapacitorCordova:
:path: "../../../node_modules/@capacitor/ios"
CapacitorFilesystem:
Expand All @@ -173,10 +181,12 @@ EXTERNAL SOURCES:
CordovaPlugins:
:path: "../capacitor-cordova-ios-plugins"
FloatingPanel:
:commit: 124f09299ee26544cad45f95f2e3cb085b76f11a
:commit: f58a8b94008540e680faba61867debf8b3cec682
:git: https://github.com/mytonwalletorg/FloatingPanel
MauricewegnerCapacitorNavigationBar:
:path: "../../../node_modules/@mauricewegner/capacitor-navigation-bar"
MtwCapacitorUsbHid:
:path: "../../../node_modules/mtw-capacitor-usb-hid"
NativeBottomSheet:
:path: "../../plugins/native-bottom-sheet"
NativeDialog:
Expand All @@ -188,14 +198,15 @@ EXTERNAL SOURCES:

CHECKOUT OPTIONS:
FloatingPanel:
:commit: 124f09299ee26544cad45f95f2e3cb085b76f11a
:commit: f58a8b94008540e680faba61867debf8b3cec682
:git: https://github.com/mytonwalletorg/FloatingPanel

SPEC CHECKSUMS:
Capacitor: 679f9673fdf30597493a6362a5d5bf233d46abc2
CapacitorApp: 0bc633b4eae40a1f32cd2834788fad3bc42da6a1
CapacitorAppLauncher: 9ac785e8d3936388249212b6e16cb32225960c5f
CapacitorClipboard: 756cd7e83e8d5d19b0c74f40b57517c287bd5fe2
CapacitorCommunityBluetoothLe: 694d91cd954a2b3149db8967faa7af433700eb6b
CapacitorCordova: f48c89f96c319101cd2f0ce8a2b7449b5fb8b3dd
CapacitorFilesystem: 37fb3aa5c945b4539ab11c74a5c57925a302bf24
CapacitorHaptics: fe689ade56ef20ec9b041a753c6da70c5d8ec9a9
Expand All @@ -219,6 +230,7 @@ SPEC CHECKSUMS:
MLKitBarcodeScanning: 9cb0ec5ec65bbb5db31de4eba0a3289626beab4e
MLKitCommon: afcd11b6c0735066a0dde8b4bf2331f6197cbca2
MLKitVision: 90922bca854014a856f8b649d1f1f04f63fd9c79
MtwCapacitorUsbHid: ee48577f497c225b50d5db1f1bd40fb5c5a1ca99
nanopb: 438bc412db1928dac798aa6fd75726007be04262
NativeBottomSheet: 81b2b53d470537e42858d0d6485af318c51c3a5f
NativeDialog: f347d7f1a10adac33a1cb1a02be03911cf2fe067
Expand All @@ -229,4 +241,4 @@ SPEC CHECKSUMS:

PODFILE CHECKSUM: 1bbc72e2fbfb2ae871c9a96aef2548830c3c0d6c

COCOAPODS: 1.15.2
COCOAPODS: 1.16.2
6 changes: 5 additions & 1 deletion mobile/ios/App/fastlane/Fastfile
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,11 @@ platform :ios do
)

changelog_from_git_commits(merge_commit_filtering: "exclude_merges", commits_count: 3)
upload_to_testflight(distribute_external: true, groups: "MTW external group")
upload_to_testflight(
distribute_external: true,
groups: "MTW external group",
beta_app_description: "Bug fixes and performance improvements"
)
end

lane :release do
Expand Down
Loading

0 comments on commit d5cc2fe

Please sign in to comment.