@nexus-cross/crossx-sdk-core 2.3.0 → 2.3.3-beta.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.
- package/dist/core/types/rn-bridge.d.ts +11 -0
- package/dist/crossx.global +1 -1
- package/dist/index.cjs +19 -19
- package/dist/index.js +30 -19
- package/dist/sdk/CROSSxSDK.d.ts +7 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1264,7 +1264,7 @@ class X {
|
|
|
1264
1264
|
d.AUTH_FAILED,
|
|
1265
1265
|
"Bridge handshake rejected by native"
|
|
1266
1266
|
);
|
|
1267
|
-
const o = typeof s.walletName == "string" ? s.walletName.trim() : "", n = o.length > 0 && o.length <= 64 ? o : void 0;
|
|
1267
|
+
const o = typeof s.walletName == "string" ? s.walletName.trim() : "", n = o.length > 0 && o.length <= 64 ? o : void 0, a = s.provider === "google" || s.provider === "apple" ? s.provider : void 0;
|
|
1268
1268
|
return {
|
|
1269
1269
|
isActivated: !0,
|
|
1270
1270
|
absoluteTtlMs: s.absoluteTtlMs,
|
|
@@ -1273,7 +1273,8 @@ class X {
|
|
|
1273
1273
|
activatedAt: Date.now(),
|
|
1274
1274
|
lastActivityAt: Date.now(),
|
|
1275
1275
|
walletAddress: s.walletAddress,
|
|
1276
|
-
walletName: n
|
|
1276
|
+
walletName: n,
|
|
1277
|
+
walletProvider: a
|
|
1277
1278
|
};
|
|
1278
1279
|
} catch (s) {
|
|
1279
1280
|
throw c.error("[RNBridge] Handshake failed", s), new h(
|
|
@@ -2559,9 +2560,16 @@ const oe = class oe extends Mt {
|
|
|
2559
2560
|
_
|
|
2560
2561
|
);
|
|
2561
2562
|
} catch (u) {
|
|
2562
|
-
if (
|
|
2563
|
+
if (u instanceof h && u.code === d.PIN_CANCELLED)
|
|
2564
|
+
c.log("[CROSSx] initialize: 비밀번호 입력 취소 — 지갑 미로드 상태로 계속");
|
|
2565
|
+
else if (u instanceof h && (u.code === d.SESSION_EXPIRED || u.code === d.AUTH_NOT_AUTHENTICATED || u.code === d.USER_NOT_FOUND))
|
|
2566
|
+
c.warn(
|
|
2567
|
+
"[CROSSx] initialize: 복원된 세션이 유효하지 않음 — 세션 정리 후 비로그인으로 계속",
|
|
2568
|
+
u.code
|
|
2569
|
+
), this.clearAuthState(), await this.signOutUseCase.execute().catch(() => {
|
|
2570
|
+
}), l = null;
|
|
2571
|
+
else
|
|
2563
2572
|
throw u;
|
|
2564
|
-
c.log("[CROSSx] initialize: 비밀번호 입력 취소 — 지갑 미로드 상태로 계속");
|
|
2565
2573
|
}
|
|
2566
2574
|
}
|
|
2567
2575
|
return this.initialized = !0, c.info("[CROSSx SDK] v2.3.0 초기화 완료"), this.emit("initialized", { restored: !!(l != null && l.success) }), l ?? null;
|
|
@@ -2590,7 +2598,7 @@ const oe = class oe extends Mt {
|
|
|
2590
2598
|
userIdHash: "user-hash-placeholder",
|
|
2591
2599
|
projectId: this._config.projectId
|
|
2592
2600
|
}), r = await e.initialize();
|
|
2593
|
-
this._rnBridgeService = e, this._rnBridgeWalletAddress = r.walletAddress, this._rnBridgeWalletName = r.walletName, this.subscribeBridgeWalletChanged(), c.info("[CROSSx] RN Bridge Handshake 성공", {
|
|
2601
|
+
this._rnBridgeService = e, this._rnBridgeWalletAddress = r.walletAddress, this._rnBridgeWalletName = r.walletName, this._rnBridgeWalletProvider = r.walletProvider, this.subscribeBridgeWalletChanged(), c.info("[CROSSx] RN Bridge Handshake 성공", {
|
|
2594
2602
|
walletAddress: r.walletAddress ?? "(없음)",
|
|
2595
2603
|
walletName: r.walletName ?? "(없음)"
|
|
2596
2604
|
});
|
|
@@ -2687,31 +2695,34 @@ const oe = class oe extends Mt {
|
|
|
2687
2695
|
d.ALREADY_AUTHENTICATED,
|
|
2688
2696
|
"이미 로그인된 상태입니다. signOut()을 먼저 호출하세요."
|
|
2689
2697
|
);
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2698
|
+
const r = !!(e != null && e.provider) && !!this._rnBridgeWalletProvider && e.provider !== this._rnBridgeWalletProvider;
|
|
2699
|
+
if (r && c.log(
|
|
2700
|
+
`[CROSSx] 선택한 provider(${e == null ? void 0 : e.provider})가 bridge 연결 provider(${this._rnBridgeWalletProvider})와 불일치 — bridge 건너뛰고 OAuth 진행`
|
|
2701
|
+
), this._rnBridgeService && !r) {
|
|
2702
|
+
const s = await this._tryBridgeSignIn();
|
|
2703
|
+
if (s === !1)
|
|
2693
2704
|
return { success: !1, error: "Bridge authentication timed out without user decision" };
|
|
2694
|
-
if (
|
|
2705
|
+
if (s != null && s.success) return s;
|
|
2695
2706
|
}
|
|
2696
|
-
let
|
|
2707
|
+
let t = e;
|
|
2697
2708
|
if (!(e != null && e.provider)) {
|
|
2698
|
-
const
|
|
2709
|
+
const s = await this.confirmation.showLoginSelector({
|
|
2699
2710
|
connectOtherWallets: kt(this._config)
|
|
2700
2711
|
});
|
|
2701
|
-
if (
|
|
2712
|
+
if (s === null)
|
|
2702
2713
|
return { success: !1, error: "User cancelled login" };
|
|
2703
|
-
if (
|
|
2704
|
-
throw this.emit("connectExternalWallet", { walletId:
|
|
2714
|
+
if (s.type === "external")
|
|
2715
|
+
throw this.emit("connectExternalWallet", { walletId: s.walletId }), new h(
|
|
2705
2716
|
d.EXTERNAL_WALLET_REQUESTED,
|
|
2706
2717
|
"User requested external wallet connection"
|
|
2707
2718
|
);
|
|
2708
|
-
|
|
2719
|
+
t = { ...e, provider: s.provider };
|
|
2709
2720
|
}
|
|
2710
2721
|
try {
|
|
2711
|
-
const
|
|
2712
|
-
return
|
|
2713
|
-
} catch (
|
|
2714
|
-
throw
|
|
2722
|
+
const s = await this.signInUseCase.execute(t);
|
|
2723
|
+
return s.success && (this._isAuthenticatedViaRNBridge = !1, this.applyAuthResult(s)), s;
|
|
2724
|
+
} catch (s) {
|
|
2725
|
+
throw s instanceof h ? s : new h(d.AUTH_FAILED, "로그인에 실패했습니다", s);
|
|
2715
2726
|
}
|
|
2716
2727
|
}
|
|
2717
2728
|
/**
|
package/dist/sdk/CROSSxSDK.d.ts
CHANGED
|
@@ -57,6 +57,13 @@ export declare class CROSSxSDK extends TypedEventEmitter<SDKEventMap> {
|
|
|
57
57
|
private _rnBridgeWalletAddress;
|
|
58
58
|
/** RN Bridge `walletChanged` push event 에서 받은 native wallet label (UI 표시용). */
|
|
59
59
|
private _rnBridgeWalletName;
|
|
60
|
+
/**
|
|
61
|
+
* RN Bridge handshake 로 받은 native wallet 의 연결 소셜 provider ('google' | 'apple').
|
|
62
|
+
* 사용자가 signIn({ provider }) 으로 명시적으로 다른 provider 를 선택한 경우,
|
|
63
|
+
* bridge 자동 로그인(연결된 지갑 그대로 사용)을 건너뛰고 일반 OAuth 로 진행하기 위해 사용한다.
|
|
64
|
+
* handshake 가 provider 를 주지 않으면(구버전 지갑 앱 등) undefined → mismatch 판정 없이 기존 동작 유지.
|
|
65
|
+
*/
|
|
66
|
+
private _rnBridgeWalletProvider;
|
|
60
67
|
/**
|
|
61
68
|
* 현재 SDK 세션이 RN Bridge 자동 로그인을 통해 인증되었는지 여부.
|
|
62
69
|
*
|