Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
- added: `chooseCaip19Asset` EdgeProvider API for precise wallet selection using CAIP-19 identifiers
- added: Pass OS and app version details to core context for v2/coreRollup endpoint
- changed: Append chain names to token codes in RampCreateScene
- fixed: iOS simulator builds for XCode 26

## 4.42.0 (staging)

Expand Down
3 changes: 3 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,9 @@
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="wc" />
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
</activity>

<!-- To disable the activity lifecycle breadcrumbs integration -->
Expand Down
4 changes: 4 additions & 0 deletions android/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<resources>
<string name="app_name">Edge</string>
<string name="shortcut_contact_support_short">Contact Support</string>
<string name="shortcut_contact_support_long">Contact support for help from a live agent</string>
<string name="shortcut_do_not_uninstall_short">⚠️ Don\'t Uninstall!</string>
<string name="shortcut_do_not_uninstall_long">⚠️ Uninstall removes all account data from device!</string>
</resources>
23 changes: 23 additions & 0 deletions android/app/src/main/res/xml/shortcuts.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:shortcutId="contact_support"
android:enabled="true"
android:icon="@mipmap/ic_launcher"
android:shortcutShortLabel="@string/shortcut_contact_support_short"
android:shortcutLongLabel="@string/shortcut_contact_support_long">
<intent
android:action="android.intent.action.VIEW"
android:data="https://support.edge.app/hc/en-us?chat=open" />
</shortcut>
<shortcut
android:shortcutId="do_not_uninstall"
android:enabled="true"
android:icon="@mipmap/ic_launcher"
android:shortcutShortLabel="@string/shortcut_do_not_uninstall_short"
android:shortcutLongLabel="@string/shortcut_do_not_uninstall_long">
<intent
android:action="android.intent.action.VIEW"
android:data="https://support.edge.app/hc/en-us/articles/24469866252443-Getting-a-new-phone" />
</shortcut>
</shortcuts>
8 changes: 8 additions & 0 deletions ios/Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,14 @@ target 'edge' do
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = ios_platform_version

# Xcode 17+ / iOS 26 SDK workaround: Re-enable std::allocator<const T>
# which was removed for stricter C++ standard compliance.
# See: https://github.com/getsentry/sentry-cocoa/issues/5172
existing_defs = config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] || ['$(inherited)']
unless existing_defs.include?('_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST=1')
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = existing_defs + ['_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST=1']
end
end
end

Expand Down
50 changes: 25 additions & 25 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ PODS:
- FirebaseCoreInternal (~> 10.0)
- GoogleUtilities/Environment (~> 7.12)
- GoogleUtilities/Logger (~> 7.12)
- FirebaseCoreExtension (10.27.0):
- FirebaseCoreExtension (10.29.0):
- FirebaseCore (~> 10.0)
- FirebaseCoreInternal (10.29.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)"
Expand Down Expand Up @@ -161,17 +161,17 @@ PODS:
- hermes-engine/Pre-built (0.79.2)
- ImageColors (2.4.0):
- ExpoModulesCore
- libwebp (1.3.2):
- libwebp/demux (= 1.3.2)
- libwebp/mux (= 1.3.2)
- libwebp/sharpyuv (= 1.3.2)
- libwebp/webp (= 1.3.2)
- libwebp/demux (1.3.2):
- libwebp (1.5.0):
- libwebp/demux (= 1.5.0)
- libwebp/mux (= 1.5.0)
- libwebp/sharpyuv (= 1.5.0)
- libwebp/webp (= 1.5.0)
- libwebp/demux (1.5.0):
- libwebp/webp
- libwebp/mux (1.3.2):
- libwebp/mux (1.5.0):
- libwebp/demux
- libwebp/sharpyuv (1.3.2)
- libwebp/webp (1.3.2):
- libwebp/sharpyuv (1.5.0)
- libwebp/webp (1.5.0):
- libwebp/sharpyuv
- Logging (1.4.0)
- MnemonicSwift (2.2.4)
Expand All @@ -180,7 +180,7 @@ PODS:
- nanopb/encode (= 2.30910.0)
- nanopb/decode (2.30910.0)
- nanopb/encode (2.30910.0)
- OpenSSL-Universal (3.3.3000)
- OpenSSL-Universal (3.3.3001)
- PromisesObjC (2.4.0)
- RCT-Folly (2024.11.18.00):
- boost
Expand Down Expand Up @@ -2726,11 +2726,11 @@ PODS:
- SDWebImage/Core (~> 5.10)
- Sentry/HybridSDK (8.56.2)
- SocketRocket (0.7.1)
- SQLite.swift/standalone (0.15.3):
- SQLite.swift/standalone (0.15.4):
- sqlite3
- "sqlite3 (3.46.0+1)":
- "sqlite3/common (= 3.46.0+1)"
- "sqlite3/common (3.46.0+1)"
- sqlite3 (3.51.1):
- sqlite3/common (= 3.51.1)
- sqlite3/common (3.51.1)
- SwiftNIO (2.40.0):
- _NIODataStructures (= 2.40.0)
- CNIOAtomics (= 2.40.0)
Expand Down Expand Up @@ -2861,15 +2861,15 @@ PODS:
- SwiftNIOFoundationCompat (< 3, >= 2.32.0)
- SwiftNIOPosix (< 3, >= 2.32.0)
- SwiftNIOTLS (< 3, >= 2.32.0)
- SwiftProtobuf (1.26.0)
- SwiftProtobuf (1.33.3)
- VisionCamera (4.7.2):
- VisionCamera/Core (= 4.7.2)
- VisionCamera/React (= 4.7.2)
- VisionCamera/Core (4.7.2)
- VisionCamera/React (4.7.2):
- React-Core
- Yoga (0.0.0)
- ZIPFoundation (0.9.11)
- ZIPFoundation (0.9.20)
- ZXingObjC (3.6.9):
- ZXingObjC/All (= 3.6.9)
- ZXingObjC/All (3.6.9)
Expand Down Expand Up @@ -3354,7 +3354,7 @@ SPEC CHECKSUMS:
FBLazyVector: 84b955f7b4da8b895faf5946f73748267347c975
Firebase: cec914dab6fd7b1bd8ab56ea07ce4e03dd251c2d
FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16
FirebaseCoreExtension: 4ec89dd0c6de93d6becde32122d68b7c35f6bf5d
FirebaseCoreExtension: 705ca5b14bf71d2564a0ddc677df1fc86ffa600f
FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934
FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd
FirebaseMessaging: 7b5d8033e183ab59eb5b852a53201559e976d366
Expand All @@ -3365,11 +3365,11 @@ SPEC CHECKSUMS:
gRPC-Swift: 74adcaaa62ac5e0a018938840328cb1fdfb09e7b
hermes-engine: 314be5250afa5692b57b4dd1705959e1973a8ebe
ImageColors: 869f48b27ca2afb347fd0bada3257a5f698ee55e
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
Logging: beeb016c9c80cf77042d62e83495816847ef108b
MnemonicSwift: 40ba76b951b75b32e2719df989b4d6da5798fe26
nanopb: 438bc412db1928dac798aa6fd75726007be04262
OpenSSL-Universal: d776ce24dab24323e6995dfb17c64d598885d05c
OpenSSL-Universal: 6082b0bf950e5636fe0d78def171184e2b3899c2
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82
RCTDeprecation: 83ffb90c23ee5cea353bd32008a7bca100908f8c
Expand Down Expand Up @@ -3483,8 +3483,8 @@ SPEC CHECKSUMS:
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
Sentry: b53951377b78e21a734f5dc8318e333dbfc682d7
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
SQLite.swift: 8d054987f02728cc912b0eb5a9659650573a65a2
sqlite3: 292c3e1bfe89f64e51ea7fc7dab9182a017c8630
SQLite.swift: a107c734115fea616a4ad31371d39f1637e8de56
sqlite3: 8d708bc63e9f4ce48f0ad9d6269e478c5ced1d9b
SwiftNIO: 829958aab300642625091f82fc2f49cb7cf4ef24
SwiftNIOConcurrencyHelpers: 697370136789b1074e4535eaae75cbd7f900370e
SwiftNIOCore: 473fdfe746534d7aa25766916459eeaf6f92ef49
Expand All @@ -3498,12 +3498,12 @@ SPEC CHECKSUMS:
SwiftNIOSSL: d153c5a6fc5b2301b0519b4c4d037a9414212da6
SwiftNIOTLS: 598af547490133e9aac52aed0c23c4a90c31dcfc
SwiftNIOTransportServices: 0b2b407819d82eb63af558c5396e33c945759503
SwiftProtobuf: 5e8349171e7c2f88f5b9e683cb3cb79d1dc780b3
SwiftProtobuf: e1b437c8e31a4c5577b643249a0bb62ed4f02153
VisionCamera: 30b358b807324c692064f78385e9a732ce1bebfe
Yoga: 50518ade05048235d91a78b803336dbb5b159d5d
ZIPFoundation: b1f0de4eed33e74a676f76e12559ab6b75990197
ZIPFoundation: dfd3d681c4053ff7e2f7350bc4e53b5dba3f5351
ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5

PODFILE CHECKSUM: 8c119d1d2fda8d2ceda1c186a5415d0c7473469a
PODFILE CHECKSUM: ffc45b7c82f76539837854e7add5bc6ad74ef0b6

COCOAPODS: 1.16.2
31 changes: 31 additions & 0 deletions ios/edge/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import UserNotifications
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var securityView: UIView?
private var pendingShortcutItem: UIApplicationShortcutItem?

var reactNativeDelegate: ReactNativeDelegate?
var reactNativeFactory: RCTReactNativeFactory?
Expand Down Expand Up @@ -49,6 +50,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
if let shortcutItem = launchOptions?[.shortcutItem] as? UIApplicationShortcutItem {
pendingShortcutItem = shortcutItem
}

// Initialize SDK's:
initializeSentry()
FirebaseApp.configure()
Expand All @@ -72,9 +77,35 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
launchOptions: launchOptions
)

if let shortcutItem = pendingShortcutItem {
_ = handleShortcutItem(shortcutItem)
pendingShortcutItem = nil
}

return true
}

func application(
_ application: UIApplication,
performActionFor shortcutItem: UIApplicationShortcutItem,
completionHandler: @escaping (Bool) -> Void
) {
let handled = handleShortcutItem(shortcutItem)
completionHandler(handled)
}

private func handleShortcutItem(_ shortcutItem: UIApplicationShortcutItem) -> Bool {
guard let url = URL(string: shortcutItem.type) else { return false }

// Open https/http URLs in the default browser, otherwise handle as deep link
if url.scheme == "https" || url.scheme == "http" {
UIApplication.shared.open(url)
return true
}

return RCTLinkingManager.application(UIApplication.shared, open: url, options: [:])
}

/**
* Periodic background fetch logic.
* Edge addition.
Expand Down
23 changes: 23 additions & 0 deletions ios/edge/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,29 @@
</array>
<key>CFBundleVersion</key>
<string>99999999</string>
<key>UIApplicationShortcutItems</key>
<array>
<dict>
<key>UIApplicationShortcutItemTitle</key>
<string>⚠️ Do Not Uninstall!</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>This will remove all your data from this device!</string>
<key>UIApplicationShortcutItemIconSymbolName</key>
<string>nosign</string>
<key>UIApplicationShortcutItemType</key>
<string>https://support.edge.app/hc/en-us/articles/24469866252443-Getting-a-new-phone</string>
</dict>
<dict>
<key>UIApplicationShortcutItemTitle</key>
<string>Contact Support</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>Get help from our live support agents</string>
<key>UIApplicationShortcutItemIconSymbolName</key>
<string>message.fill</string>
<key>UIApplicationShortcutItemType</key>
<string>https://support.edge.app/hc/en-us?chat=open</string>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>https</string>
Expand Down
Loading
Loading