@circle-fin/w3s-pw-react-native-sdk 0.0.175

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 (42) hide show
  1. package/LICENSE.md +20 -0
  2. package/README.md +113 -0
  3. package/circlefin-programmablewallet-rn-sdk.podspec +40 -0
  4. package/lib/commonjs/NativeProgrammablewalletRnSdk.js +9 -0
  5. package/lib/commonjs/NativeProgrammablewalletRnSdk.js.map +1 -0
  6. package/lib/commonjs/ProgrammablewalletRnSdkModule.js +22 -0
  7. package/lib/commonjs/ProgrammablewalletRnSdkModule.js.map +1 -0
  8. package/lib/commonjs/WalletSdk.js +176 -0
  9. package/lib/commonjs/WalletSdk.js.map +1 -0
  10. package/lib/commonjs/index.js +74 -0
  11. package/lib/commonjs/index.js.map +1 -0
  12. package/lib/commonjs/tsconfig.build.json +109 -0
  13. package/lib/commonjs/types.js +258 -0
  14. package/lib/commonjs/types.js.map +1 -0
  15. package/lib/module/NativeProgrammablewalletRnSdk.js +3 -0
  16. package/lib/module/NativeProgrammablewalletRnSdk.js.map +1 -0
  17. package/lib/module/ProgrammablewalletRnSdkModule.js +16 -0
  18. package/lib/module/ProgrammablewalletRnSdkModule.js.map +1 -0
  19. package/lib/module/WalletSdk.js +169 -0
  20. package/lib/module/WalletSdk.js.map +1 -0
  21. package/lib/module/index.js +3 -0
  22. package/lib/module/index.js.map +1 -0
  23. package/lib/module/tsconfig.build.json +109 -0
  24. package/lib/module/types.js +249 -0
  25. package/lib/module/types.js.map +1 -0
  26. package/lib/typescript/src/NativeProgrammablewalletRnSdk.d.ts +26 -0
  27. package/lib/typescript/src/NativeProgrammablewalletRnSdk.d.ts.map +1 -0
  28. package/lib/typescript/src/ProgrammablewalletRnSdkModule.d.ts +3 -0
  29. package/lib/typescript/src/ProgrammablewalletRnSdkModule.d.ts.map +1 -0
  30. package/lib/typescript/src/WalletSdk.d.ts +3 -0
  31. package/lib/typescript/src/WalletSdk.d.ts.map +1 -0
  32. package/lib/typescript/src/index.d.ts +4 -0
  33. package/lib/typescript/src/index.d.ts.map +1 -0
  34. package/lib/typescript/src/types.d.ts +295 -0
  35. package/lib/typescript/src/types.d.ts.map +1 -0
  36. package/package.json +172 -0
  37. package/src/NativeProgrammablewalletRnSdk.ts +53 -0
  38. package/src/ProgrammablewalletRnSdkModule.ts +26 -0
  39. package/src/WalletSdk.ts +215 -0
  40. package/src/index.tsx +14 -0
  41. package/src/tsconfig.build.json +109 -0
  42. package/src/types.ts +367 -0
package/src/types.ts ADDED
@@ -0,0 +1,367 @@
1
+ import type { ImageSourcePropType } from 'react-native/Libraries/Image/Image'
2
+
3
+ export interface IWalletSdk {
4
+ sdkVersion: SdkVersion;
5
+ deviceId: string;
6
+ init: (configuration: Configuration) => Promise<void>;
7
+ setSecurityQuestions: (securityQuestions: SecurityQuestion[]) => void;
8
+ addListener: (listener: EventListener) => void;
9
+ removeAllListeners: () => void;
10
+ getDeviceId: () => string;
11
+ execute: (
12
+ userToken: string,
13
+ encryptionKey: string,
14
+ challengeIds: string[],
15
+ successCallback: SuccessCallback,
16
+ errorCallback: ErrorCallback,
17
+ ) => void;
18
+ executeWithUserSecret: (
19
+ userToken: string,
20
+ encryptionKey: string,
21
+ userSecret: string,
22
+ challengeIds: string[],
23
+ successCallback: SuccessCallback,
24
+ errorCallback: ErrorCallback,
25
+ ) => void;
26
+ setBiometricsPin: (
27
+ userToken: string,
28
+ encryptionKey: string,
29
+ successCallback: SuccessCallback,
30
+ errorCallback: ErrorCallback,
31
+ ) => void;
32
+ setDismissOnCallbackMap: (map: Map<ErrorCode, boolean>) => void;
33
+ moveTaskToFront: () => void;
34
+ moveRnTaskToFront: () => void;
35
+ setTextConfigsMap: (map: Map<TextsKey, TextConfig[]>) => void;
36
+ setIconTextConfigsMap: (
37
+ map: Map<IconTextsKey, Array<IconTextConfig>>,
38
+ ) => void;
39
+ setTextConfigMap: (map: Map<TextKey, TextConfig>) => void;
40
+ setImageMap: (map: Map<ImageKey, ImageSourcePropType>) => void;
41
+ setDateFormat: (format: DateFormat) => void;
42
+ setDebugging: (debugging: boolean) => void;
43
+ setCustomUserAgent: (userAgent: string) => void;
44
+ setErrorStringMap: (map: Map<ErrorCode, string>) => void;
45
+ }
46
+
47
+ export enum TextsKey {
48
+ newPinCodeHeadline = 'newPinCodeHeadline',
49
+ enterPinCodeHeadline = 'enterPinCodeHeadline',
50
+ securityIntroHeadline = 'securityIntroHeadline',
51
+ securityIntroLink = 'securityIntroLink',
52
+ securityQuestionHeaders = 'securityQuestionHeaders',
53
+ securitySummaryQuestionHeaders = 'securitySummaryQuestionHeaders',
54
+ recoverPinCodeHeadline = 'recoverPinCodeHeadline',
55
+ }
56
+
57
+ export enum IconTextsKey {
58
+ securityConfirmationItems = 'securityConfirmationItems',
59
+ }
60
+
61
+ export enum TextKey {
62
+ circlepw_continue = 'circlepw_continue',
63
+ circlepw_next = 'circlepw_next',
64
+ circlepw_skip = 'circlepw_skip',
65
+ circlepw_question_label = 'circlepw_question_label',
66
+ circlepw_answer_label = 'circlepw_answer_label',
67
+ circlepw_hint_label = 'circlepw_hint_label',
68
+ circlepw_hint_tag = 'circlepw_hint_tag',
69
+ circlepw_confirm = 'circlepw_confirm',
70
+ circlepw_pin_remain_attemps_template = 'circlepw_pin_remain_attemps_template',
71
+ circlepw_pin_lock_period_template = 'circlepw_pin_lock_period_template',
72
+ circlepw_answer_remain_attemps_template = 'circlepw_answer_remain_attemps_template',
73
+ circlepw_answer_lock_period_template = 'circlepw_answer_lock_period_template',
74
+ circlepw_pin_digit_config = 'circlepw_pin_digit_config',
75
+ circlepw_pincode_error_config = 'circlepw_pincode_error_config',
76
+ circlepw_enter_pincode_subhead = 'circlepw_enter_pincode_subhead',
77
+ circlepw_enter_pincode_forgot_pin = 'circlepw_enter_pincode_forgot_pin',
78
+ circlepw_enter_pincode_use_biometrics = 'circlepw_enter_pincode_use_biometrics',
79
+ circlepw_new_pincode_subhead = 'circlepw_new_pincode_subhead',
80
+ circlepw_confirm_pincode_headline = 'circlepw_confirm_pincode_headline',
81
+ circlepw_confirm_pincode_subhead = 'circlepw_confirm_pincode_subhead',
82
+ circlepw_security_intros_description = 'circlepw_security_intros_description',
83
+ circlepw_security_questions_title = 'circlepw_security_questions_title',
84
+ circlepw_security_questions_required_mark = 'circlepw_security_questions_required_mark',
85
+ circlepw_security_questions_question_placeholder = 'circlepw_security_questions_question_placeholder',
86
+ circlepw_security_questions_answer_header = 'circlepw_security_questions_answer_header',
87
+ circlepw_security_questions_answer_placeholder = 'circlepw_security_questions_answer_placeholder',
88
+ circlepw_security_questions_answer_hint_header = 'circlepw_security_questions_answer_hint_header',
89
+ circlepw_security_questions_answer_hint_placeholder = 'circlepw_security_questions_answer_hint_placeholder',
90
+ circlepw_security_questions_answer_input_config = 'circlepw_security_questions_answer_input_config',
91
+ circlepw_security_questions_answer_hint_input_config = 'circlepw_security_questions_answer_hint_input_config',
92
+ circlepw_security_questions_question_input_config = 'circlepw_security_questions_question_input_config',
93
+ circlepw_security_questions_error_config = 'circlepw_security_questions_error_config',
94
+ // SelectQuestion
95
+ circlepw_select_question_title = 'circlepw_select_question_title',
96
+ circlepw_select_question_item_config = 'circlepw_select_question_item_config',
97
+ // SecuritySummary
98
+ circlepw_security_summary_title = 'circlepw_security_summary_title',
99
+ circlepw_security_summary_question_value_config = 'circlepw_security_summary_question_value_config',
100
+ circlepw_security_summary_answer_value_config = 'circlepw_security_summary_answer_value_config',
101
+ circlepw_security_summary_hint_value_config = 'circlepw_security_summary_hint_value_config',
102
+ // SecurityConfirm
103
+ circlepw_security_confirm_title = 'circlepw_security_confirm_title',
104
+ circlepw_security_confirm_headline = 'circlepw_security_confirm_headline',
105
+ circlepw_security_confirm_input_headline = 'circlepw_security_confirm_input_headline',
106
+ circlepw_security_confirm_input_config = 'circlepw_security_confirm_input_config',
107
+ circlepw_security_confirm_input_placeholder = 'circlepw_security_confirm_input_placeholder',
108
+ circlepw_security_confirm_input_match = 'circlepw_security_confirm_input_match',
109
+ // RecoverPINCode
110
+ circlepw_recover_pincode_answer_input_header = 'circlepw_recover_pincode_answer_input_header',
111
+ circlepw_recover_pincode_answer_input_placeholder = 'circlepw_recover_pincode_answer_input_placeholder',
112
+ circlepw_recover_pincode_input_config = 'circlepw_recover_pincode_input_config',
113
+ circlepw_recover_pincode_answer_hint_config = 'circlepw_recover_pincode_answer_hint_config',
114
+ circlepw_recover_pincode_error_config = 'circlepw_recover_pincode_error_config',
115
+ circlepw_recover_pincode_question_config = 'circlepw_recover_pincode_question_config',
116
+ // BiometricsAllow
117
+ circlepw_pin_biometrics_allow_title = 'circlepw_pin_biometrics_allow_title',
118
+ circlepw_pin_biometrics_allow_subtitle = 'circlepw_pin_biometrics_allow_subtitle',
119
+ circlepw_pin_biometrics_disable = 'circlepw_pin_biometrics_disable',
120
+ circlepw_pin_biometrics_encrypt_title = 'circlepw_pin_biometrics_encrypt_title',
121
+ circlepw_pin_biometrics_encrypt_subtitle = 'circlepw_pin_biometrics_encrypt_subtitle',
122
+ circlepw_pin_biometrics_encrypt_desc = 'circlepw_pin_biometrics_encrypt_desc',
123
+ circlepw_pin_biometrics_encrypt_negative_text = 'circlepw_pin_biometrics_encrypt_negative_text',
124
+ circlepw_pin_biometrics_decrypt_title = 'circlepw_pin_biometrics_decrypt_title',
125
+ circlepw_pin_biometrics_decrypt_subtitle = 'circlepw_pin_biometrics_decrypt_subtitle',
126
+ circlepw_pin_biometrics_decrypt_desc = 'circlepw_pin_biometrics_decrypt_desc',
127
+ circlepw_pin_biometrics_decrypt_negative_text = 'circlepw_pin_biometrics_decrypt_negative_text',
128
+ circlepw_pin_biometrics_update_title = 'circlepw_pin_biometrics_update_title',
129
+ circlepw_pin_biometrics_update_subtitle = 'circlepw_pin_biometrics_update_subtitle',
130
+ circlepw_alert_pop_window_title = 'circlepw_alert_pop_window_title',
131
+ circlepw_alert_pop_window_description_config = 'circlepw_alert_pop_window_description_config',
132
+ circlepw_alert_pop_window_confirm = 'circlepw_alert_pop_window_confirm',
133
+ circlepw_swipe_confirm_headline = 'circlepw_swipe_confirm_headline',
134
+ circlepw_swipe_confirm_subhead = 'circlepw_swipe_confirm_subhead',
135
+ circlepw_swipe_to_confirm = 'circlepw_swipe_to_confirm',
136
+ circlepw_swipe_bt_confirming = 'circlepw_swipe_bt_confirming',
137
+ circlepw_swipe_bt_confirmed = 'circlepw_swipe_bt_confirmed',
138
+ circlepw_swipe_bt_try_again = 'circlepw_swipe_bt_try_again',
139
+ }
140
+
141
+ export enum ImageKey {
142
+ naviBack = 'back',
143
+ naviClose = 'close',
144
+ securityIntroMain = 'securityIntroMain',
145
+ selectCheckMark = 'selectCheckMark',
146
+ dropdownArrow = 'dropdownArrow',
147
+ errorInfo = 'errorInfo',
148
+ securityConfirmMain = 'securityConfirmMain',
149
+ biometricsAllowMain = 'biometricsAllowMain',
150
+ showPin = 'showPin',
151
+ hidePin = 'hidePin',
152
+ alertWindowIcon = 'alertWindowIcon',
153
+ swipeItemIcon = 'swipeItemIcon',
154
+ swipeBtConfirmed = 'swipeBtConfirmed',
155
+ }
156
+
157
+ export enum DateFormat {
158
+ YYYYMMDD_HYPHEN = 'yyyy-MM-dd',
159
+ DDMMYYYY_SLASH = 'dd/MM/yyyy',
160
+ MMDDYYYY_SLASH = 'MM/dd/yyyy',
161
+ }
162
+
163
+ export enum ErrorCode {
164
+ unknown = '-1',
165
+ success = '0',
166
+ apiParameterMissing = '1',
167
+ apiParameterInvalid = '2',
168
+ forbidden = '3',
169
+ unauthorized = '4',
170
+ retry = '9',
171
+ customerSuspended = '10',
172
+ pending = '11',
173
+ invalidSession = '12',
174
+ invalidPartnerId = '13',
175
+ invalidMessage = '14',
176
+ invalidPhone = '15',
177
+ // Common 156001 - 156999,
178
+ walletIdNotFound = '156001',
179
+ tokenIdNotFound = '156002',
180
+ transactionIdNotFound = '156003',
181
+ walletSetIdNotFound = '156004',
182
+ // Transaction related - 155201 - 155499,
183
+ notEnoughFounds = '155201',
184
+ notEnoughBalance = '155202',
185
+ exceedWithdrawLimit = '155203',
186
+ minimumFundsRequired = '155204',
187
+ invalidTransactionFee = '155205',
188
+ rejectedOnAmlScreening = '155206',
189
+ tagRequired = '155207',
190
+ gasLimitTooLow = '155208',
191
+ transactionDataNotEncodedProperly = '155209',
192
+ fullNodeReturnedError = '155210',
193
+ walletSetupRequired = '155211',
194
+ lowerThenMinimumAccountBalance = '155212',
195
+ rejectedByBlockchain = '155213',
196
+ droppedAsPartOfReorg = '155214',
197
+ operationNotSupport = '155215',
198
+ amountBelowMinimum = '155216',
199
+ wrongNftTokenIdNumber = '155217',
200
+ invalidDestinationAddress = '155218',
201
+ tokenWalletChainMismatch = '155219',
202
+ wrongAmountsNumber = '155220',
203
+ // User related - 155101 - 155199,
204
+ userAlreadyExisted = '155101',
205
+ userNotFound = '155102',
206
+ userTokenNotFound = '155103',
207
+ userTokenExpired = '155104',
208
+ invalidUserToken = '155105',
209
+ userWasInitialized = '155106',
210
+ userHasSetPin = '155107',
211
+ userHasSetSecurityQuestion = '155108',
212
+ userWasDisabled = '155109',
213
+ userDoesNotSetPinYet = '155110',
214
+ userDoesNotSetSecurityQuestionYet = '155111',
215
+ incorrectUserPin = '155112',
216
+ incorrectDeviceId = '155113',
217
+ incorrectAppId = '155114',
218
+ incorrectSecurityAnswers = '155115',
219
+ invalidChallengeId = '155116',
220
+ invalidApproveContent = '155117',
221
+ invalidEncryptionKey = '155118',
222
+ userPinLocked = '155119',
223
+ securityAnswersLocked = '155120',
224
+ // Wallet- 155501 - 155599,
225
+ walletIsFrozen = '155501',
226
+ maxWalletLimitReached = '155502',
227
+ walletSetIdMutuallyExclusive = '155503',
228
+ metadataUnmatched = '155504',
229
+ // WalletSet - 155601 - 155699,
230
+ // SDK UI - 155701 - 155799,
231
+ userCanceled = '155701',
232
+ launchUiFailed = '155702',
233
+ pinCodeNotMatched = '155703',
234
+ insecurePinCode = '155704',
235
+ hintsMatchAnswers = '155705',
236
+ networkError = '155706',
237
+ biometricsSettingNotEnabled = '155708',
238
+ deviceNotSupportBiometrics = '155709',
239
+ biometricsKeyPermanentlyInvalidated = '155710',
240
+ biometricsUserSkip = '155711',
241
+ biometricsUserDisableForPin = '155712',
242
+ biometricsUserLockout = '155713',
243
+ biometricsUserLockoutPermanent = '155714',
244
+ biometricsUserNotAllowPermission = '155715',
245
+ biometricsInternalError = '155716',
246
+ userSecretMissing = '155717',
247
+ invalidUserSecret = '155718',
248
+ }
249
+
250
+ export class SecurityQuestion {
251
+ title: string
252
+ inputType?: InputType
253
+
254
+ constructor(title: string, inputType?: InputType) {
255
+ this.title = title
256
+ this.inputType = inputType
257
+ }
258
+ }
259
+
260
+ export interface Configuration {
261
+ endpoint: string;
262
+ appId: string;
263
+ settingsManagement?: SettingsManagement;
264
+ }
265
+
266
+ export type EventListener = (event: ExecuteEvent) => void
267
+ export type SuccessCallback = (result: SuccessResult) => void
268
+ export type ErrorCallback = (error: Error) => void
269
+ export interface SdkVersion {
270
+ native: string;
271
+ rn?: string;
272
+ }
273
+
274
+ export interface SuccessResult {
275
+ result: ExecuteResult;
276
+ warning?: ExecuteWarning;
277
+ }
278
+
279
+ export interface Error {
280
+ code?: string;
281
+ message: string;
282
+ }
283
+
284
+ export interface ExecuteResult {
285
+ resultType: ExecuteResultType;
286
+ status: ExecuteResultStatus;
287
+ data?: ExecuteResultData;
288
+ }
289
+
290
+ export interface ExecuteWarning {
291
+ warningType: ErrorCode;
292
+ warningString: string;
293
+ }
294
+
295
+ export interface ExecuteResultData {
296
+ signature?: string;
297
+ signedTransaction?: string;
298
+ txHash?: string;
299
+ }
300
+
301
+ export interface SettingsManagement {
302
+ enableBiometricsPin: boolean;
303
+ disableConfirmationUI: boolean;
304
+ }
305
+
306
+ export class IconTextConfig {
307
+ image: ImageSourcePropType
308
+ textConfig: TextConfig
309
+
310
+ constructor(image: ImageSourcePropType, textConfig: TextConfig) {
311
+ this.image = image
312
+ this.textConfig = textConfig
313
+ }
314
+ }
315
+
316
+ export class TextConfig {
317
+ text?: string
318
+ gradientColors?: string[]
319
+ textColor?: string
320
+ font?: string
321
+ constructor(
322
+ text: string,
323
+ gradientColorsOrTextColor: string[] | string,
324
+ font?: string,
325
+ ) {
326
+ this.text = text
327
+ if(Array.isArray(gradientColorsOrTextColor)){
328
+ this.gradientColors = gradientColorsOrTextColor
329
+ } else {
330
+ this.textColor = gradientColorsOrTextColor
331
+ }
332
+ this.font = font
333
+ }
334
+ }
335
+
336
+ export enum ExecuteResultStatus {
337
+ UNKNOWN = 'UNKNOWN',
338
+ PENDING = 'PENDING',
339
+ IN_PROGRESS = 'IN_PROGRESS',
340
+ COMPLETE = 'COMPLETE',
341
+ FAILED = 'FAILED',
342
+ EXPIRED = 'EXPIRED',
343
+ }
344
+
345
+ export enum ExecuteEvent {
346
+ forgotPin = 'forgotPin',
347
+ }
348
+
349
+ export enum ExecuteResultType {
350
+ UNKNOWN = 'UNKNOWN',
351
+ SET_PIN = 'SET_PIN',
352
+ RESTORE_PIN = 'RESTORE_PIN',
353
+ SET_SECURITY_QUESTIONS = 'SET_SECURITY_QUESTIONS',
354
+ CREATE_WALLET = 'CREATE_WALLET',
355
+ CREATE_TRANSACTION = 'CREATE_TRANSACTION',
356
+ ACCELERATE_TRANSACTION = 'ACCELERATE_TRANSACTION',
357
+ CANCEL_TRANSACTION = 'CANCEL_TRANSACTION',
358
+ CONTRACT_EXECUTION = 'CONTRACT_EXECUTION',
359
+ SIGN_MESSAGE = 'SIGN_MESSAGE',
360
+ SIGN_TYPEDDATA = 'SIGN_TYPEDDATA',
361
+ SET_BIOMETRICS_PIN = 'SET_BIOMETRICS_PIN',
362
+ }
363
+
364
+ export enum InputType {
365
+ text = 'text',
366
+ datePicker = 'datePicker',
367
+ }