@onekeyfe/react-native-lite-card 1.0.1 → 1.0.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.
@@ -46,6 +46,7 @@ class OKLiteManager(private val context: ReactApplicationContext) :
46
46
  }
47
47
 
48
48
  private val mNFCConnectedChannel = Channel<IsoDep?>(1)
49
+ private var lastIsoDep: IsoDep? = null
49
50
  private val mNFCState = AtomicInteger(NFCState.Dead)
50
51
  private val mShowDialogNumber = AtomicInteger(0)
51
52
  private var mCurrentCardState: CardState? = null
@@ -78,7 +79,7 @@ class OKLiteManager(private val context: ReactApplicationContext) :
78
79
  delay(100)
79
80
  if (!mNFCConnectedChannel.isEmpty) {
80
81
  Log.e(TAG, "There is no way to use NFC")
81
- mNFCConnectedChannel.receive()
82
+ // mNFCConnectedChannel.receive()
82
83
  val startRequest = OneKeyLiteCard.initRequest(isoDep)
83
84
  val dataMap = Arguments.createMap().apply {
84
85
  putInt("code", -1)
@@ -118,11 +119,11 @@ class OKLiteManager(private val context: ReactApplicationContext) :
118
119
  mNfcStateBroadcastReceiver,
119
120
  NfcStatusChangeBroadcastReceiver.nfcBroadcastReceiverIntentFilter
120
121
  )
121
- Utils.getTopActivity()?.let {
122
- launch(Dispatchers.IO) {
123
- OneKeyLiteCard.startNfc(it as FragmentActivity) {}
122
+ Utils.getTopActivity()?.let {
123
+ launch(Dispatchers.IO) {
124
+ OneKeyLiteCard.startNfc(it as FragmentActivity) {}
125
+ }
124
126
  }
125
- }
126
127
 
127
128
  }
128
129
 
@@ -211,11 +212,14 @@ class OKLiteManager(private val context: ReactApplicationContext) :
211
212
  it.putString("message", "show_connect_ui")
212
213
  })
213
214
  mShowDialogNumber.incrementAndGet()
214
- if (!mNFCConnectedChannel.isEmpty) {
215
- mNFCConnectedChannel.tryReceive()
215
+ var receiveIsoDep = lastIsoDep
216
+ val tryReceiveResult = mNFCConnectedChannel.tryReceive()
217
+ if (tryReceiveResult.isSuccess) {
218
+ receiveIsoDep = tryReceiveResult.getOrNull();
219
+ } else if (lastIsoDep == null || lastIsoDep?.isConnected == false) {
220
+ receiveIsoDep = mNFCConnectedChannel.receive()
216
221
  }
217
- val receiveIsoDep = mNFCConnectedChannel.receive()
218
- mCurrentCardState = null
222
+ lastIsoDep = receiveIsoDep
219
223
  if (receiveIsoDep == null) {
220
224
  // 取消连接
221
225
  releaseDevice()
@@ -259,27 +263,7 @@ class OKLiteManager(private val context: ReactApplicationContext) :
259
263
  callback: Callback,
260
264
  execute: (isoDep: IsoDep) -> T
261
265
  ) {
262
- val topActivity = Utils.getTopActivity()
263
- if (topActivity == null) {
264
- callback.invoke(NFCExceptions.InitializedException().createArguments(), null, null)
265
- return
266
- }
267
- val isNfcExists = NfcUtils.isNfcExits(topActivity)
268
- if (!isNfcExists) {
269
- // 没有 NFC 设备
270
- Log.d(TAG, "NFC device not found")
271
- callback.invoke(NFCExceptions.NotExistsNFC().createArguments(), null, null)
272
- return
273
- }
274
-
275
- val isNfcEnable = NfcUtils.isNfcEnable(topActivity)
276
- if (!isNfcEnable) {
277
- // 没有打开 NFC 开关
278
- Log.d(TAG, "NFC device not enable")
279
- callback.invoke(NFCExceptions.NotEnableNFC().createArguments(), null, null)
280
- return
281
- }
282
-
266
+ val topActivity = Utils.getTopActivity() ?: return
283
267
  NfcPermissionUtils.checkPermission(topActivity) {
284
268
  try {
285
269
  Log.d(TAG, "NFC permission check success")
@@ -324,17 +308,6 @@ class OKLiteManager(private val context: ReactApplicationContext) :
324
308
  }
325
309
  }
326
310
 
327
- @ReactMethod
328
- fun getCardName(callback: Callback) = launch {
329
- Log.d(TAG, "getCardName")
330
- handleOperation(callback) { isoDep ->
331
- Log.e(TAG, "getCardName Obtain the device")
332
- val cardName = OneKeyLiteCard.getCardName(isoDep)
333
- Log.e(TAG, "getCardName result $cardName")
334
- cardName
335
- }
336
- }
337
-
338
311
  @ReactMethod
339
312
  fun getLiteInfo(callback: Callback) = launch {
340
313
  Log.d(TAG, "getLiteInfo")
@@ -377,6 +350,39 @@ class OKLiteManager(private val context: ReactApplicationContext) :
377
350
  }
378
351
  }
379
352
 
353
+ @ReactMethod
354
+ fun checkNFCPermission(callback: Callback) {
355
+ val topActivity = Utils.getTopActivity()
356
+ if (topActivity == null) {
357
+ callback.invoke(NFCExceptions.InitializedException().createArguments(), null, null)
358
+ return
359
+ }
360
+ val isNfcExists = NfcUtils.isNfcExits(topActivity)
361
+ if (!isNfcExists) {
362
+ // 没有 NFC 设备
363
+ Log.d(TAG, "NFC device not found")
364
+ callback.invoke(NFCExceptions.NotExistsNFC().createArguments(), null, null)
365
+ return
366
+ }
367
+
368
+ val isNfcEnable = NfcUtils.isNfcEnable(topActivity)
369
+ if (!isNfcEnable) {
370
+ // 没有打开 NFC 开关
371
+ Log.d(TAG, "NFC device not enable")
372
+ callback.invoke(NFCExceptions.NotEnableNFC().createArguments(), null, null)
373
+ return
374
+ }
375
+ NfcPermissionUtils.checkPermission(topActivity) {
376
+ // 没有 NFC 使用权限
377
+ Log.d(TAG, "NFC device not permission")
378
+ callback.invoke(null, null, null)
379
+ return
380
+ }
381
+ // 没有 NFC 使用权限
382
+ Log.d(TAG, "NFC device not permission")
383
+ callback.invoke(NFCExceptions.NotNFCPermission().createArguments(), null, null)
384
+ }
385
+
380
386
  @ReactMethod
381
387
  fun reset(callback: Callback) = launch {
382
388
  Log.d(TAG, "reset")
@@ -91,15 +91,6 @@ object OneKeyLiteCard {
91
91
  return mCardConnection?.startVerifyPin(verifyPin) ?: 0
92
92
  }
93
93
 
94
- @Throws(NFCExceptions::class)
95
- fun getCardName(isoDep: IsoDep): String {
96
- val cardInfo = mCardConnection?.getSerialNumber()
97
- if (cardInfo.isNullOrEmpty() || cardInfo == NfcConstant.NOT_MATCH_DEVICE) {
98
- throw NFCExceptions.InterruptException()
99
- }
100
- return cardInfo
101
- }
102
-
103
94
  @Throws(NFCExceptions::class)
104
95
  fun getCardInfo(isoDep: IsoDep): CardState {
105
96
  return mCardConnection?.getCardInfo() ?: throw NFCExceptions.ConnectionFailException()
@@ -38,26 +38,12 @@ RCT_EXPORT_MODULE();
38
38
  RCT_EXPORT_METHOD(checkNFCPermission:(RCTResponseSenderBlock)callback)
39
39
  {
40
40
  BOOL permission = [NFCNDEFReaderSession readingAvailable];
41
- if (![NFCNDEFReaderSession readingAvailable]) {
42
- callback(@[[NSNull null],@(permission),[NSNull null]]);
43
- }
44
- }
45
-
46
- RCT_EXPORT_METHOD(getCardName:(RCTResponseSenderBlock)callBack)
47
- {
48
- if ([OKLiteManager checkSDKVaild:callBack]) {
49
- __block OKNFCManager *liteManager = [[OKNFCManager alloc] init];
50
- [liteManager getLiteInfo:^(OKLiteV1 *lite, OKNFCLiteStatus status) {
51
- NSDictionary *cardInfo = [lite cardInfo];
52
- BOOL error = status == OKNFCLiteStatusError || status == OKNFCLiteStatusSNNotMatch;
53
- if (error) {
54
- callBack(@[@{@"code":@(NFCLiteExceptionsConnectionFail),@"message":@""},[NSNull null],[NSNull null]]);
55
- } else {
56
- callBack(@[[NSNull null],lite.SN,cardInfo]);
57
- }
58
- liteManager = nil;
59
- }];
41
+ if (permission) {
42
+ callback(@[[NSNull null],@(permission),[NSNull null]]);
43
+ } else {
44
+ callback(@[@{@"code":@(NFCLiteExceptionsNotExistsNFC),@"message":@""},[NSNull null],[NSNull null]]);
60
45
  }
46
+
61
47
  }
62
48
 
63
49
  RCT_EXPORT_METHOD(getLiteInfo:(RCTResponseSenderBlock)callBack)
package/keys/keys.c CHANGED
@@ -28,7 +28,7 @@ char *getInitParams() {
28
28
  #ifdef __ANDROID__
29
29
 
30
30
  JNIEXPORT jstring JNICALL
31
- Java_so_onekey_app_wallet_keys_KeysNativeProvider_getLiteSecureChannelInitParams(JNIEnv *env,
31
+ Java_so_onekey_app_wallet_lite_keys_KeysNativeProvider_getLiteSecureChannelInitParams(JNIEnv *env,
32
32
  jobject this,
33
33
  jobject context) {
34
34
  char *result = getInitParams();
@@ -3,63 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.LiteFlag = void 0;
6
+ exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _types = require("./types");
9
9
  const {
10
10
  OKLiteManager
11
11
  } = _reactNative.NativeModules;
12
- const LiteFlag = exports.LiteFlag = {
13
- VERSION: '01',
14
- LANGUAGE: '00',
15
- // english
16
- TAG: 'ffff'
17
- };
18
- const DEFAULT_FUNCTION = value => value;
19
12
  class OnekeyLite {
20
13
  UiEventEmitter = null;
21
- mnemonicToEntropy = DEFAULT_FUNCTION;
22
- entropyToMnemonic = DEFAULT_FUNCTION;
23
- entropyToMnemonicV2 = DEFAULT_FUNCTION;
24
14
  constructor() {
25
15
  if (_reactNative.Platform.OS !== 'android') return;
26
16
  this.UiEventEmitter = new _reactNative.NativeEventEmitter(OKLiteManager);
27
17
  }
28
- async encodeMnemonic(version, language, mnemonic) {
29
- const meta = LiteFlag.TAG + version + language;
30
- const enMnemonic = await this.mnemonicToEntropy(mnemonic.trim()); // mnemonic to index
31
- return enMnemonic + meta;
32
- }
33
- async decodeMnemonic(payload) {
34
- try {
35
- if (payload.length <= 8) return Buffer.from(payload, 'hex').toString().trim();
36
- const meta = payload.slice(-8);
37
- const regexp = /^ffff[a-f0-9]{4}$/;
38
- if (regexp.test(meta)) {
39
- const version = parseInt(meta.slice(4, 6), 10);
40
- const enMnemonic = payload.slice(0, -8);
41
- if (version === 1) {
42
- const deMnemonic = await this.entropyToMnemonic(enMnemonic); // mnemonic to index
43
-
44
- return deMnemonic.trim();
45
- }
46
- if (version === 2) {
47
- const deMnemonic = await this.entropyToMnemonicV2(enMnemonic); // mnemonic to index
48
-
49
- return deMnemonic.trim();
50
- }
51
-
52
- // 当前版本不支持
53
- return '';
54
- }
55
-
56
- // 兼容 V0 旧版本
57
- return Buffer.from(payload, 'hex').toString().trim();
58
- } catch (error) {
59
- // 数据解析报错
60
- return '';
61
- }
62
- }
63
18
  addConnectListener(listener) {
64
19
  this.removeConnectListeners();
65
20
  return this.UiEventEmitter?.addListener('nfc_ui_event', listener);
@@ -72,9 +27,6 @@ class OnekeyLite {
72
27
  const eventEmitter = new _reactNative.NativeEventEmitter(OKLiteManager);
73
28
  return eventEmitter.addListener('nfc_active_connection', () => {});
74
29
  }
75
- getCardName(result) {
76
- OKLiteManager.getCardName(result);
77
- }
78
30
  getLiteInfo(result) {
79
31
  OKLiteManager.getLiteInfo(result);
80
32
  }
@@ -82,12 +34,12 @@ class OnekeyLite {
82
34
  OKLiteManager.checkNFCPermission(result);
83
35
  }
84
36
  setMnemonic(mnemonic, pwd, result, overwrite = false) {
85
- this.encodeMnemonic(LiteFlag.VERSION, LiteFlag.LANGUAGE, mnemonic).then(payload => OKLiteManager.setMnemonic(payload, pwd, overwrite, result));
37
+ OKLiteManager.setMnemonic(mnemonic, pwd, overwrite, result);
86
38
  }
87
39
  getMnemonicWithPin(pwd, result) {
88
40
  try {
89
41
  OKLiteManager.getMnemonicWithPin(pwd, async (error, data, state) => {
90
- result(error, data ? await this.decodeMnemonic(data) : null, state);
42
+ result(error, data ? await data : null, state);
91
43
  });
92
44
  } catch (error) {
93
45
  result({
@@ -106,7 +58,11 @@ class OnekeyLite {
106
58
  if (_reactNative.Platform.OS === 'android') OKLiteManager.cancel();
107
59
  }
108
60
  intoSetting() {
109
- if (_reactNative.Platform.OS === 'android') OKLiteManager.intoSetting();
61
+ if (_reactNative.Platform.OS === 'android') {
62
+ OKLiteManager.intoSetting();
63
+ } else {
64
+ _reactNative.Linking.openSettings();
65
+ }
110
66
  }
111
67
  }
112
68
  const onekeyLite = new OnekeyLite();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_types","OKLiteManager","NativeModules","LiteFlag","exports","VERSION","LANGUAGE","TAG","DEFAULT_FUNCTION","value","OnekeyLite","UiEventEmitter","mnemonicToEntropy","entropyToMnemonic","entropyToMnemonicV2","constructor","Platform","OS","NativeEventEmitter","encodeMnemonic","version","language","mnemonic","meta","enMnemonic","trim","decodeMnemonic","payload","length","Buffer","from","toString","slice","regexp","test","parseInt","deMnemonic","error","addConnectListener","listener","removeConnectListeners","addListener","removeAllListeners","addAccordListener","eventEmitter","getCardName","result","getLiteInfo","checkNFCPermission","setMnemonic","pwd","overwrite","then","getMnemonicWithPin","data","state","code","CardErrors","ExecFailure","message","changePin","oldPin","newPin","reset","cancel","intoSetting","onekeyLite","_default","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_types","OKLiteManager","NativeModules","OnekeyLite","UiEventEmitter","constructor","Platform","OS","NativeEventEmitter","addConnectListener","listener","removeConnectListeners","addListener","removeAllListeners","addAccordListener","eventEmitter","getLiteInfo","result","checkNFCPermission","setMnemonic","mnemonic","pwd","overwrite","getMnemonicWithPin","error","data","state","code","CardErrors","ExecFailure","message","changePin","oldPin","newPin","reset","cancel","intoSetting","Linking","openSettings","onekeyLite","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,MAAA,GAAAD,OAAA;AAIA,MAAM;EAAEE;AAAc,CAAC,GAAGC,0BAAa;AAOvC,MAAMC,UAAU,CAAC;EACfC,cAAc,GAA8B,IAAI;EAEhDC,WAAWA,CAAA,EAAG;IACZ,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC/B,IAAI,CAACH,cAAc,GAAG,IAAII,+BAAkB,CAACP,aAAa,CAAC;EAC7D;EAEAQ,kBAAkBA,CAACC,QAA4C,EAAE;IAC/D,IAAI,CAACC,sBAAsB,CAAC,CAAC;IAC7B,OAAO,IAAI,CAACP,cAAc,EAAEQ,WAAW,CAAC,cAAc,EAAEF,QAAQ,CAAC;EACnE;EAEAC,sBAAsBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACP,cAAc,EAAES,kBAAkB,CAAC,cAAc,CAAC;EAChE;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,IAAIR,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC/B,MAAMQ,YAAY,GAAG,IAAIP,+BAAkB,CAACP,aAAa,CAAC;IAC1D,OAAOc,YAAY,CAACH,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC;EACpE;EAEAI,WAAWA,CAACC,MAA0B,EAAE;IACtChB,aAAa,CAACe,WAAW,CAACC,MAAM,CAAC;EACnC;EAEAC,kBAAkBA,CAACD,MAAyB,EAAE;IAC5ChB,aAAa,CAACiB,kBAAkB,CAACD,MAAM,CAAC;EAC1C;EAEAE,WAAWA,CACTC,QAAgB,EAChBC,GAAW,EACXJ,MAAyB,EACzBK,SAAS,GAAG,KAAK,EACjB;IACArB,aAAa,CAACkB,WAAW,CAACC,QAAQ,EAAEC,GAAG,EAAEC,SAAS,EAAEL,MAAM,CAAC;EAC7D;EAEAM,kBAAkBA,CAACF,GAAW,EAAEJ,MAAwB,EAAE;IACxD,IAAI;MACFhB,aAAa,CAACsB,kBAAkB,CAC9BF,GAAG,EACH,OACEG,KAA2B,EAC3BC,IAAmB,EACnBC,KAAsB,KACnB;QACHT,MAAM,CAACO,KAAK,EAAEC,IAAI,GAAG,MAAMA,IAAI,GAAG,IAAI,EAAEC,KAAK,CAAC;MAChD,CACF,CAAC;IACH,CAAC,CAAC,OAAOF,KAAK,EAAE;MACdP,MAAM,CAAC;QAAEU,IAAI,EAAEC,iBAAU,CAACC,WAAW;QAAEC,OAAO,EAAE;MAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IACrE;EACF;EAEAC,SAASA,CAACC,MAAc,EAAEC,MAAc,EAAEhB,MAAyB,EAAE;IACnEhB,aAAa,CAAC8B,SAAS,CAACC,MAAM,EAAEC,MAAM,EAAEhB,MAAM,CAAC;EACjD;EAEAiB,KAAKA,CAACjB,MAAyB,EAAE;IAC/BhB,aAAa,CAACiC,KAAK,CAACjB,MAAM,CAAC;EAC7B;EAEAkB,MAAMA,CAAA,EAAG;IACP,IAAI7B,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAEN,aAAa,CAACkC,MAAM,CAAC,CAAC;EACvD;EAEAC,WAAWA,CAAA,EAAG;IACZ,IAAI9B,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7BN,aAAa,CAACmC,WAAW,CAAC,CAAC;IAC7B,CAAC,MAAM;MACLC,oBAAO,CAACC,YAAY,CAAC,CAAC;IACxB;EACF;AACF;AAEA,MAAMC,UAAU,GAAG,IAAIpC,UAAU,CAAC,CAAC;AAAC,IAAAqC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACrBH,UAAU"}
@@ -1,59 +1,14 @@
1
- import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
1
+ import { Linking, NativeEventEmitter, NativeModules, Platform } from 'react-native';
2
2
  import { CardErrors } from './types';
3
3
  const {
4
4
  OKLiteManager
5
5
  } = NativeModules;
6
- export const LiteFlag = {
7
- VERSION: '01',
8
- LANGUAGE: '00',
9
- // english
10
- TAG: 'ffff'
11
- };
12
- const DEFAULT_FUNCTION = value => value;
13
6
  class OnekeyLite {
14
7
  UiEventEmitter = null;
15
- mnemonicToEntropy = DEFAULT_FUNCTION;
16
- entropyToMnemonic = DEFAULT_FUNCTION;
17
- entropyToMnemonicV2 = DEFAULT_FUNCTION;
18
8
  constructor() {
19
9
  if (Platform.OS !== 'android') return;
20
10
  this.UiEventEmitter = new NativeEventEmitter(OKLiteManager);
21
11
  }
22
- async encodeMnemonic(version, language, mnemonic) {
23
- const meta = LiteFlag.TAG + version + language;
24
- const enMnemonic = await this.mnemonicToEntropy(mnemonic.trim()); // mnemonic to index
25
- return enMnemonic + meta;
26
- }
27
- async decodeMnemonic(payload) {
28
- try {
29
- if (payload.length <= 8) return Buffer.from(payload, 'hex').toString().trim();
30
- const meta = payload.slice(-8);
31
- const regexp = /^ffff[a-f0-9]{4}$/;
32
- if (regexp.test(meta)) {
33
- const version = parseInt(meta.slice(4, 6), 10);
34
- const enMnemonic = payload.slice(0, -8);
35
- if (version === 1) {
36
- const deMnemonic = await this.entropyToMnemonic(enMnemonic); // mnemonic to index
37
-
38
- return deMnemonic.trim();
39
- }
40
- if (version === 2) {
41
- const deMnemonic = await this.entropyToMnemonicV2(enMnemonic); // mnemonic to index
42
-
43
- return deMnemonic.trim();
44
- }
45
-
46
- // 当前版本不支持
47
- return '';
48
- }
49
-
50
- // 兼容 V0 旧版本
51
- return Buffer.from(payload, 'hex').toString().trim();
52
- } catch (error) {
53
- // 数据解析报错
54
- return '';
55
- }
56
- }
57
12
  addConnectListener(listener) {
58
13
  this.removeConnectListeners();
59
14
  return this.UiEventEmitter?.addListener('nfc_ui_event', listener);
@@ -66,9 +21,6 @@ class OnekeyLite {
66
21
  const eventEmitter = new NativeEventEmitter(OKLiteManager);
67
22
  return eventEmitter.addListener('nfc_active_connection', () => {});
68
23
  }
69
- getCardName(result) {
70
- OKLiteManager.getCardName(result);
71
- }
72
24
  getLiteInfo(result) {
73
25
  OKLiteManager.getLiteInfo(result);
74
26
  }
@@ -76,12 +28,12 @@ class OnekeyLite {
76
28
  OKLiteManager.checkNFCPermission(result);
77
29
  }
78
30
  setMnemonic(mnemonic, pwd, result, overwrite = false) {
79
- this.encodeMnemonic(LiteFlag.VERSION, LiteFlag.LANGUAGE, mnemonic).then(payload => OKLiteManager.setMnemonic(payload, pwd, overwrite, result));
31
+ OKLiteManager.setMnemonic(mnemonic, pwd, overwrite, result);
80
32
  }
81
33
  getMnemonicWithPin(pwd, result) {
82
34
  try {
83
35
  OKLiteManager.getMnemonicWithPin(pwd, async (error, data, state) => {
84
- result(error, data ? await this.decodeMnemonic(data) : null, state);
36
+ result(error, data ? await data : null, state);
85
37
  });
86
38
  } catch (error) {
87
39
  result({
@@ -100,7 +52,11 @@ class OnekeyLite {
100
52
  if (Platform.OS === 'android') OKLiteManager.cancel();
101
53
  }
102
54
  intoSetting() {
103
- if (Platform.OS === 'android') OKLiteManager.intoSetting();
55
+ if (Platform.OS === 'android') {
56
+ OKLiteManager.intoSetting();
57
+ } else {
58
+ Linking.openSettings();
59
+ }
104
60
  }
105
61
  }
106
62
  const onekeyLite = new OnekeyLite();
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","CardErrors","OKLiteManager","LiteFlag","VERSION","LANGUAGE","TAG","DEFAULT_FUNCTION","value","OnekeyLite","UiEventEmitter","mnemonicToEntropy","entropyToMnemonic","entropyToMnemonicV2","constructor","OS","encodeMnemonic","version","language","mnemonic","meta","enMnemonic","trim","decodeMnemonic","payload","length","Buffer","from","toString","slice","regexp","test","parseInt","deMnemonic","error","addConnectListener","listener","removeConnectListeners","addListener","removeAllListeners","addAccordListener","eventEmitter","getCardName","result","getLiteInfo","checkNFCPermission","setMnemonic","pwd","overwrite","then","getMnemonicWithPin","data","state","code","ExecFailure","message","changePin","oldPin","newPin","reset","cancel","intoSetting","onekeyLite"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["Linking","NativeEventEmitter","NativeModules","Platform","CardErrors","OKLiteManager","OnekeyLite","UiEventEmitter","constructor","OS","addConnectListener","listener","removeConnectListeners","addListener","removeAllListeners","addAccordListener","eventEmitter","getLiteInfo","result","checkNFCPermission","setMnemonic","mnemonic","pwd","overwrite","getMnemonicWithPin","error","data","state","code","ExecFailure","message","changePin","oldPin","newPin","reset","cancel","intoSetting","openSettings","onekeyLite"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SACEA,OAAO,EACPC,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,QACH,cAAc;AAErB,SAASC,UAAU,QAAQ,SAAS;AAIpC,MAAM;EAAEC;AAAc,CAAC,GAAGH,aAAa;AAOvC,MAAMI,UAAU,CAAC;EACfC,cAAc,GAA8B,IAAI;EAEhDC,WAAWA,CAAA,EAAG;IACZ,IAAIL,QAAQ,CAACM,EAAE,KAAK,SAAS,EAAE;IAC/B,IAAI,CAACF,cAAc,GAAG,IAAIN,kBAAkB,CAACI,aAAa,CAAC;EAC7D;EAEAK,kBAAkBA,CAACC,QAA4C,EAAE;IAC/D,IAAI,CAACC,sBAAsB,CAAC,CAAC;IAC7B,OAAO,IAAI,CAACL,cAAc,EAAEM,WAAW,CAAC,cAAc,EAAEF,QAAQ,CAAC;EACnE;EAEAC,sBAAsBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACL,cAAc,EAAEO,kBAAkB,CAAC,cAAc,CAAC;EAChE;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,IAAIZ,QAAQ,CAACM,EAAE,KAAK,SAAS,EAAE;IAC/B,MAAMO,YAAY,GAAG,IAAIf,kBAAkB,CAACI,aAAa,CAAC;IAC1D,OAAOW,YAAY,CAACH,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC;EACpE;EAEAI,WAAWA,CAACC,MAA0B,EAAE;IACtCb,aAAa,CAACY,WAAW,CAACC,MAAM,CAAC;EACnC;EAEAC,kBAAkBA,CAACD,MAAyB,EAAE;IAC5Cb,aAAa,CAACc,kBAAkB,CAACD,MAAM,CAAC;EAC1C;EAEAE,WAAWA,CACTC,QAAgB,EAChBC,GAAW,EACXJ,MAAyB,EACzBK,SAAS,GAAG,KAAK,EACjB;IACAlB,aAAa,CAACe,WAAW,CAACC,QAAQ,EAAEC,GAAG,EAAEC,SAAS,EAAEL,MAAM,CAAC;EAC7D;EAEAM,kBAAkBA,CAACF,GAAW,EAAEJ,MAAwB,EAAE;IACxD,IAAI;MACFb,aAAa,CAACmB,kBAAkB,CAC9BF,GAAG,EACH,OACEG,KAA2B,EAC3BC,IAAmB,EACnBC,KAAsB,KACnB;QACHT,MAAM,CAACO,KAAK,EAAEC,IAAI,GAAG,MAAMA,IAAI,GAAG,IAAI,EAAEC,KAAK,CAAC;MAChD,CACF,CAAC;IACH,CAAC,CAAC,OAAOF,KAAK,EAAE;MACdP,MAAM,CAAC;QAAEU,IAAI,EAAExB,UAAU,CAACyB,WAAW;QAAEC,OAAO,EAAE;MAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IACrE;EACF;EAEAC,SAASA,CAACC,MAAc,EAAEC,MAAc,EAAEf,MAAyB,EAAE;IACnEb,aAAa,CAAC0B,SAAS,CAACC,MAAM,EAAEC,MAAM,EAAEf,MAAM,CAAC;EACjD;EAEAgB,KAAKA,CAAChB,MAAyB,EAAE;IAC/Bb,aAAa,CAAC6B,KAAK,CAAChB,MAAM,CAAC;EAC7B;EAEAiB,MAAMA,CAAA,EAAG;IACP,IAAIhC,QAAQ,CAACM,EAAE,KAAK,SAAS,EAAEJ,aAAa,CAAC8B,MAAM,CAAC,CAAC;EACvD;EAEAC,WAAWA,CAAA,EAAG;IACZ,IAAIjC,QAAQ,CAACM,EAAE,KAAK,SAAS,EAAE;MAC7BJ,aAAa,CAAC+B,WAAW,CAAC,CAAC;IAC7B,CAAC,MAAM;MACLpC,OAAO,CAACqC,YAAY,CAAC,CAAC;IACxB;EACF;AACF;AAEA,MAAMC,UAAU,GAAG,IAAIhC,UAAU,CAAC,CAAC;AACnC,eAAegC,UAAU"}
@@ -1,26 +1,15 @@
1
1
  import { NativeEventEmitter } from 'react-native';
2
2
  import type { Callback, CardInfo } from './types';
3
- export declare const LiteFlag: {
4
- VERSION: string;
5
- LANGUAGE: string;
6
- TAG: string;
7
- };
8
3
  export type NfcConnectUiState = {
9
4
  code: number;
10
5
  message: string;
11
6
  };
12
7
  declare class OnekeyLite {
13
8
  UiEventEmitter: NativeEventEmitter | null;
14
- mnemonicToEntropy: (value: string) => string;
15
- entropyToMnemonic: (value: string) => string;
16
- entropyToMnemonicV2: (value: string) => string;
17
9
  constructor();
18
- encodeMnemonic(version: string, language: string, mnemonic: string): Promise<string>;
19
- decodeMnemonic(payload: string): Promise<string>;
20
10
  addConnectListener(listener: (event: NfcConnectUiState) => void): import("react-native").EmitterSubscription | undefined;
21
11
  removeConnectListeners(): void | undefined;
22
12
  addAccordListener(): import("react-native").EmitterSubscription | undefined;
23
- getCardName(result: Callback<string>): void;
24
13
  getLiteInfo(result: Callback<CardInfo>): void;
25
14
  checkNFCPermission(result: Callback<boolean>): void;
26
15
  setMnemonic(mnemonic: string, pwd: string, result: Callback<boolean>, overwrite?: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,cAAc,CAAC;AAI3E,OAAO,KAAK,EAAE,QAAQ,EAAiB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjE,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,cAAM,UAAU;IACd,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAEjD,iBAAiB,4BAAoB;IAErC,iBAAiB,4BAAoB;IACrC,mBAAmB,4BAAoB;;IAOjC,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAMZ,cAAc,CAAC,OAAO,EAAE,MAAM;IAoCpC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI;IAK/D,sBAAsB;IAItB,iBAAiB;IAMjB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;IAIpC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAItC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAI5C,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EACzB,SAAS,UAAQ;IAOnB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;IAiBxD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAInE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAI/B,MAAM;IAIN,WAAW;CAGZ;AAED,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,QAAQ,EAAiB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,cAAM,UAAU;IACd,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAQ;;IAOjD,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI;IAK/D,sBAAsB;IAItB,iBAAiB;IAMjB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAItC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAI5C,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EACzB,SAAS,UAAQ;IAKnB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;IAiBxD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAInE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;IAI/B,MAAM;IAIN,WAAW;CAOZ;AAED,QAAA,MAAM,UAAU,YAAmB,CAAC;AACpC,eAAe,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/react-native-lite-card",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "lite card",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
14
14
  s.platforms = { :ios => "11.0" }
15
15
  s.source = { :git => "https://github.com/OneKeyHQ/react-native-lite-card.git", :tag => "#{s.version}" }
16
16
 
17
- s.source_files = "ios/Classes/**/*" "keys/**/*"
17
+ s.source_files = "ios/Classes/**/*", "keys/**/*"
18
18
  s.vendored_framework = "ios/GPChannelSDKCore.framework"
19
19
 
20
20
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
package/src/index.ts CHANGED
@@ -1,4 +1,9 @@
1
- import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
1
+ import {
2
+ Linking,
3
+ NativeEventEmitter,
4
+ NativeModules,
5
+ Platform,
6
+ } from 'react-native';
2
7
 
3
8
  import { CardErrors } from './types';
4
9
 
@@ -6,78 +11,19 @@ import type { Callback, CallbackError, CardInfo } from './types';
6
11
 
7
12
  const { OKLiteManager } = NativeModules;
8
13
 
9
- export const LiteFlag = {
10
- VERSION: '01',
11
- LANGUAGE: '00', // english
12
- TAG: 'ffff',
13
- };
14
-
15
14
  export type NfcConnectUiState = {
16
15
  code: number;
17
16
  message: string;
18
17
  };
19
18
 
20
- const DEFAULT_FUNCTION = (value: string) => value;
21
-
22
19
  class OnekeyLite {
23
20
  UiEventEmitter: NativeEventEmitter | null = null;
24
21
 
25
- mnemonicToEntropy = DEFAULT_FUNCTION;
26
-
27
- entropyToMnemonic = DEFAULT_FUNCTION;
28
- entropyToMnemonicV2 = DEFAULT_FUNCTION;
29
-
30
22
  constructor() {
31
23
  if (Platform.OS !== 'android') return;
32
24
  this.UiEventEmitter = new NativeEventEmitter(OKLiteManager);
33
25
  }
34
26
 
35
- async encodeMnemonic(
36
- version: string,
37
- language: string,
38
- mnemonic: string
39
- ): Promise<string> {
40
- const meta = LiteFlag.TAG + version + language;
41
- const enMnemonic = await this.mnemonicToEntropy(mnemonic.trim()); // mnemonic to index
42
- return enMnemonic + meta;
43
- }
44
-
45
- async decodeMnemonic(payload: string) {
46
- try {
47
- if (payload.length <= 8)
48
- return Buffer.from(payload, 'hex').toString().trim();
49
-
50
- const meta = payload.slice(-8);
51
-
52
- const regexp = /^ffff[a-f0-9]{4}$/;
53
- if (regexp.test(meta)) {
54
- const version = parseInt(meta.slice(4, 6), 10);
55
- const enMnemonic = payload.slice(0, -8);
56
-
57
- if (version === 1) {
58
- const deMnemonic = await this.entropyToMnemonic(enMnemonic); // mnemonic to index
59
-
60
- return deMnemonic.trim();
61
- }
62
-
63
- if (version === 2) {
64
- const deMnemonic = await this.entropyToMnemonicV2(enMnemonic); // mnemonic to index
65
-
66
- return deMnemonic.trim();
67
- }
68
-
69
- // 当前版本不支持
70
- return '';
71
- }
72
-
73
- // 兼容 V0 旧版本
74
- return Buffer.from(payload, 'hex').toString().trim();
75
- } catch (error) {
76
- // 数据解析报错
77
- return '';
78
- }
79
- }
80
-
81
27
  addConnectListener(listener: (event: NfcConnectUiState) => void) {
82
28
  this.removeConnectListeners();
83
29
  return this.UiEventEmitter?.addListener('nfc_ui_event', listener);
@@ -93,10 +39,6 @@ class OnekeyLite {
93
39
  return eventEmitter.addListener('nfc_active_connection', () => {});
94
40
  }
95
41
 
96
- getCardName(result: Callback<string>) {
97
- OKLiteManager.getCardName(result);
98
- }
99
-
100
42
  getLiteInfo(result: Callback<CardInfo>) {
101
43
  OKLiteManager.getLiteInfo(result);
102
44
  }
@@ -111,9 +53,7 @@ class OnekeyLite {
111
53
  result: Callback<boolean>,
112
54
  overwrite = false
113
55
  ) {
114
- this.encodeMnemonic(LiteFlag.VERSION, LiteFlag.LANGUAGE, mnemonic).then(
115
- (payload) => OKLiteManager.setMnemonic(payload, pwd, overwrite, result)
116
- );
56
+ OKLiteManager.setMnemonic(mnemonic, pwd, overwrite, result);
117
57
  }
118
58
 
119
59
  getMnemonicWithPin(pwd: string, result: Callback<string>) {
@@ -125,7 +65,7 @@ class OnekeyLite {
125
65
  data: string | null,
126
66
  state: CardInfo | null
127
67
  ) => {
128
- result(error, data ? await this.decodeMnemonic(data) : null, state);
68
+ result(error, data ? await data : null, state);
129
69
  }
130
70
  );
131
71
  } catch (error) {
@@ -146,7 +86,11 @@ class OnekeyLite {
146
86
  }
147
87
 
148
88
  intoSetting() {
149
- if (Platform.OS === 'android') OKLiteManager.intoSetting();
89
+ if (Platform.OS === 'android') {
90
+ OKLiteManager.intoSetting();
91
+ } else {
92
+ Linking.openSettings();
93
+ }
150
94
  }
151
95
  }
152
96