@spacesops/wdk-react-native-provider 1.0.0-beta.3

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 (89) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +841 -0
  3. package/lib/module/contexts/constants.js +20 -0
  4. package/lib/module/contexts/constants.js.map +1 -0
  5. package/lib/module/contexts/reducer.js +87 -0
  6. package/lib/module/contexts/reducer.js.map +1 -0
  7. package/lib/module/contexts/types.js +4 -0
  8. package/lib/module/contexts/types.js.map +1 -0
  9. package/lib/module/contexts/wallet-context.js +409 -0
  10. package/lib/module/contexts/wallet-context.js.map +1 -0
  11. package/lib/module/index.js +15 -0
  12. package/lib/module/index.js.map +1 -0
  13. package/lib/module/package.json +1 -0
  14. package/lib/module/polyfills.js +34 -0
  15. package/lib/module/polyfills.js.map +1 -0
  16. package/lib/module/services/wdk-service/bare-api.js +69 -0
  17. package/lib/module/services/wdk-service/bare-api.js.map +1 -0
  18. package/lib/module/services/wdk-service/index.js +506 -0
  19. package/lib/module/services/wdk-service/index.js.map +1 -0
  20. package/lib/module/services/wdk-service/types.js +48 -0
  21. package/lib/module/services/wdk-service/types.js.map +1 -0
  22. package/lib/module/services/wdk-service/wdk-encryption-salt.js +29 -0
  23. package/lib/module/services/wdk-service/wdk-encryption-salt.js.map +1 -0
  24. package/lib/module/services/wdk-service/wdk-secret-manager-storage.js +64 -0
  25. package/lib/module/services/wdk-service/wdk-secret-manager-storage.js.map +1 -0
  26. package/lib/module/services/wdk-service/wdk-secret-manager-worklet.bundle.js +1 -0
  27. package/lib/module/services/wdk-service/wdk-worklet.mobile.bundle.js +1 -0
  28. package/lib/module/spec/hrpc/hrpc.json +66 -0
  29. package/lib/module/spec/hrpc/index.js +121 -0
  30. package/lib/module/spec/hrpc/index.js.map +1 -0
  31. package/lib/module/spec/hrpc/messages.js +291 -0
  32. package/lib/module/spec/hrpc/messages.js.map +1 -0
  33. package/lib/module/spec/schema/index.js +291 -0
  34. package/lib/module/spec/schema/index.js.map +1 -0
  35. package/lib/module/spec/schema/schema.json +186 -0
  36. package/lib/module/utils/get-balances-from-balance-map.js +18 -0
  37. package/lib/module/utils/get-balances-from-balance-map.js.map +1 -0
  38. package/lib/module/utils/get-transactions-from-transaction-map.js +10 -0
  39. package/lib/module/utils/get-transactions-from-transaction-map.js.map +1 -0
  40. package/lib/module/worklet/wdk-secret-manager-worklet.js +106 -0
  41. package/lib/module/worklet/wdk-secret-manager-worklet.js.map +1 -0
  42. package/lib/typescript/package.json +1 -0
  43. package/lib/typescript/src/contexts/constants.d.ts +3 -0
  44. package/lib/typescript/src/contexts/constants.d.ts.map +1 -0
  45. package/lib/typescript/src/contexts/reducer.d.ts +38 -0
  46. package/lib/typescript/src/contexts/reducer.d.ts.map +1 -0
  47. package/lib/typescript/src/contexts/types.d.ts +40 -0
  48. package/lib/typescript/src/contexts/types.d.ts.map +1 -0
  49. package/lib/typescript/src/contexts/wallet-context.d.ts +10 -0
  50. package/lib/typescript/src/contexts/wallet-context.d.ts.map +1 -0
  51. package/lib/typescript/src/index.d.ts +7 -0
  52. package/lib/typescript/src/index.d.ts.map +1 -0
  53. package/lib/typescript/src/polyfills.d.ts +7 -0
  54. package/lib/typescript/src/polyfills.d.ts.map +1 -0
  55. package/lib/typescript/src/services/wdk-service/bare-api.d.ts +32 -0
  56. package/lib/typescript/src/services/wdk-service/bare-api.d.ts.map +1 -0
  57. package/lib/typescript/src/services/wdk-service/index.d.ts +68 -0
  58. package/lib/typescript/src/services/wdk-service/index.d.ts.map +1 -0
  59. package/lib/typescript/src/services/wdk-service/types.d.ts +125 -0
  60. package/lib/typescript/src/services/wdk-service/types.d.ts.map +1 -0
  61. package/lib/typescript/src/services/wdk-service/wdk-encryption-salt.d.ts +6 -0
  62. package/lib/typescript/src/services/wdk-service/wdk-encryption-salt.d.ts.map +1 -0
  63. package/lib/typescript/src/services/wdk-service/wdk-secret-manager-storage.d.ts +13 -0
  64. package/lib/typescript/src/services/wdk-service/wdk-secret-manager-storage.d.ts.map +1 -0
  65. package/lib/typescript/src/utils/get-balances-from-balance-map.d.ts +4 -0
  66. package/lib/typescript/src/utils/get-balances-from-balance-map.d.ts.map +1 -0
  67. package/lib/typescript/src/utils/get-transactions-from-transaction-map.d.ts +4 -0
  68. package/lib/typescript/src/utils/get-transactions-from-transaction-map.d.ts.map +1 -0
  69. package/metro-polyfills.js +89 -0
  70. package/package.json +152 -0
  71. package/src/contexts/constants.ts +19 -0
  72. package/src/contexts/reducer.ts +103 -0
  73. package/src/contexts/types.ts +51 -0
  74. package/src/contexts/wallet-context.tsx +411 -0
  75. package/src/index.tsx +28 -0
  76. package/src/polyfills.ts +31 -0
  77. package/src/services/wdk-service/bare-api.ts +88 -0
  78. package/src/services/wdk-service/index.ts +765 -0
  79. package/src/services/wdk-service/types.ts +137 -0
  80. package/src/services/wdk-service/wdk-encryption-salt.ts +30 -0
  81. package/src/services/wdk-service/wdk-secret-manager-storage.ts +102 -0
  82. package/src/spec/hrpc/hrpc.json +66 -0
  83. package/src/spec/hrpc/index.js +228 -0
  84. package/src/spec/hrpc/messages.js +328 -0
  85. package/src/spec/schema/index.js +328 -0
  86. package/src/spec/schema/schema.json +186 -0
  87. package/src/utils/get-balances-from-balance-map.ts +22 -0
  88. package/src/utils/get-transactions-from-transaction-map.ts +18 -0
  89. package/src/worklet/wdk-secret-manager-worklet.js +118 -0
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ export const WALLET_CONTEXT_INITIAL_STATE = {
4
+ wallet: null,
5
+ balances: {
6
+ list: [],
7
+ map: {},
8
+ isLoading: false
9
+ },
10
+ transactions: {
11
+ list: [],
12
+ map: {},
13
+ isLoading: false
14
+ },
15
+ isUnlocked: false,
16
+ isInitialized: false,
17
+ isLoading: false,
18
+ error: null
19
+ };
20
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WALLET_CONTEXT_INITIAL_STATE","wallet","balances","list","map","isLoading","transactions","isUnlocked","isInitialized","error"],"sourceRoot":"../../../src","sources":["contexts/constants.ts"],"mappings":";;AAEA,OAAO,MAAMA,4BAAgD,GAAG;EAC9DC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE;IACRC,IAAI,EAAE,EAAE;IACRC,GAAG,EAAE,CAAC,CAAC;IACPC,SAAS,EAAE;EACb,CAAC;EACDC,YAAY,EAAE;IACZH,IAAI,EAAE,EAAE;IACRC,GAAG,EAAE,CAAC,CAAC;IACPC,SAAS,EAAE;EACb,CAAC;EACDE,UAAU,EAAE,KAAK;EACjBC,aAAa,EAAE,KAAK;EACpBH,SAAS,EAAE,KAAK;EAChBI,KAAK,EAAE;AACT,CAAC","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ import getBalancesFromBalanceMap from "../utils/get-balances-from-balance-map.js";
4
+ import getTransactionsFromTransactionMap from "../utils/get-transactions-from-transaction-map.js";
5
+ import { WALLET_CONTEXT_INITIAL_STATE } from "./constants.js";
6
+ // Reducer
7
+ function reducer(state, action) {
8
+ switch (action.type) {
9
+ case 'SET_LOADING':
10
+ return {
11
+ ...state,
12
+ isLoading: action.payload
13
+ };
14
+ case 'SET_ERROR':
15
+ return {
16
+ ...state,
17
+ error: action.payload,
18
+ isLoading: false
19
+ };
20
+ case 'SET_WALLET':
21
+ return {
22
+ ...state,
23
+ wallet: action.payload
24
+ };
25
+ case 'SET_ADDRESSES':
26
+ return {
27
+ ...state,
28
+ addresses: action.payload
29
+ };
30
+ case 'SET_INITIALIZED':
31
+ return {
32
+ ...state,
33
+ isInitialized: action.payload
34
+ };
35
+ case 'SET_UNLOCKED':
36
+ return {
37
+ ...state,
38
+ isUnlocked: action.payload
39
+ };
40
+ case 'SET_BALANCES':
41
+ const balances = getBalancesFromBalanceMap(action.payload);
42
+ return {
43
+ ...state,
44
+ balances: {
45
+ ...state.balances,
46
+ list: balances,
47
+ map: action.payload
48
+ }
49
+ };
50
+ case 'SET_TRANSACTIONS':
51
+ const transactions = getTransactionsFromTransactionMap(action.payload);
52
+ return {
53
+ ...state,
54
+ transactions: {
55
+ ...state.transactions,
56
+ list: transactions,
57
+ map: action.payload
58
+ }
59
+ };
60
+ case 'SET_LOADING_BALANCES':
61
+ return {
62
+ ...state,
63
+ balances: {
64
+ ...state.balances,
65
+ isLoading: action.payload
66
+ }
67
+ };
68
+ case 'SET_LOADING_TRANSACTIONS':
69
+ return {
70
+ ...state,
71
+ transactions: {
72
+ ...state.transactions,
73
+ isLoading: action.payload
74
+ }
75
+ };
76
+ case 'CLEAR_WALLET':
77
+ return {
78
+ ...WALLET_CONTEXT_INITIAL_STATE,
79
+ // Keep isInitialized true since WDK worklets remain active
80
+ isInitialized: state.isInitialized
81
+ };
82
+ default:
83
+ return state;
84
+ }
85
+ }
86
+ export default reducer;
87
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getBalancesFromBalanceMap","getTransactionsFromTransactionMap","WALLET_CONTEXT_INITIAL_STATE","reducer","state","action","type","isLoading","payload","error","wallet","addresses","isInitialized","isUnlocked","balances","list","map","transactions"],"sourceRoot":"../../../src","sources":["contexts/reducer.ts"],"mappings":";;AAMA,OAAOA,yBAAyB,MAAM,2CAAwC;AAC9E,OAAOC,iCAAiC,MAAM,mDAAgD;AAE9F,SAASC,4BAA4B,QAAQ,gBAAa;AAe1D;AACA,SAASC,OAAOA,CACdC,KAAyB,EACzBC,MAAoB,EACA;EACpB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,aAAa;MAChB,OAAO;QAAE,GAAGF,KAAK;QAAEG,SAAS,EAAEF,MAAM,CAACG;MAAQ,CAAC;IAEhD,KAAK,WAAW;MACd,OAAO;QAAE,GAAGJ,KAAK;QAAEK,KAAK,EAAEJ,MAAM,CAACG,OAAO;QAAED,SAAS,EAAE;MAAM,CAAC;IAE9D,KAAK,YAAY;MACf,OAAO;QACL,GAAGH,KAAK;QACRM,MAAM,EAAEL,MAAM,CAACG;MACjB,CAAC;IAEH,KAAK,eAAe;MAClB,OAAO;QACL,GAAGJ,KAAK;QACRO,SAAS,EAAEN,MAAM,CAACG;MACpB,CAAC;IAEH,KAAK,iBAAiB;MACpB,OAAO;QAAE,GAAGJ,KAAK;QAAEQ,aAAa,EAAEP,MAAM,CAACG;MAAQ,CAAC;IAEpD,KAAK,cAAc;MACjB,OAAO;QAAE,GAAGJ,KAAK;QAAES,UAAU,EAAER,MAAM,CAACG;MAAQ,CAAC;IAEjD,KAAK,cAAc;MACjB,MAAMM,QAAQ,GAAGd,yBAAyB,CAACK,MAAM,CAACG,OAAO,CAAC;MAE1D,OAAO;QACL,GAAGJ,KAAK;QACRU,QAAQ,EAAE;UACR,GAAGV,KAAK,CAACU,QAAQ;UACjBC,IAAI,EAAED,QAAQ;UACdE,GAAG,EAAEX,MAAM,CAACG;QACd;MACF,CAAC;IAEH,KAAK,kBAAkB;MACrB,MAAMS,YAAY,GAAGhB,iCAAiC,CAACI,MAAM,CAACG,OAAO,CAAC;MAEtE,OAAO;QACL,GAAGJ,KAAK;QACRa,YAAY,EAAE;UACZ,GAAGb,KAAK,CAACa,YAAY;UACrBF,IAAI,EAAEE,YAAY;UAClBD,GAAG,EAAEX,MAAM,CAACG;QACd;MACF,CAAC;IAEH,KAAK,sBAAsB;MACzB,OAAO;QACL,GAAGJ,KAAK;QACRU,QAAQ,EAAE;UAAE,GAAGV,KAAK,CAACU,QAAQ;UAAEP,SAAS,EAAEF,MAAM,CAACG;QAAQ;MAC3D,CAAC;IAEH,KAAK,0BAA0B;MAC7B,OAAO;QACL,GAAGJ,KAAK;QACRa,YAAY,EAAE;UAAE,GAAGb,KAAK,CAACa,YAAY;UAAEV,SAAS,EAAEF,MAAM,CAACG;QAAQ;MACnE,CAAC;IAEH,KAAK,cAAc;MACjB,OAAO;QACL,GAAGN,4BAA4B;QAC/B;QACAU,aAAa,EAAER,KAAK,CAACQ;MACvB,CAAC;IAEH;MACE,OAAOR,KAAK;EAChB;AACF;AAEA,eAAeD,OAAO","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["contexts/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,409 @@
1
+ "use strict";
2
+
3
+ import AsyncStorage from '@react-native-async-storage/async-storage';
4
+ import { createContext, useContext, useEffect, useReducer } from 'react';
5
+ import { WDKService } from "../services/wdk-service/index.js";
6
+ import walletReducer from "./reducer.js";
7
+ import { getUniqueId } from 'react-native-device-info';
8
+ import { WALLET_CONTEXT_INITIAL_STATE } from "./constants.js";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const STORAGE_KEY_WALLET = 'wdk_wallet_data';
11
+ const STORAGE_KEY_ADDRESSES = 'wdk_wallet_addresses';
12
+ const STORAGE_KEY_BALANCES = 'wdk_wallet_balances';
13
+ const STORAGE_KEY_TRANSACTIONS = 'wdk_wallet_transactions';
14
+
15
+ // Create context
16
+ const WalletContext = /*#__PURE__*/createContext(undefined);
17
+
18
+ // Provider component
19
+ export function WalletProvider({
20
+ children,
21
+ config
22
+ }) {
23
+ const [state, dispatch] = useReducer(walletReducer, WALLET_CONTEXT_INITIAL_STATE);
24
+
25
+ // Set WDK config on mount
26
+ useEffect(() => {
27
+ WDKService.setConfig({
28
+ ...config,
29
+ indexer: {
30
+ ...config.indexer,
31
+ version: config.indexer.version || 'v1'
32
+ }
33
+ });
34
+ initializeWDK();
35
+ }, [config]);
36
+
37
+ // Load wallet from storage on mount
38
+ useEffect(() => {
39
+ loadStoredWallet();
40
+ }, []);
41
+ useEffect(() => {
42
+ const enabledAssets = state.wallet?.enabledAssets;
43
+ const addressMap = state.addresses;
44
+ if (enabledAssets && addressMap) {
45
+ fetchBalances();
46
+ fetchTransactions();
47
+ }
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ }, [state.wallet?.enabledAssets, state.addresses]);
50
+
51
+ // Save wallet to storage whenever wallet changes
52
+ useEffect(() => {
53
+ if (state.isInitialized && state.wallet) {
54
+ saveWalletToStorage();
55
+ }
56
+ // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ }, [state.wallet, state.isInitialized]);
58
+ const loadStoredWallet = async () => {
59
+ try {
60
+ const stored = await AsyncStorage.getItem(STORAGE_KEY_WALLET);
61
+ if (stored) {
62
+ const data = JSON.parse(stored);
63
+ let parsed = data;
64
+ if (parsed) {
65
+ dispatch({
66
+ type: 'SET_WALLET',
67
+ payload: parsed
68
+ });
69
+ }
70
+ }
71
+ } catch (error) {
72
+ dispatch({
73
+ type: 'SET_ERROR',
74
+ payload: error instanceof Error ? error.message : 'Failed to load stored wallet'
75
+ });
76
+ console.error('Failed to load stored wallet:', error);
77
+ }
78
+ };
79
+ const saveWalletToStorage = async () => {
80
+ try {
81
+ if (state.wallet) {
82
+ await AsyncStorage.setItem(STORAGE_KEY_WALLET, JSON.stringify(state.wallet));
83
+ }
84
+ } catch (error) {
85
+ console.error('Failed to save wallet to storage:', error);
86
+ }
87
+ };
88
+ const getWalletAddresses = async enabledAssets => {
89
+ try {
90
+ const stored = await AsyncStorage.getItem(STORAGE_KEY_ADDRESSES);
91
+ if (stored) {
92
+ return JSON.parse(stored);
93
+ } else {
94
+ const addresses = await WDKService.resolveWalletAddresses(enabledAssets);
95
+ await AsyncStorage.setItem(STORAGE_KEY_ADDRESSES, JSON.stringify(addresses));
96
+ return addresses;
97
+ }
98
+ } catch (error) {
99
+ console.error('Failed to get wallet addresses:', error);
100
+ }
101
+ };
102
+ const clearError = () => {
103
+ dispatch({
104
+ type: 'SET_ERROR',
105
+ payload: null
106
+ });
107
+ };
108
+ const initializeWDK = async () => {
109
+ try {
110
+ dispatch({
111
+ type: 'SET_LOADING',
112
+ payload: true
113
+ });
114
+ await WDKService.initialize();
115
+ } catch (error) {
116
+ const errorMessage = error instanceof Error ? error.message : 'Failed to initialize WDK';
117
+ dispatch({
118
+ type: 'SET_ERROR',
119
+ payload: errorMessage
120
+ });
121
+ throw error;
122
+ } finally {
123
+ dispatch({
124
+ type: 'SET_LOADING',
125
+ payload: false
126
+ });
127
+ dispatch({
128
+ type: 'SET_INITIALIZED',
129
+ payload: true
130
+ });
131
+ }
132
+ };
133
+ const createWallet = async params => {
134
+ if (!state.isInitialized) {
135
+ throw new Error('WDK is not initialized');
136
+ }
137
+ try {
138
+ dispatch({
139
+ type: 'SET_LOADING',
140
+ payload: true
141
+ });
142
+ const prf = await getUniqueId();
143
+ if (params.mnemonic) {
144
+ await WDKService.importSeedPhrase({
145
+ prf,
146
+ seedPhrase: params.mnemonic
147
+ });
148
+ } else {
149
+ await WDKService.createSeed({
150
+ prf
151
+ });
152
+ }
153
+ const wallet = await WDKService.createWallet({
154
+ walletName: params.name,
155
+ prf
156
+ });
157
+ const addresses = await getWalletAddresses(wallet.enabledAssets);
158
+ dispatch({
159
+ type: 'SET_WALLET',
160
+ payload: wallet
161
+ });
162
+ dispatch({
163
+ type: 'SET_ADDRESSES',
164
+ payload: addresses
165
+ });
166
+ dispatch({
167
+ type: 'SET_UNLOCKED',
168
+ payload: true
169
+ });
170
+ return wallet;
171
+ } catch (error) {
172
+ const errorMessage = error instanceof Error ? error.message : 'Failed to create wallet';
173
+ dispatch({
174
+ type: 'SET_ERROR',
175
+ payload: errorMessage
176
+ });
177
+ throw error;
178
+ } finally {
179
+ dispatch({
180
+ type: 'SET_LOADING',
181
+ payload: false
182
+ });
183
+ }
184
+ };
185
+ const unlockWallet = async () => {
186
+ if (!state.wallet) {
187
+ throw new Error('No wallet found');
188
+ }
189
+ try {
190
+ // Get device ID for seed retrieval
191
+ const prf = await getUniqueId();
192
+
193
+ // Create wallet using the stored seed
194
+ const wallet = await WDKService.createWallet({
195
+ walletName: state.wallet.name,
196
+ prf
197
+ });
198
+ const addresses = await getWalletAddresses(wallet.enabledAssets);
199
+ dispatch({
200
+ type: 'SET_WALLET',
201
+ payload: wallet
202
+ });
203
+ dispatch({
204
+ type: 'SET_ADDRESSES',
205
+ payload: addresses
206
+ });
207
+ dispatch({
208
+ type: 'SET_UNLOCKED',
209
+ payload: true
210
+ });
211
+ return true;
212
+ } catch (error) {
213
+ const errorMessage = error instanceof Error ? error.message : 'Failed to unlock wallet';
214
+ throw new Error(errorMessage);
215
+ }
216
+ };
217
+ const clearWallet = async () => {
218
+ dispatch({
219
+ type: 'CLEAR_WALLET'
220
+ });
221
+ try {
222
+ await AsyncStorage.removeItem(STORAGE_KEY_WALLET);
223
+ await AsyncStorage.removeItem(STORAGE_KEY_ADDRESSES);
224
+ await AsyncStorage.removeItem(STORAGE_KEY_BALANCES);
225
+ await AsyncStorage.removeItem(STORAGE_KEY_TRANSACTIONS);
226
+ await WDKService.clearWallet();
227
+ } catch (error) {
228
+ console.error('Failed to clear wallet from AsyncStorage:', error);
229
+ }
230
+ };
231
+ const getUpdatedBalances = async params => {
232
+ const {
233
+ enabledAssets,
234
+ addressMap
235
+ } = params;
236
+ const balanceMap = await WDKService.resolveWalletBalances(enabledAssets, addressMap);
237
+ if (config.enableCaching) {
238
+ // save fresh data to AsyncStorage
239
+ await AsyncStorage.setItem(STORAGE_KEY_BALANCES, JSON.stringify(balanceMap));
240
+ }
241
+ return balanceMap;
242
+ };
243
+ const getUpdatedTransactions = async params => {
244
+ const {
245
+ enabledAssets,
246
+ addressMap
247
+ } = params;
248
+ const transactionMap = await WDKService.resolveWalletTransactions(enabledAssets, addressMap);
249
+ if (config.enableCaching) {
250
+ // save fresh data to AsyncStorage
251
+ await AsyncStorage.setItem(STORAGE_KEY_TRANSACTIONS, JSON.stringify(transactionMap));
252
+ }
253
+ return transactionMap;
254
+ };
255
+ const fetchBalances = async params => {
256
+ const {
257
+ forceUpdate = false
258
+ } = params || {};
259
+ if (!state.wallet) {
260
+ throw new Error('Wallet not found');
261
+ }
262
+ if (!state.addresses) {
263
+ throw new Error('Addresses not found');
264
+ }
265
+ const enabledAssets = state.wallet.enabledAssets || [];
266
+ const addressMap = state.addresses || {};
267
+
268
+ // Check if we have cached balances in state
269
+ if (config.enableCaching && !forceUpdate) {
270
+ try {
271
+ const stored = await AsyncStorage.getItem(STORAGE_KEY_BALANCES);
272
+ if (stored) {
273
+ const balanceMap = JSON.parse(stored);
274
+ dispatch({
275
+ type: 'SET_BALANCES',
276
+ payload: balanceMap
277
+ });
278
+ }
279
+ } catch (error) {
280
+ console.error('Failed to load cached balances:', error);
281
+ }
282
+ }
283
+
284
+ // Set loading state
285
+ dispatch({
286
+ type: 'SET_LOADING_BALANCES',
287
+ payload: true
288
+ });
289
+ try {
290
+ // Fetch fresh data
291
+ const balanceMap = await getUpdatedBalances({
292
+ enabledAssets,
293
+ addressMap
294
+ });
295
+
296
+ // Update state with fresh data
297
+ dispatch({
298
+ type: 'SET_BALANCES',
299
+ payload: balanceMap
300
+ });
301
+ } catch (error) {
302
+ console.error('Failed to fetch balances:', error);
303
+ } finally {
304
+ dispatch({
305
+ type: 'SET_LOADING_BALANCES',
306
+ payload: false
307
+ });
308
+ }
309
+ };
310
+ const fetchTransactions = async params => {
311
+ const {
312
+ forceUpdate = false
313
+ } = params || {};
314
+ if (!state.wallet) {
315
+ throw new Error('Wallet not found');
316
+ }
317
+ if (!state.addresses) {
318
+ throw new Error('Addresses not found');
319
+ }
320
+ const enabledAssets = state.wallet.enabledAssets;
321
+ const addressMap = state.addresses;
322
+
323
+ // Check if we have cached transactions in state
324
+ if (config.enableCaching && !forceUpdate) {
325
+ try {
326
+ const stored = await AsyncStorage.getItem(STORAGE_KEY_TRANSACTIONS);
327
+ if (stored) {
328
+ const transactionMap = JSON.parse(stored);
329
+ dispatch({
330
+ type: 'SET_TRANSACTIONS',
331
+ payload: transactionMap
332
+ });
333
+ }
334
+ } catch (error) {
335
+ console.error('Failed to load cached balances:', error);
336
+ }
337
+ }
338
+
339
+ // Set loading state
340
+ dispatch({
341
+ type: 'SET_LOADING_TRANSACTIONS',
342
+ payload: true
343
+ });
344
+ try {
345
+ // Fetch fresh data
346
+ const transactionMap = await getUpdatedTransactions({
347
+ enabledAssets,
348
+ addressMap
349
+ });
350
+
351
+ // Update state with fresh data
352
+ dispatch({
353
+ type: 'SET_TRANSACTIONS',
354
+ payload: transactionMap
355
+ });
356
+ } catch (error) {
357
+ console.error('Failed to fetch transactions:', error);
358
+ } finally {
359
+ dispatch({
360
+ type: 'SET_LOADING_TRANSACTIONS',
361
+ payload: false
362
+ });
363
+ }
364
+ };
365
+ const refreshWalletBalance = async () => {
366
+ const balanceMap = await getUpdatedBalances({
367
+ enabledAssets: state.wallet?.enabledAssets || [],
368
+ addressMap: state.addresses || {}
369
+ });
370
+ dispatch({
371
+ type: 'SET_BALANCES',
372
+ payload: balanceMap
373
+ });
374
+ };
375
+ const refreshTransactions = async () => {
376
+ const transactionMap = await getUpdatedTransactions({
377
+ enabledAssets: state.wallet?.enabledAssets || [],
378
+ addressMap: state.addresses || {}
379
+ });
380
+ dispatch({
381
+ type: 'SET_TRANSACTIONS',
382
+ payload: transactionMap
383
+ });
384
+ };
385
+ const value = {
386
+ ...state,
387
+ createWallet,
388
+ clearWallet,
389
+ clearError,
390
+ refreshWalletBalance,
391
+ refreshTransactions,
392
+ unlockWallet
393
+ };
394
+ return /*#__PURE__*/_jsx(WalletContext.Provider, {
395
+ value: value,
396
+ children: children
397
+ });
398
+ }
399
+
400
+ // Custom hook to use wallet context
401
+ export function useWallet() {
402
+ const context = useContext(WalletContext);
403
+ if (context === undefined) {
404
+ throw new Error('useWallet must be used within a WalletProvider');
405
+ }
406
+ return context;
407
+ }
408
+ export default WalletContext;
409
+ //# sourceMappingURL=wallet-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AsyncStorage","createContext","useContext","useEffect","useReducer","WDKService","walletReducer","getUniqueId","WALLET_CONTEXT_INITIAL_STATE","jsx","_jsx","STORAGE_KEY_WALLET","STORAGE_KEY_ADDRESSES","STORAGE_KEY_BALANCES","STORAGE_KEY_TRANSACTIONS","WalletContext","undefined","WalletProvider","children","config","state","dispatch","setConfig","indexer","version","initializeWDK","loadStoredWallet","enabledAssets","wallet","addressMap","addresses","fetchBalances","fetchTransactions","isInitialized","saveWalletToStorage","stored","getItem","data","JSON","parse","parsed","type","payload","error","Error","message","console","setItem","stringify","getWalletAddresses","resolveWalletAddresses","clearError","initialize","errorMessage","createWallet","params","prf","mnemonic","importSeedPhrase","seedPhrase","createSeed","walletName","name","unlockWallet","clearWallet","removeItem","getUpdatedBalances","balanceMap","resolveWalletBalances","enableCaching","getUpdatedTransactions","transactionMap","resolveWalletTransactions","forceUpdate","refreshWalletBalance","refreshTransactions","value","Provider","useWallet","context"],"sourceRoot":"../../../src","sources":["contexts/wallet-context.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ // Import polyfills first - these must be loaded before any other code
4
+ import "./polyfills.js";
5
+
6
+ // Export the wallet context and provider
7
+ export { useWallet, default as WalletContext, WalletProvider } from "./contexts/wallet-context.js";
8
+ // Export WDK service
9
+ export { WDKService, wdkService, SMART_CONTRACT_BALANCE_ADDRESSES } from "./services/wdk-service/index.js";
10
+
11
+ // Export all types
12
+
13
+ // Export enums (can be used as both types and values)
14
+ export { AssetAddressMap, AssetBalanceMap, AssetTicker, NetworkType } from "./services/wdk-service/types.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useWallet","default","WalletContext","WalletProvider","WDKService","wdkService","SMART_CONTRACT_BALANCE_ADDRESSES","AssetAddressMap","AssetBalanceMap","AssetTicker","NetworkType"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,OAAO,gBAAa;;AAEpB;AACA,SACEA,SAAS,EACTC,OAAO,IAAIC,aAAa,EACxBC,cAAc,QACT,8BAA2B;AAGlC;AACA,SACEC,UAAU,EACVC,UAAU,EACVC,gCAAgC,QAC3B,iCAAwB;;AAE/B;;AAGA;AACA,SACEC,eAAe,EACfC,eAAe,EACfC,WAAW,EACXC,WAAW,QACN,iCAA8B","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Polyfills for React Native environment
5
+ * This file sets up necessary polyfills for cryptographic and stream operations
6
+ * that are required by the WDK library and related crypto packages.
7
+ */
8
+
9
+ import { Buffer } from '@craftzdog/react-native-buffer';
10
+ import 'react-native-get-random-values';
11
+
12
+ // Set up Buffer polyfill
13
+ if (typeof global.Buffer === 'undefined') {
14
+ // @ts-ignore
15
+ global.Buffer = Buffer;
16
+ }
17
+
18
+ // Set up process polyfill for stream operations
19
+ if (typeof global.process === 'undefined') {
20
+ // @ts-ignore
21
+ global.process = require('process');
22
+ }
23
+
24
+ // Initialize crypto polyfill after Buffer and process are available
25
+ if (typeof global.crypto === 'undefined') {
26
+ try {
27
+ const crypto = require('react-native-crypto');
28
+ // @ts-ignore
29
+ global.crypto = crypto;
30
+ } catch (e) {
31
+ console.warn('Failed to load crypto polyfill:', e);
32
+ }
33
+ }
34
+ //# sourceMappingURL=polyfills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Buffer","global","process","require","crypto","e","console","warn"],"sourceRoot":"../../src","sources":["polyfills.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,gCAAgC;AACvD,OAAO,gCAAgC;;AAEvC;AACA,IAAI,OAAOC,MAAM,CAACD,MAAM,KAAK,WAAW,EAAE;EACxC;EACAC,MAAM,CAACD,MAAM,GAAGA,MAAM;AACxB;;AAEA;AACA,IAAI,OAAOC,MAAM,CAACC,OAAO,KAAK,WAAW,EAAE;EACzC;EACAD,MAAM,CAACC,OAAO,GAAGC,OAAO,CAAC,SAAS,CAAC;AACrC;;AAEA;AACA,IAAI,OAAOF,MAAM,CAACG,MAAM,KAAK,WAAW,EAAE;EACxC,IAAI;IACF,MAAMA,MAAM,GAAGD,OAAO,CAAC,qBAAqB,CAAC;IAC7C;IACAF,MAAM,CAACG,MAAM,GAAGA,MAAM;EACxB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVC,OAAO,CAACC,IAAI,CAAC,iCAAiC,EAAEF,CAAC,CAAC;EACpD;AACF","ignoreList":[]}