squarefi-bff-api-module 1.32.1 → 1.32.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 (125) hide show
  1. package/dist/api/auth.d.ts +29 -0
  2. package/dist/api/auth.js +59 -0
  3. package/dist/api/bank-data.d.ts +4 -0
  4. package/dist/api/bank-data.js +6 -0
  5. package/dist/api/counterparties.d.ts +14 -0
  6. package/dist/api/counterparties.js +16 -0
  7. package/dist/api/developer.d.ts +12 -0
  8. package/dist/api/developer.js +12 -0
  9. package/dist/api/exchange.d.ts +14 -0
  10. package/dist/api/exchange.js +20 -0
  11. package/dist/api/frontend.d.ts +11 -0
  12. package/dist/api/frontend.js +11 -0
  13. package/dist/api/index.d.ts +38 -0
  14. package/dist/api/index.js +36 -0
  15. package/dist/api/issuing.d.ts +64 -0
  16. package/dist/api/issuing.js +140 -0
  17. package/dist/api/kyc.d.ts +21 -0
  18. package/dist/api/kyc.js +21 -0
  19. package/dist/api/list.d.ts +16 -0
  20. package/dist/api/list.js +16 -0
  21. package/dist/api/orders.d.ts +49 -0
  22. package/dist/api/orders.js +84 -0
  23. package/dist/api/persona.d.ts +7 -0
  24. package/dist/api/persona.js +7 -0
  25. package/dist/api/storage.d.ts +8 -0
  26. package/dist/api/storage.js +16 -0
  27. package/dist/api/tenants.d.ts +6 -0
  28. package/dist/api/tenants.js +6 -0
  29. package/dist/api/totp.d.ts +17 -0
  30. package/dist/api/totp.js +45 -0
  31. package/{src/api/types/autogen/apiV2.types.ts → dist/api/types/autogen/apiV2.types.d.ts} +0 -1
  32. package/dist/api/types/autogen/apiV2.types.js +5 -0
  33. package/dist/api/types/types.d.ts +2258 -0
  34. package/dist/api/types/types.js +1 -0
  35. package/dist/api/user.d.ts +18 -0
  36. package/dist/api/user.js +18 -0
  37. package/dist/api/virtual-accounts.d.ts +9 -0
  38. package/dist/api/virtual-accounts.js +9 -0
  39. package/dist/api/wallets.d.ts +24 -0
  40. package/dist/api/wallets.js +30 -0
  41. package/dist/constants.d.ts +303 -0
  42. package/dist/constants.js +332 -0
  43. package/dist/hooks/index.js +3 -0
  44. package/dist/hooks/useCalc.d.ts +25 -0
  45. package/dist/hooks/useCalc.js +115 -0
  46. package/dist/hooks/useFileUpload.d.ts +49 -0
  47. package/dist/hooks/useFileUpload.js +100 -0
  48. package/dist/hooks/useSupabaseSubscription/config.d.ts +2 -0
  49. package/dist/hooks/useSupabaseSubscription/config.js +5 -0
  50. package/dist/hooks/useSupabaseSubscription/index.js +2 -0
  51. package/dist/hooks/useSupabaseSubscription/specialized.d.ts +5 -0
  52. package/{src/hooks/useSupabaseSubscription/specialized.ts → dist/hooks/useSupabaseSubscription/specialized.js} +2 -5
  53. package/dist/hooks/useSupabaseSubscription/types.d.ts +16 -0
  54. package/dist/hooks/useSupabaseSubscription/types.js +1 -0
  55. package/dist/hooks/useSupabaseSubscription/useSupabaseSubscription.d.ts +5 -0
  56. package/dist/hooks/useSupabaseSubscription/useSupabaseSubscription.js +37 -0
  57. package/dist/index.d.ts +7 -0
  58. package/dist/utils/apiClientFactory.d.ts +31 -0
  59. package/dist/utils/apiClientFactory.js +138 -0
  60. package/dist/utils/converters.d.ts +1 -0
  61. package/dist/utils/converters.js +1 -0
  62. package/dist/utils/encrypt.d.ts +10 -0
  63. package/dist/utils/encrypt.js +77 -0
  64. package/dist/utils/fileStorage.d.ts +120 -0
  65. package/dist/utils/fileStorage.js +292 -0
  66. package/dist/utils/storage.d.ts +3 -0
  67. package/dist/utils/storage.js +24 -0
  68. package/dist/utils/supabase.d.ts +1 -0
  69. package/dist/utils/supabase.js +12 -0
  70. package/dist/utils/tokensFactory.d.ts +12 -0
  71. package/dist/utils/tokensFactory.js +42 -0
  72. package/package.json +4 -1
  73. package/.env.example +0 -1
  74. package/.husky/pre-commit +0 -2
  75. package/.prettierignore +0 -6
  76. package/.prettierrc +0 -7
  77. package/CHANGELOG.md +0 -1415
  78. package/FIXED_RLS_ERROR.md +0 -146
  79. package/QUICK_TEST.md +0 -127
  80. package/STORAGE_MODULE_SUMMARY.md +0 -228
  81. package/TEST_INSTRUCTIONS.md +0 -122
  82. package/docs/AUTH_TOKEN_USAGE.md +0 -290
  83. package/docs/BACKEND_SERVICE_URL.md +0 -334
  84. package/docs/FRONTEND_STORAGE_GUIDE.md +0 -529
  85. package/docs/STORAGE_MODULE.md +0 -490
  86. package/docs/STORAGE_QUICK_START.md +0 -76
  87. package/scripts/generate-openapi-types.ts +0 -41
  88. package/scripts/supabase-storage-setup.sql +0 -223
  89. package/src/api/auth.ts +0 -78
  90. package/src/api/bank-data.ts +0 -11
  91. package/src/api/counterparties.ts +0 -73
  92. package/src/api/developer.ts +0 -20
  93. package/src/api/exchange.ts +0 -44
  94. package/src/api/frontend.ts +0 -20
  95. package/src/api/index.ts +0 -57
  96. package/src/api/issuing.ts +0 -214
  97. package/src/api/kyc.ts +0 -41
  98. package/src/api/list.ts +0 -26
  99. package/src/api/orders.ts +0 -255
  100. package/src/api/persona.ts +0 -16
  101. package/src/api/storage.ts +0 -24
  102. package/src/api/tenants.ts +0 -8
  103. package/src/api/totp.ts +0 -51
  104. package/src/api/types/types.ts +0 -2820
  105. package/src/api/user.ts +0 -27
  106. package/src/api/virtual-accounts.ts +0 -15
  107. package/src/api/wallets.ts +0 -65
  108. package/src/constants.ts +0 -343
  109. package/src/hooks/useCalc.ts +0 -181
  110. package/src/hooks/useFileUpload.ts +0 -129
  111. package/src/hooks/useSupabaseSubscription/config.ts +0 -7
  112. package/src/hooks/useSupabaseSubscription/types.ts +0 -18
  113. package/src/hooks/useSupabaseSubscription/useSupabaseSubscription.ts +0 -53
  114. package/src/utils/apiClientFactory.ts +0 -194
  115. package/src/utils/converters.ts +0 -1
  116. package/src/utils/encrypt.ts +0 -96
  117. package/src/utils/fileStorage.ts +0 -353
  118. package/src/utils/storage.ts +0 -29
  119. package/src/utils/supabase.ts +0 -16
  120. package/src/utils/tokensFactory.ts +0 -59
  121. package/tsconfig.json +0 -15
  122. package/types.d.ts +0 -11
  123. /package/{src/hooks/index.ts → dist/hooks/index.d.ts} +0 -0
  124. /package/{src/hooks/useSupabaseSubscription/index.ts → dist/hooks/useSupabaseSubscription/index.d.ts} +0 -0
  125. /package/{src/index.ts → dist/index.js} +0 -0
package/src/api/user.ts DELETED
@@ -1,27 +0,0 @@
1
- import { API } from './types/types';
2
-
3
- import { apiClientV2 } from '../utils/apiClientFactory';
4
-
5
- export const user = {
6
- get: (): Promise<API.User.Get.Response> => apiClientV2.getRequest<API.User.Get.Response>('/user'),
7
- userData: {
8
- get: (): Promise<API.User.UserData.Get.Response> =>
9
- apiClientV2.getRequest<API.User.UserData.Get.Response>('/user/user-data'),
10
- update: (data: API.User.UserData.Update.Request): Promise<API.User.UserData.Update.Response> =>
11
- apiClientV2.patchRequest<API.User.UserData.Update.Response>('/user/user-data', { data }),
12
- },
13
- update: {
14
- phone: {
15
- request: (data: API.User.UpdateUser.Phone.RequestOTP.Request): Promise<void> =>
16
- apiClientV2.patchRequest('/user/phone', { data }),
17
- confirm: (data: API.User.UpdateUser.Phone.Confirm.Request): Promise<void> =>
18
- apiClientV2.postRequest('/user/phone', { data }),
19
- },
20
- email: {
21
- request: (data: API.User.UpdateUser.Email.RequestOTP.Request): Promise<void> =>
22
- apiClientV2.patchRequest('/user/email', { data }),
23
- confirm: (data: API.User.UpdateUser.Email.Confirm.Request): Promise<void> =>
24
- apiClientV2.postRequest('/user/email', { data }),
25
- },
26
- },
27
- };
@@ -1,15 +0,0 @@
1
- import { apiClientV1 } from '../utils/apiClientFactory';
2
- import { API } from './types/types';
3
-
4
- export const virtualAccounts = {
5
- create: (data: API.VirtualAccounts.Create.Request) =>
6
- apiClientV1.postRequest<API.VirtualAccounts.Create.Response>('/virtual_account', { data }),
7
- getAll: ({ wallet_uuid, ...params }: API.VirtualAccounts.GetAll.Request) =>
8
- apiClientV1.getRequest<API.VirtualAccounts.GetAll.Response>(`/virtual_account/list/${wallet_uuid}`, { params }),
9
- getByUuid: ({ uuid }: API.VirtualAccounts.GetByUuid.Request) =>
10
- apiClientV1.getRequest<API.VirtualAccounts.GetByUuid.Response>(`/virtual_account/${uuid}`),
11
- programs: {
12
- list: (params: API.VirtualAccounts.Programs.List.Request) =>
13
- apiClientV1.getRequest<API.VirtualAccounts.Programs.List.Response>('/virtual_account/programs/list', { params }),
14
- },
15
- };
@@ -1,65 +0,0 @@
1
- import { API } from './types/types';
2
-
3
- import { apiClientV2 } from '../utils/apiClientFactory';
4
-
5
- import { defaultPaginationParams, WalletTypeValues } from '../constants';
6
-
7
- export const wallets = {
8
- create: (type: WalletTypeValues): Promise<void> => apiClientV2.postRequest('/wallets', { data: { type } }),
9
- getAll: (params: API.Wallets.WalletsList.Request): Promise<API.Wallets.WalletsList.Response> =>
10
- apiClientV2.getRequest<API.Wallets.WalletsList.Response>('/wallets', { params }),
11
- getByUuid: (uuid: string): Promise<API.Wallets.Wallet> =>
12
- apiClientV2.getRequest<API.Wallets.Wallet>(`/wallets/${uuid}`),
13
- addresses: {
14
- create: (data: API.Wallets.WalletChain.Create.Request): Promise<API.Wallets.WalletChain.Create.Response> => {
15
- const { wallet_uuid, chain, label } = data;
16
-
17
- return apiClientV2.postRequest<API.Wallets.WalletChain.Create.Response>(
18
- `/wallets/${wallet_uuid}/addresses/${chain}`,
19
- { data: { label } },
20
- );
21
- },
22
- get: {
23
- byWalletUuid: {
24
- byChainId: (wallet_uuid: string, chain_id: number): Promise<API.Wallets.WalletChain.WalletChain> =>
25
- apiClientV2.getRequest<API.Wallets.WalletChain.WalletChain>(`/wallets/${wallet_uuid}/addresses/${chain_id}`),
26
- },
27
- },
28
- },
29
- transactions: {
30
- byWalletUuid: {
31
- getAll: async (
32
- data: API.Wallets.WalletTransactions.TransactionList.Request,
33
- ): Promise<API.Wallets.WalletTransactions.TransactionList.Response> => {
34
- const {
35
- wallet_uuid,
36
- limit = defaultPaginationParams.limit,
37
- offset = defaultPaginationParams.offset,
38
- ...params
39
- } = data;
40
-
41
- return apiClientV2.getRequest<API.Wallets.WalletTransactions.TransactionList.Response>(
42
- `/wallets/${wallet_uuid}/transactions`,
43
- { params: { limit, offset, ...params } },
44
- );
45
- },
46
- getByUuid: ({
47
- wallet_uuid,
48
- uuid,
49
- }: API.Wallets.WalletTransactions.GetByUuid.Request): Promise<API.Wallets.WalletTransactions.DetailedTransaction> =>
50
- apiClientV2.getRequest<API.Wallets.WalletTransactions.DetailedTransaction>(
51
- `/wallets/${wallet_uuid}/transactions/${uuid}`,
52
- ),
53
- },
54
- csv: {
55
- getByWalletUuid: ({
56
- wallet_uuid,
57
- ...params
58
- }: API.Wallets.WalletTransactions.TransactionList.ExportCsv.Request): Promise<API.Wallets.WalletTransactions.TransactionList.ExportCsv.Response> =>
59
- apiClientV2.getRequest<API.Wallets.WalletTransactions.TransactionList.ExportCsv.Response>(
60
- `/wallets/${wallet_uuid}/transactions/export/csv`,
61
- { params },
62
- ),
63
- },
64
- },
65
- };
package/src/constants.ts DELETED
@@ -1,343 +0,0 @@
1
- export type ValueWithLabel = {
2
- value: string;
3
- label: string;
4
- };
5
-
6
- export type WalletType = {
7
- [key: string]: ValueWithLabel;
8
- };
9
-
10
- export const falsyValues = ['false', '0', '', 'FALSE', false, null, undefined, NaN, 0];
11
-
12
- export enum AppEnviroment {
13
- WEB = 'web',
14
- TELEGRAM = 'telegram',
15
- }
16
-
17
- export enum CardFormFactor {
18
- VIRTUAL = 'VIRTUAL',
19
- PHYSICAL = 'PHYSICAL',
20
- }
21
-
22
- export enum CardType {
23
- CREDIT = 'CREDIT',
24
- DEBIT = 'DEBIT',
25
- }
26
-
27
- export enum CardTransactionType {
28
- AUTHORIZATION = 'AUTHORIZATION',
29
- CLEARING = 'CLEARING',
30
- REFUND = 'REFUND',
31
- REVERSAL = 'REVERSAL',
32
- ORIGINAL_CREDIT = 'ORIGINAL_CREDIT',
33
- FEE = 'FEE',
34
- DEPOSIT = 'DEPOSIT',
35
- WITHDRAWAL = 'WITHDRAWAL',
36
- PAYMENT = 'PAYMENT',
37
- PURCHASE = 'PURCHASE',
38
- }
39
-
40
- export enum WalletTransactionType {
41
- DEPOSIT = 'deposit',
42
- WITHDRAWAL = 'withdrawal',
43
- }
44
-
45
- export enum WalletTransactionMethod {
46
- P2P = 'p2p',
47
- CRYPTO = 'crypto',
48
- BANK_TRANSFER = 'bank_transfer',
49
- EXCHANGE = 'exchange',
50
- SBP = 'sbp',
51
- }
52
-
53
- export enum WalletTransactionStatus {
54
- COMPLETE = 'complete',
55
- PENDING = 'pending',
56
- CANCELED = 'canceled',
57
- FAILED = 'failed',
58
- PROCESSING = 'processing',
59
- NEW = 'new',
60
- }
61
-
62
- export enum OrderPaymentMethod {
63
- ACH = 'ACH',
64
- SEPA = 'SEPA',
65
- SWIFT = 'SWIFT',
66
- DOMESTIC_WIRE = 'DOMESTIC_WIRE',
67
- CRYPTO_EXTERNAL = 'CRYPTO_EXTERNAL',
68
- CRYPTO_INTERNAL = 'CRYPTO_INTERNAL',
69
- CHAPS = 'CHAPS',
70
- FPS = 'FPS',
71
- }
72
-
73
- export enum OrderType {
74
- // when extend do not forget to add new order type to the enum WalletTransactionRecordType
75
- DEPOSIT_ISSUING_SA_CRYPTO_EXT = 'DEPOSIT_ISSUING_SA_CRYPTO_EXT',
76
- DEPOSIT_ISSUING_SA_SEPA_EXT = 'DEPOSIT_ISSUING_SA_SEPA_EXT',
77
- DEPOSIT_CRYPTO = 'DEPOSIT_CRYPTO',
78
- DEPOSIT_FIAT_SEPA = 'DEPOSIT_FIAT_SEPA',
79
- DEPOSIT_FIAT_SWIFT = 'DEPOSIT_FIAT_SWIFT',
80
- EXCHANGE_CRYPTO_INTERNAL = 'EXCHANGE_CRYPTO_INTERNAL',
81
- EXCHANGE_OMNI = 'EXCHANGE_OMNI',
82
- TRANSFER_CARD_PREPAID = 'TRANSFER_CARD_PREPAID',
83
- CARD_ISSUING_FEE = 'CARD_ISSUING_FEE',
84
- TRANSFER_CARD_SUBACCOUNT = 'TRANSFER_CARD_SUBACCOUNT',
85
- TRANSFER_CARD_WHOLESALE = 'TRANSFER_CARD_WHOLESALE',
86
- TRANSFER_INTERNAL = 'TRANSFER_INTERNAL',
87
- WITHDRAWAL_CRYPTO = 'WITHDRAWAL_CRYPTO',
88
- WITHDRAWAL_FIAT_SEPA = 'WITHDRAWAL_FIAT_SEPA',
89
- HIFI_WIRE_ONRAMP = 'HIFI_WIRE_ONRAMP',
90
- HIFI_WIRE_OFFRAMP = 'HIFI_WIRE_OFFRAMP',
91
- HIFI_WIRE_DEPOSIT = 'HIFI_WIRE_DEPOSIT',
92
- HIFI_WIRE_WITHDRAWAL = 'HIFI_WIRE_WITHDRAWAL',
93
- HIFI_ACH_ONRAMP = 'HIFI_ACH_ONRAMP',
94
- HIFI_ACH_OFFRAMP = 'HIFI_ACH_OFFRAMP',
95
- HIFI_ACH_DEPOSIT = 'HIFI_ACH_DEPOSIT',
96
- HIFI_ACH_WITHDRAWAL = 'HIFI_ACH_WITHDRAWAL',
97
- HIFI_SEPA_ONRAMP = 'HIFI_SEPA_ONRAMP',
98
- HIFI_SEPA_OFFRAMP = 'HIFI_SEPA_OFFRAMP',
99
- HIFI_SEPA_DEPOSIT = 'HIFI_SEPA_DEPOSIT',
100
- HIFI_SEPA_WITHDRAWAL = 'HIFI_SEPA_WITHDRAWAL',
101
- HIFI_CRYPTO_TRANSFER = 'HIFI_CRYPTO_TRANSFER',
102
- HIFI_CRYPTO_WITHDRAWAL = 'HIFI_CRYPTO_WITHDRAWAL',
103
- HIFI_CRYPTO_DEPOSIT = 'HIFI_CRYPTO_DEPOSIT',
104
- OMNIBUS_CRYPTO_TRANSFER = 'OMNIBUS_CRYPTO_TRANSFER',
105
- RN_CARDS_OFFRAMP = 'RN_CARDS_OFFRAMP',
106
- TBD_SWIFT_WITHDRAWAL = 'TBD_SWIFT_WITHDRAWAL', // not implemented yet
107
- SEGREGATED_CRYPTO_TRANSFER = 'SEGREGATED_CRYPTO_TRANSFER',
108
- L2F_ACH_ONRAMP = 'L2F_ACH_ONRAMP',
109
- L2F_ACH_OFFRAMP = 'L2F_ACH_OFFRAMP',
110
- L2F_ACH_DEPOSIT = 'L2F_ACH_DEPOSIT',
111
- L2F_ACH_WITHDRAWAL = 'L2F_ACH_WITHDRAWAL',
112
- L2F_WIRE_ONRAMP = 'L2F_WIRE_ONRAMP',
113
- L2F_WIRE_OFFRAMP = 'L2F_WIRE_OFFRAMP',
114
- L2F_WIRE_DEPOSIT = 'L2F_WIRE_DEPOSIT',
115
- L2F_WIRE_WITHDRAWAL = 'L2F_WIRE_WITHDRAWAL',
116
- L2F_SWIFT_ONRAMP = 'L2F_SWIFT_ONRAMP',
117
- L2F_SWIFT_OFFRAMP = 'L2F_SWIFT_OFFRAMP',
118
- L2F_SWIFT_DEPOSIT = 'L2F_SWIFT_DEPOSIT',
119
- L2F_SWIFT_WITHDRAWAL = 'L2F_SWIFT_WITHDRAWAL',
120
- L2F_SEPA_ONRAMP = 'L2F_SEPA_ONRAMP',
121
- L2F_SEPA_OFFRAMP = 'L2F_SEPA_OFFRAMP',
122
- L2F_SEPA_DEPOSIT = 'L2F_SEPA_DEPOSIT',
123
- L2F_SEPA_WITHDRAWAL = 'L2F_SEPA_WITHDRAWAL',
124
- L2F_CRYPTO_WITHDRAWAL = 'L2F_CRYPTO_WITHDRAWAL',
125
- L2F_CRYPTO_DEPOSIT = 'L2F_CRYPTO_DEPOSIT',
126
- OMNIBUS_CRYPTO_WITHDRAWAL = 'OMNIBUS_CRYPTO_WITHDRAWAL',
127
- WITHDRAW_CARD_PREPAID = 'WITHDRAW_CARD_PREPAID',
128
- WITHDRAW_CARD_SUBACCOUNT = 'WITHDRAW_CARD_SUBACCOUNT',
129
- }
130
-
131
- export enum WalletTransactionRecordType {
132
- CARD_PROVIDER_DEPOSIT = 'CARD_PROVIDER_DEPOSIT',
133
- CARD_PROVIDER_REFUND = 'CARD_PROVIDER_REFUND',
134
- DEPOSIT = 'DEPOSIT',
135
- DEPOSIT_CRYPTO_EXTERNAL = 'DEPOSIT_CRYPTO_EXTERNAL',
136
- DEPOSIT_CRYPTO_INTERNAL = 'DEPOSIT_CRYPTO_INTERNAL',
137
- DEPOSIT_INTERNAL = 'DEPOSIT_INTERNAL',
138
- DEPOSIT_MANUAL = 'DEPOSIT_MANUAL',
139
- EXCHANGE_CRYPTO_INTERNAL = 'EXCHANGE_CRYPTO_INTERNAL',
140
- EXCHANGE_OMNI = 'EXCHANGE_OMNI',
141
- EXT_EXCHANGE = 'EXT_EXCHANGE',
142
- FEE = 'FEE',
143
- NETWORK_FEE = 'NETWORK_FEE',
144
- OFFRAMP_ACHWIRE = 'OFFRAMP_ACHWIRE',
145
- OFFRAMP_SEPA = 'OFFRAMP_SEPA',
146
- OMNIBUS_CRYPTO_TRANSFER = 'OMNIBUS_CRYPTO_TRANSFER',
147
- ONRAMP_ACHWIRE = 'ONRAMP_ACHWIRE',
148
- ONRAMP_SEPA = 'ONRAMP_SEPA',
149
- REFUND = 'REFUND',
150
- RN_CARDS_OFFRAMP = 'RN_CARDS_OFFRAMP',
151
- TRANSFER_CARD_PREPAID = 'TRANSFER_CARD_PREPAID',
152
- TRANSFER_CARD_SUBACCOUNT = 'TRANSFER_CARD_SUBACCOUNT',
153
- TRANSFER_CARD_WHOLESALE = 'TRANSFER_CARD_WHOLESALE',
154
- TRANSFER_INTERNAL = 'TRANSFER_INTERNAL',
155
- SEGREGATED_CRYPTO_TRANSFER = 'SEGREGATED_CRYPTO_TRANSFER',
156
- WHOLESALE_CARD_DEPOSIT = 'WHOLESALE_CARD_DEPOSIT',
157
- WITHDRAWAL = 'WITHDRAWAL',
158
- WITHDRAWAL_CRYPTO_EXTERNAL = 'WITHDRAWAL_CRYPTO_EXTERNAL',
159
- WITHDRAWAL_CRYPTO_INTERNAL = 'WITHDRAWAL_CRYPTO_INTERNAL',
160
- WITHDRAWAL_INTERNAL = 'WITHDRAWAL_INTERNAL',
161
- WITHDRAW_CARD_PREPAID = 'WITHDRAW_CARD_PREPAID',
162
- WITHDRAW_CARD_SUBACCOUNT = 'WITHDRAW_CARD_SUBACCOUNT',
163
- L2F_ACH_ONRAMP = 'L2F_ACH_ONRAMP',
164
- L2F_ACH_OFFRAMP = 'L2F_ACH_OFFRAMP',
165
- L2F_ACH_DEPOSIT = 'L2F_ACH_DEPOSIT',
166
- L2F_ACH_WITHDRAWAL = 'L2F_ACH_WITHDRAWAL',
167
- L2F_WIRE_ONRAMP = 'L2F_WIRE_ONRAMP',
168
- L2F_WIRE_OFFRAMP = 'L2F_WIRE_OFFRAMP',
169
- L2F_WIRE_DEPOSIT = 'L2F_WIRE_DEPOSIT',
170
- L2F_WIRE_WITHDRAWAL = 'L2F_WIRE_WITHDRAWAL',
171
- L2F_SWIFT_ONRAMP = 'L2F_SWIFT_ONRAMP',
172
- L2F_SWIFT_OFFRAMP = 'L2F_SWIFT_OFFRAMP',
173
- L2F_SWIFT_DEPOSIT = 'L2F_SWIFT_DEPOSIT',
174
- L2F_SWIFT_WITHDRAWAL = 'L2F_SWIFT_WITHDRAWAL',
175
- L2F_SEPA_ONRAMP = 'L2F_SEPA_ONRAMP',
176
- L2F_SEPA_OFFRAMP = 'L2F_SEPA_OFFRAMP',
177
- L2F_SEPA_DEPOSIT = 'L2F_SEPA_DEPOSIT',
178
- L2F_SEPA_WITHDRAWAL = 'L2F_SEPA_WITHDRAWAL',
179
- L2F_CRYPTO_WITHDRAWAL = 'L2F_CRYPTO_WITHDRAWAL',
180
- L2F_CRYPTO_DEPOSIT = 'L2F_CRYPTO_DEPOSIT',
181
- HIFI_WIRE_ONRAMP = 'HIFI_WIRE_ONRAMP',
182
- HIFI_WIRE_OFFRAMP = 'HIFI_WIRE_OFFRAMP',
183
- HIFI_WIRE_DEPOSIT = 'HIFI_WIRE_DEPOSIT',
184
- HIFI_WIRE_WITHDRAWAL = 'HIFI_WIRE_WITHDRAWAL',
185
- HIFI_ACH_ONRAMP = 'HIFI_ACH_ONRAMP',
186
- HIFI_ACH_OFFRAMP = 'HIFI_ACH_OFFRAMP',
187
- HIFI_ACH_DEPOSIT = 'HIFI_ACH_DEPOSIT',
188
- HIFI_ACH_WITHDRAWAL = 'HIFI_ACH_WITHDRAWAL',
189
- HIFI_SEPA_ONRAMP = 'HIFI_SEPA_ONRAMP',
190
- HIFI_SEPA_OFFRAMP = 'HIFI_SEPA_OFFRAMP',
191
- HIFI_SEPA_DEPOSIT = 'HIFI_SEPA_DEPOSIT',
192
- HIFI_SEPA_WITHDRAWAL = 'HIFI_SEPA_WITHDRAWAL',
193
- HIFI_CRYPTO_TRANSFER = 'HIFI_CRYPTO_TRANSFER',
194
- HIFI_CRYPTO_WITHDRAWAL = 'HIFI_CRYPTO_WITHDRAWAL',
195
- HIFI_CRYPTO_DEPOSIT = 'HIFI_CRYPTO_DEPOSIT',
196
- }
197
-
198
- export enum RequestStatus {
199
- NONE = 'none',
200
- PENDING = 'pending',
201
- FULLFILLED = 'fulfilled',
202
- REJECTED = 'rejected',
203
- }
204
-
205
- export enum RequestLoadingType {
206
- NORMAL = 'normal',
207
- TRANSPARENT = 'transparent',
208
- }
209
-
210
- export enum ResponseStatus {
211
- BAD_REQUEST = 400,
212
- UNAUTHORIZED = 401,
213
- FORBIDDEN = 403,
214
- NOT_FOUND = 404,
215
- VERIFICATION_EXPIRED = 419,
216
- UNPROCESSABLE_ENTITY = 422,
217
- USER_BLOCKED = 423,
218
- SERVER_ERROR = 500,
219
- }
220
-
221
- export enum WalletTypeValues {
222
- BUSINESS = 'business',
223
- PERSONAL = 'personal',
224
- P2P = 'trading',
225
- ESCROW = 'escrow',
226
- MERCHANT = 'merchant',
227
- EXCHANGE = 'exchange',
228
- STAKING = 'staking',
229
- VAULT = 'vault',
230
- }
231
-
232
- export const walletType: WalletType = {
233
- personal: { value: WalletTypeValues.PERSONAL, label: 'Personal' },
234
- p2p: { value: 'p2p', label: 'P2P' },
235
- escrow: { value: WalletTypeValues.ESCROW, label: 'Escrow' },
236
- merchant: { value: WalletTypeValues.MERCHANT, label: 'Merchant' },
237
- exchange: { value: WalletTypeValues.EXCHANGE, label: 'Exchange' },
238
- staking: { value: WalletTypeValues.STAKING, label: 'Staking' },
239
- vault: { value: WalletTypeValues.VAULT, label: 'Vault' },
240
- };
241
-
242
- export const defaultPaginationParams = {
243
- limit: 10,
244
- offset: 0,
245
- isLastPage: true,
246
- };
247
-
248
- export enum CalcType {
249
- ONRAMP = 'onramp',
250
- OFFRAMP = 'offramp',
251
- WITHDRAWAL = 'withdrawal',
252
- }
253
-
254
- export enum KYCStatuses {
255
- APPROVED = 'APPROVED',
256
- DECLINED = 'DECLINED',
257
- PENDING = 'PENDING',
258
- HOLD = 'HOLD',
259
- DOUBLE = 'DOUBLE',
260
- SOFT_REJECT = 'SOFT_REJECT',
261
- REJECT = 'REJECT',
262
- UNVERIFIED = 'UNVERIFIED',
263
- }
264
-
265
- export enum OrderStatuses {
266
- NEW = 'NEW',
267
- PENDING = 'PENDING',
268
- PROCESSING = 'PROCESSING',
269
- CANCELED = 'CANCELED',
270
- COMPLETE = 'COMPLETE',
271
- ERROR = 'ERROR',
272
- FAILED = 'FAILED',
273
- }
274
-
275
- export enum CardStatus {
276
- ACTIVE = 'ACTIVE',
277
- FROZEN = 'FROZEN',
278
- BLOCKED = 'BLOCKED',
279
- INACTIVE = 'INACTIVE',
280
- CANCELED = 'CANCELED',
281
- CLOSED = 'CLOSED',
282
- }
283
-
284
- export enum IssuingProgramStatus {
285
- ACTIVE = 'ACTIVE',
286
- ARCHIVED = 'ARCHIVED',
287
- }
288
-
289
- export enum SubAccountStatus {
290
- ACTIVE = 'ACTIVE',
291
- BLOCKED = 'BLOCKED',
292
- INACTIVE = 'INACTIVE',
293
- CANCELED = 'CANCELED',
294
- }
295
-
296
- export enum SubAccountType {
297
- PREPAID = 'prepaid',
298
- BALANCE = 'balance',
299
- }
300
-
301
- export enum CurrencyType {
302
- TOKEN = 'token',
303
- NATIVE = 'native',
304
- FIAT = 'fiat',
305
- }
306
-
307
- export enum APIKeyRole {
308
- READ_ONLY = 'READ_ONLY',
309
- DEVELOPER = 'DEVELOPER',
310
- PRODUCTION = 'PRODUCTION',
311
- }
312
-
313
- export enum SortingDirection {
314
- ASC = 'ASC',
315
- DESC = 'DESC',
316
- }
317
-
318
- export enum CounterpartyType {
319
- INDIVIDUAL = 'INDIVIDUAL',
320
- BUSINESS = 'BUSINESS',
321
- }
322
-
323
- export enum CounterpartyDestinationType {
324
- DOMESTIC_WIRE = 'DOMESTIC_WIRE',
325
- ACH = 'ACH',
326
- SWIFT = 'SWIFT',
327
- SEPA = 'SEPA',
328
- CRYPTO_EXTERNAL = 'CRYPTO_EXTERNAL',
329
- CRYPTO_INTERNAL = 'CRYPTO_INTERNAL',
330
- }
331
-
332
- export enum CardTransactionStatus {
333
- APPROVED = 'APPROVED',
334
- CLEARED = 'CLEARED',
335
- COMPLETED = 'COMPLETED',
336
- EXPIRED = 'EXPIRED',
337
- FAILED = 'FAILED',
338
- CANCELLED = 'CANCELLED',
339
- CANCELED = 'CANCELED',
340
- PENDING = 'PENDING',
341
- REVERSED = 'REVERSED',
342
- DECLINED = 'DECLINED',
343
- }
@@ -1,181 +0,0 @@
1
- import debounce from 'lodash.debounce';
2
- import { useEffect, useRef, useState } from 'react';
3
- import { API } from '../api/types/types';
4
-
5
- type CalcData = API.Orders.V2.Calc.Response & {
6
- is_subtract: boolean;
7
- is_reverse: boolean;
8
- };
9
-
10
- export type OrderCalcHandlerProps = Omit<API.Orders.V2.Calc.Request, 'order_type'>;
11
-
12
- type UpdateCalculationsProps = {
13
- is_reverse: boolean;
14
- is_subtract: boolean;
15
- };
16
-
17
- export type UseOrderCalcProps = {
18
- from_currency_id: string | null | undefined;
19
- to_currency_id: string | null | undefined;
20
- calcHandler: (props: OrderCalcHandlerProps) => Promise<API.Orders.V2.Calc.Response>;
21
- disableCalculation?: boolean;
22
- to_address?: string;
23
- };
24
-
25
- export type UseOrderCalcData = {
26
- calcData: CalcData | null;
27
- sellingAmount: number;
28
- setSellingAmount: (value: number) => void;
29
- buyingAmount: number;
30
- setBuyingAmount: (value: number) => void;
31
- isSellingValuePending: boolean;
32
- isBuyingValuePending: boolean;
33
- };
34
-
35
- export type UseOrderCalc = (props: UseOrderCalcProps) => UseOrderCalcData;
36
-
37
- export const useOrderCalc: UseOrderCalc = (props: UseOrderCalcProps) => {
38
- const { from_currency_id, to_currency_id, calcHandler, disableCalculation, to_address } = props;
39
-
40
- const [sellingAmount, setSellingAmount] = useState(0);
41
- const [buyingAmount, setBuyingAmount] = useState(0);
42
- const [calcData, setCalcData] = useState<CalcData | null>(null);
43
- const [isSellingValuePending, setIsSellingValuePending] = useState(false);
44
- const [isBuyingValuePending, setIsBuyingValuePending] = useState(false);
45
-
46
- const abortControllerRef = useRef<AbortController | null>(null);
47
-
48
- const resetOrderCalc = () => {
49
- setCalcData(null);
50
- setIsSellingValuePending(false);
51
- setIsBuyingValuePending(false);
52
- setSellingAmount(0);
53
- setBuyingAmount(0);
54
- };
55
-
56
- const abortCurrentCalculation = () => {
57
- if (abortControllerRef.current) {
58
- abortControllerRef.current.abort();
59
- }
60
- };
61
-
62
- const updateCalculations = async ({ is_reverse, is_subtract }: UpdateCalculationsProps) => {
63
- if (disableCalculation) {
64
- return;
65
- }
66
-
67
- abortControllerRef.current = new AbortController();
68
-
69
- if (!from_currency_id || !to_currency_id) {
70
- throw new Error('From currency or to currency is not defined');
71
- }
72
-
73
- if (sellingAmount === 0 && buyingAmount === 0 && !calcData) {
74
- resetOrderCalc();
75
- return;
76
- }
77
-
78
- const calcParams: OrderCalcHandlerProps = {
79
- from_currency_id,
80
- to_currency_id,
81
- amount: is_reverse ? buyingAmount : sellingAmount,
82
- is_reverse,
83
- is_subtract,
84
- to_address,
85
- signal: abortControllerRef.current.signal,
86
- };
87
-
88
- if (!calcParams.amount) {
89
- resetOrderCalc();
90
- return;
91
- }
92
-
93
- try {
94
- is_reverse ? setIsSellingValuePending(true) : setIsBuyingValuePending(true);
95
- const data = await calcHandler(calcParams);
96
- setCalcData({
97
- ...data,
98
- is_reverse,
99
- is_subtract,
100
- });
101
-
102
- setSellingAmount(data.from_amount);
103
-
104
- setBuyingAmount(data.result_amount);
105
- abortControllerRef.current = null;
106
- is_reverse ? setIsSellingValuePending(false) : setIsBuyingValuePending(false);
107
- } catch (error: any) {
108
- if (error.code === 'ERR_CANCELED') {
109
- return;
110
- }
111
-
112
- is_reverse ? setIsSellingValuePending(false) : setIsBuyingValuePending(false);
113
-
114
- if (error.status === 404) {
115
- // eslint-disable-next-line no-console
116
- console.error('Rate not found');
117
- resetOrderCalc();
118
- }
119
-
120
- throw error;
121
- }
122
- };
123
-
124
- const onSellingValueUpdate = debounce(
125
- (value: number) => {
126
- if (value !== calcData?.from_amount || isBuyingValuePending) {
127
- updateCalculations({ is_reverse: false, is_subtract: true });
128
- }
129
- },
130
- abortControllerRef.current?.signal ? undefined : 1000,
131
- );
132
-
133
- const onBuyingValueUpdate = debounce(
134
- (value: number) => {
135
- if (value !== calcData?.result_amount || isSellingValuePending) {
136
- updateCalculations({ is_reverse: true, is_subtract: false });
137
- }
138
- },
139
- abortControllerRef.current?.signal ? undefined : 1000,
140
- );
141
-
142
- const onToAddressUpdate = debounce(
143
- () => {
144
- updateCalculations({ is_reverse: false, is_subtract: true });
145
- },
146
- abortControllerRef.current?.signal ? undefined : 1000,
147
- );
148
-
149
- useEffect(() => {
150
- abortCurrentCalculation();
151
- updateCalculations({ is_reverse: false, is_subtract: true });
152
- }, [from_currency_id, to_currency_id]);
153
-
154
- useEffect(() => {
155
- abortCurrentCalculation();
156
- onSellingValueUpdate(sellingAmount);
157
- return onSellingValueUpdate.cancel;
158
- }, [sellingAmount]);
159
-
160
- useEffect(() => {
161
- abortCurrentCalculation();
162
- onBuyingValueUpdate(buyingAmount);
163
- return onBuyingValueUpdate.cancel;
164
- }, [buyingAmount]);
165
-
166
- useEffect(() => {
167
- abortCurrentCalculation();
168
- onToAddressUpdate();
169
- return onToAddressUpdate.cancel;
170
- }, [to_address]);
171
-
172
- return {
173
- sellingAmount,
174
- setSellingAmount,
175
- buyingAmount,
176
- setBuyingAmount,
177
- calcData,
178
- isSellingValuePending,
179
- isBuyingValuePending,
180
- };
181
- };