@nexus-cross/crossx-sdk-core 0.0.0-beta.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.
Files changed (94) hide show
  1. package/README.md +302 -0
  2. package/dist/__tests__/mocks/MockCryptoPort.d.ts +15 -0
  3. package/dist/__tests__/mocks/MockCryptoPort.d.ts.map +1 -0
  4. package/dist/__tests__/mocks/MockOAuthPort.d.ts +11 -0
  5. package/dist/__tests__/mocks/MockOAuthPort.d.ts.map +1 -0
  6. package/dist/__tests__/mocks/MockStoragePort.d.ts +18 -0
  7. package/dist/__tests__/mocks/MockStoragePort.d.ts.map +1 -0
  8. package/dist/__tests__/mocks/MockTransportPort.d.ts +14 -0
  9. package/dist/__tests__/mocks/MockTransportPort.d.ts.map +1 -0
  10. package/dist/__tests__/mocks/MockWalletProviderPort.d.ts +28 -0
  11. package/dist/__tests__/mocks/MockWalletProviderPort.d.ts.map +1 -0
  12. package/dist/__tests__/sdk/CROSSxSDK.test.d.ts +2 -0
  13. package/dist/__tests__/sdk/CROSSxSDK.test.d.ts.map +1 -0
  14. package/dist/__tests__/sdk/EthereumProvider.test.d.ts +2 -0
  15. package/dist/__tests__/sdk/EthereumProvider.test.d.ts.map +1 -0
  16. package/dist/__tests__/usecases/SignInUseCase.test.d.ts +2 -0
  17. package/dist/__tests__/usecases/SignInUseCase.test.d.ts.map +1 -0
  18. package/dist/__tests__/usecases/SignOutUseCase.test.d.ts +2 -0
  19. package/dist/__tests__/usecases/SignOutUseCase.test.d.ts.map +1 -0
  20. package/dist/__tests__/usecases/WithdrawUseCase.test.d.ts +2 -0
  21. package/dist/__tests__/usecases/WithdrawUseCase.test.d.ts.map +1 -0
  22. package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts +36 -0
  23. package/dist/adapters/confirmation/BrowserConfirmationAdapter.d.ts.map +1 -0
  24. package/dist/adapters/crypto/JoseCryptoAdapter.d.ts +16 -0
  25. package/dist/adapters/crypto/JoseCryptoAdapter.d.ts.map +1 -0
  26. package/dist/adapters/index.d.ts +10 -0
  27. package/dist/adapters/index.d.ts.map +1 -0
  28. package/dist/adapters/oauth/BrowserOAuthAdapter.d.ts +7 -0
  29. package/dist/adapters/oauth/BrowserOAuthAdapter.d.ts.map +1 -0
  30. package/dist/adapters/storage/LocalStorageAdapter.d.ts +10 -0
  31. package/dist/adapters/storage/LocalStorageAdapter.d.ts.map +1 -0
  32. package/dist/adapters/transport/FetchTransportAdapter.d.ts +6 -0
  33. package/dist/adapters/transport/FetchTransportAdapter.d.ts.map +1 -0
  34. package/dist/adapters/wallet/MockWalletProviderAdapter.d.ts +28 -0
  35. package/dist/adapters/wallet/MockWalletProviderAdapter.d.ts.map +1 -0
  36. package/dist/adapters/wallet/RemoteWalletProviderAdapter.d.ts +47 -0
  37. package/dist/adapters/wallet/RemoteWalletProviderAdapter.d.ts.map +1 -0
  38. package/dist/adapters/wallet/types.d.ts +112 -0
  39. package/dist/adapters/wallet/types.d.ts.map +1 -0
  40. package/dist/core/index.d.ts +9 -0
  41. package/dist/core/index.d.ts.map +1 -0
  42. package/dist/core/ports/ConfirmationPort.d.ts +74 -0
  43. package/dist/core/ports/ConfirmationPort.d.ts.map +1 -0
  44. package/dist/core/ports/CryptoPort.d.ts +43 -0
  45. package/dist/core/ports/CryptoPort.d.ts.map +1 -0
  46. package/dist/core/ports/LoggerPort.d.ts +23 -0
  47. package/dist/core/ports/LoggerPort.d.ts.map +1 -0
  48. package/dist/core/ports/OAuthPort.d.ts +18 -0
  49. package/dist/core/ports/OAuthPort.d.ts.map +1 -0
  50. package/dist/core/ports/StoragePort.d.ts +25 -0
  51. package/dist/core/ports/StoragePort.d.ts.map +1 -0
  52. package/dist/core/ports/TransportPort.d.ts +24 -0
  53. package/dist/core/ports/TransportPort.d.ts.map +1 -0
  54. package/dist/core/ports/WalletProviderPort.d.ts +106 -0
  55. package/dist/core/ports/WalletProviderPort.d.ts.map +1 -0
  56. package/dist/core/ports/index.d.ts +12 -0
  57. package/dist/core/ports/index.d.ts.map +1 -0
  58. package/dist/core/services/TokenMemoryStore.d.ts +17 -0
  59. package/dist/core/services/TokenMemoryStore.d.ts.map +1 -0
  60. package/dist/core/types/caip.d.ts +119 -0
  61. package/dist/core/types/caip.d.ts.map +1 -0
  62. package/dist/core/types/chain.d.ts +90 -0
  63. package/dist/core/types/chain.d.ts.map +1 -0
  64. package/dist/core/types/errors.d.ts +56 -0
  65. package/dist/core/types/errors.d.ts.map +1 -0
  66. package/dist/core/types/index.d.ts +309 -0
  67. package/dist/core/types/index.d.ts.map +1 -0
  68. package/dist/core/types/prepare.d.ts +21 -0
  69. package/dist/core/types/prepare.d.ts.map +1 -0
  70. package/dist/core/usecases/MigrateWalletUseCase.d.ts +10 -0
  71. package/dist/core/usecases/MigrateWalletUseCase.d.ts.map +1 -0
  72. package/dist/core/usecases/SignInUseCase.d.ts +38 -0
  73. package/dist/core/usecases/SignInUseCase.d.ts.map +1 -0
  74. package/dist/core/usecases/SignOutUseCase.d.ts +10 -0
  75. package/dist/core/usecases/SignOutUseCase.d.ts.map +1 -0
  76. package/dist/core/usecases/WithdrawUseCase.d.ts +11 -0
  77. package/dist/core/usecases/WithdrawUseCase.d.ts.map +1 -0
  78. package/dist/core/usecases/index.d.ts +9 -0
  79. package/dist/core/usecases/index.d.ts.map +1 -0
  80. package/dist/core/utils/apiUrl.d.ts +16 -0
  81. package/dist/core/utils/apiUrl.d.ts.map +1 -0
  82. package/dist/core/utils/logger.d.ts +19 -0
  83. package/dist/core/utils/logger.d.ts.map +1 -0
  84. package/dist/index.cjs +939 -0
  85. package/dist/index.d.ts +14 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +4773 -0
  88. package/dist/sdk/CROSSxSDK.d.ts +278 -0
  89. package/dist/sdk/CROSSxSDK.d.ts.map +1 -0
  90. package/dist/sdk/EthereumProvider.d.ts +32 -0
  91. package/dist/sdk/EthereumProvider.d.ts.map +1 -0
  92. package/dist/sdk/factory.d.ts +8 -0
  93. package/dist/sdk/factory.d.ts.map +1 -0
  94. package/package.json +52 -0
@@ -0,0 +1,47 @@
1
+ import { WalletProviderPort, WalletData, SignResponse } from '../../core/ports/WalletProviderPort';
2
+ import { StoragePort } from '../../core/ports/StoragePort';
3
+ import { TransportPort } from '../../core/ports/TransportPort';
4
+ import { TokenMemoryStore } from '../../core/services/TokenMemoryStore';
5
+ import { AddressInfo, EvmTransactionRequest, TransactionReceipt } from '../../core/types/chain';
6
+ import { PrepareAction, PrepareContext, PrepareResult } from '../../core/types/prepare';
7
+
8
+ export interface RemoteWalletProviderConfig {
9
+ gatewayUrl: string;
10
+ projectId: string;
11
+ appId?: string;
12
+ appType?: 'ios' | 'android';
13
+ }
14
+ export declare class RemoteWalletProviderAdapter implements WalletProviderPort {
15
+ private readonly baseUrl;
16
+ private readonly projectId;
17
+ private readonly appId?;
18
+ private readonly appType?;
19
+ private readonly storage;
20
+ private readonly transport;
21
+ private readonly tokenStore;
22
+ constructor(config: RemoteWalletProviderConfig, storage: StoragePort, transport: TransportPort, tokenStore: TokenMemoryStore);
23
+ private getAuthToken;
24
+ private request;
25
+ getOrCreateWallet(userId: string): Promise<WalletData>;
26
+ getAddress(userId: string, index: number): Promise<AddressInfo>;
27
+ private isAddressNotFoundError;
28
+ private rpcCall;
29
+ getBalance(address: string, chainId: string): Promise<string>;
30
+ getTransactionCount(address: string, chainId: string): Promise<number>;
31
+ getTransactionReceipt(txHash: string, chainId: string): Promise<TransactionReceipt | null>;
32
+ rpcRequest(method: string, params: any[], chainId: string): Promise<any>;
33
+ prepare(action: PrepareAction, context: PrepareContext): Promise<PrepareResult>;
34
+ signMessage(_userId: string, chainId: string, message: string, _index?: number, uuid?: string, from?: string): Promise<SignResponse>;
35
+ signTypedData(_userId: string, chainId: string, typedData: unknown, _index?: number, uuid?: string, from?: string): Promise<SignResponse>;
36
+ private buildUnsignedTx;
37
+ signTransaction(userId: string, chainId: string, tx: EvmTransactionRequest, index?: number, uuid?: string): Promise<SignResponse>;
38
+ sendTransaction(userId: string, chainId: string, tx: EvmTransactionRequest, uuid?: string): Promise<{
39
+ txHash: string;
40
+ }>;
41
+ withdraw(confirmation: string): Promise<void>;
42
+ recoverWallet(userId: string, shareC: string): Promise<WalletData>;
43
+ migrateWallet(pin: string, sub: string): Promise<WalletData>;
44
+ private static mapGatewayError;
45
+ private static getGatewayErrorMessage;
46
+ }
47
+ //# sourceMappingURL=RemoteWalletProviderAdapter.d.ts.map
@@ -0,0 +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,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,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACrG,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA0B7F,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC7B;AAED,qBAAa,2BAA4B,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;gBAG5C,MAAM,EAAE,0BAA0B,EAClC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,gBAAgB;IAW9B,OAAO,CAAC,YAAY;YAWN,OAAO;IA4Ef,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqDtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBrE,OAAO,CAAC,sBAAsB;YAWhB,OAAO;IAqBf,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtE,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAK1F,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIxE,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA0B/E,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;IAQlB,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC;IAQxB,OAAO,CAAC,eAAe;IAgBjB,eAAe,CACnB,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;IAWlB,eAAe,CACnB,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;IAaxB,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBlE,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC;IAkBtB,OAAO,CAAC,MAAM,CAAC,eAAe;IAiD9B,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAoBtC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Embedded Wallet Gateway API Types
3
+ * Based on Swagger documentation
4
+ */
5
+ export interface UnsignedTx {
6
+ chainId?: string;
7
+ from?: string;
8
+ to?: string;
9
+ value?: string;
10
+ data?: string;
11
+ nonce?: string;
12
+ gasLimit?: string;
13
+ gasPrice?: string;
14
+ maxFeePerGas?: string;
15
+ maxPriorityFeePerGas?: string;
16
+ }
17
+ export interface SignTxReq {
18
+ unsignedTx: UnsignedTx;
19
+ uuid?: string;
20
+ }
21
+ export interface SendTxReq {
22
+ unsignedTx: UnsignedTx;
23
+ uuid?: string;
24
+ }
25
+ export interface SignMessageReq {
26
+ message: string;
27
+ from?: string;
28
+ uuid?: string;
29
+ }
30
+ export interface GatewaySignMessageResp {
31
+ signature: string;
32
+ }
33
+ export interface SignTypedDataReq {
34
+ typedData: unknown;
35
+ from?: string;
36
+ uuid?: string;
37
+ }
38
+ export interface GatewaySignTypedDataResp {
39
+ signature: string;
40
+ }
41
+ export interface CreateWalletReq {
42
+ ignoreBackup: boolean;
43
+ }
44
+ export interface RecoverWalletReq {
45
+ shareC: string;
46
+ }
47
+ export interface MigrateWalletReq {
48
+ pin: string;
49
+ sub: string;
50
+ }
51
+ export interface MigrateWalletResp {
52
+ address: string;
53
+ shareC: string;
54
+ }
55
+ export interface WithdrawWalletReq {
56
+ confirmation: string;
57
+ }
58
+ export interface WithdrawWalletResp {
59
+ success: boolean;
60
+ }
61
+ export interface JsonRpcRequest {
62
+ jsonrpc: string;
63
+ method: string;
64
+ params?: any[];
65
+ id?: any;
66
+ }
67
+ export interface CreateWalletResp {
68
+ address: string;
69
+ shareC: string;
70
+ }
71
+ export interface GetAddressResp {
72
+ address: string;
73
+ index: number;
74
+ }
75
+ export interface AddressInfo {
76
+ address: string;
77
+ index: number;
78
+ }
79
+ export interface GetAddressesResp {
80
+ addresses: AddressInfo[];
81
+ }
82
+ export interface GatewaySignTxResp {
83
+ signedTx: string;
84
+ txHash: string;
85
+ }
86
+ export interface GatewaySendTxResp {
87
+ txHash: string;
88
+ }
89
+ export interface RecoverWalletResp {
90
+ address: string;
91
+ newShareC: string;
92
+ }
93
+ export interface JsonRpcError {
94
+ code: number;
95
+ message: string;
96
+ }
97
+ export interface JsonRpcResponse {
98
+ jsonrpc: string;
99
+ id?: any;
100
+ result?: any;
101
+ error?: JsonRpcError;
102
+ }
103
+ export type PrepareActionApi = 'sign' | 'sign-typed-data' | 'sign-message' | 'send';
104
+ export interface PrepareReq {
105
+ action: PrepareActionApi;
106
+ params: Record<string, unknown>;
107
+ }
108
+ export interface PrepareResp {
109
+ uuid: string;
110
+ expiresAt: string;
111
+ }
112
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/wallet/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Core Layer
3
+ * 순수 비즈니스 로직 (환경 독립적)
4
+ */
5
+ export * from './types';
6
+ export * from './types/errors';
7
+ export * from './ports';
8
+ export * from './usecases';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * ConfirmationPort
3
+ * 서명/전송 전 사용자 승인을 요청하는 포트
4
+ */
5
+ /** 모든 컨펌 상세에 공통으로 포함되는 UI 메타 필드 */
6
+ interface ConfirmationUIMeta {
7
+ /** 컨펌 모달에 표시될 요청 앱 이름 (예: 'My DApp') */
8
+ dappName?: string;
9
+ /** 컨펌 모달에 표시될 계정 이름 (예: 'Account 1') */
10
+ accountName?: string;
11
+ }
12
+ export interface TransactionConfirmationDetails extends ConfirmationUIMeta {
13
+ type: 'sign' | 'send';
14
+ chainId: string;
15
+ from?: string;
16
+ to?: string;
17
+ /** hex 형식 (예: "0x0") */
18
+ value?: string;
19
+ /** hex 형식의 calldata */
20
+ data?: string;
21
+ /** hex 형식 */
22
+ gasLimit?: string;
23
+ /** hex 형식 — Legacy 트랜잭션 가스 가격 (wei) */
24
+ gasPrice?: string;
25
+ /** hex 형식 — EIP-1559 최대 가스 가격 (wei) */
26
+ maxFeePerGas?: string;
27
+ /** hex 형식 — EIP-1559 최대 우선순위 가스 가격 (wei) */
28
+ maxPriorityFeePerGas?: string;
29
+ /** 네이티브 토큰 심볼 (예: 'ETH', 'POL') — wallet/rpc eth_chainId 기반 취득 */
30
+ nativeSymbol?: string;
31
+ /** 네이티브 토큰 소수점 자리수 (예: 18) — wallet/rpc eth_chainId 기반 취득 */
32
+ nativeDecimals?: number;
33
+ }
34
+ export interface MessageConfirmationDetails extends ConfirmationUIMeta {
35
+ type: 'sign-message';
36
+ chainId: string;
37
+ from?: string;
38
+ /** 서명 대상 메시지 (raw 문자열 또는 hex) */
39
+ message: string;
40
+ }
41
+ export interface TypedDataConfirmationDetails extends ConfirmationUIMeta {
42
+ type: 'sign-typed-data';
43
+ chainId: string;
44
+ from?: string;
45
+ /** EIP-712 typed data (파싱된 객체 또는 JSON 문자열) */
46
+ typedData: unknown;
47
+ }
48
+ export type ConfirmationDetails = TransactionConfirmationDetails | MessageConfirmationDetails | TypedDataConfirmationDetails;
49
+ export interface TransactionCompleteDetails {
50
+ /** CAIP-2 체인 ID (예: 'eip155:612055') */
51
+ chainId: string;
52
+ /** 트랜잭션 해시 */
53
+ txHash: string;
54
+ /** 전송 금액 표시 문자열 (예: '0.5 ETH') — 없으면 미표시 */
55
+ amount?: string;
56
+ /** 받는 주소 */
57
+ to?: string;
58
+ /** 네이티브 토큰 심볼 (예: 'ETH') */
59
+ nativeSymbol?: string;
60
+ }
61
+ export interface ConfirmationPort {
62
+ /**
63
+ * 사용자에게 서명/전송 승인을 요청합니다.
64
+ * @returns 사용자가 확인하면 true, 거부하면 false
65
+ */
66
+ requestConfirmation(details: ConfirmationDetails): Promise<boolean>;
67
+ /**
68
+ * 트랜잭션 전송 완료 팝업을 표시합니다.
69
+ * 사용자가 닫기 버튼을 누르거나 외부를 클릭하면 resolve됩니다.
70
+ */
71
+ showTransactionComplete(details: TransactionCompleteDetails): Promise<void>;
72
+ }
73
+ export {};
74
+ //# sourceMappingURL=ConfirmationPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmationPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/ConfirmationPort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mCAAmC;AACnC,UAAU,kBAAkB;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA+B,SAAQ,kBAAkB;IACxE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAC3B,8BAA8B,GAC9B,0BAA0B,GAC1B,4BAA4B,CAAC;AAEjC,MAAM,WAAW,0BAA0B;IACzC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpE;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E"}
@@ -0,0 +1,43 @@
1
+ import { JWTPayload } from '../types';
2
+
3
+ /**
4
+ * JWT 검증 옵션
5
+ */
6
+ export interface JWTVerifyOptions {
7
+ }
8
+ /**
9
+ * JWT 검증 결과
10
+ */
11
+ export interface JWTVerifyResult {
12
+ payload: JWTPayload;
13
+ valid: boolean;
14
+ /** JWT 서명이 JWKS 등으로 실제 검증되었는지 여부 (false = 디코딩만 수행) */
15
+ signatureVerified: boolean;
16
+ }
17
+ /**
18
+ * Crypto Port
19
+ */
20
+ export interface CryptoPort {
21
+ /**
22
+ * JWT 검증
23
+ * @param token JWT 토큰
24
+ * @param options 검증 옵션 (현재 사용하지 않음)
25
+ * @returns 검증 결과
26
+ */
27
+ verifyJWT(token: string, options?: JWTVerifyOptions): Promise<JWTVerifyResult>;
28
+ /**
29
+ * JWT 디코딩 (검증 없이)
30
+ * @param token JWT 토큰
31
+ * @returns 페이로드
32
+ */
33
+ decodeJWT(token: string): JWTPayload;
34
+ /**
35
+ * EIP-191 personal_sign 서명에서 서명자 주소를 복원 (ecrecover)
36
+ *
37
+ * @param message 서명된 원본 메시지 (UTF-8 문자열)
38
+ * @param signature 65-byte ECDSA 서명 (hex, 0x 프리픽스 허용)
39
+ * @returns 체크섬 없는 소문자 Ethereum 주소 (0x...)
40
+ */
41
+ recoverPersonalSignSigner?(message: string, signature: string): string;
42
+ }
43
+ //# sourceMappingURL=CryptoPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CryptoPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/CryptoPort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,gBAAgB;CAGhC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE/E;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAErC;;;;;;OAMG;IACH,yBAAyB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CACxE"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Logger Port
3
+ * 커스텀 로깅 핸들러 추상화 인터페이스
4
+ *
5
+ * SDK 내부 로그를 앱의 로깅 시스템으로 라우팅하려면
6
+ * 이 인터페이스를 구현한 객체를 SDKConfig.logger에 전달하세요.
7
+ *
8
+ * @example
9
+ * // SDKConfig.logger에 주입
10
+ * const sdk = createCROSSxSDK({
11
+ * logger: {
12
+ * log: (...args) => myAppLogger.debug(...args),
13
+ * warn: (...args) => myAppLogger.warn(...args),
14
+ * error: (...args) => myAppLogger.error(...args),
15
+ * },
16
+ * });
17
+ */
18
+ export interface LoggerPort {
19
+ log(...args: unknown[]): void;
20
+ warn(...args: unknown[]): void;
21
+ error(...args: unknown[]): void;
22
+ }
23
+ //# sourceMappingURL=LoggerPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggerPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/LoggerPort.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACjC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * OAuth Port
3
+ * OAuth 인증 프로세스 추상화 인터페이스
4
+ */
5
+ export interface OAuthPort {
6
+ /**
7
+ * OAuth 로그인 창 열기
8
+ * postMessage로 Firebase 토큰을 수신하면 resolve합니다.
9
+ */
10
+ openAuth(config: OAuthConfig): Promise<string>;
11
+ }
12
+ export interface OAuthConfig {
13
+ authUrl: string;
14
+ expectedOrigin: string;
15
+ width?: number;
16
+ height?: number;
17
+ }
18
+ //# sourceMappingURL=OAuthPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/OAuthPort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Storage Port
3
+ * 저장소 추상화 인터페이스
4
+ *
5
+ * 구현체는 localStorage, IndexedDB, AsyncStorage 등이 될 수 있음
6
+ */
7
+ export interface StoragePort {
8
+ /**
9
+ * 데이터 저장
10
+ */
11
+ set<T>(key: string, value: T): Promise<void>;
12
+ /**
13
+ * 데이터 로드
14
+ */
15
+ get<T>(key: string): Promise<T | null>;
16
+ /**
17
+ * 데이터 삭제
18
+ */
19
+ remove(key: string): Promise<void>;
20
+ /**
21
+ * 모든 데이터 삭제
22
+ */
23
+ clear(): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=StoragePort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoragePort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/StoragePort.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEvC;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Transport Port
3
+ * HTTP 통신 추상화 인터페이스
4
+ */
5
+ export interface TransportRequest {
6
+ url: string;
7
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE';
8
+ headers?: Record<string, string>;
9
+ body?: any;
10
+ /** 요청 타임아웃 (ms). 기본값은 어댑터 구현에 따라 다름. */
11
+ timeoutMs?: number;
12
+ }
13
+ export interface TransportResponse<T = any> {
14
+ status: number;
15
+ data: T;
16
+ headers: Record<string, string>;
17
+ }
18
+ export interface TransportPort {
19
+ /**
20
+ * HTTP 요청 실행
21
+ */
22
+ request<T = any>(request: TransportRequest): Promise<TransportResponse<T>>;
23
+ }
24
+ //# sourceMappingURL=TransportPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransportPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/TransportPort.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,GAAG;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5E"}
@@ -0,0 +1,106 @@
1
+ import { AddressInfo, EvmTransactionRequest, TransactionReceipt } from '../types/chain';
2
+ import { PrepareAction, PrepareContext, PrepareResult } from '../types/prepare';
3
+
4
+ export interface WalletProviderPort {
5
+ /**
6
+ * 지갑 생성 또는 로드
7
+ */
8
+ getOrCreateWallet(userId: string): Promise<WalletData>;
9
+ /**
10
+ * 특정 인덱스의 주소 조회
11
+ */
12
+ getAddress(userId: string, index: number): Promise<AddressInfo>;
13
+ /**
14
+ * 서명/전송 전 사전 확인 단계 (Prepare)
15
+ * 트랜잭션 파라미터를 서버에 제출하여 UUID를 발급받습니다.
16
+ * 이후 sign/send 호출 시 해당 UUID를 함께 전달해야 합니다.
17
+ */
18
+ prepare?(action: PrepareAction, context: PrepareContext): Promise<PrepareResult>;
19
+ /**
20
+ * 메시지 서명 (EIP-191)
21
+ * @param chainId CAIP-2 체인 ID (예: 'eip155:612055')
22
+ * @param uuid prepare 단계에서 발급받은 UUID
23
+ */
24
+ signMessage(userId: string, chainId: string, message: string, index?: number, uuid?: string, from?: string): Promise<SignResponse>;
25
+ /**
26
+ * EIP-712 Typed Data 서명 — /mnemonic/sign-typed-data
27
+ * @param chainId CAIP-2 체인 ID (예: 'eip155:612055')
28
+ * @param uuid prepare 단계에서 발급받은 UUID
29
+ */
30
+ signTypedData?(userId: string, chainId: string, typedData: unknown, index?: number, uuid?: string, from?: string): Promise<SignResponse>;
31
+ /**
32
+ * 트랜잭션 서명 (전송 없음) — /mnemonic/sign
33
+ * @param chainId CAIP-2 체인 ID (예: 'eip155:612055')
34
+ * @param uuid prepare 단계에서 발급받은 UUID
35
+ */
36
+ signTransaction(userId: string, chainId: string, tx: EvmTransactionRequest, index?: number, uuid?: string): Promise<SignResponse>;
37
+ /**
38
+ * 트랜잭션 서명 및 전송 — /mnemonic/send
39
+ * @param chainId CAIP-2 체인 ID (예: 'eip155:612055')
40
+ * @param uuid prepare 단계에서 발급받은 UUID
41
+ */
42
+ sendTransaction?(userId: string, chainId: string, tx: EvmTransactionRequest, uuid?: string): Promise<{
43
+ txHash: string;
44
+ }>;
45
+ /**
46
+ * 잔액 조회 — /wallet/rpc (eth_getBalance)
47
+ * @returns hex wei 문자열 (예: '0x38d7ea4c68000')
48
+ */
49
+ getBalance?(address: string, chainId: string): Promise<string>;
50
+ /**
51
+ * 현재 nonce 조회 — /wallet/rpc (eth_getTransactionCount)
52
+ * @returns pending 상태 기준 nonce (숫자)
53
+ */
54
+ getTransactionCount?(address: string, chainId: string): Promise<number>;
55
+ /**
56
+ * 트랜잭션 Receipt 조회 — /wallet/rpc (eth_getTransactionReceipt)
57
+ * @returns Receipt 또는 null (아직 채굴 안 됨)
58
+ */
59
+ getTransactionReceipt?(txHash: string, chainId: string): Promise<TransactionReceipt | null>;
60
+ /**
61
+ * 범용 JSON-RPC 요청 — /wallet/rpc 프록시
62
+ * eth_call, eth_getBalance 등 읽기 전용 메서드에 사용
63
+ */
64
+ rpcRequest?(method: string, params: any[], chainId: string): Promise<any>;
65
+ /**
66
+ * Share-C로 지갑 복구 (선택적)
67
+ */
68
+ recoverWallet?(userId: string, shareC: string): Promise<WalletData>;
69
+ /**
70
+ * CROSSx 지갑 → Embedded Wallet 마이그레이션
71
+ * 클라우드 백업에서 복구하여 새 Embedded Wallet로 전환
72
+ *
73
+ * @param pin 4자리 PIN (클라우드 백업 복호화용)
74
+ * @param sub 사용자 식별자 (OAuth sub)
75
+ */
76
+ migrateWallet?(pin: string, sub: string): Promise<WalletData>;
77
+ /**
78
+ * 계정 탈퇴 — /mnemonic/withdraw
79
+ * 게이트웨이의 Redis/DB 캐시 삭제 후 cross-auth withdraw API 호출
80
+ */
81
+ withdraw?(confirmation: string): Promise<void>;
82
+ }
83
+ /**
84
+ * 지갑 데이터
85
+ */
86
+ export interface WalletData {
87
+ id: string;
88
+ address: string;
89
+ derivationPath: string;
90
+ createdAt: number;
91
+ newShareC?: string;
92
+ }
93
+ /**
94
+ * 서명 응답
95
+ */
96
+ export interface SignResponse {
97
+ /** CAIP-2 체인 ID */
98
+ chainId: string;
99
+ /** 서명값 (메시지 서명: 서명 hex, 트랜잭션 서명: signedTx hex) */
100
+ signature: string;
101
+ format: 'hex' | 'base64' | 'der';
102
+ /** 트랜잭션 서명 시 서버가 반환하는 txHash (선택) */
103
+ txHash?: string;
104
+ publicKey?: string;
105
+ }
106
+ //# sourceMappingURL=WalletProviderPort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletProviderPort.d.ts","sourceRoot":"","sources":["../../../src/core/ports/WalletProviderPort.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Ports (Interfaces)
3
+ * Core의 모든 외부 의존성 인터페이스
4
+ */
5
+ export * from './StoragePort';
6
+ export * from './TransportPort';
7
+ export * from './CryptoPort';
8
+ export * from './WalletProviderPort';
9
+ export * from './OAuthPort';
10
+ export * from './ConfirmationPort';
11
+ export * from './LoggerPort';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/ports/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * TokenMemoryStore
3
+ *
4
+ * access_token을 메모리에만 보관하는 인메모리 저장소.
5
+ * localStorage에 기록하지 않으므로 XSS로 탈취될 수 없다.
6
+ *
7
+ * 페이지 새로고침 시 토큰은 소멸하며, refresh_token(localStorage)을
8
+ * 통해 silentRefresh로 재발급받는다.
9
+ */
10
+ export declare class TokenMemoryStore {
11
+ private _accessToken;
12
+ set(token: string): void;
13
+ get(): string | null;
14
+ clear(): void;
15
+ has(): boolean;
16
+ }
17
+ //# sourceMappingURL=TokenMemoryStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenMemoryStore.d.ts","sourceRoot":"","sources":["../../../src/core/services/TokenMemoryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAE3C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxB,GAAG,IAAI,MAAM,GAAG,IAAI;IAIpB,KAAK,IAAI,IAAI;IAIb,GAAG,IAAI,OAAO;CAGf"}