@nexus-cross/crossx-sdk-core 2.1.2 → 2.2.0-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/__tests__/sdk/walletChanged.test.d.ts +8 -0
- package/dist/__tests__/sdk/walletChanged.test.d.ts.map +1 -0
- package/dist/adapters/confirmation/BridgeConfirmationAdapter.d.ts +79 -0
- package/dist/adapters/confirmation/BridgeConfirmationAdapter.d.ts.map +1 -0
- package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts +0 -14
- package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts.map +1 -1
- package/dist/adapters/wallet/RNBridgeWalletProviderAdapter.d.ts +55 -0
- package/dist/adapters/wallet/RNBridgeWalletProviderAdapter.d.ts.map +1 -0
- package/dist/core/constants.d.ts +2 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/i18n/messages.en.d.ts.map +1 -1
- package/dist/core/i18n/messages.ko.d.ts.map +1 -1
- package/dist/core/i18n/types.d.ts +0 -11
- package/dist/core/i18n/types.d.ts.map +1 -1
- package/dist/core/services/RNBridgeBootstrapService.d.ts +58 -0
- package/dist/core/services/RNBridgeBootstrapService.d.ts.map +1 -0
- package/dist/core/types/errors.d.ts +6 -0
- package/dist/core/types/errors.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +30 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/rn-bridge.d.ts +265 -0
- package/dist/core/types/rn-bridge.d.ts.map +1 -0
- package/dist/core/types/tokenHistory.d.ts +74 -0
- package/dist/core/types/tokenHistory.d.ts.map +1 -0
- package/dist/core/usecases/SignInUseCase.d.ts +66 -1
- package/dist/core/usecases/SignInUseCase.d.ts.map +1 -1
- package/dist/crossx.global +146 -151
- package/dist/index.cjs +142 -147
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2556 -1543
- package/dist/sdk/CROSSxSDK.d.ts +112 -0
- package/dist/sdk/CROSSxSDK.d.ts.map +1 -1
- package/dist/sdk/factory.d.ts.map +1 -1
- package/dist/sdk/services/SigningOrchestrator.d.ts +7 -0
- package/dist/sdk/services/SigningOrchestrator.d.ts.map +1 -1
- package/dist/sdk/services/TokenHistoryService.d.ts +53 -0
- package/dist/sdk/services/TokenHistoryService.d.ts.map +1 -0
- package/dist/sdk/services/index.d.ts +1 -0
- package/dist/sdk/services/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/adapters/BrowserConfirmationAdapter.test.d.ts +0 -2
- package/dist/__tests__/adapters/BrowserConfirmationAdapter.test.d.ts.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* §13.6.4 walletChanged push event subscribe / handler 테스트.
|
|
3
|
+
*
|
|
4
|
+
* RNBridgeBootstrapService.getBridge() 를 직접 mocking 해서 가짜 bridge 를
|
|
5
|
+
* 주입하고, SDK 가 등록한 onEvent listener 를 capture → 직접 트리거한다.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=walletChanged.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletChanged.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/sdk/walletChanged.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ConfirmationPort, ConfirmationDetails, TransactionCompleteDetails, TransactionPendingDetails } from '../../core/ports/ConfirmationPort';
|
|
2
|
+
import { ConnectOtherWalletItem, LoginSelectorResult } from '../../core/types';
|
|
3
|
+
import { RNBridge } from '../../core/types/rn-bridge';
|
|
4
|
+
|
|
5
|
+
export declare class BridgeConfirmationAdapter implements ConfirmationPort {
|
|
6
|
+
private browserConfirmation;
|
|
7
|
+
private getBridge;
|
|
8
|
+
private getOrigin;
|
|
9
|
+
/**
|
|
10
|
+
* §12 native sign delegation 활성 조건.
|
|
11
|
+
* 이 SDK 세션이 RN bridge 자동 로그인으로 인증된 경우만 true.
|
|
12
|
+
* false 반환 시 일반 browser confirmation 으로 위임 (OAuth 모드 등).
|
|
13
|
+
*/
|
|
14
|
+
private isAuthenticatedViaRNBridge;
|
|
15
|
+
constructor(browserConfirmation: ConfirmationPort, getBridge: () => RNBridge | undefined, getOrigin: () => string,
|
|
16
|
+
/**
|
|
17
|
+
* §12 native sign delegation 활성 조건.
|
|
18
|
+
* 이 SDK 세션이 RN bridge 자동 로그인으로 인증된 경우만 true.
|
|
19
|
+
* false 반환 시 일반 browser confirmation 으로 위임 (OAuth 모드 등).
|
|
20
|
+
*/
|
|
21
|
+
isAuthenticatedViaRNBridge?: () => boolean);
|
|
22
|
+
/** native delegation 가능 여부 (인증 + bridge 설치) */
|
|
23
|
+
private shouldDelegateToBridge;
|
|
24
|
+
requestConfirmation(details: ConfirmationDetails): Promise<boolean>;
|
|
25
|
+
private requestNativeConfirmation;
|
|
26
|
+
private mapToNativeParams;
|
|
27
|
+
showTransactionComplete(details: TransactionCompleteDetails): Promise<void>;
|
|
28
|
+
showTransactionProgress(pending: TransactionPendingDetails, receiptPromise: Promise<TransactionCompleteDetails>): Promise<void>;
|
|
29
|
+
showLoginSelector(options?: {
|
|
30
|
+
connectOtherWallets?: ConnectOtherWalletItem[];
|
|
31
|
+
}): Promise<LoginSelectorResult | null>;
|
|
32
|
+
showMigrationFoundPrompt(options?: {
|
|
33
|
+
allowSkip?: boolean;
|
|
34
|
+
}): Promise<'recover' | 'skip'>;
|
|
35
|
+
showRecoveryPinInputPrompt(options?: {
|
|
36
|
+
errorMessage?: string;
|
|
37
|
+
attemptCount?: number;
|
|
38
|
+
maxAttempts?: number;
|
|
39
|
+
}): Promise<string | null>;
|
|
40
|
+
showRecoveryPinLockedPrompt(lockExpiresInSeconds: number, message: string): Promise<void>;
|
|
41
|
+
showWalletSelector(wallets: Array<{
|
|
42
|
+
address: string;
|
|
43
|
+
index: number;
|
|
44
|
+
name?: string;
|
|
45
|
+
}>, onAddWallet: () => Promise<{
|
|
46
|
+
address: string;
|
|
47
|
+
index: number;
|
|
48
|
+
name?: string;
|
|
49
|
+
}>, selectedAddress?: string): Promise<{
|
|
50
|
+
address: string;
|
|
51
|
+
index: number;
|
|
52
|
+
name?: string;
|
|
53
|
+
} | null>;
|
|
54
|
+
showPinSetupPrompt(options?: {
|
|
55
|
+
errorMessage?: string;
|
|
56
|
+
}): Promise<string | null>;
|
|
57
|
+
showPinInputPrompt(options?: {
|
|
58
|
+
errorMessage?: string;
|
|
59
|
+
verifyMode?: boolean;
|
|
60
|
+
lockExpiresAt?: number;
|
|
61
|
+
attemptCount?: number;
|
|
62
|
+
maxAttempts?: number;
|
|
63
|
+
onSubmit?: (pin: string) => Promise<{
|
|
64
|
+
ok: boolean;
|
|
65
|
+
error?: string;
|
|
66
|
+
lockExpiresAt?: number;
|
|
67
|
+
attemptCount?: number;
|
|
68
|
+
maxAttempts?: number;
|
|
69
|
+
}>;
|
|
70
|
+
}): Promise<string | null>;
|
|
71
|
+
showSessionAlert(options: {
|
|
72
|
+
title: string;
|
|
73
|
+
message: string;
|
|
74
|
+
email?: string;
|
|
75
|
+
}): Promise<'signout' | 'signin-again'>;
|
|
76
|
+
setTheme(theme: 'light' | 'dark', overrides?: any): void;
|
|
77
|
+
setMessages(messages: any): void;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=BridgeConfirmationAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BridgeConfirmationAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/confirmation/BridgeConfirmationAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,12 +17,6 @@ export declare class BrowserConfirmationAdapter implements ConfirmationPort {
|
|
|
17
17
|
* 지갑 선택 팝업: "Select Connected Wallet"
|
|
18
18
|
* 지갑 목록을 표시하고, 사용자가 선택하거나 새 지갑을 추가할 수 있습니다.
|
|
19
19
|
* 모달은 지갑을 선택하거나 X를 누를 때까지 유지됩니다.
|
|
20
|
-
*
|
|
21
|
-
* 새 계정 추가(`onAddWallet`) 실패 시:
|
|
22
|
-
* - 모달 내부에 inline 에러 메시지를 노출합니다.
|
|
23
|
-
* - `ADDRESS_LIMIT_EXCEEDED`(-10036) 인 경우 Add 버튼을 영구 비활성화합니다.
|
|
24
|
-
* - 사용자가 기존 계정을 선택하면 정상 resolve, 모달을 닫으면 reject로 에러를
|
|
25
|
-
* 호출자에게 전달합니다(throws). 호출자는 별도 처리(로깅/토스트 등)에 사용할 수 있습니다.
|
|
26
20
|
*/
|
|
27
21
|
showWalletSelector(wallets: Array<{
|
|
28
22
|
address: string;
|
|
@@ -37,14 +31,6 @@ export declare class BrowserConfirmationAdapter implements ConfirmationPort {
|
|
|
37
31
|
index: number;
|
|
38
32
|
name?: string;
|
|
39
33
|
} | null>;
|
|
40
|
-
/**
|
|
41
|
-
* `onAddWallet()` 실패 시 모달에 표시할 사용자 안내 문자열을 결정합니다.
|
|
42
|
-
* - `ADDRESS_LIMIT_EXCEEDED` (-10036): 한도 안내 (`{limit}` 치환)
|
|
43
|
-
* - 그 외: 일반 재시도 안내
|
|
44
|
-
*
|
|
45
|
-
* `setMessages`로 전달된 i18n 문자열이 우선이며, 미설정 시 영문 디폴트를 사용합니다.
|
|
46
|
-
*/
|
|
47
|
-
private resolveAddWalletErrorMessage;
|
|
48
34
|
/**
|
|
49
35
|
* 로그인 프로바이더 선택 팝업: "CROSS Wallet"
|
|
50
36
|
* Apple / Google 버튼을 표시하고 선택된 프로바이더를 반환합니다.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserConfirmationAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/confirmation/BrowserConfirmationAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EAEnB,0BAA0B,EAC1B,yBAAyB,EAG1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAA8B,MAAM,qCAAqC,CAAC;AACzG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"BrowserConfirmationAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/confirmation/BrowserConfirmationAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { WalletProviderPort, WalletData, WalletCheckResult, SignResponse } from '../../core/ports/WalletProviderPort';
|
|
2
|
+
import { AddressInfo, EvmTransactionRequest } from '../../core/types/chain';
|
|
3
|
+
import { PrepareAction, PrepareContext, PrepareResult } from '../../core/types/prepare';
|
|
4
|
+
import { RNBridge } from '../../core/types/rn-bridge';
|
|
5
|
+
|
|
6
|
+
export declare class RNBridgeWalletProviderAdapter implements WalletProviderPort {
|
|
7
|
+
private readonly inner;
|
|
8
|
+
private readonly getBridge;
|
|
9
|
+
/**
|
|
10
|
+
* §12 native sign delegation 활성 조건.
|
|
11
|
+
* 이 SDK 세션이 RN bridge 자동 로그인으로 인증된 경우만 true.
|
|
12
|
+
* false 반환 시 모든 sign/send 가 inner wallet provider 로 위임됨 (일반 OAuth flow).
|
|
13
|
+
*/
|
|
14
|
+
private readonly isAuthenticatedViaRNBridge;
|
|
15
|
+
checkWallet?: () => Promise<WalletCheckResult>;
|
|
16
|
+
prepare?: (action: PrepareAction, context: PrepareContext) => Promise<PrepareResult>;
|
|
17
|
+
migrateWallet?: (pin: string, sub: string) => Promise<WalletData>;
|
|
18
|
+
verifyPin?: (pin: string) => Promise<boolean>;
|
|
19
|
+
getShareC?: () => Promise<string>;
|
|
20
|
+
verifyRecoveryPin?: (pin: string, sub: string) => Promise<{
|
|
21
|
+
valid: boolean;
|
|
22
|
+
pinStatus?: {
|
|
23
|
+
maxAttempts: number;
|
|
24
|
+
remainingAttempts: number;
|
|
25
|
+
lockExpiresAt?: number;
|
|
26
|
+
permanent?: boolean;
|
|
27
|
+
};
|
|
28
|
+
}>;
|
|
29
|
+
constructor(inner: WalletProviderPort, getBridge: () => RNBridge | undefined,
|
|
30
|
+
/**
|
|
31
|
+
* §12 native sign delegation 활성 조건.
|
|
32
|
+
* 이 SDK 세션이 RN bridge 자동 로그인으로 인증된 경우만 true.
|
|
33
|
+
* false 반환 시 모든 sign/send 가 inner wallet provider 로 위임됨 (일반 OAuth flow).
|
|
34
|
+
*/
|
|
35
|
+
isAuthenticatedViaRNBridge: () => boolean);
|
|
36
|
+
/** native delegation 가능 여부 (인증 + bridge 메서드 존재) 한 번에 판정 */
|
|
37
|
+
private shouldUseBridge;
|
|
38
|
+
signMessage(userId: string, chainId: string, message: string, index?: number, uuid?: string, from?: string): Promise<SignResponse>;
|
|
39
|
+
signTypedData(userId: string, chainId: string, typedData: unknown, index?: number, uuid?: string, from?: string): Promise<SignResponse>;
|
|
40
|
+
signTransaction(userId: string, chainId: string, tx: EvmTransactionRequest, index?: number, uuid?: string): Promise<SignResponse>;
|
|
41
|
+
sendTransaction(userId: string, chainId: string, tx: EvmTransactionRequest, uuid?: string): Promise<{
|
|
42
|
+
txHash: string;
|
|
43
|
+
}>;
|
|
44
|
+
private toBridgeTx;
|
|
45
|
+
getOrCreateWallet(userId: string): Promise<WalletData>;
|
|
46
|
+
getAddresses(userId: string): Promise<Array<{
|
|
47
|
+
address: string;
|
|
48
|
+
index: number;
|
|
49
|
+
name?: string;
|
|
50
|
+
}>>;
|
|
51
|
+
getAddress(userId: string, index: number): Promise<AddressInfo>;
|
|
52
|
+
setOnUnauthorized(callback: () => void): void;
|
|
53
|
+
setTokenRefresher(refresher: () => Promise<boolean>): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=RNBridgeWalletProviderAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RNBridgeWalletProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/RNBridgeWalletProviderAdapter.ts"],"names":[],"mappings":"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"}
|
package/dist/core/constants.d.ts
CHANGED
|
@@ -36,4 +36,6 @@ export declare const CHAIN_FALLBACK_RETRY_MS: number;
|
|
|
36
36
|
* 값은 백엔드 정책과 동기화되어야 하며, 서버에서 변경되면 함께 갱신합니다.
|
|
37
37
|
*/
|
|
38
38
|
export declare const MNEMONIC_ADDRESS_LIMIT = 100;
|
|
39
|
+
/** Token History API clientVersion (registerTokenHistory 호출 시 전송) */
|
|
40
|
+
export declare const SDK_CLIENT_VERSION = "crossx-sdk-js/2.2.0";
|
|
39
41
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,4BAA4B;AAC5B,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,+BAA+B;AAC/B,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAI9C,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAItD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAI9C,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,qBAAqB;AACrB,eAAO,MAAM,YAAY,KAAK,CAAC;AAI/B,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAI9C,sCAAsC;AACtC,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAEhD,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,QAAY,CAAC;AAIjD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,4BAA4B;AAC5B,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,+BAA+B;AAC/B,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAErD,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAI9C,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAItD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAI9C,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,qBAAqB;AACrB,eAAO,MAAM,YAAY,KAAK,CAAC;AAI/B,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAI9C,sCAAsC;AACtC,eAAO,MAAM,kBAAkB,QAAgB,CAAC;AAEhD,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,QAAY,CAAC;AAIjD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAI1C,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.en.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/messages.en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"messages.en.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/messages.en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,WAuGzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.ko.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/messages.ko.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"messages.ko.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/messages.ko.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,WAAW,EAAE,WAuGzB,CAAC"}
|
|
@@ -29,17 +29,6 @@ export interface SDKMessages {
|
|
|
29
29
|
walletSelector_title: string;
|
|
30
30
|
walletSelector_addButton: string;
|
|
31
31
|
walletSelector_selected: string;
|
|
32
|
-
/**
|
|
33
|
-
* 새 계정 추가 시 서버 한도(`MNEMONIC_ADDRESS_LIMIT`)를 초과해 -10036
|
|
34
|
-
* (`ADDRESS_LIMIT_EXCEEDED`) 가 반환됐을 때 모달 내부에 표시할 안내문.
|
|
35
|
-
* `{limit}` 자리표시자는 실제 한도 값으로 치환됩니다.
|
|
36
|
-
*/
|
|
37
|
-
walletSelector_addError_limitExceeded: string;
|
|
38
|
-
/**
|
|
39
|
-
* 그 외 새 계정 추가 실패(네트워크/서버 오류 등) 시 모달 내부에 표시할 안내문.
|
|
40
|
-
* 사용자는 Add 버튼을 다시 눌러 재시도할 수 있습니다.
|
|
41
|
-
*/
|
|
42
|
-
walletSelector_addError_generic: string;
|
|
43
32
|
pinNotice_headerSubtitle: string;
|
|
44
33
|
pinNotice_title: string;
|
|
45
34
|
pinNotice_description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAGd,iBAAiB,EAAE,MAAM,CAAC;IAG1B,mBAAmB,EAAE,MAAM,CAAC;IAG5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAG9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAGnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iCAAiC,EAAE,MAAM,CAAC;IAC1C,qCAAqC,EAAE,MAAM,CAAC;IAG9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAG7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4BAA4B,EAAE,MAAM,CAAC;IACrC,sBAAsB,EAAE,MAAM,CAAC;IAG/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/i18n/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IAGd,iBAAiB,EAAE,MAAM,CAAC;IAG1B,mBAAmB,EAAE,MAAM,CAAC;IAG5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAG9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAGnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iCAAiC,EAAE,MAAM,CAAC;IAC1C,qCAAqC,EAAE,MAAM,CAAC;IAG9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAG7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,4BAA4B,EAAE,MAAM,CAAC;IACrC,sBAAsB,EAAE,MAAM,CAAC;IAG/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAGhC,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAG/B,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAG/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,4BAA4B,EAAE,MAAM,CAAC;IACrC,wBAAwB,EAAE,MAAM,CAAC;IACjC,gCAAgC,EAAE,MAAM,CAAC;IAGzC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IAGvB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAG3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,8BAA8B;IAC9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,qDAAqD;IACrD,oBAAoB,EAAE,MAAM,CAAC;IAE7B,+CAA+C;IAC/C,sBAAsB,EAAE,MAAM,CAAC;IAE/B,+CAA+C;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAG/B,0CAA0C;IAC1C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B;IAC1B,yBAAyB,EAAE,MAAM,CAAC;IAClC,2BAA2B;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,4BAA4B;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,6BAA6B;IAC7B,8BAA8B,EAAE,MAAM,CAAC;CACxC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { RNBridge, RNBridgeBootstrapContext, NativeFirebaseIdTokenResult } from '../types/rn-bridge';
|
|
2
|
+
|
|
3
|
+
interface RNBridgeBootstrapConfig {
|
|
4
|
+
appId: string;
|
|
5
|
+
appVersion: string;
|
|
6
|
+
sdkVersion: string;
|
|
7
|
+
keyId: string;
|
|
8
|
+
userIdHash: string;
|
|
9
|
+
projectId: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* RN Bridge Bootstrap Service
|
|
13
|
+
*/
|
|
14
|
+
export declare class RNBridgeBootstrapService {
|
|
15
|
+
private config;
|
|
16
|
+
private bridge;
|
|
17
|
+
private context;
|
|
18
|
+
constructor(config: RNBridgeBootstrapConfig);
|
|
19
|
+
/**
|
|
20
|
+
* Wait for RN bridge to be fully initialized
|
|
21
|
+
* Returns true if bridge becomes ready within timeout, false otherwise
|
|
22
|
+
*/
|
|
23
|
+
private static waitForBridgeReady;
|
|
24
|
+
/**
|
|
25
|
+
* Detect if RN bridge is available
|
|
26
|
+
*/
|
|
27
|
+
static isAvailable(): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Get native bridge instance
|
|
30
|
+
*/
|
|
31
|
+
static getBridge(): RNBridge | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Initialize and activate bridge
|
|
34
|
+
*/
|
|
35
|
+
initialize(): Promise<RNBridgeBootstrapContext>;
|
|
36
|
+
/**
|
|
37
|
+
* Perform handshake with native
|
|
38
|
+
*/
|
|
39
|
+
private handshake;
|
|
40
|
+
/**
|
|
41
|
+
* Request Firebase ID token from native
|
|
42
|
+
*/
|
|
43
|
+
requestFirebaseIdToken(): Promise<NativeFirebaseIdTokenResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Request fresh Firebase ID token (after access token expiry)
|
|
46
|
+
*/
|
|
47
|
+
requestFreshFirebaseIdToken(): Promise<NativeFirebaseIdTokenResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Get current context
|
|
50
|
+
*/
|
|
51
|
+
getContext(): RNBridgeBootstrapContext | null;
|
|
52
|
+
/**
|
|
53
|
+
* Check if bridge is still active
|
|
54
|
+
*/
|
|
55
|
+
isActive(): boolean;
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=RNBridgeBootstrapService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RNBridgeBootstrapService.d.ts","sourceRoot":"","sources":["../../../src/core/services/RNBridgeBootstrapService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAoB,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAI5H,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAkBD;;GAEG;AACH,qBAAa,wBAAwB;IAIvB,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAyC;gBAEpC,MAAM,EAAE,uBAAuB;IAEnD;;;OAGG;mBACkB,kBAAkB;IAcvC;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;IAM7B;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,QAAQ,GAAG,SAAS;IAMxC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAyCrD;;OAEG;YACW,SAAS;IAgDvB;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAsCpE;;OAEG;IACG,2BAA2B,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAqCzE;;OAEG;IACH,UAAU,IAAI,wBAAwB,GAAG,IAAI;IAI7C;;OAEG;IACH,QAAQ,IAAI,OAAO;CAapB"}
|
|
@@ -80,6 +80,12 @@ export declare enum ErrorCode {
|
|
|
80
80
|
WITHDRAW_FAILED = "WITHDRAW_FAILED",
|
|
81
81
|
/** Gateway에서 유저를 찾을 수 없음 (-10033) — 강제 로그아웃 필요 */
|
|
82
82
|
USER_NOT_FOUND = "USER_NOT_FOUND",
|
|
83
|
+
/** RN Bridge not available or not installed */
|
|
84
|
+
RN_BRIDGE_NOT_AVAILABLE = "RN_BRIDGE_NOT_AVAILABLE",
|
|
85
|
+
/** RN Bridge handshake failed */
|
|
86
|
+
RN_BRIDGE_HANDSHAKE_FAILED = "RN_BRIDGE_HANDSHAKE_FAILED",
|
|
87
|
+
/** RN Native Firebase session expired — requires re-login via native */
|
|
88
|
+
RN_NATIVE_SESSION_EXPIRED = "RN_NATIVE_SESSION_EXPIRED",
|
|
83
89
|
INVALID_CONFIG = "INVALID_CONFIG",
|
|
84
90
|
UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
|
85
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IAEnB,oBAAoB,yBAAyB;IAC7C,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,8DAA8D;IAC9D,eAAe,oBAAoB;IACnC,8BAA8B;IAC9B,mBAAmB,wBAAwB;IAG3C,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,6CAA6C;IAC7C,qBAAqB,0BAA0B;IAC/C;;;OAGG;IACH,sBAAsB,2BAA2B;IAGjD,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAG/B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,8BAA8B;IAC9B,gBAAgB,qBAAqB;IAGrC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IAGvC,aAAa,kBAAkB;IAC/B,sBAAsB,2BAA2B;IAGjD,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IAGnD,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IAGzC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IAGrC,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB,CAAI,oBAAoB;IAGrE,sBAAsB,2BAA2B,CAAQ,2BAA2B;IACpF,qBAAqB,0BAA0B,CAAU,8BAA8B;IACvF,yEAAyE;IACzE,yBAAyB,8BAA8B,CAAE,uCAAuC;IAGhG,kBAAkB,uBAAuB,CAAY,6BAA6B;IAClF,kBAAkB,uBAAuB,CAAY,4BAA4B;IACjF,sBAAsB,2BAA2B,CAAI,oCAAoC;IACzF,gBAAgB,qBAAqB,CAAgB,2BAA2B;IAChF,sBAAsB,2BAA2B,CAAI,6BAA6B;IAElF,mDAAmD;IACnD,yBAAyB,8BAA8B;IAEvD,oDAAoD;IACpD,qBAAqB,0BAA0B;IAE/C,wDAAwD;IACxD,4BAA4B,iCAAiC;IAG7D,0CAA0C;IAC1C,WAAW,gBAAgB;IAC3B,iDAAiD;IACjD,SAAS,cAAc;IACvB,gEAAgE;IAChE,WAAW,gBAAgB;IAC3B,2EAA2E;IAC3E,oBAAoB,yBAAyB;IAC7C,uBAAuB;IACvB,aAAa,kBAAkB;IAC/B,sDAAsD;IACtD,yBAAyB,8BAA8B;IACvD,+CAA+C;IAC/C,UAAU,eAAe;IAEzB,+BAA+B;IAC/B,aAAa,kBAAkB;IAC/B,6BAA6B;IAC7B,wBAAwB,6BAA6B;IACrD,wBAAwB;IACxB,eAAe,oBAAoB;IACnC,kDAAkD;IAClD,cAAc,mBAAmB;IAGjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAE3B,IAAI,EAAE,SAAS;IAEf,OAAO,CAAC,EAAE,OAAO;gBAFjB,IAAI,EAAE,SAAS,EACtB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,OAAO,YAAA;IAO1B,MAAM;;;;;;CAQP"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/core/types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IAEnB,oBAAoB,yBAAyB;IAC7C,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,sBAAsB,2BAA2B;IACjD,qBAAqB,0BAA0B;IAC/C,8DAA8D;IAC9D,eAAe,oBAAoB;IACnC,8BAA8B;IAC9B,mBAAmB,wBAAwB;IAG3C,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IACjD,6CAA6C;IAC7C,qBAAqB,0BAA0B;IAC/C;;;OAGG;IACH,sBAAsB,2BAA2B;IAGjD,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAG/B,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,8BAA8B;IAC9B,gBAAgB,qBAAqB;IAGrC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IAGvC,aAAa,kBAAkB;IAC/B,sBAAsB,2BAA2B;IAGjD,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,uBAAuB,4BAA4B;IAGnD,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IAGzC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IAGrC,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,oBAAoB,yBAAyB,CAAI,oBAAoB;IAGrE,sBAAsB,2BAA2B,CAAQ,2BAA2B;IACpF,qBAAqB,0BAA0B,CAAU,8BAA8B;IACvF,yEAAyE;IACzE,yBAAyB,8BAA8B,CAAE,uCAAuC;IAGhG,kBAAkB,uBAAuB,CAAY,6BAA6B;IAClF,kBAAkB,uBAAuB,CAAY,4BAA4B;IACjF,sBAAsB,2BAA2B,CAAI,oCAAoC;IACzF,gBAAgB,qBAAqB,CAAgB,2BAA2B;IAChF,sBAAsB,2BAA2B,CAAI,6BAA6B;IAElF,mDAAmD;IACnD,yBAAyB,8BAA8B;IAEvD,oDAAoD;IACpD,qBAAqB,0BAA0B;IAE/C,wDAAwD;IACxD,4BAA4B,iCAAiC;IAG7D,0CAA0C;IAC1C,WAAW,gBAAgB;IAC3B,iDAAiD;IACjD,SAAS,cAAc;IACvB,gEAAgE;IAChE,WAAW,gBAAgB;IAC3B,2EAA2E;IAC3E,oBAAoB,yBAAyB;IAC7C,uBAAuB;IACvB,aAAa,kBAAkB;IAC/B,sDAAsD;IACtD,yBAAyB,8BAA8B;IACvD,+CAA+C;IAC/C,UAAU,eAAe;IAEzB,+BAA+B;IAC/B,aAAa,kBAAkB;IAC/B,6BAA6B;IAC7B,wBAAwB,6BAA6B;IACrD,wBAAwB;IACxB,eAAe,oBAAoB;IACnC,kDAAkD;IAClD,cAAc,mBAAmB;IAGjC,+CAA+C;IAC/C,uBAAuB,4BAA4B;IACnD,iCAAiC;IACjC,0BAA0B,+BAA+B;IACzD,wEAAwE;IACxE,yBAAyB,8BAA8B;IAGvD,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAE3B,IAAI,EAAE,SAAS;IAEf,OAAO,CAAC,EAAE,OAAO;gBAFjB,IAAI,EAAE,SAAS,EACtB,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,OAAO,YAAA;IAO1B,MAAM;;;;;;CAQP"}
|
|
@@ -7,6 +7,8 @@ export * from './chain';
|
|
|
7
7
|
export * from './prepare';
|
|
8
8
|
export * from './events';
|
|
9
9
|
export * from './connectOtherWallet';
|
|
10
|
+
export * from './rn-bridge';
|
|
11
|
+
export * from './tokenHistory';
|
|
10
12
|
/**
|
|
11
13
|
* 인증 결과
|
|
12
14
|
*/
|
|
@@ -110,6 +112,20 @@ export interface SDKUserInfo {
|
|
|
110
112
|
* false인 경우, id·email 등은 디코딩만 수행된 미검증 데이터입니다.
|
|
111
113
|
*/
|
|
112
114
|
tokenSignatureVerified: boolean;
|
|
115
|
+
/** 인증 상세 정보 */
|
|
116
|
+
data: SDKUserInfoData;
|
|
117
|
+
}
|
|
118
|
+
export interface SDKUserInfoData {
|
|
119
|
+
/** OAuth 프로바이더 ('google' | 'apple') */
|
|
120
|
+
provider?: string;
|
|
121
|
+
/** CROSSx 서버 발급 JWT access token */
|
|
122
|
+
accessToken: string;
|
|
123
|
+
/** 이메일 (있는 경우) */
|
|
124
|
+
email?: string;
|
|
125
|
+
/** JWT subject (사용자 ID) */
|
|
126
|
+
sub: string;
|
|
127
|
+
/** OAuth 프로바이더 원본 sub */
|
|
128
|
+
providerSub?: string;
|
|
113
129
|
}
|
|
114
130
|
/**
|
|
115
131
|
* 메시지 서명 결과 (SDK Public API)
|
|
@@ -410,6 +426,20 @@ export interface SDKConfig {
|
|
|
410
426
|
* connectOtherWallets: [ConnectOtherWalletItem.MetaMask, ConnectOtherWalletItem.Binance]
|
|
411
427
|
*/
|
|
412
428
|
connectOtherWallets?: ConnectOtherWalletItem[];
|
|
429
|
+
/**
|
|
430
|
+
* RN Native Bridge 자동 로그인 활성화 여부 (기본: true)
|
|
431
|
+
*
|
|
432
|
+
* In-app browser(RN Bridge) 환경에서 SDK 가 wallet 앱의 사용자 세션을 감지했을 때
|
|
433
|
+
* 자동 로그인을 시도할지 여부.
|
|
434
|
+
*
|
|
435
|
+
* - 사용자 동의 다이얼로그는 **Native(앱 측) 가 표시**합니다.
|
|
436
|
+
* SDK 호출이든 직접 `window.__crossxRNBridge` 호출이든 모든 sensitive RPC 는
|
|
437
|
+
* Native 가 단일 보안 경계로서 사용자 동의를 받습니다.
|
|
438
|
+
* - dapp 이 자동 로그인을 사용하지 않으려면 `false` 로 설정.
|
|
439
|
+
*
|
|
440
|
+
* @default true
|
|
441
|
+
*/
|
|
442
|
+
enableRNBridgeAutoLogin?: boolean;
|
|
413
443
|
}
|
|
414
444
|
/**
|
|
415
445
|
* sendTransactionWithWaitForReceipt() 반환 타입
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAE/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,kDAAkD;IAClD,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,6DAA6D;IAC7D,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC,eAAe;IACf,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAEhC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAGZ;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB;;;;;;;OAOG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,SAAS,EAAE,SAAS,CAAC;IAErC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,OAAO,qBAAqB,EAAE,UAAU,CAAC;IAElD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAE7B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,cAAc,CAAC,EAAE;QACf,6BAA6B;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iCAAiC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE;QACV;;;;WAIG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IAEF;;;;;;;;;OASG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAE/C;;;;;;;;;;;;OAYG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC;CAC/C"}
|