@nexus-cross/crossx-sdk-core 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/adapters/BrowserOAuthAdapter.test.d.ts +2 -0
- package/dist/__tests__/adapters/BrowserOAuthAdapter.test.d.ts.map +1 -0
- package/dist/__tests__/mocks/MockWalletProviderPort.d.ts +4 -3
- package/dist/__tests__/mocks/MockWalletProviderPort.d.ts.map +1 -1
- package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts +18 -15
- package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts.map +1 -1
- package/dist/adapters/oauth/BrowserOAuthAdapter.d.ts +9 -1
- package/dist/adapters/oauth/BrowserOAuthAdapter.d.ts.map +1 -1
- package/dist/adapters/wallet/MockWalletProviderAdapter.d.ts +15 -15
- package/dist/adapters/wallet/MockWalletProviderAdapter.d.ts.map +1 -1
- package/dist/adapters/wallet/RemoteWalletProviderAdapter.d.ts +23 -14
- package/dist/adapters/wallet/RemoteWalletProviderAdapter.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 +28 -29
- package/dist/core/i18n/types.d.ts.map +1 -1
- package/dist/core/ports/ConfirmationPort.d.ts +19 -18
- package/dist/core/ports/ConfirmationPort.d.ts.map +1 -1
- package/dist/core/ports/WalletProviderPort.d.ts +13 -7
- package/dist/core/ports/WalletProviderPort.d.ts.map +1 -1
- package/dist/core/services/PinMemoryStore.d.ts +43 -0
- package/dist/core/services/PinMemoryStore.d.ts.map +1 -0
- package/dist/core/types/errors.d.ts +10 -8
- package/dist/core/types/errors.d.ts.map +1 -1
- package/dist/core/usecases/SignInUseCase.d.ts +10 -0
- package/dist/core/usecases/SignInUseCase.d.ts.map +1 -1
- package/dist/crossx.global +353 -196
- package/dist/index.cjs +353 -196
- package/dist/index.js +2638 -2174
- package/dist/sdk/CROSSxSDK.d.ts +72 -40
- package/dist/sdk/CROSSxSDK.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserOAuthAdapter.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/adapters/BrowserOAuthAdapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -24,7 +24,8 @@ export declare class MockWalletProviderPort implements WalletProviderPort {
|
|
|
24
24
|
txHash: string;
|
|
25
25
|
}>>;
|
|
26
26
|
migrateWallet: import('vitest').Mock<(_pin: string, _sub: string) => Promise<WalletData>>;
|
|
27
|
-
verifyPin: import('vitest').Mock<(_pin: string
|
|
27
|
+
verifyPin: import('vitest').Mock<(_pin: string) => Promise<boolean>>;
|
|
28
|
+
verifyRecoveryPin: import('vitest').Mock<(_pin: string, _sub: string) => Promise<{
|
|
28
29
|
valid: boolean;
|
|
29
30
|
pinStatus?: {
|
|
30
31
|
maxAttempts: number;
|
|
@@ -32,10 +33,10 @@ export declare class MockWalletProviderPort implements WalletProviderPort {
|
|
|
32
33
|
lockExpiresAt?: number;
|
|
33
34
|
};
|
|
34
35
|
}>>;
|
|
35
|
-
/**
|
|
36
|
+
/** verifyRecoveryPin이 MIGRATION_FAILED(PIN 불일치)를 반환하도록 설정 */
|
|
36
37
|
private _simulateWrongPinCount;
|
|
37
38
|
simulateWrongPin(): void;
|
|
38
|
-
/**
|
|
39
|
+
/** verifyRecoveryPin이 MIGRATION_PIN_LOCKED(잠금) 응답을 반환하도록 설정 */
|
|
39
40
|
simulatePinLocked(overrides?: Partial<MigrationLockDetails>): void;
|
|
40
41
|
}
|
|
41
42
|
export { MOCK_WALLET_DATA, MOCK_SIGN_RESPONSE };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockWalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/MockWalletProviderPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAO,MAAM,YAAY,+CAA+C,CAAC;AACzE,eAAO,MAAM,YAAY,uEAAuE,CAAC;AAEjG,QAAA,MAAM,gBAAgB,EAAE,UAKvB,CAAC;AAIF,QAAA,MAAM,kBAAkB,EAAE,YAKzB,CAAC;AAEF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,iBAAiB,kCAAyB,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC,EAAsB;IAE5F,YAAY,kCAAyB,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EAE7F;IAEH,UAAU,kCAAyB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,WAAW,CAAC,EAG5E;IAEJ,WAAW,kCACO,MAAM,YAAY,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAEnG;IAEF,aAAa,kCACK,MAAM,YAAY,MAAM,cAAc,OAAO,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAEtG;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAE3F;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAEhF;IAEF,aAAa,+BACE,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC,EACvD;IAEF,SAAS,+BACM,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC;QAC1C,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACxF,CAAC,EACF;IAEF,
|
|
1
|
+
{"version":3,"file":"MockWalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/MockWalletProviderPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAO,MAAM,YAAY,+CAA+C,CAAC;AACzE,eAAO,MAAM,YAAY,uEAAuE,CAAC;AAEjG,QAAA,MAAM,gBAAgB,EAAE,UAKvB,CAAC;AAIF,QAAA,MAAM,kBAAkB,EAAE,YAKzB,CAAC;AAEF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D,iBAAiB,kCAAyB,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC,EAAsB;IAE5F,YAAY,kCAAyB,MAAM,KAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EAE7F;IAEH,UAAU,kCAAyB,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,WAAW,CAAC,EAG5E;IAEJ,WAAW,kCACO,MAAM,YAAY,MAAM,YAAY,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAEnG;IAEF,aAAa,kCACK,MAAM,YAAY,MAAM,cAAc,OAAO,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAEtG;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,WAAW,MAAM,KAAG,OAAO,CAAC,YAAY,CAAC,EAE3F;IAEF,eAAe,kCACG,MAAM,YAAY,MAAM,OAAO,GAAG,KAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,EAEhF;IAEF,aAAa,+BACE,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC,EACvD;IAEF,SAAS,+BACM,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,EACtC;IAEF,iBAAiB,+BACF,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC;QAC1C,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,iBAAiB,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACxF,CAAC,EACF;IAEF,6DAA6D;IAC7D,OAAO,CAAC,sBAAsB,CAAK;IAEnC,gBAAgB;IAShB,+DAA+D;IAC/D,iBAAiB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;CAoB5D;AAED,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -39,46 +39,49 @@ export declare class BrowserConfirmationAdapter implements ConfirmationPort {
|
|
|
39
39
|
*/
|
|
40
40
|
showMigrationFoundPrompt(): Promise<'recover' | 'skip'>;
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
43
|
-
* Step 1: 동의 화면 (
|
|
44
|
-
* Step 2:
|
|
45
|
-
*
|
|
42
|
+
* PIN 설정 팝업: "Create PIN"
|
|
43
|
+
* Step 1: 동의 화면 (PIN Setup Notice) — 2개 체크박스 모두 선택 후 "Next"
|
|
44
|
+
* Step 2: PIN 입력 화면 — 6자리 숫자패드 입력
|
|
45
|
+
* Step 3: PIN 확인 화면 — 동일한 PIN 재입력 (불일치 시 Step 2로 돌아감)
|
|
46
|
+
* @returns 입력된 6자리 PIN 문자열 또는 null(취소)
|
|
46
47
|
*/
|
|
47
|
-
|
|
48
|
+
showPinSetupPrompt(options?: {
|
|
48
49
|
errorMessage?: string;
|
|
49
50
|
}): Promise<string | null>;
|
|
50
51
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* @returns 입력된
|
|
52
|
+
* PIN 입력 팝업: "Enter PIN" (기존 지갑 세션 복원 시)
|
|
53
|
+
* 6자리 숫자패드 입력.
|
|
54
|
+
* @returns 입력된 6자리 PIN 문자열 또는 null(취소)
|
|
54
55
|
*/
|
|
55
|
-
|
|
56
|
+
showPinInputPrompt(options?: {
|
|
56
57
|
errorMessage?: string;
|
|
57
58
|
verifyMode?: boolean;
|
|
58
|
-
|
|
59
|
+
lockExpiresAt?: number;
|
|
60
|
+
onSubmit?: (pin: string) => Promise<{
|
|
59
61
|
ok: boolean;
|
|
60
62
|
error?: string;
|
|
63
|
+
lockExpiresAt?: number;
|
|
61
64
|
}>;
|
|
62
65
|
}): Promise<string | null>;
|
|
63
66
|
/**
|
|
64
|
-
* PIN 입력
|
|
67
|
+
* 복구 PIN 입력 팝업 (마이그레이션 — CROSSx 4자리 PIN)
|
|
65
68
|
* @param options.errorMessage 이전 시도 실패/잠금 해제 안내 메시지
|
|
66
69
|
* @param options.attemptCount 현재 시도 횟수 (1~maxAttempts)
|
|
67
70
|
* @param options.maxAttempts 최대 시도 허용 횟수 (기본 5)
|
|
68
|
-
* @returns 4자리 PIN 문자열 또는 null(취소)
|
|
71
|
+
* @returns 4자리 복구 PIN 문자열 또는 null(취소)
|
|
69
72
|
*/
|
|
70
|
-
|
|
73
|
+
showRecoveryPinInputPrompt(options?: {
|
|
71
74
|
errorMessage?: string;
|
|
72
75
|
attemptCount?: number;
|
|
73
76
|
maxAttempts?: number;
|
|
74
77
|
}): Promise<string | null>;
|
|
75
78
|
/**
|
|
76
|
-
* PIN 잠금 화면을
|
|
79
|
+
* 복구 PIN 잠금 화면을 표시합니다 (마이그레이션용).
|
|
77
80
|
* 카운트다운이 만료되거나 Close 버튼 클릭 시 resolve됩니다.
|
|
78
81
|
* @param lockExpiresInSeconds 잠금 만료까지 남은 시간(초, TTL)
|
|
79
82
|
* @param message 잠금 안내 메시지
|
|
80
83
|
*/
|
|
81
|
-
|
|
84
|
+
showRecoveryPinLockedPrompt(lockExpiresInSeconds: number, message: string): Promise<void>;
|
|
82
85
|
/**
|
|
83
86
|
* 트랜잭션 전송 완료 팝업을 표시합니다.
|
|
84
87
|
* "Done" 버튼 클릭, 닫기 버튼 클릭, 배경 클릭, Escape 키로 닫힙니다.
|
|
@@ -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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AAk/GjD,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,KAAK,GAAE,iBAA2B,EAAE,SAAS,CAAC,EAAE,cAAc;IAM1E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI;IAMpE,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAIxC,QAAQ,IAAI,iBAAiB;IAI7B;;;;OAIG;IACH,kBAAkB,CAChB,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAClD,WAAW,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAC9D,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAyErD;;;;OAIG;IACH,iBAAiB,IAAI,OAAO,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;IA8BvD;;;OAGG;IACH,wBAAwB,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;IA0BvD;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsK/E;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9F,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA8C1B;;;;;;OAMG;IACH,0BAA0B,CAAC,OAAO,CAAC,EAAE;QACnC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiB1B;;;;;OAKG;IACH,2BAA2B,CAAC,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzF;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC3E;;;OAGG;IACH,uBAAuB,CACrB,OAAO,EAAE,yBAAyB,EAClC,cAAc,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IAqChB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CA2CpE"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { OAuthPort, OAuthConfig } from '../../core/ports';
|
|
2
2
|
|
|
3
3
|
export declare class BrowserOAuthAdapter implements OAuthPort {
|
|
4
|
-
private static
|
|
4
|
+
private static generateRandom16Hex;
|
|
5
|
+
private static parseJwtPayload;
|
|
6
|
+
private static sha256Hex;
|
|
7
|
+
/**
|
|
8
|
+
* ID Token의 JWT payload에서 nonce claim을 추출하여 검증합니다.
|
|
9
|
+
* - Apple: SHA256(originalNonce) === jwt.nonce
|
|
10
|
+
* - Google 및 기타: originalNonce === jwt.nonce
|
|
11
|
+
*/
|
|
12
|
+
private static verifyIdTokenNonce;
|
|
5
13
|
openAuth(config: OAuthConfig): Promise<string>;
|
|
6
14
|
}
|
|
7
15
|
//# sourceMappingURL=BrowserOAuthAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserOAuthAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/oauth/BrowserOAuthAdapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BrowserOAuthAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/oauth/BrowserOAuthAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/D,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAMlC,OAAO,CAAC,MAAM,CAAC,eAAe;mBAST,SAAS;IAQ9B;;;;OAIG;mBACkB,kBAAkB;IA8DvC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAiJ/C"}
|
|
@@ -3,7 +3,7 @@ import { StoragePort } from '../../core/ports';
|
|
|
3
3
|
import { AddressInfo, EvmTransactionRequest } from '../../core/types/chain';
|
|
4
4
|
import { PrepareAction, PrepareContext, PrepareResult } from '../../core/types/prepare';
|
|
5
5
|
import { MigrationLockDetails } from '../../core/types/errors';
|
|
6
|
-
import {
|
|
6
|
+
import { PinMemoryStore } from '../../core/services/PinMemoryStore';
|
|
7
7
|
|
|
8
8
|
export declare class MockWalletProviderAdapter implements WalletProviderPort {
|
|
9
9
|
private storage;
|
|
@@ -17,13 +17,13 @@ export declare class MockWalletProviderAdapter implements WalletProviderPort {
|
|
|
17
17
|
locked: Partial<MigrationLockDetails>;
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
* - undefined: 항상 성공 (
|
|
22
|
-
* - 'wrong':
|
|
20
|
+
* PIN 시나리오 제어 (목 전용)
|
|
21
|
+
* - undefined: 항상 성공 (PIN 무검증)
|
|
22
|
+
* - 'wrong': changePin 호출 시 PIN_WRONG 에러 throw
|
|
23
23
|
*/
|
|
24
|
-
|
|
25
|
-
private readonly
|
|
26
|
-
constructor(storage: StoragePort,
|
|
24
|
+
pinScenario?: 'wrong';
|
|
25
|
+
private readonly pinStore;
|
|
26
|
+
constructor(storage: StoragePort, pinStore?: PinMemoryStore);
|
|
27
27
|
/**
|
|
28
28
|
* GET /mnemonic/check 모킹
|
|
29
29
|
* - migrateScenario 설정 시: migration_required 반환
|
|
@@ -32,7 +32,7 @@ export declare class MockWalletProviderAdapter implements WalletProviderPort {
|
|
|
32
32
|
*/
|
|
33
33
|
checkWallet(): Promise<WalletCheckResult>;
|
|
34
34
|
getOrCreateWallet(userId: string): Promise<WalletData>;
|
|
35
|
-
/** GET /mnemonic/addresses 모킹 —
|
|
35
|
+
/** GET /mnemonic/addresses 모킹 — PIN 불필요, 캐시된 주소 반환 */
|
|
36
36
|
getAddresses(_userId: string): Promise<Array<{
|
|
37
37
|
address: string;
|
|
38
38
|
index: number;
|
|
@@ -47,14 +47,14 @@ export declare class MockWalletProviderAdapter implements WalletProviderPort {
|
|
|
47
47
|
}>;
|
|
48
48
|
/**
|
|
49
49
|
* POST /mnemonic/verify-password 모킹
|
|
50
|
-
* 저장된
|
|
50
|
+
* 저장된 PIN 해시와 비교하여 일치하면 true 반환
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
verifyPin(pin: string): Promise<boolean>;
|
|
53
53
|
/**
|
|
54
54
|
* POST /mnemonic/change-password 모킹
|
|
55
|
-
* body: { password: 현재
|
|
55
|
+
* body: { password: 현재 PIN(pinStore), newPassword: 새 PIN }
|
|
56
56
|
*/
|
|
57
|
-
|
|
57
|
+
changePin(_oldPin: string, newPin: string): Promise<void>;
|
|
58
58
|
migrateWallet(pin: string, sub: string): Promise<WalletData>;
|
|
59
59
|
/**
|
|
60
60
|
* POST /mnemonic/share-c 모킹
|
|
@@ -62,10 +62,10 @@ export declare class MockWalletProviderAdapter implements WalletProviderPort {
|
|
|
62
62
|
*/
|
|
63
63
|
getShareC(): Promise<string>;
|
|
64
64
|
/**
|
|
65
|
-
* POST /mnemonic/verify-pin 모킹
|
|
66
|
-
* PIN
|
|
65
|
+
* POST /mnemonic/verify-recovery-pin 모킹
|
|
66
|
+
* CROSSx 4자리 복구 PIN 검증
|
|
67
67
|
*/
|
|
68
|
-
|
|
68
|
+
verifyRecoveryPin(_pin: string, _sub: string): Promise<{
|
|
69
69
|
valid: boolean;
|
|
70
70
|
pinStatus?: {
|
|
71
71
|
maxAttempts: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockWalletProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/MockWalletProviderAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE5F,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"MockWalletProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/MockWalletProviderAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { TokenMemoryStore } from '../../core/services/TokenMemoryStore';
|
|
|
5
5
|
import { AddressInfo, EvmTransactionRequest } from '../../core/types/chain';
|
|
6
6
|
import { PrepareAction, PrepareContext, PrepareResult } from '../../core/types/prepare';
|
|
7
7
|
import { VerifyPinResp } from './types';
|
|
8
|
-
import {
|
|
8
|
+
import { PinMemoryStore } from '../../core/services/PinMemoryStore';
|
|
9
9
|
|
|
10
10
|
export interface RemoteWalletProviderConfig {
|
|
11
11
|
gatewayUrl: string;
|
|
@@ -17,11 +17,14 @@ export declare class RemoteWalletProviderAdapter implements WalletProviderPort {
|
|
|
17
17
|
private readonly storage;
|
|
18
18
|
private readonly transport;
|
|
19
19
|
private readonly tokenStore;
|
|
20
|
-
private readonly
|
|
20
|
+
private readonly pinStore;
|
|
21
|
+
/** Gateway -10002 발생 시 호출할 강제 로그아웃 콜백 */
|
|
22
|
+
private _onUnauthorized?;
|
|
21
23
|
/** checkWallet 결과 1회용 캐시 — getOrCreateWallet에서 소비 후 null로 초기화 */
|
|
22
24
|
private _walletStatusCache;
|
|
23
|
-
constructor(config: RemoteWalletProviderConfig, storage: StoragePort, transport: TransportPort, tokenStore: TokenMemoryStore,
|
|
24
|
-
|
|
25
|
+
constructor(config: RemoteWalletProviderConfig, storage: StoragePort, transport: TransportPort, tokenStore: TokenMemoryStore, pinStore?: PinMemoryStore);
|
|
26
|
+
setOnUnauthorized(callback: () => void): void;
|
|
27
|
+
private getPin;
|
|
25
28
|
private get baseUrl();
|
|
26
29
|
private getAuthToken;
|
|
27
30
|
private request;
|
|
@@ -66,27 +69,33 @@ export declare class RemoteWalletProviderAdapter implements WalletProviderPort {
|
|
|
66
69
|
*/
|
|
67
70
|
withdrawWallet(confirmation: string): Promise<void>;
|
|
68
71
|
/**
|
|
69
|
-
* POST /mnemonic/verify-password —
|
|
70
|
-
* Share-A를 KMS로 복호화해
|
|
72
|
+
* POST /mnemonic/verify-password — 지갑 PIN 검증
|
|
73
|
+
* Share-A를 KMS로 복호화해 PIN 유효성을 확인합니다 (캐시 없이 항상 Signer 호출).
|
|
71
74
|
*/
|
|
72
|
-
|
|
75
|
+
verifyPin(pin: string): Promise<boolean>;
|
|
73
76
|
/**
|
|
74
|
-
* POST /mnemonic/change-password —
|
|
75
|
-
* body: { password: 현재
|
|
77
|
+
* POST /mnemonic/change-password — PIN 변경
|
|
78
|
+
* body: { password: 현재 PIN, newPassword: 새 PIN }
|
|
76
79
|
*/
|
|
77
|
-
|
|
80
|
+
changePin(_oldPin: string, newPin: string): Promise<void>;
|
|
78
81
|
/**
|
|
79
82
|
* POST /mnemonic/share-c — 새로운 Share-C 발급
|
|
80
83
|
* 기존 Share-C를 무효화하고 새로운 Share-C를 반환합니다.
|
|
81
84
|
*/
|
|
82
85
|
getShareC(): Promise<string>;
|
|
83
86
|
/**
|
|
84
|
-
* POST /mnemonic/verify-pin — 레거시 CROSSx 백업 PIN 검증
|
|
87
|
+
* POST /mnemonic/verify-recovery-pin — 레거시 CROSSx 백업 PIN 검증
|
|
85
88
|
* 마이그레이션 전 PIN 유효성 및 잠금 상태 확인에 사용합니다.
|
|
86
89
|
*/
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
private
|
|
90
|
+
verifyRecoveryPin(pin: string, sub: string): Promise<VerifyPinResp>;
|
|
91
|
+
/** pinStore에서 PIN을 가져오거나 PIN_NOT_SET 에러를 throw */
|
|
92
|
+
private requirePin;
|
|
93
|
+
/**
|
|
94
|
+
* -10031 응답의 data 필드에서 lockExpiresAt(Unix ms)을 추출합니다.
|
|
95
|
+
* 서버는 lockStatus.lockExpiresAt을 초(Unix seconds) 또는 ms로 반환할 수 있습니다.
|
|
96
|
+
* 일반적으로 seconds 단위이므로 > 1e10 이면 ms로 간주합니다.
|
|
97
|
+
*/
|
|
98
|
+
private static extractLockDetails;
|
|
90
99
|
private static mapGatewayError;
|
|
91
100
|
private static getGatewayErrorMessage;
|
|
92
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteWalletProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/RemoteWalletProviderAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG7F,OAAO,KAAK,EA2BV,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"RemoteWalletProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/RemoteWalletProviderAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,WA+EzB,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,WA+EzB,CAAC"}
|
|
@@ -21,37 +21,36 @@ export interface SDKMessages {
|
|
|
21
21
|
migration_foundDescription: string;
|
|
22
22
|
migration_recoverButton: string;
|
|
23
23
|
migration_skipButton: string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
recoveryPinInput_title: string;
|
|
25
|
+
recoveryPinInput_placeholder: string;
|
|
26
|
+
recoveryPinInput_error: string;
|
|
27
27
|
walletSelector_title: string;
|
|
28
28
|
walletSelector_addButton: string;
|
|
29
29
|
walletSelector_selected: string;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
verifyPassword_passwordLabel: string;
|
|
30
|
+
pinNotice_headerSubtitle: string;
|
|
31
|
+
pinNotice_title: string;
|
|
32
|
+
pinNotice_description: string;
|
|
33
|
+
pinNotice_check1: string;
|
|
34
|
+
pinNotice_check2: string;
|
|
35
|
+
pinNotice_nextButton: string;
|
|
36
|
+
pinNotice_submitButton: string;
|
|
37
|
+
pinSetup_title: string;
|
|
38
|
+
pinSetup_headerSubtitle: string;
|
|
39
|
+
pinSetup_subtitle: string;
|
|
40
|
+
pinSetup_confirmTitle: string;
|
|
41
|
+
pinSetup_confirmSubtitle: string;
|
|
42
|
+
pinSetup_mismatchError: string;
|
|
43
|
+
pinValidation_tooShort: string;
|
|
44
|
+
pinValidation_numbersOnly: string;
|
|
45
|
+
pinValidation_repeatingDigit: string;
|
|
46
|
+
pinValidation_sequential: string;
|
|
47
|
+
pinValidation_alternatingPattern: string;
|
|
48
|
+
pinInput_title: string;
|
|
49
|
+
pinInput_subtitle: string;
|
|
50
|
+
pinInput_error: string;
|
|
51
|
+
verifyPin_title: string;
|
|
52
|
+
verifyPin_subtitle: string;
|
|
53
|
+
pinLocked_message: string;
|
|
54
|
+
pinLocked_availableFrom: string;
|
|
56
55
|
}
|
|
57
56
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -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;IAG5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0BAA0B,EAAE,MAAM,CAAC;IACnC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAG7B,
|
|
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;IAG5B,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;CACjC"}
|
|
@@ -100,24 +100,24 @@ export interface ConfirmationPort {
|
|
|
100
100
|
*/
|
|
101
101
|
showMigrationFoundPrompt(): Promise<'recover' | 'skip'>;
|
|
102
102
|
/**
|
|
103
|
-
* 마이그레이션 PIN 입력 UI를 표시합니다.
|
|
103
|
+
* 마이그레이션 복구 PIN 입력 UI를 표시합니다. (CROSSx 4자리 복구 PIN)
|
|
104
104
|
* @param options.errorMessage 이전 시도 실패/잠금 해제 시 표시할 메시지
|
|
105
105
|
* @param options.attemptCount 현재 시도 횟수 (1~maxAttempts). X/maxAttempts 형태로 표시
|
|
106
106
|
* @param options.maxAttempts 최대 시도 허용 횟수 (기본 5)
|
|
107
107
|
* @returns 입력된 PIN 문자열 또는 null(취소)
|
|
108
108
|
*/
|
|
109
|
-
|
|
109
|
+
showRecoveryPinInputPrompt(options?: {
|
|
110
110
|
errorMessage?: string;
|
|
111
111
|
attemptCount?: number;
|
|
112
112
|
maxAttempts?: number;
|
|
113
113
|
}): Promise<string | null>;
|
|
114
114
|
/**
|
|
115
|
-
* PIN 잠금 화면을 표시합니다. 카운트다운이 만료되면 자동으로 resolve됩니다.
|
|
115
|
+
* 마이그레이션 복구 PIN 잠금 화면을 표시합니다. 카운트다운이 만료되면 자동으로 resolve됩니다.
|
|
116
116
|
* Close 버튼 클릭 시에도 resolve됩니다 (SDK에서 별도 처리).
|
|
117
117
|
* @param lockExpiresInSeconds 잠금 만료까지 남은 시간(초, TTL)
|
|
118
118
|
* @param message 잠금 안내 메시지 (Lock1/Lock2 구분)
|
|
119
119
|
*/
|
|
120
|
-
|
|
120
|
+
showRecoveryPinLockedPrompt(lockExpiresInSeconds: number, message: string): Promise<void>;
|
|
121
121
|
/**
|
|
122
122
|
* 지갑 선택 UI를 표시합니다.
|
|
123
123
|
* "add a wallet" 클릭 시 onAddWallet 콜백이 호출되고 목록에 추가됩니다.
|
|
@@ -139,36 +139,37 @@ export interface ConfirmationPort {
|
|
|
139
139
|
index: number;
|
|
140
140
|
} | null>;
|
|
141
141
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
142
|
+
* PIN 최초 설정 UI를 표시합니다. (Create PIN)
|
|
143
|
+
* PIN Setup Notice 동의 화면 이후 6자리 숫자 키패드 입력을 포함합니다.
|
|
144
144
|
* @param options.errorMessage 이전 시도 실패 시 표시할 메시지
|
|
145
|
-
* @returns 입력된
|
|
145
|
+
* @returns 입력된 6자리 PIN 문자열 또는 null(취소)
|
|
146
146
|
*/
|
|
147
|
-
|
|
147
|
+
showPinSetupPrompt(options?: {
|
|
148
148
|
errorMessage?: string;
|
|
149
149
|
}): Promise<string | null>;
|
|
150
150
|
/**
|
|
151
|
-
*
|
|
152
|
-
* 이미
|
|
151
|
+
* PIN 입력 UI를 표시합니다. (Enter PIN)
|
|
152
|
+
* 이미 PIN이 설정된 경우 세션 복원 시 사용됩니다.
|
|
153
|
+
* 6자리 숫자 키패드 입력 방식입니다.
|
|
153
154
|
* @param options.errorMessage 이전 시도 실패 시 표시할 메시지
|
|
154
|
-
* @param options.
|
|
155
|
-
* @param options.
|
|
156
|
-
* @
|
|
157
|
-
* @returns 입력된 비밀번호 문자열 또는 null(취소)
|
|
155
|
+
* @param options.verifyMode true이면 "Verify Your PIN" 제목을 사용합니다 (세션 복원 후 검증 플로우)
|
|
156
|
+
* @param options.lockExpiresAt 잠금 만료 시각 (Unix ms). 제공 시 잠금 안내 메시지를 표시합니다.
|
|
157
|
+
* @returns 입력된 6자리 PIN 문자열 또는 null(취소)
|
|
158
158
|
*/
|
|
159
|
-
|
|
159
|
+
showPinInputPrompt(options?: {
|
|
160
160
|
errorMessage?: string;
|
|
161
|
-
/** true이면 "Verify Your Password" 제목 및 부제목을 사용합니다 (세션 복원 후 검증 플로우) */
|
|
162
161
|
verifyMode?: boolean;
|
|
162
|
+
lockExpiresAt?: number;
|
|
163
163
|
/**
|
|
164
164
|
* 제출 시 호출되는 비동기 검증 콜백.
|
|
165
165
|
* 제공 시 모달은 검증이 완료될 때까지 닫히지 않습니다.
|
|
166
166
|
* - `{ ok: true }` 반환 → 모달 닫힘
|
|
167
|
-
* - `{ ok: false, error }` 반환 → 에러 메시지를 인라인으로 표시하고 재입력 대기
|
|
167
|
+
* - `{ ok: false, error, lockExpiresAt }` 반환 → 에러 메시지를 인라인으로 표시하고 재입력 대기
|
|
168
168
|
*/
|
|
169
|
-
onSubmit?: (
|
|
169
|
+
onSubmit?: (pin: string) => Promise<{
|
|
170
170
|
ok: boolean;
|
|
171
171
|
error?: string;
|
|
172
|
+
lockExpiresAt?: number;
|
|
172
173
|
}>;
|
|
173
174
|
}): Promise<string | null>;
|
|
174
175
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/ConfirmationPort.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ConfirmationPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/ConfirmationPort.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,13 +67,13 @@ export interface WalletProviderPort {
|
|
|
67
67
|
*/
|
|
68
68
|
migrateWallet?(pin: string, sub: string): Promise<WalletData>;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
71
|
-
* Share-A를 KMS로 복호화해
|
|
72
|
-
* 세션 복원(refresh) 후
|
|
70
|
+
* PIN 검증 — POST /mnemonic/verify-password
|
|
71
|
+
* Share-A를 KMS로 복호화해 PIN 유효성을 확인합니다 (캐시 없이 항상 Signer 호출).
|
|
72
|
+
* 세션 복원(refresh) 후 PIN을 캐시하기 전 검증에 사용합니다.
|
|
73
73
|
*
|
|
74
|
-
* @returns
|
|
74
|
+
* @returns PIN이 올바르면 true, 아니면 false
|
|
75
75
|
*/
|
|
76
|
-
|
|
76
|
+
verifyPin?(pin: string): Promise<boolean>;
|
|
77
77
|
/**
|
|
78
78
|
* Share-C 발급 — POST /mnemonic/share-c
|
|
79
79
|
* 니모닉을 재분할하여 새로운 Share-C를 반환합니다. 기존 Share-C는 무효화됩니다.
|
|
@@ -85,7 +85,7 @@ export interface WalletProviderPort {
|
|
|
85
85
|
* 레거시 CROSSx 백업 PIN 검증 — POST /mnemonic/verify-recovery-pin
|
|
86
86
|
* 마이그레이션 전 PIN 유효성과 잠금 상태를 확인합니다.
|
|
87
87
|
*
|
|
88
|
-
* @param pin 4자리 PIN
|
|
88
|
+
* @param pin 4자리 CROSSx 복구 PIN
|
|
89
89
|
* @param sub 사용자 OAuth sub
|
|
90
90
|
*
|
|
91
91
|
* 응답 케이스:
|
|
@@ -94,7 +94,7 @@ export interface WalletProviderPort {
|
|
|
94
94
|
* - PIN → 잠금 (200): `{ valid: false, pinStatus: { lockExpiresAt, maxAttempts, remainingAttempts } }`
|
|
95
95
|
* - 이미 잠금 (-10027): CROSSxError(MIGRATION_PIN_LOCKED) throw — details에 { permanent, lockExpiresAt, ... }
|
|
96
96
|
*/
|
|
97
|
-
|
|
97
|
+
verifyRecoveryPin?(pin: string, sub: string): Promise<{
|
|
98
98
|
valid: boolean;
|
|
99
99
|
pinStatus?: {
|
|
100
100
|
maxAttempts: number;
|
|
@@ -103,6 +103,12 @@ export interface WalletProviderPort {
|
|
|
103
103
|
permanent?: boolean;
|
|
104
104
|
};
|
|
105
105
|
}>;
|
|
106
|
+
/**
|
|
107
|
+
* Gateway가 -10002(Unauthorized)를 반환했을 때 호출할 콜백을 등록합니다.
|
|
108
|
+
* SDK는 이 콜백에서 강제 로그아웃을 수행합니다.
|
|
109
|
+
* 어댑터가 이 기능을 지원하지 않아도 동작에는 영향이 없습니다.
|
|
110
|
+
*/
|
|
111
|
+
setOnUnauthorized?(callback: () => void): void;
|
|
106
112
|
}
|
|
107
113
|
/**
|
|
108
114
|
* 지갑 데이터
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/WalletProviderPort.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAErF,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,oBAAoB,GAAG,WAAW,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3C;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAEjF;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhE;;;;OAIG;IACH,OAAO,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEjF;;;;OAIG;IACH,WAAW,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;OAIG;IACH,aAAa,CAAC,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;OAIG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,qBAAqB,EACzB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;OAIG;IACH,eAAe,CAAC,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,qBAAqB,EACzB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE/B;;;;;;OAMG;IACH,aAAa,CAAC,CACZ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;;;;OAMG;IACH,
|
|
1
|
+
{"version":3,"file":"WalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/WalletProviderPort.ts"],"names":[],"mappings":"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"}
|