@novastera-oss/nitro-metamask 0.6.3 → 0.7.2
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.
- package/NitroMetamask.podspec +12 -3
- package/README.md +3 -1
- package/android/build.gradle +14 -32
- package/android/cargo-ecies.gradle +60 -88
- package/android/src/main/aidl/io/metamask/nativesdk/IMessegeService.aidl +8 -0
- package/android/src/main/aidl/io/metamask/nativesdk/IMessegeServiceCallback.aidl +8 -0
- package/android/src/main/java/com/margelo/nitro/nitrometamask/HybridNitroMetamask.kt +101 -3
- package/android/src/main/java/io/metamask/androidsdk/AnyRequest.kt +8 -0
- package/android/src/main/java/io/metamask/androidsdk/ClientMessageServiceCallback.kt +12 -0
- package/android/src/main/java/io/metamask/androidsdk/ClientServiceConnection.kt +42 -0
- package/android/src/main/java/io/metamask/androidsdk/CommunicationClient.kt +525 -0
- package/android/src/main/java/io/metamask/androidsdk/CommunicationClientModule.kt +47 -0
- package/android/src/main/java/io/metamask/androidsdk/CommunicationClientModuleInterface.kt +11 -0
- package/android/src/main/java/io/metamask/androidsdk/Constants.kt +5 -0
- package/android/src/main/java/io/metamask/androidsdk/Crypto.kt +35 -0
- package/android/src/main/java/io/metamask/androidsdk/DappMetadata.kt +36 -0
- package/android/src/main/java/io/metamask/androidsdk/Encryption.kt +9 -0
- package/android/src/main/java/io/metamask/androidsdk/ErrorType.kt +41 -0
- package/android/src/main/java/io/metamask/androidsdk/Ethereum.kt +328 -0
- package/android/src/main/java/io/metamask/androidsdk/EthereumEventCallback.kt +6 -0
- package/android/src/main/java/io/metamask/androidsdk/EthereumMethod.kt +80 -0
- package/android/src/main/java/io/metamask/androidsdk/EthereumRequest.kt +7 -0
- package/android/src/main/java/io/metamask/androidsdk/EthereumState.kt +7 -0
- package/android/src/main/java/io/metamask/androidsdk/KeyExchange.kt +77 -0
- package/android/src/main/java/io/metamask/androidsdk/KeyExchangeMessageType.kt +20 -0
- package/android/src/main/java/io/metamask/androidsdk/KeyStorage.kt +122 -0
- package/android/src/main/java/io/metamask/androidsdk/Logger.kt +18 -0
- package/android/src/main/java/io/metamask/androidsdk/Message.kt +3 -0
- package/android/src/main/java/io/metamask/androidsdk/MessageType.kt +11 -0
- package/android/src/main/java/io/metamask/androidsdk/OriginatorInfo.kt +12 -0
- package/android/src/main/java/io/metamask/androidsdk/RequestError.kt +8 -0
- package/android/src/main/java/io/metamask/androidsdk/RequestInfo.kt +9 -0
- package/android/src/main/java/io/metamask/androidsdk/Result.kt +11 -0
- package/android/src/main/java/io/metamask/androidsdk/RpcRequest.kt +7 -0
- package/android/src/main/java/io/metamask/androidsdk/SDKInfo.kt +6 -0
- package/android/src/main/java/io/metamask/androidsdk/SDKOptions.kt +6 -0
- package/android/src/main/java/io/metamask/androidsdk/SecureStorage.kt +9 -0
- package/android/src/main/java/io/metamask/androidsdk/SessionConfig.kt +10 -0
- package/android/src/main/java/io/metamask/androidsdk/SessionManager.kt +92 -0
- package/android/src/main/java/io/metamask/androidsdk/SubmittedRequest.kt +8 -0
- package/android/src/main/java/io/metamask/androidsdk/TimeStampGenerator.kt +7 -0
- package/android/src/main/jniLibs/arm64-v8a/libecies.so +0 -0
- package/android/src/main/jniLibs/armeabi-v7a/libecies.so +0 -0
- package/android/src/main/jniLibs/x86/libecies.so +0 -0
- package/android/src/main/jniLibs/x86_64/libecies.so +0 -0
- package/android/src/test/java/com/margelo/nitro/nitrometamask/CancellationStateMachineTest.kt +128 -0
- package/android/src/test/java/com/margelo/nitro/nitrometamask/ChainIdParsingTest.kt +65 -0
- package/android/src/test/java/com/margelo/nitro/nitrometamask/ConfigureStateMachineTest.kt +140 -0
- package/android/src/test/java/com/margelo/nitro/nitrometamask/ConnectSignJsonTest.kt +76 -0
- package/android/src/test/java/com/margelo/nitro/nitrometamask/MetaMaskInstallationCheckTest.kt +42 -0
- package/android/src/test/java/com/margelo/nitro/nitrometamask/PersonalSignParamsTest.kt +75 -0
- package/ios/Frameworks/Ecies.xcframework/Info.plist +47 -0
- package/ios/Frameworks/Ecies.xcframework/ios-arm64/Headers/ecies.h +20 -0
- package/ios/Frameworks/Ecies.xcframework/ios-arm64/Headers/module.modulemap +4 -0
- package/ios/Frameworks/Ecies.xcframework/ios-arm64/libecies.a +0 -0
- package/ios/Frameworks/Ecies.xcframework/ios-arm64-simulator/Headers/ecies.h +20 -0
- package/ios/Frameworks/Ecies.xcframework/ios-arm64-simulator/Headers/module.modulemap +4 -0
- package/ios/Frameworks/Ecies.xcframework/ios-arm64-simulator/libecies.a +0 -0
- package/ios/HybridNitroMetamask.swift +119 -54
- package/ios/NitroMetamaskTests/CancellationStateMachineTests.swift +150 -0
- package/ios/NitroMetamaskTests/ChainIdParsingTests.swift +117 -0
- package/ios/NitroMetamaskTests/ConfigureStateMachineTests.swift +174 -0
- package/ios/NitroMetamaskTests/ConnectSignJsonTests.swift +168 -0
- package/ios/NitroMetamaskTests/DefaultDappUrlTests.swift +80 -0
- package/ios/NitroMetamaskTests/PersonalSignParamsTests.swift +101 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/CommClient.swift +43 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/CommClientFactory.swift +17 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/CommLayer.swift +36 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/Deeplink.swift +26 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/DeeplinkClient.swift +199 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/DeeplinkManager.swift +83 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/String.swift +48 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/DeeplinkCommLayer/URLOpener.swift +19 -0
- package/ios/metamask-ios-sdk/CommunicationLayer/SocketClient.swift +27 -0
- package/ios/metamask-ios-sdk/Crypto/Crypto.swift +72 -0
- package/ios/metamask-ios-sdk/Crypto/Encoding.swift +15 -0
- package/ios/metamask-ios-sdk/Crypto/KeyExchange.swift +236 -0
- package/ios/metamask-ios-sdk/DeviceInfo/DeviceInfo.swift +11 -0
- package/ios/metamask-ios-sdk/Ethereum/AppMetadata.swift +28 -0
- package/ios/metamask-ios-sdk/Ethereum/ErrorType.swift +62 -0
- package/ios/metamask-ios-sdk/Ethereum/Ethereum.swift +810 -0
- package/ios/metamask-ios-sdk/Ethereum/EthereumMethod.swift +111 -0
- package/ios/metamask-ios-sdk/Ethereum/EthereumRequest.swift +40 -0
- package/ios/metamask-ios-sdk/Ethereum/EthereumWrapper.swift +10 -0
- package/ios/metamask-ios-sdk/Ethereum/RPCRequest.swift +14 -0
- package/ios/metamask-ios-sdk/Ethereum/RequestError.swift +88 -0
- package/ios/metamask-ios-sdk/Ethereum/ResponseMethod.swift +22 -0
- package/ios/metamask-ios-sdk/Ethereum/SubmitRequest.swift +26 -0
- package/ios/metamask-ios-sdk/Ethereum/TimestampGenerator.swift +16 -0
- package/ios/metamask-ios-sdk/Extensions/NSRecursiveLock.swift +14 -0
- package/ios/metamask-ios-sdk/Extensions/Notification.swift +10 -0
- package/ios/metamask-ios-sdk/Logger/Logging.swift +27 -0
- package/ios/metamask-ios-sdk/Models/AddChainParameters.swift +35 -0
- package/ios/metamask-ios-sdk/Models/Event.swift +19 -0
- package/ios/metamask-ios-sdk/Models/Mappable.swift +40 -0
- package/ios/metamask-ios-sdk/Models/NativeCurrency.swift +25 -0
- package/ios/metamask-ios-sdk/Models/OriginatorInfo.swift +26 -0
- package/ios/metamask-ios-sdk/Models/RequestInfo.swift +18 -0
- package/ios/metamask-ios-sdk/Models/SignContract.swift +48 -0
- package/ios/metamask-ios-sdk/Models/Typealiases.swift +9 -0
- package/ios/metamask-ios-sdk/Persistence/SecureStore.swift +134 -0
- package/ios/metamask-ios-sdk/Persistence/SessionConfig.swift +24 -0
- package/ios/metamask-ios-sdk/Persistence/SessionManager.swift +56 -0
- package/ios/metamask-ios-sdk/SDK/Dependencies.swift +35 -0
- package/ios/metamask-ios-sdk/SDK/MetaMaskSDK.swift +215 -0
- package/ios/metamask-ios-sdk/SDK/SDKInfo.swift +37 -0
- package/ios/metamask-ios-sdk/SDK/SDKOptions.swift +16 -0
- package/lib/commonjs/index.js +50 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +49 -3
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/__tests__/parseNitroError.test.d.ts +2 -0
- package/lib/typescript/src/__tests__/parseNitroError.test.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +43 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/nitro-metamask.nitro.d.ts +29 -1
- package/lib/typescript/src/specs/nitro-metamask.nitro.d.ts.map +1 -1
- package/package.json +21 -12
- package/react-native.config.js +5 -0
- package/rust/ecies-jni/Cargo.lock +50 -86
- package/rust/ecies-jni/Cargo.toml +1 -1
- package/rust/ecies-jni/src/lib.rs +164 -100
- package/src/__tests__/parseNitroError.test.ts +35 -0
- package/src/index.ts +53 -5
- package/src/specs/nitro-metamask.nitro.ts +29 -1
- package/scripts/verify-16k-page-alignment.py +0 -117
- package/scripts/verify-16k-page-alignment.sh +0 -5
|
@@ -1,15 +1,55 @@
|
|
|
1
|
-
import type { NitroMetamask as NitroMetamaskSpec, ConnectResult } from './specs/nitro-metamask.nitro';
|
|
1
|
+
import type { NitroMetamask as NitroMetamaskSpec, ConnectResult, ConnectSignResult } from './specs/nitro-metamask.nitro';
|
|
2
2
|
/**
|
|
3
3
|
* NitroMetamask - MetaMask connector for React Native
|
|
4
4
|
*
|
|
5
|
+
* Provides native MetaMask wallet integration via Nitro modules.
|
|
6
|
+
*
|
|
5
7
|
* @example
|
|
6
8
|
* ```ts
|
|
7
9
|
* import { NitroMetamask } from '@novastera-oss/nitro-metamask'
|
|
8
10
|
*
|
|
9
|
-
*
|
|
11
|
+
* // Optional: configure before use
|
|
12
|
+
* NitroMetamask.configure('https://yourdomain.com', 'yourscheme')
|
|
13
|
+
*
|
|
14
|
+
* // Connect wallet
|
|
15
|
+
* const { address, chainId } = await NitroMetamask.connect()
|
|
16
|
+
*
|
|
17
|
+
* // Sign a message
|
|
10
18
|
* const signature = await NitroMetamask.signMessage('Hello')
|
|
19
|
+
*
|
|
20
|
+
* // Connect and sign in one step (SIWE)
|
|
21
|
+
* const result = await NitroMetamask.connectSign('my-nonce', BigInt(Date.now()))
|
|
11
22
|
* ```
|
|
12
23
|
*/
|
|
13
24
|
export declare const NitroMetamask: NitroMetamaskSpec;
|
|
14
|
-
export type { ConnectResult, NitroMetamaskSpec };
|
|
25
|
+
export type { ConnectResult, ConnectSignResult, NitroMetamaskSpec };
|
|
26
|
+
/**
|
|
27
|
+
* Parses a structured Nitro error message that contains a numeric error code prefix.
|
|
28
|
+
*
|
|
29
|
+
* Nitro errors from the native layer are formatted as `"[<code>] <message>"`.
|
|
30
|
+
* This utility extracts the code and message so the JS layer can handle them
|
|
31
|
+
* programmatically (e.g., detecting `code: 2` for MetaMask not installed).
|
|
32
|
+
*
|
|
33
|
+
* @param e - The error to parse. Can be an `Error`, a string, or any value.
|
|
34
|
+
* @returns An object `{ code: number; message: string }` if the error message
|
|
35
|
+
* matches the `[code] message` pattern, or `null` if it does not.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { parseNitroError } from '@novastera-oss/nitro-metamask'
|
|
40
|
+
*
|
|
41
|
+
* try {
|
|
42
|
+
* await NitroMetamask.connect()
|
|
43
|
+
* } catch (e) {
|
|
44
|
+
* const parsed = parseNitroError(e)
|
|
45
|
+
* if (parsed?.code === 2) {
|
|
46
|
+
* // MetaMask is not installed — redirect user to App Store / Play Store
|
|
47
|
+
* }
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseNitroError(e: unknown): {
|
|
52
|
+
code: number;
|
|
53
|
+
message: string;
|
|
54
|
+
} | null;
|
|
15
55
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,IAAI,iBAAiB,EAClC,aAAa,EACb,iBAAiB,EAClB,MAAM,8BAA8B,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,mBAAsE,CAAA;AAEhG,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAA;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMpF"}
|
|
@@ -23,14 +23,42 @@ export interface NitroMetamask extends HybridObject<{
|
|
|
23
23
|
* This is used to return to your app after MetaMask operations.
|
|
24
24
|
*/
|
|
25
25
|
configure(dappUrl?: string, deepLinkScheme?: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Connect to the user's MetaMask wallet.
|
|
28
|
+
*
|
|
29
|
+
* Opens the MetaMask app via deep link to request wallet connection.
|
|
30
|
+
* If MetaMask is not installed, the promise rejects with `code: 2`.
|
|
31
|
+
*
|
|
32
|
+
* @returns Promise resolving to a `ConnectResult` containing the wallet
|
|
33
|
+
* `address` and `chainId`.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* const { address, chainId } = await NitroMetamask.connect()
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
26
40
|
connect(): Promise<ConnectResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Request a `personal_sign` signature from the connected wallet.
|
|
43
|
+
*
|
|
44
|
+
* Must be called after a successful `connect()`. Opens MetaMask to prompt
|
|
45
|
+
* the user to sign the provided message.
|
|
46
|
+
*
|
|
47
|
+
* @param message - The plain-text message to sign.
|
|
48
|
+
* @returns Promise resolving to the hex-encoded signature string.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const signature = await NitroMetamask.signMessage('Sign in to MyApp')
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
27
55
|
signMessage(message: string): Promise<string>;
|
|
28
56
|
/**
|
|
29
57
|
* Connect to MetaMask (if not already connected) and sign a message containing nonce and expiration.
|
|
30
58
|
* Returns the signature along with the address and chainId that were used to sign.
|
|
31
59
|
*
|
|
32
60
|
* @param nonce - A unique nonce for this signing request
|
|
33
|
-
* @param exp - Expiration timestamp (as
|
|
61
|
+
* @param exp - Expiration timestamp (as Int64)
|
|
34
62
|
* @returns Promise resolving to ConnectSignResult containing signature, address, and chainId
|
|
35
63
|
*/
|
|
36
64
|
connectSign(nonce: string, exp: Int64): Promise<ConnectSignResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro-metamask.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/nitro-metamask.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAE1E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,KAAK,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,KAAK,CAAA;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACtF;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1D,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;IACjC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAClE;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACpC;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;CACpC"}
|
|
1
|
+
{"version":3,"file":"nitro-metamask.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/nitro-metamask.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAE1E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,KAAK,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,KAAK,CAAA;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IACtF;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1D;;;;;;;;;;;;;OAaG;IACH,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAA;IACjC;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAClE;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACpC;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAA;CACpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@novastera-oss/nitro-metamask",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"description": "Native mobile MetaMask wallet integration for React Native. Part of Novastera CRM/ERP platform ecosystem. Provides secure authentication and message signing for Web3 mobile applications.",
|
|
5
5
|
"main": "./lib/commonjs/index.js",
|
|
6
6
|
"module": "./lib/module/index.js",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"typecheck": "tsc --noEmit",
|
|
12
12
|
"clean": "git clean -dfX",
|
|
13
|
+
"release": "semantic-release",
|
|
13
14
|
"build": "npm run typecheck && bob build",
|
|
14
|
-
"codegen": "nitrogen --logLevel=\"debug\" && npm run build"
|
|
15
|
-
"build:ecies:all-abis": "cd example/android && ./gradlew :app:assembleRelease -PreactNativeArchitectures=arm64-v8a,armeabi-v7a,x86_64,x86 -PNitroMetamask_buildEciesFromSource=true --no-daemon --stacktrace"
|
|
15
|
+
"codegen": "nitrogen --logLevel=\"debug\" && npm run build"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"react-native",
|
|
@@ -48,6 +48,10 @@
|
|
|
48
48
|
"android/proguard-rules.pro",
|
|
49
49
|
"android/src",
|
|
50
50
|
"android/src/main/jniLibs",
|
|
51
|
+
"android/src/main/java/io/metamask/**",
|
|
52
|
+
"android/src/main/aidl/**",
|
|
53
|
+
"ios/metamask-ios-sdk/**",
|
|
54
|
+
"ios/Frameworks/**",
|
|
51
55
|
"ios/**/*.h",
|
|
52
56
|
"ios/**/*.m",
|
|
53
57
|
"ios/**/*.mm",
|
|
@@ -58,9 +62,7 @@
|
|
|
58
62
|
"README.md",
|
|
59
63
|
"rust/ecies-jni/Cargo.toml",
|
|
60
64
|
"rust/ecies-jni/src",
|
|
61
|
-
"rust/ecies-jni/Cargo.lock"
|
|
62
|
-
"scripts/verify-16k-page-alignment.sh",
|
|
63
|
-
"scripts/verify-16k-page-alignment.py"
|
|
65
|
+
"rust/ecies-jni/Cargo.lock"
|
|
64
66
|
],
|
|
65
67
|
"workspaces": [
|
|
66
68
|
"example"
|
|
@@ -78,22 +80,29 @@
|
|
|
78
80
|
"registry": "https://registry.npmjs.org/"
|
|
79
81
|
},
|
|
80
82
|
"devDependencies": {
|
|
81
|
-
"@
|
|
83
|
+
"@babel/core": "^7.29.0",
|
|
84
|
+
"@babel/preset-env": "^7.29.2",
|
|
85
|
+
"@babel/preset-typescript": "^7.28.5",
|
|
86
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
87
|
+
"@semantic-release/git": "^10.0.1",
|
|
82
88
|
"@types/jest": "^29.5.12",
|
|
83
89
|
"@types/react": "19.2.0",
|
|
84
|
-
"
|
|
90
|
+
"babel-jest": "^30.3.0",
|
|
91
|
+
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
92
|
+
"jest": "^30.3.0",
|
|
93
|
+
"nitrogen": "^0.35.5",
|
|
85
94
|
"react": "19.2.0",
|
|
86
95
|
"react-native": "0.83",
|
|
87
|
-
"react-native-builder-bob": "^0.40.
|
|
96
|
+
"react-native-builder-bob": "^0.40.18",
|
|
88
97
|
"react-native-nitro-modules": "0.35.5",
|
|
89
|
-
"
|
|
98
|
+
"semantic-release": "^25.0.2",
|
|
90
99
|
"typescript": "^5.8.3"
|
|
91
100
|
},
|
|
92
101
|
"peerDependencies": {
|
|
102
|
+
"@expo/config-plugins": "*",
|
|
93
103
|
"react": "*",
|
|
94
104
|
"react-native": "*",
|
|
95
|
-
"react-native-nitro-modules": "*"
|
|
96
|
-
"@expo/config-plugins": "*"
|
|
105
|
+
"react-native-nitro-modules": "*"
|
|
97
106
|
},
|
|
98
107
|
"eslintConfig": {
|
|
99
108
|
"root": true,
|
package/react-native.config.js
CHANGED
|
@@ -13,6 +13,11 @@ module.exports = {
|
|
|
13
13
|
android: {
|
|
14
14
|
packageImportPath: 'import com.margelo.nitro.nitrometamask.NitroMetamaskPackage;',
|
|
15
15
|
packageInstance: 'new NitroMetamaskPackage()',
|
|
16
|
+
// New Arch: do not register RN Codegen + app CMake `react_codegen_*` for this dep.
|
|
17
|
+
// Native code is built via this library’s Gradle+CMake+JNI (Nitrogen), packaged in the AAR;
|
|
18
|
+
// autolink is only for Java Package / Gradle project inclusion.
|
|
19
|
+
libraryName: null,
|
|
20
|
+
cmakeListsPath: null,
|
|
16
21
|
},
|
|
17
22
|
},
|
|
18
23
|
},
|
|
@@ -82,12 +82,6 @@ version = "1.11.1"
|
|
|
82
82
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
83
83
|
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
|
|
84
84
|
|
|
85
|
-
[[package]]
|
|
86
|
-
name = "cesu8"
|
|
87
|
-
version = "1.1.0"
|
|
88
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
89
|
-
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
|
|
90
|
-
|
|
91
85
|
[[package]]
|
|
92
86
|
name = "cfg-if"
|
|
93
87
|
version = "1.0.4"
|
|
@@ -270,27 +264,32 @@ dependencies = [
|
|
|
270
264
|
|
|
271
265
|
[[package]]
|
|
272
266
|
name = "jni"
|
|
273
|
-
version = "0.
|
|
267
|
+
version = "0.22.4"
|
|
274
268
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
275
|
-
checksum = "
|
|
269
|
+
checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498"
|
|
276
270
|
dependencies = [
|
|
277
|
-
"cesu8",
|
|
278
271
|
"cfg-if",
|
|
279
272
|
"combine",
|
|
280
|
-
"jni-
|
|
273
|
+
"jni-macros",
|
|
274
|
+
"jni-sys",
|
|
281
275
|
"log",
|
|
276
|
+
"simd_cesu8",
|
|
282
277
|
"thiserror",
|
|
283
278
|
"walkdir",
|
|
284
|
-
"windows-
|
|
279
|
+
"windows-link",
|
|
285
280
|
]
|
|
286
281
|
|
|
287
282
|
[[package]]
|
|
288
|
-
name = "jni-
|
|
289
|
-
version = "0.
|
|
283
|
+
name = "jni-macros"
|
|
284
|
+
version = "0.22.4"
|
|
290
285
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
291
|
-
checksum = "
|
|
286
|
+
checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3"
|
|
292
287
|
dependencies = [
|
|
293
|
-
"
|
|
288
|
+
"proc-macro2",
|
|
289
|
+
"quote",
|
|
290
|
+
"rustc_version",
|
|
291
|
+
"simd_cesu8",
|
|
292
|
+
"syn",
|
|
294
293
|
]
|
|
295
294
|
|
|
296
295
|
[[package]]
|
|
@@ -497,6 +496,15 @@ dependencies = [
|
|
|
497
496
|
"bitflags",
|
|
498
497
|
]
|
|
499
498
|
|
|
499
|
+
[[package]]
|
|
500
|
+
name = "rustc_version"
|
|
501
|
+
version = "0.4.1"
|
|
502
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
503
|
+
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
|
504
|
+
dependencies = [
|
|
505
|
+
"semver",
|
|
506
|
+
]
|
|
507
|
+
|
|
500
508
|
[[package]]
|
|
501
509
|
name = "rustversion"
|
|
502
510
|
version = "1.0.22"
|
|
@@ -518,6 +526,12 @@ version = "1.2.0"
|
|
|
518
526
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
519
527
|
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|
520
528
|
|
|
529
|
+
[[package]]
|
|
530
|
+
name = "semver"
|
|
531
|
+
version = "1.0.28"
|
|
532
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
533
|
+
checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
|
|
534
|
+
|
|
521
535
|
[[package]]
|
|
522
536
|
name = "serde"
|
|
523
537
|
version = "1.0.228"
|
|
@@ -559,6 +573,22 @@ dependencies = [
|
|
|
559
573
|
"digest 0.10.7",
|
|
560
574
|
]
|
|
561
575
|
|
|
576
|
+
[[package]]
|
|
577
|
+
name = "simd_cesu8"
|
|
578
|
+
version = "1.1.1"
|
|
579
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
580
|
+
checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33"
|
|
581
|
+
dependencies = [
|
|
582
|
+
"rustc_version",
|
|
583
|
+
"simdutf8",
|
|
584
|
+
]
|
|
585
|
+
|
|
586
|
+
[[package]]
|
|
587
|
+
name = "simdutf8"
|
|
588
|
+
version = "0.1.5"
|
|
589
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
590
|
+
checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
|
|
591
|
+
|
|
562
592
|
[[package]]
|
|
563
593
|
name = "smallvec"
|
|
564
594
|
version = "1.15.1"
|
|
@@ -584,18 +614,18 @@ dependencies = [
|
|
|
584
614
|
|
|
585
615
|
[[package]]
|
|
586
616
|
name = "thiserror"
|
|
587
|
-
version = "
|
|
617
|
+
version = "2.0.18"
|
|
588
618
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
589
|
-
checksum = "
|
|
619
|
+
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
|
590
620
|
dependencies = [
|
|
591
621
|
"thiserror-impl",
|
|
592
622
|
]
|
|
593
623
|
|
|
594
624
|
[[package]]
|
|
595
625
|
name = "thiserror-impl"
|
|
596
|
-
version = "
|
|
626
|
+
version = "2.0.18"
|
|
597
627
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
598
|
-
checksum = "
|
|
628
|
+
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
|
599
629
|
dependencies = [
|
|
600
630
|
"proc-macro2",
|
|
601
631
|
"quote",
|
|
@@ -697,7 +727,7 @@ version = "0.1.11"
|
|
|
697
727
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
698
728
|
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
699
729
|
dependencies = [
|
|
700
|
-
"windows-sys
|
|
730
|
+
"windows-sys",
|
|
701
731
|
]
|
|
702
732
|
|
|
703
733
|
[[package]]
|
|
@@ -706,15 +736,6 @@ version = "0.2.1"
|
|
|
706
736
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
707
737
|
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
708
738
|
|
|
709
|
-
[[package]]
|
|
710
|
-
name = "windows-sys"
|
|
711
|
-
version = "0.45.0"
|
|
712
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
713
|
-
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
|
|
714
|
-
dependencies = [
|
|
715
|
-
"windows-targets",
|
|
716
|
-
]
|
|
717
|
-
|
|
718
739
|
[[package]]
|
|
719
740
|
name = "windows-sys"
|
|
720
741
|
version = "0.61.2"
|
|
@@ -723,60 +744,3 @@ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
|
723
744
|
dependencies = [
|
|
724
745
|
"windows-link",
|
|
725
746
|
]
|
|
726
|
-
|
|
727
|
-
[[package]]
|
|
728
|
-
name = "windows-targets"
|
|
729
|
-
version = "0.42.2"
|
|
730
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
731
|
-
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
|
|
732
|
-
dependencies = [
|
|
733
|
-
"windows_aarch64_gnullvm",
|
|
734
|
-
"windows_aarch64_msvc",
|
|
735
|
-
"windows_i686_gnu",
|
|
736
|
-
"windows_i686_msvc",
|
|
737
|
-
"windows_x86_64_gnu",
|
|
738
|
-
"windows_x86_64_gnullvm",
|
|
739
|
-
"windows_x86_64_msvc",
|
|
740
|
-
]
|
|
741
|
-
|
|
742
|
-
[[package]]
|
|
743
|
-
name = "windows_aarch64_gnullvm"
|
|
744
|
-
version = "0.42.2"
|
|
745
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
746
|
-
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
|
747
|
-
|
|
748
|
-
[[package]]
|
|
749
|
-
name = "windows_aarch64_msvc"
|
|
750
|
-
version = "0.42.2"
|
|
751
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
752
|
-
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
|
753
|
-
|
|
754
|
-
[[package]]
|
|
755
|
-
name = "windows_i686_gnu"
|
|
756
|
-
version = "0.42.2"
|
|
757
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
758
|
-
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
|
759
|
-
|
|
760
|
-
[[package]]
|
|
761
|
-
name = "windows_i686_msvc"
|
|
762
|
-
version = "0.42.2"
|
|
763
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
764
|
-
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
|
765
|
-
|
|
766
|
-
[[package]]
|
|
767
|
-
name = "windows_x86_64_gnu"
|
|
768
|
-
version = "0.42.2"
|
|
769
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
770
|
-
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
|
771
|
-
|
|
772
|
-
[[package]]
|
|
773
|
-
name = "windows_x86_64_gnullvm"
|
|
774
|
-
version = "0.42.2"
|
|
775
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
776
|
-
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
|
777
|
-
|
|
778
|
-
[[package]]
|
|
779
|
-
name = "windows_x86_64_msvc"
|
|
780
|
-
version = "0.42.2"
|
|
781
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
782
|
-
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
|
@@ -10,7 +10,7 @@ crate-type = ["cdylib"]
|
|
|
10
10
|
name = "ecies"
|
|
11
11
|
|
|
12
12
|
[dependencies]
|
|
13
|
-
jni = "0.
|
|
13
|
+
jni = "0.22"
|
|
14
14
|
# Match ecies.org / MetaMask stack (secp256k1, AES-256-GCM); pure Rust AES for simpler Android linking
|
|
15
15
|
ecies = { version = "0.2.10", default-features = false, features = ["std", "aes-rust"] }
|
|
16
16
|
hex = "0.4"
|