@novastera-oss/nitro-metamask 0.3.3 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +45 -1
  2. package/android/src/main/java/com/margelo/nitro/nitrometamask/HybridNitroMetamask.kt +349 -175
  3. package/app.plugin.js +121 -0
  4. package/ios/HybridNitroMetamask.swift +71 -110
  5. package/lib/typescript/src/specs/nitro-metamask.nitro.d.ts +31 -6
  6. package/lib/typescript/src/specs/nitro-metamask.nitro.d.ts.map +1 -1
  7. package/nitrogen/generated/android/NitroMetamask+autolinking.cmake +2 -0
  8. package/nitrogen/generated/android/c++/JConnectResult.hpp +3 -3
  9. package/nitrogen/generated/android/c++/JConnectSignResult.hpp +65 -0
  10. package/nitrogen/generated/android/c++/JHybridNitroMetamaskSpec.cpp +48 -7
  11. package/nitrogen/generated/android/c++/JHybridNitroMetamaskSpec.hpp +4 -2
  12. package/nitrogen/generated/android/c++/JVariant_NullType_Long.cpp +26 -0
  13. package/nitrogen/generated/android/c++/JVariant_NullType_Long.hpp +69 -0
  14. package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
  15. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
  16. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/ConnectResult.kt +2 -2
  17. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/ConnectSignResult.kt +44 -0
  18. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/HybridNitroMetamaskSpec.kt +11 -2
  19. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/Variant_NullType_Long.kt +59 -0
  20. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/Variant_NullType_String.kt +59 -0
  21. package/nitrogen/generated/ios/NitroMetamask-Swift-Cxx-Bridge.cpp +24 -0
  22. package/nitrogen/generated/ios/NitroMetamask-Swift-Cxx-Bridge.hpp +192 -0
  23. package/nitrogen/generated/ios/NitroMetamask-Swift-Cxx-Umbrella.hpp +5 -0
  24. package/nitrogen/generated/ios/c++/HybridNitroMetamaskSpecSwift.hpp +24 -3
  25. package/nitrogen/generated/ios/swift/ConnectResult.swift +2 -2
  26. package/nitrogen/generated/ios/swift/ConnectSignResult.swift +40 -0
  27. package/nitrogen/generated/ios/swift/Func_void_ConnectSignResult.swift +47 -0
  28. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__int64_t_.swift +59 -0
  29. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__string_.swift +59 -0
  30. package/nitrogen/generated/ios/swift/HybridNitroMetamaskSpec.swift +4 -2
  31. package/nitrogen/generated/ios/swift/HybridNitroMetamaskSpec_cxx.swift +67 -8
  32. package/nitrogen/generated/ios/swift/Variant_NullType_Int64.swift +18 -0
  33. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +18 -0
  34. package/nitrogen/generated/shared/c++/ConnectResult.hpp +5 -5
  35. package/nitrogen/generated/shared/c++/ConnectSignResult.hpp +91 -0
  36. package/nitrogen/generated/shared/c++/HybridNitroMetamaskSpec.cpp +2 -0
  37. package/nitrogen/generated/shared/c++/HybridNitroMetamaskSpec.hpp +9 -2
  38. package/package.json +3 -2
  39. package/src/specs/nitro-metamask.nitro.ts +32 -6
package/README.md CHANGED
@@ -51,7 +51,51 @@ Add this inside your `MainActivity` `<activity>` tag:
51
51
 
52
52
  ### iOS Configuration
53
53
 
54
- For iOS, the MetaMask SDK handles deep linking automatically. No additional configuration is required in `Info.plist`.
54
+ **For Expo projects:** The package includes an Expo config plugin that automatically adds the required AppDelegate code. Just add the plugin to your `app.json` or `app.config.js`:
55
+
56
+ ```json
57
+ {
58
+ "expo": {
59
+ "plugins": ["@novastera-oss/nitro-metamask"]
60
+ }
61
+ }
62
+ ```
63
+
64
+ The plugin will automatically:
65
+ - Add the `import MetaMaskSDK` statement
66
+ - Add the `application(_:open:options:)` method to handle MetaMask deep links
67
+ - Work with both Swift and Objective-C AppDelegate files
68
+
69
+ **For bare React Native projects:** Add deep link handling manually in your `AppDelegate.swift` (or `AppDelegate.m` for Objective-C):
70
+
71
+ **File:** `ios/YourAppName/AppDelegate.swift`
72
+
73
+ ```swift
74
+ import MetaMaskSDK
75
+
76
+ // ... existing AppDelegate code ...
77
+
78
+ // Handle deep links from MetaMask wallet
79
+ // MetaMask returns to the app via deep link after signing/connecting
80
+ func application(
81
+ _ app: UIApplication,
82
+ open url: URL,
83
+ options: [UIApplication.OpenURLOptionsKey: Any] = [:]
84
+ ) -> Bool {
85
+ // Check if this is a MetaMask deep link (host="mmsdk")
86
+ if let components = URLComponents(url: url, resolvingAgainstBaseURL: true),
87
+ components.host == "mmsdk" {
88
+ // Handle MetaMask deep link return
89
+ MetaMaskSDK.shared.handleUrl(url)
90
+ return true
91
+ }
92
+
93
+ // Handle other deep links (e.g., React Native Linking)
94
+ return false
95
+ }
96
+ ```
97
+
98
+ **Info.plist:** The URL scheme is automatically detected from your `Info.plist` `CFBundleURLSchemes` configuration. Ensure you have a URL scheme configured (e.g., `nitrometamask`).
55
99
 
56
100
  ## Usage
57
101