@novastera-oss/nitro-metamask 0.6.2 → 0.7.0

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 (168) hide show
  1. package/NitroMetamask.podspec +12 -3
  2. package/android/build.gradle +10 -13
  3. package/android/cargo-ecies.gradle +59 -78
  4. package/android/src/main/aidl/io/metamask/nativesdk/IMessegeService.aidl +8 -0
  5. package/android/src/main/aidl/io/metamask/nativesdk/IMessegeServiceCallback.aidl +8 -0
  6. package/android/src/main/java/com/margelo/nitro/nitrometamask/HybridNitroMetamask.kt +101 -3
  7. package/android/src/main/java/io/metamask/androidsdk/AnyRequest.kt +8 -0
  8. package/android/src/main/java/io/metamask/androidsdk/ClientMessageServiceCallback.kt +12 -0
  9. package/android/src/main/java/io/metamask/androidsdk/ClientServiceConnection.kt +42 -0
  10. package/android/src/main/java/io/metamask/androidsdk/CommunicationClient.kt +525 -0
  11. package/android/src/main/java/io/metamask/androidsdk/CommunicationClientModule.kt +47 -0
  12. package/android/src/main/java/io/metamask/androidsdk/CommunicationClientModuleInterface.kt +11 -0
  13. package/android/src/main/java/io/metamask/androidsdk/Constants.kt +5 -0
  14. package/android/src/main/java/io/metamask/androidsdk/Crypto.kt +35 -0
  15. package/android/src/main/java/io/metamask/androidsdk/DappMetadata.kt +36 -0
  16. package/android/src/main/java/io/metamask/androidsdk/Encryption.kt +9 -0
  17. package/android/src/main/java/io/metamask/androidsdk/ErrorType.kt +41 -0
  18. package/android/src/main/java/io/metamask/androidsdk/Ethereum.kt +328 -0
  19. package/android/src/main/java/io/metamask/androidsdk/EthereumEventCallback.kt +6 -0
  20. package/android/src/main/java/io/metamask/androidsdk/EthereumMethod.kt +80 -0
  21. package/android/src/main/java/io/metamask/androidsdk/EthereumRequest.kt +7 -0
  22. package/android/src/main/java/io/metamask/androidsdk/EthereumState.kt +7 -0
  23. package/android/src/main/java/io/metamask/androidsdk/KeyExchange.kt +77 -0
  24. package/android/src/main/java/io/metamask/androidsdk/KeyExchangeMessageType.kt +20 -0
  25. package/android/src/main/java/io/metamask/androidsdk/KeyStorage.kt +122 -0
  26. package/android/src/main/java/io/metamask/androidsdk/Logger.kt +18 -0
  27. package/android/src/main/java/io/metamask/androidsdk/Message.kt +3 -0
  28. package/android/src/main/java/io/metamask/androidsdk/MessageType.kt +11 -0
  29. package/android/src/main/java/io/metamask/androidsdk/OriginatorInfo.kt +12 -0
  30. package/android/src/main/java/io/metamask/androidsdk/RequestError.kt +8 -0
  31. package/android/src/main/java/io/metamask/androidsdk/RequestInfo.kt +9 -0
  32. package/android/src/main/java/io/metamask/androidsdk/Result.kt +11 -0
  33. package/android/src/main/java/io/metamask/androidsdk/RpcRequest.kt +7 -0
  34. package/android/src/main/java/io/metamask/androidsdk/SDKInfo.kt +6 -0
  35. package/android/src/main/java/io/metamask/androidsdk/SDKOptions.kt +6 -0
  36. package/android/src/main/java/io/metamask/androidsdk/SecureStorage.kt +9 -0
  37. package/android/src/main/java/io/metamask/androidsdk/SessionConfig.kt +10 -0
  38. package/android/src/main/java/io/metamask/androidsdk/SessionManager.kt +92 -0
  39. package/android/src/main/java/io/metamask/androidsdk/SubmittedRequest.kt +8 -0
  40. package/android/src/main/java/io/metamask/androidsdk/TimeStampGenerator.kt +7 -0
  41. package/android/src/main/jniLibs/arm64-v8a/libecies.so +0 -0
  42. package/android/src/main/jniLibs/armeabi-v7a/libecies.so +0 -0
  43. package/android/src/main/jniLibs/x86/libecies.so +0 -0
  44. package/android/src/main/jniLibs/x86_64/libecies.so +0 -0
  45. package/android/src/test/java/com/margelo/nitro/nitrometamask/CancellationStateMachineTest.kt +128 -0
  46. package/android/src/test/java/com/margelo/nitro/nitrometamask/ChainIdParsingTest.kt +65 -0
  47. package/android/src/test/java/com/margelo/nitro/nitrometamask/ConfigureStateMachineTest.kt +140 -0
  48. package/android/src/test/java/com/margelo/nitro/nitrometamask/ConnectSignJsonTest.kt +76 -0
  49. package/android/src/test/java/com/margelo/nitro/nitrometamask/MetaMaskInstallationCheckTest.kt +42 -0
  50. package/android/src/test/java/com/margelo/nitro/nitrometamask/PersonalSignParamsTest.kt +75 -0
  51. package/ios/Frameworks/Ecies.xcframework/Info.plist +47 -0
  52. package/ios/Frameworks/Ecies.xcframework/ios-arm64/Headers/ecies.h +20 -0
  53. package/ios/Frameworks/Ecies.xcframework/ios-arm64/Headers/module.modulemap +4 -0
  54. package/ios/Frameworks/Ecies.xcframework/ios-arm64/libecies.a +0 -0
  55. package/ios/Frameworks/Ecies.xcframework/ios-arm64-simulator/Headers/ecies.h +20 -0
  56. package/ios/Frameworks/Ecies.xcframework/ios-arm64-simulator/Headers/module.modulemap +4 -0
  57. package/ios/Frameworks/Ecies.xcframework/ios-arm64-simulator/libecies.a +0 -0
  58. package/ios/HybridNitroMetamask.swift +119 -54
  59. package/ios/NitroMetamaskTests/CancellationStateMachineTests.swift +150 -0
  60. package/ios/NitroMetamaskTests/ChainIdParsingTests.swift +117 -0
  61. package/ios/NitroMetamaskTests/ConfigureStateMachineTests.swift +174 -0
  62. package/ios/NitroMetamaskTests/ConnectSignJsonTests.swift +168 -0
  63. package/ios/NitroMetamaskTests/DefaultDappUrlTests.swift +80 -0
  64. package/ios/NitroMetamaskTests/PersonalSignParamsTests.swift +101 -0
  65. package/ios/metamask-ios-sdk/CommunicationLayer/CommClient.swift +43 -0
  66. package/ios/metamask-ios-sdk/CommunicationLayer/CommClientFactory.swift +17 -0
  67. package/ios/metamask-ios-sdk/CommunicationLayer/CommLayer.swift +36 -0
  68. package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/Deeplink.swift +26 -0
  69. package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/DeeplinkClient.swift +199 -0
  70. package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/DeeplinkManager.swift +83 -0
  71. package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/String.swift +48 -0
  72. package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/URLOpener.swift +19 -0
  73. package/ios/metamask-ios-sdk/CommunicationLayer/SocketClient.swift +27 -0
  74. package/ios/metamask-ios-sdk/Crypto/Crypto.swift +72 -0
  75. package/ios/metamask-ios-sdk/Crypto/Encoding.swift +15 -0
  76. package/ios/metamask-ios-sdk/Crypto/KeyExchange.swift +236 -0
  77. package/ios/metamask-ios-sdk/DeviceInfo/DeviceInfo.swift +11 -0
  78. package/ios/metamask-ios-sdk/Ethereum/AppMetadata.swift +28 -0
  79. package/ios/metamask-ios-sdk/Ethereum/ErrorType.swift +62 -0
  80. package/ios/metamask-ios-sdk/Ethereum/Ethereum.swift +810 -0
  81. package/ios/metamask-ios-sdk/Ethereum/EthereumMethod.swift +111 -0
  82. package/ios/metamask-ios-sdk/Ethereum/EthereumRequest.swift +40 -0
  83. package/ios/metamask-ios-sdk/Ethereum/EthereumWrapper.swift +10 -0
  84. package/ios/metamask-ios-sdk/Ethereum/RPCRequest.swift +14 -0
  85. package/ios/metamask-ios-sdk/Ethereum/RequestError.swift +88 -0
  86. package/ios/metamask-ios-sdk/Ethereum/ResponseMethod.swift +22 -0
  87. package/ios/metamask-ios-sdk/Ethereum/SubmitRequest.swift +26 -0
  88. package/ios/metamask-ios-sdk/Ethereum/TimestampGenerator.swift +16 -0
  89. package/ios/metamask-ios-sdk/Extensions/NSRecursiveLock.swift +14 -0
  90. package/ios/metamask-ios-sdk/Extensions/Notification.swift +10 -0
  91. package/ios/metamask-ios-sdk/Logger/Logging.swift +27 -0
  92. package/ios/metamask-ios-sdk/Models/AddChainParameters.swift +35 -0
  93. package/ios/metamask-ios-sdk/Models/Event.swift +19 -0
  94. package/ios/metamask-ios-sdk/Models/Mappable.swift +40 -0
  95. package/ios/metamask-ios-sdk/Models/NativeCurrency.swift +25 -0
  96. package/ios/metamask-ios-sdk/Models/OriginatorInfo.swift +26 -0
  97. package/ios/metamask-ios-sdk/Models/RequestInfo.swift +18 -0
  98. package/ios/metamask-ios-sdk/Models/SignContract.swift +48 -0
  99. package/ios/metamask-ios-sdk/Models/Typealiases.swift +9 -0
  100. package/ios/metamask-ios-sdk/Persistence/SecureStore.swift +134 -0
  101. package/ios/metamask-ios-sdk/Persistence/SessionConfig.swift +24 -0
  102. package/ios/metamask-ios-sdk/Persistence/SessionManager.swift +56 -0
  103. package/ios/metamask-ios-sdk/SDK/Dependencies.swift +35 -0
  104. package/ios/metamask-ios-sdk/SDK/MetaMaskSDK.swift +215 -0
  105. package/ios/metamask-ios-sdk/SDK/SDKInfo.swift +37 -0
  106. package/ios/metamask-ios-sdk/SDK/SDKOptions.swift +16 -0
  107. package/lib/commonjs/index.js +50 -3
  108. package/lib/commonjs/index.js.map +1 -1
  109. package/lib/module/index.js +49 -3
  110. package/lib/module/index.js.map +1 -1
  111. package/lib/typescript/src/__tests__/parseNitroError.test.d.ts +2 -0
  112. package/lib/typescript/src/__tests__/parseNitroError.test.d.ts.map +1 -0
  113. package/lib/typescript/src/index.d.ts +43 -3
  114. package/lib/typescript/src/index.d.ts.map +1 -1
  115. package/lib/typescript/src/specs/nitro-metamask.nitro.d.ts +34 -6
  116. package/lib/typescript/src/specs/nitro-metamask.nitro.d.ts.map +1 -1
  117. package/nitro.json +8 -2
  118. package/nitrogen/generated/android/NitroMetamask+autolinking.cmake +1 -1
  119. package/nitrogen/generated/android/NitroMetamask+autolinking.gradle +1 -1
  120. package/nitrogen/generated/android/NitroMetamaskOnLoad.cpp +27 -17
  121. package/nitrogen/generated/android/NitroMetamaskOnLoad.hpp +14 -5
  122. package/nitrogen/generated/android/c++/JConnectResult.hpp +2 -2
  123. package/nitrogen/generated/android/c++/JConnectSignResult.hpp +2 -2
  124. package/nitrogen/generated/android/c++/JHybridNitroMetamaskSpec.cpp +26 -25
  125. package/nitrogen/generated/android/c++/JHybridNitroMetamaskSpec.hpp +20 -22
  126. package/nitrogen/generated/android/c++/JVariant_NullType_Long.cpp +1 -1
  127. package/nitrogen/generated/android/c++/JVariant_NullType_Long.hpp +4 -4
  128. package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +1 -1
  129. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +4 -4
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/ConnectResult.kt +16 -1
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/ConnectSignResult.kt +18 -1
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/HybridNitroMetamaskSpec.kt +16 -19
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/NitroMetamaskOnLoad.kt +1 -1
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/Variant_NullType_Long.kt +15 -12
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrometamask/Variant_NullType_String.kt +15 -12
  136. package/nitrogen/generated/ios/NitroMetamask+autolinking.rb +3 -1
  137. package/nitrogen/generated/ios/NitroMetamask-Swift-Cxx-Bridge.cpp +1 -1
  138. package/nitrogen/generated/ios/NitroMetamask-Swift-Cxx-Bridge.hpp +2 -2
  139. package/nitrogen/generated/ios/NitroMetamask-Swift-Cxx-Umbrella.hpp +1 -1
  140. package/nitrogen/generated/ios/NitroMetamaskAutolinking.mm +1 -1
  141. package/nitrogen/generated/ios/NitroMetamaskAutolinking.swift +9 -8
  142. package/nitrogen/generated/ios/c++/HybridNitroMetamaskSpecSwift.cpp +1 -1
  143. package/nitrogen/generated/ios/c++/HybridNitroMetamaskSpecSwift.hpp +7 -1
  144. package/nitrogen/generated/ios/swift/ConnectResult.swift +1 -2
  145. package/nitrogen/generated/ios/swift/ConnectSignResult.swift +1 -2
  146. package/nitrogen/generated/ios/swift/Func_void_ConnectResult.swift +1 -2
  147. package/nitrogen/generated/ios/swift/Func_void_ConnectSignResult.swift +1 -2
  148. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
  149. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -2
  150. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__int64_t_.swift +1 -2
  151. package/nitrogen/generated/ios/swift/Func_void_std__variant_nitro__NullType__std__string_.swift +1 -2
  152. package/nitrogen/generated/ios/swift/HybridNitroMetamaskSpec.swift +3 -4
  153. package/nitrogen/generated/ios/swift/HybridNitroMetamaskSpec_cxx.swift +9 -2
  154. package/nitrogen/generated/ios/swift/Variant_NullType_Int64.swift +14 -2
  155. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +13 -1
  156. package/nitrogen/generated/shared/c++/ConnectResult.hpp +1 -1
  157. package/nitrogen/generated/shared/c++/ConnectSignResult.hpp +1 -1
  158. package/nitrogen/generated/shared/c++/HybridNitroMetamaskSpec.cpp +1 -1
  159. package/nitrogen/generated/shared/c++/HybridNitroMetamaskSpec.hpp +1 -1
  160. package/package.json +18 -13
  161. package/rust/ecies-jni/Cargo.lock +50 -86
  162. package/rust/ecies-jni/Cargo.toml +1 -1
  163. package/rust/ecies-jni/src/lib.rs +164 -100
  164. package/src/__tests__/parseNitroError.test.ts +35 -0
  165. package/src/index.ts +53 -5
  166. package/src/specs/nitro-metamask.nitro.ts +34 -6
  167. package/scripts/verify-16k-page-alignment.py +0 -117
  168. package/scripts/verify-16k-page-alignment.sh +0 -5
@@ -2,13 +2,14 @@
2
2
  /// ConnectSignResult.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrometamask
9
9
 
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.proguard.annotations.DoNotStrip
12
+ import java.util.Objects
12
13
 
13
14
 
14
15
  /**
@@ -29,6 +30,22 @@ data class ConnectSignResult(
29
30
  ) {
30
31
  /* primary constructor */
31
32
 
33
+ override fun equals(other: Any?): Boolean {
34
+ if (this === other) return true
35
+ if (other !is ConnectSignResult) return false
36
+ return Objects.deepEquals(this.signature, other.signature)
37
+ && Objects.deepEquals(this.address, other.address)
38
+ && Objects.deepEquals(this.chainId, other.chainId)
39
+ }
40
+
41
+ override fun hashCode(): Int {
42
+ return arrayOf(
43
+ signature,
44
+ address,
45
+ chainId
46
+ ).contentDeepHashCode()
47
+ }
48
+
32
49
  companion object {
33
50
  /**
34
51
  * Constructor called from C++
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroMetamaskSpec.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrometamask
@@ -26,23 +26,6 @@ import com.margelo.nitro.core.HybridObject
26
26
  "LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
27
27
  )
28
28
  abstract class HybridNitroMetamaskSpec: HybridObject() {
29
- @DoNotStrip
30
- private var mHybridData: HybridData = initHybrid()
31
-
32
- init {
33
- super.updateNative(mHybridData)
34
- }
35
-
36
- override fun updateNative(hybridData: HybridData) {
37
- mHybridData = hybridData
38
- super.updateNative(hybridData)
39
- }
40
-
41
- // Default implementation of `HybridObject.toString()`
42
- override fun toString(): String {
43
- return "[HybridObject NitroMetamask]"
44
- }
45
-
46
29
  // Properties
47
30
 
48
31
 
@@ -71,7 +54,21 @@ abstract class HybridNitroMetamaskSpec: HybridObject() {
71
54
  @Keep
72
55
  abstract fun getChainId(): Promise<Variant_NullType_Long>
73
56
 
74
- private external fun initHybrid(): HybridData
57
+ // Default implementation of `HybridObject.toString()`
58
+ override fun toString(): String {
59
+ return "[HybridObject NitroMetamask]"
60
+ }
61
+
62
+ // C++ backing class
63
+ @DoNotStrip
64
+ @Keep
65
+ protected open class CxxPart(javaPart: HybridNitroMetamaskSpec): HybridObject.CxxPart(javaPart) {
66
+ // C++ JHybridNitroMetamaskSpec::CxxPart::initHybrid(...)
67
+ external override fun initHybrid(): HybridData
68
+ }
69
+ override fun createCxxPart(): CxxPart {
70
+ return CxxPart(this)
71
+ }
75
72
 
76
73
  companion object {
77
74
  protected const val TAG = "HybridNitroMetamaskSpec"
@@ -2,7 +2,7 @@
2
2
  /// NitroMetamaskOnLoad.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrometamask
@@ -2,7 +2,7 @@
2
2
  /// Variant_NullType_Long.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrometamask
@@ -21,10 +21,20 @@ sealed class Variant_NullType_Long {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: Long): Variant_NullType_Long()
23
23
 
24
- @Deprecated("getAs() is not type-safe. Use fold/asFirstOrNull/asSecondOrNull instead.", level = DeprecationLevel.ERROR)
25
- inline fun <reified T> getAs(): T? = when (this) {
26
- is First -> value as? T
27
- is Second -> value as? T
24
+ inline fun <reified T> asType(): T? {
25
+ return when (this) {
26
+ is First -> (value) as? T
27
+ is Second -> (value) as? T
28
+ }
29
+ }
30
+ inline fun <reified T> isType(): Boolean {
31
+ return asType<T>() != null
32
+ }
33
+ inline fun <R> match(first: (NullType) -> R, second: (Long) -> R): R {
34
+ return when (this) {
35
+ is First -> first(value)
36
+ is Second -> second(value)
37
+ }
28
38
  }
29
39
 
30
40
  val isFirst: Boolean
@@ -41,13 +51,6 @@ sealed class Variant_NullType_Long {
41
51
  return value
42
52
  }
43
53
 
44
- inline fun <R> match(first: (NullType) -> R, second: (Long) -> R): R {
45
- return when (this) {
46
- is First -> first(value)
47
- is Second -> second(value)
48
- }
49
- }
50
-
51
54
  companion object {
52
55
  @JvmStatic
53
56
  @DoNotStrip
@@ -2,7 +2,7 @@
2
2
  /// Variant_NullType_String.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrometamask
@@ -21,10 +21,20 @@ sealed class Variant_NullType_String {
21
21
  @DoNotStrip
22
22
  data class Second(@DoNotStrip val value: String): Variant_NullType_String()
23
23
 
24
- @Deprecated("getAs() is not type-safe. Use fold/asFirstOrNull/asSecondOrNull instead.", level = DeprecationLevel.ERROR)
25
- inline fun <reified T> getAs(): T? = when (this) {
26
- is First -> value as? T
27
- is Second -> value as? T
24
+ inline fun <reified T> asType(): T? {
25
+ return when (this) {
26
+ is First -> (value) as? T
27
+ is Second -> (value) as? T
28
+ }
29
+ }
30
+ inline fun <reified T> isType(): Boolean {
31
+ return asType<T>() != null
32
+ }
33
+ inline fun <R> match(first: (NullType) -> R, second: (String) -> R): R {
34
+ return when (this) {
35
+ is First -> first(value)
36
+ is Second -> second(value)
37
+ }
28
38
  }
29
39
 
30
40
  val isFirst: Boolean
@@ -41,13 +51,6 @@ sealed class Variant_NullType_String {
41
51
  return value
42
52
  }
43
53
 
44
- inline fun <R> match(first: (NullType) -> R, second: (String) -> R): R {
45
- return when (this) {
46
- is First -> first(value)
47
- is Second -> second(value)
48
- }
49
- }
50
-
51
54
  companion object {
52
55
  @JvmStatic
53
56
  @DoNotStrip
@@ -2,7 +2,7 @@
2
2
  # NitroMetamask+autolinking.rb
3
3
  # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  # https://github.com/mrousavy/nitro
5
- # Copyright © 2026 Marc Rousavy @ Margelo
5
+ # Copyright © Marc Rousavy @ Margelo
6
6
  #
7
7
 
8
8
  # This is a Ruby script that adds all files generated by Nitrogen
@@ -56,5 +56,7 @@ def add_nitrogen_files(spec)
56
56
  "SWIFT_OBJC_INTEROP_MODE" => "objcxx",
57
57
  # Enables stricter modular headers
58
58
  "DEFINES_MODULE" => "YES",
59
+ # Disable auto-generated ObjC header for Swift (Static linkage on Xcode 26.4 breaks here)
60
+ "SWIFT_INSTALL_OBJC_HEADER" => "NO",
59
61
  })
60
62
  end
@@ -2,7 +2,7 @@
2
2
  /// NitroMetamask-Swift-Cxx-Bridge.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "NitroMetamask-Swift-Cxx-Bridge.hpp"
@@ -2,7 +2,7 @@
2
2
  /// NitroMetamask-Swift-Cxx-Bridge.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -52,7 +52,7 @@ namespace margelo::nitro::nitrometamask::bridge::swift {
52
52
  return optional.has_value();
53
53
  }
54
54
  inline std::string get_std__optional_std__string_(const std::optional<std::string>& optional) noexcept {
55
- return *optional;
55
+ return optional.value();
56
56
  }
57
57
 
58
58
  // pragma MARK: std::shared_ptr<Promise<ConnectResult>>
@@ -2,7 +2,7 @@
2
2
  /// NitroMetamask-Swift-Cxx-Umbrella.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// NitroMetamaskAutolinking.mm
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #import <Foundation/Foundation.h>
@@ -2,19 +2,16 @@
2
2
  /// NitroMetamaskAutolinking.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
+ import NitroModules
9
+
10
+ // TODO: Use empty enums once Swift supports exporting them as namespaces
11
+ // See: https://github.com/swiftlang/swift/pull/83616
8
12
  public final class NitroMetamaskAutolinking {
9
13
  public typealias bridge = margelo.nitro.nitrometamask.bridge.swift
10
14
 
11
- /**
12
- * Creates an instance of a Swift class that implements `HybridNitroMetamaskSpec`,
13
- * and wraps it in a Swift class that can directly interop with C++ (`HybridNitroMetamaskSpec_cxx`)
14
- *
15
- * This is generated by Nitrogen and will initialize the class specified
16
- * in the `"autolinking"` property of `nitro.json` (in this case, `HybridNitroMetamask`).
17
- */
18
15
  public static func createNitroMetamask() -> bridge.std__shared_ptr_HybridNitroMetamaskSpec_ {
19
16
  let hybridObject = HybridNitroMetamask()
20
17
  return { () -> bridge.std__shared_ptr_HybridNitroMetamaskSpec_ in
@@ -22,4 +19,8 @@ public final class NitroMetamaskAutolinking {
22
19
  return __cxxWrapped.getCxxPart()
23
20
  }()
24
21
  }
22
+
23
+ public static func isNitroMetamaskRecyclable() -> Bool {
24
+ return HybridNitroMetamask.self is any RecyclableView.Type
25
+ }
25
26
  }
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroMetamaskSpecSwift.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridNitroMetamaskSpecSwift.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroMetamaskSpecSwift.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -56,6 +56,12 @@ namespace margelo::nitro::nitrometamask {
56
56
  inline size_t getExternalMemorySize() noexcept override {
57
57
  return _swiftPart.getMemorySize();
58
58
  }
59
+ bool equals(const std::shared_ptr<HybridObject>& other) override {
60
+ if (auto otherCast = std::dynamic_pointer_cast<HybridNitroMetamaskSpecSwift>(other)) {
61
+ return _swiftPart.equals(otherCast->_swiftPart);
62
+ }
63
+ return false;
64
+ }
59
65
  void dispose() noexcept override {
60
66
  _swiftPart.dispose();
61
67
  }
@@ -2,10 +2,9 @@
2
2
  /// ConnectResult.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// ConnectSignResult.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// Func_void_ConnectResult.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// Func_void_ConnectSignResult.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// Func_void_std__exception_ptr.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// Func_void_std__string.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// Func_void_std__variant_nitro__NullType__int64_t_.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// Func_void_std__variant_nitro__NullType__std__string_.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -2,10 +2,9 @@
2
2
  /// HybridNitroMetamaskSpec.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /// See ``HybridNitroMetamaskSpec``
@@ -35,14 +34,14 @@ open class HybridNitroMetamaskSpec_base {
35
34
  public init() { }
36
35
  public func getCxxWrapper() -> HybridNitroMetamaskSpec_cxx {
37
36
  #if DEBUG
38
- guard self is HybridNitroMetamaskSpec else {
37
+ guard self is any HybridNitroMetamaskSpec else {
39
38
  fatalError("`self` is not a `HybridNitroMetamaskSpec`! Did you accidentally inherit from `HybridNitroMetamaskSpec_base` instead of `HybridNitroMetamaskSpec`?")
40
39
  }
41
40
  #endif
42
41
  if let cxxWrapper = self.cxxWrapper {
43
42
  return cxxWrapper
44
43
  } else {
45
- let cxxWrapper = HybridNitroMetamaskSpec_cxx(self as! HybridNitroMetamaskSpec)
44
+ let cxxWrapper = HybridNitroMetamaskSpec_cxx(self as! any HybridNitroMetamaskSpec)
46
45
  self.cxxWrapper = cxxWrapper
47
46
  return cxxWrapper
48
47
  }
@@ -2,10 +2,9 @@
2
2
  /// HybridNitroMetamaskSpec_cxx.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- import Foundation
9
8
  import NitroModules
10
9
 
11
10
  /**
@@ -96,6 +95,14 @@ open class HybridNitroMetamaskSpec_cxx {
96
95
  return MemoryHelper.getSizeOf(self.__implementation) + self.__implementation.memorySize
97
96
  }
98
97
 
98
+ /**
99
+ * Compares this object with the given [other] object for reference equality.
100
+ */
101
+ @inline(__always)
102
+ public func equals(other: HybridNitroMetamaskSpec_cxx) -> Bool {
103
+ return self.__implementation === other.__implementation
104
+ }
105
+
99
106
  /**
100
107
  * Call dispose() on the Swift class.
101
108
  * This _may_ be called manually from JS.
@@ -2,17 +2,29 @@
2
2
  /// Variant_NullType_Int64.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import NitroModules
9
9
 
10
10
  /**
11
11
  * An Swift enum with associated values representing a Variant/Union type.
12
- * JS type: `null | bigint`
12
+ * JS type: `null | int64`
13
13
  */
14
14
  @frozen
15
15
  public enum Variant_NullType_Int64 {
16
16
  case first(NullType)
17
17
  case second(Int64)
18
18
  }
19
+
20
+ public extension Variant_NullType_Int64 {
21
+ func asType<T>(_ type: T.Type = T.self) -> T? {
22
+ switch self {
23
+ case .first(let value): return value as? T
24
+ case .second(let value): return value as? T
25
+ }
26
+ }
27
+ func isType<T>(_ type: T.Type = T.self) -> Bool {
28
+ return self.asType(type) != nil
29
+ }
30
+ }
@@ -2,7 +2,7 @@
2
2
  /// Variant_NullType_String.swift
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  import NitroModules
@@ -16,3 +16,15 @@ public enum Variant_NullType_String {
16
16
  case first(NullType)
17
17
  case second(String)
18
18
  }
19
+
20
+ public extension Variant_NullType_String {
21
+ func asType<T>(_ type: T.Type = T.self) -> T? {
22
+ switch self {
23
+ case .first(let value): return value as? T
24
+ case .second(let value): return value as? T
25
+ }
26
+ }
27
+ func isType<T>(_ type: T.Type = T.self) -> Bool {
28
+ return self.asType(type) != nil
29
+ }
30
+ }
@@ -2,7 +2,7 @@
2
2
  /// ConnectResult.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// ConnectSignResult.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroMetamaskSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "HybridNitroMetamaskSpec.hpp"
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroMetamaskSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once