diff --git a/CHANGELOG.md b/CHANGELOG.md index 80d992df10a..9d06dd43cd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 33e6b4cb839..4b5e0c6e9a9 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -92,6 +92,9 @@ + diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 806da384537..357f6892450 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,3 +1,7 @@ Edge + Contact Support + Contact support for help from a live agent + ⚠️ Don\'t Uninstall! + ⚠️ Uninstall removes all account data from device! diff --git a/android/app/src/main/res/xml/shortcuts.xml b/android/app/src/main/res/xml/shortcuts.xml new file mode 100644 index 00000000000..8a2e8921c61 --- /dev/null +++ b/android/app/src/main/res/xml/shortcuts.xml @@ -0,0 +1,23 @@ + + + + + + + + + diff --git a/ios/Podfile b/ios/Podfile index 5a8846ce969..322745286c0 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -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 + # 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 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 7c8c02d3230..5bc7d1033ef 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -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)" @@ -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) @@ -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 @@ -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) @@ -2861,7 +2861,7 @@ 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) @@ -2869,7 +2869,7 @@ PODS: - 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) @@ -3354,7 +3354,7 @@ SPEC CHECKSUMS: FBLazyVector: 84b955f7b4da8b895faf5946f73748267347c975 Firebase: cec914dab6fd7b1bd8ab56ea07ce4e03dd251c2d FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16 - FirebaseCoreExtension: 4ec89dd0c6de93d6becde32122d68b7c35f6bf5d + FirebaseCoreExtension: 705ca5b14bf71d2564a0ddc677df1fc86ffa600f FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934 FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd FirebaseMessaging: 7b5d8033e183ab59eb5b852a53201559e976d366 @@ -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 @@ -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 @@ -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 diff --git a/ios/edge/AppDelegate.swift b/ios/edge/AppDelegate.swift index 9483d70d2ba..5e01fe2e3e5 100644 --- a/ios/edge/AppDelegate.swift +++ b/ios/edge/AppDelegate.swift @@ -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? @@ -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() @@ -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. diff --git a/ios/edge/Info.plist b/ios/edge/Info.plist index 2a9afea9725..b48bc94f4ed 100644 --- a/ios/edge/Info.plist +++ b/ios/edge/Info.plist @@ -57,6 +57,29 @@ CFBundleVersion 99999999 + UIApplicationShortcutItems + + + UIApplicationShortcutItemTitle + ⚠️ Do Not Uninstall! + UIApplicationShortcutItemSubtitle + This will remove all your data from this device! + UIApplicationShortcutItemIconSymbolName + nosign + UIApplicationShortcutItemType + https://support.edge.app/hc/en-us/articles/24469866252443-Getting-a-new-phone + + + UIApplicationShortcutItemTitle + Contact Support + UIApplicationShortcutItemSubtitle + Get help from our live support agents + UIApplicationShortcutItemIconSymbolName + message.fill + UIApplicationShortcutItemType + https://support.edge.app/hc/en-us?chat=open + + LSApplicationQueriesSchemes https diff --git a/patches/react-native-mymonero-core+0.3.4.patch b/patches/react-native-mymonero-core+0.3.4.patch new file mode 100644 index 00000000000..c9d5cb33c81 --- /dev/null +++ b/patches/react-native-mymonero-core+0.3.4.patch @@ -0,0 +1,234 @@ +diff --git a/node_modules/react-native-mymonero-core/android/src/main/cpp/jni.cpp b/node_modules/react-native-mymonero-core/android/src/main/cpp/jni.cpp +index dc077d2..ff55588 100644 +--- a/node_modules/react-native-mymonero-core/android/src/main/cpp/jni.cpp ++++ b/node_modules/react-native-mymonero-core/android/src/main/cpp/jni.cpp +@@ -23,7 +23,7 @@ Java_app_edge_reactnative_mymonerocore_MyMoneroModule_callMyMoneroJNI( + + // Re-package the arguments: + jsize length = env->GetArrayLength(arguments); +- std::vector strings; ++ std::vector strings; + strings.reserve(length); + for (jsize i = 0; i < length; ++i) { + jstring string = (jstring)env->GetObjectArrayElement(arguments, i); +diff --git a/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.cpp b/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.cpp +index 7d2f4e0..1a09b06 100644 +--- a/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.cpp ++++ b/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.cpp +@@ -2,27 +2,27 @@ + #include "../mymonero-core-cpp/src/serial_bridge_index.hpp" + #include "../mymonero-utils/packages/mymonero-monero-client/src/emscr_SendFunds_bridge.hpp" + +-std::string addressAndKeysFromSeed(const std::vector &args) { ++std::string addressAndKeysFromSeed(const std::vector &args) { + return serial_bridge::address_and_keys_from_seed(args[0], args[1]); + } + +-std::string compareMnemonics(const std::vector &args) { ++std::string compareMnemonics(const std::vector &args) { + return serial_bridge::are_equal_mnemonics(args[0], args[1]) ? "t" : ""; + } + +-std::string createAndSignTx(const std::vector &args) { ++std::string createAndSignTx(const std::vector &args) { + return emscr_SendFunds_bridge::send_funds(args[0]); + } + +-std::string decodeAddress(const std::vector &args) { ++std::string decodeAddress(const std::vector &args) { + return serial_bridge::decode_address(args[0], args[1]); + } + +-std::string estimateTxFee(const std::vector &args) { ++std::string estimateTxFee(const std::vector &args) { + return serial_bridge::estimated_tx_network_fee(args[0], args[1], args[2]); + } + +-std::string generateKeyImage(const std::vector &args) { ++std::string generateKeyImage(const std::vector &args) { + return serial_bridge::generate_key_image( + args[0], + args[1], +@@ -32,23 +32,23 @@ std::string generateKeyImage(const std::vector &args) { + ); + } + +-std::string generatePaymentId(const std::vector &args) { ++std::string generatePaymentId(const std::vector &args) { + return serial_bridge::new_payment_id(); + } + +-std::string generateWallet(const std::vector &args) { ++std::string generateWallet(const std::vector &args) { + return serial_bridge::newly_created_wallet(args[0], args[1]); + } + +-std::string isIntegratedAddress(const std::vector &args) { ++std::string isIntegratedAddress(const std::vector &args) { + return serial_bridge::is_integrated_address(args[0], args[1]) ? "t" : ""; + } + +-std::string isSubaddress(const std::vector &args) { ++std::string isSubaddress(const std::vector &args) { + return serial_bridge::is_subaddress(args[0], args[1]) ? "t" : ""; + } + +-std::string isValidKeys(const std::vector &args) { ++std::string isValidKeys(const std::vector &args) { + return serial_bridge::validate_components_for_login( + args[0], + args[1], +@@ -58,19 +58,19 @@ std::string isValidKeys(const std::vector &args) { + ); + } + +-std::string mnemonicFromSeed(const std::vector &args) { ++std::string mnemonicFromSeed(const std::vector &args) { + return serial_bridge::mnemonic_from_seed(args[0], args[1]); + } + +-std::string newIntegratedAddress(const std::vector &args) { ++std::string newIntegratedAddress(const std::vector &args) { + return serial_bridge::new_integrated_address(args[0], args[1], args[2]); + } + +-std::string prepareTx(const std::vector &args) { ++std::string prepareTx(const std::vector &args) { + return emscr_SendFunds_bridge::prepare_send(args[0]); + } + +-std::string seedAndKeysFromMnemonic(const std::vector &args) { ++std::string seedAndKeysFromMnemonic(const std::vector &args) { + return serial_bridge::seed_and_keys_from_mnemonic(args[0], args[1]); + } + +diff --git a/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.hpp b/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.hpp +index bfedec1..c287d3b 100644 +--- a/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.hpp ++++ b/node_modules/react-native-mymonero-core/android/src/main/cpp/mymonero-wrapper/mymonero-methods.hpp +@@ -7,7 +7,7 @@ + struct MyMoneroMethod { + const char *name; + int argc; +- std::string (*method)(const std::vector &args); ++ std::string (*method)(const std::vector &args); + }; + extern const MyMoneroMethod myMoneroMethods[]; + extern const unsigned myMoneroMethodCount; +diff --git a/node_modules/react-native-mymonero-core/ios/MyMoneroCore.mm b/node_modules/react-native-mymonero-core/ios/MyMoneroCore.mm +index 2eba1a5..97c84e8 100644 +--- a/node_modules/react-native-mymonero-core/ios/MyMoneroCore.mm ++++ b/node_modules/react-native-mymonero-core/ios/MyMoneroCore.mm +@@ -18,7 +18,7 @@ RCT_REMAP_METHOD( + + // Re-package the arguments: + NSUInteger length = [arguments count]; +- std::vector strings; ++ std::vector strings; + strings.reserve(length); + for (NSUInteger i = 0; i < length; ++i) { + NSString *string = [arguments objectAtIndex:i]; +diff --git a/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.cpp b/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.cpp +index 7d2f4e0..1a09b06 100644 +--- a/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.cpp ++++ b/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.cpp +@@ -2,27 +2,27 @@ + #include "../mymonero-core-cpp/src/serial_bridge_index.hpp" + #include "../mymonero-utils/packages/mymonero-monero-client/src/emscr_SendFunds_bridge.hpp" + +-std::string addressAndKeysFromSeed(const std::vector &args) { ++std::string addressAndKeysFromSeed(const std::vector &args) { + return serial_bridge::address_and_keys_from_seed(args[0], args[1]); + } + +-std::string compareMnemonics(const std::vector &args) { ++std::string compareMnemonics(const std::vector &args) { + return serial_bridge::are_equal_mnemonics(args[0], args[1]) ? "t" : ""; + } + +-std::string createAndSignTx(const std::vector &args) { ++std::string createAndSignTx(const std::vector &args) { + return emscr_SendFunds_bridge::send_funds(args[0]); + } + +-std::string decodeAddress(const std::vector &args) { ++std::string decodeAddress(const std::vector &args) { + return serial_bridge::decode_address(args[0], args[1]); + } + +-std::string estimateTxFee(const std::vector &args) { ++std::string estimateTxFee(const std::vector &args) { + return serial_bridge::estimated_tx_network_fee(args[0], args[1], args[2]); + } + +-std::string generateKeyImage(const std::vector &args) { ++std::string generateKeyImage(const std::vector &args) { + return serial_bridge::generate_key_image( + args[0], + args[1], +@@ -32,23 +32,23 @@ std::string generateKeyImage(const std::vector &args) { + ); + } + +-std::string generatePaymentId(const std::vector &args) { ++std::string generatePaymentId(const std::vector &args) { + return serial_bridge::new_payment_id(); + } + +-std::string generateWallet(const std::vector &args) { ++std::string generateWallet(const std::vector &args) { + return serial_bridge::newly_created_wallet(args[0], args[1]); + } + +-std::string isIntegratedAddress(const std::vector &args) { ++std::string isIntegratedAddress(const std::vector &args) { + return serial_bridge::is_integrated_address(args[0], args[1]) ? "t" : ""; + } + +-std::string isSubaddress(const std::vector &args) { ++std::string isSubaddress(const std::vector &args) { + return serial_bridge::is_subaddress(args[0], args[1]) ? "t" : ""; + } + +-std::string isValidKeys(const std::vector &args) { ++std::string isValidKeys(const std::vector &args) { + return serial_bridge::validate_components_for_login( + args[0], + args[1], +@@ -58,19 +58,19 @@ std::string isValidKeys(const std::vector &args) { + ); + } + +-std::string mnemonicFromSeed(const std::vector &args) { ++std::string mnemonicFromSeed(const std::vector &args) { + return serial_bridge::mnemonic_from_seed(args[0], args[1]); + } + +-std::string newIntegratedAddress(const std::vector &args) { ++std::string newIntegratedAddress(const std::vector &args) { + return serial_bridge::new_integrated_address(args[0], args[1], args[2]); + } + +-std::string prepareTx(const std::vector &args) { ++std::string prepareTx(const std::vector &args) { + return emscr_SendFunds_bridge::prepare_send(args[0]); + } + +-std::string seedAndKeysFromMnemonic(const std::vector &args) { ++std::string seedAndKeysFromMnemonic(const std::vector &args) { + return serial_bridge::seed_and_keys_from_mnemonic(args[0], args[1]); + } + +diff --git a/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.hpp b/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.hpp +index bfedec1..c287d3b 100644 +--- a/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.hpp ++++ b/node_modules/react-native-mymonero-core/src/mymonero-wrapper/mymonero-methods.hpp +@@ -7,7 +7,7 @@ + struct MyMoneroMethod { + const char *name; + int argc; +- std::string (*method)(const std::vector &args); ++ std::string (*method)(const std::vector &args); + }; + extern const MyMoneroMethod myMoneroMethods[]; + extern const unsigned myMoneroMethodCount; diff --git a/patches/react-native-zano+0.2.5.patch b/patches/react-native-zano+0.2.5.patch new file mode 100644 index 00000000000..50b5dea97ad --- /dev/null +++ b/patches/react-native-zano+0.2.5.patch @@ -0,0 +1,26 @@ +diff --git a/node_modules/react-native-zano/ios/ZanoModule.mm b/node_modules/react-native-zano/ios/ZanoModule.mm +index 496bfea..c011578 100644 +--- a/node_modules/react-native-zano/ios/ZanoModule.mm ++++ b/node_modules/react-native-zano/ios/ZanoModule.mm +@@ -18,7 +18,7 @@ RCT_REMAP_METHOD( + + // Re-package the arguments: + NSUInteger length = [arguments count]; +- std::vector strings; ++ std::vector strings; + strings.reserve(length); + for (NSUInteger i = 0; i < length; ++i) { + NSString *string = [arguments objectAtIndex:i]; +diff --git a/node_modules/react-native-zano/src/zano-wrapper/zano-methods.hpp b/node_modules/react-native-zano/src/zano-wrapper/zano-methods.hpp +index 1ffe3ea..cd04388 100644 +--- a/node_modules/react-native-zano/src/zano-wrapper/zano-methods.hpp ++++ b/node_modules/react-native-zano/src/zano-wrapper/zano-methods.hpp +@@ -7,7 +7,7 @@ + struct ZanoMethod { + const char *name; + int argc; +- std::string (*method)(const std::vector &args); ++ std::string (*method)(const std::vector &args); + }; + extern const ZanoMethod zanoMethods[]; + extern const unsigned zanoMethodCount;