react-native-fpay 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/FountainPayProvider.js +108 -18
- package/lib/module/FountainPayProvider.js.map +1 -1
- package/lib/module/core/api/client.js +13 -1
- package/lib/module/core/api/client.js.map +1 -1
- package/lib/module/core/api/index.js +66 -24
- package/lib/module/core/api/index.js.map +1 -1
- package/lib/module/engine/BLEReceiverService.js.map +1 -1
- package/lib/module/engine/BLESenderService.js.map +1 -1
- package/lib/module/engine/FPEngine.js +164 -43
- package/lib/module/engine/FPEngine.js.map +1 -1
- package/lib/module/engine/NearbyUsersService.js +1 -1
- package/lib/module/engine/NearbyUsersService.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/store/FPStore.js +155 -0
- package/lib/module/store/FPStore.js.map +1 -0
- package/lib/module/ui/components/AnimatedDots.js +3 -3
- package/lib/module/ui/components/AnimatedDots.js.map +1 -1
- package/lib/module/ui/components/ConfirmScreen.js +137 -123
- package/lib/module/ui/components/ConfirmScreen.js.map +1 -1
- package/lib/module/ui/components/FPButton.js.map +1 -1
- package/lib/module/ui/components/LoadingAnimation/InLoading.js +3 -3
- package/lib/module/ui/components/LoadingAnimation/InLoading.js.map +1 -1
- package/lib/module/ui/components/LoadingAnimation/index.js +3 -3
- package/lib/module/ui/components/LoadingAnimation/index.js.map +1 -1
- package/lib/module/ui/components/OtpInput/OTPInputView.js +11 -11
- package/lib/module/ui/components/OtpInput/OTPInputView.js.map +1 -1
- package/lib/module/ui/components/OtpInput/Styles.js +1 -1
- package/lib/module/ui/components/OtpInput/helpers/codeToArray.js +1 -1
- package/lib/module/ui/components/OtpInput/helpers/device.js.map +1 -1
- package/lib/module/ui/components/OtpInput/helpers/styles.js.map +1 -1
- package/lib/module/ui/components/OtpInput/index.js +3 -1
- package/lib/module/ui/components/OtpInput/index.js.map +1 -1
- package/lib/module/ui/components/PulseAnimation.js +2 -2
- package/lib/module/ui/components/PulseAnimation.js.map +1 -1
- package/lib/module/ui/modals/FPPaymentRequestModal.js +8 -7
- package/lib/module/ui/modals/FPPaymentRequestModal.js.map +1 -1
- package/lib/module/ui/modals/FPShell.js +2 -0
- package/lib/module/ui/modals/FPShell.js.map +1 -1
- package/lib/module/ui/screens/ReceiveScreen.js +8 -9
- package/lib/module/ui/screens/ReceiveScreen.js.map +1 -1
- package/lib/module/ui/screens/SendScreen.js +43 -94
- package/lib/module/ui/screens/SendScreen.js.map +1 -1
- package/lib/module/ui/screens/styles.js +15 -3
- package/lib/module/ui/screens/styles.js.map +1 -1
- package/lib/module/ui/screens/sub/receivePayment/Nfc/index.js +4 -4
- package/lib/module/ui/screens/sub/receivePayment/Nfc/index.js.map +1 -1
- package/lib/module/ui/screens/sub/receivePayment/Qr/index.js +5 -5
- package/lib/module/ui/screens/sub/receivePayment/Qr/index.js.map +1 -1
- package/lib/module/ui/screens/sub/receivePayment/Transfer/index.js +10 -11
- package/lib/module/ui/screens/sub/receivePayment/Transfer/index.js.map +1 -1
- package/lib/module/ui/screens/sub/sendPayment/BluetoothSubScreen.js +31 -8
- package/lib/module/ui/screens/sub/sendPayment/BluetoothSubScreen.js.map +1 -1
- package/lib/module/ui/screens/sub/sendPayment/NFCSubScreen.js +12 -8
- package/lib/module/ui/screens/sub/sendPayment/NFCSubScreen.js.map +1 -1
- package/lib/module/ui/screens/sub/sendPayment/NQRSubScreen.js +17 -5
- package/lib/module/ui/screens/sub/sendPayment/NQRSubScreen.js.map +1 -1
- package/lib/module/ui/screens/sub/sendPayment/ProximitySubScreen.js +67 -35
- package/lib/module/ui/screens/sub/sendPayment/ProximitySubScreen.js.map +1 -1
- package/lib/module/ui/screens/sub/sendPayment/TransferSubScreen.js +110 -34
- package/lib/module/ui/screens/sub/sendPayment/TransferSubScreen.js.map +1 -1
- package/lib/module/ui/theme/index.js.map +1 -1
- package/lib/typescript/src/FountainPayProvider.d.ts +1 -1
- package/lib/typescript/src/FountainPayProvider.d.ts.map +1 -1
- package/lib/typescript/src/core/api/client.d.ts.map +1 -1
- package/lib/typescript/src/core/api/index.d.ts +42 -26
- package/lib/typescript/src/core/api/index.d.ts.map +1 -1
- package/lib/typescript/src/core/types/index.d.ts +53 -28
- package/lib/typescript/src/core/types/index.d.ts.map +1 -1
- package/lib/typescript/src/engine/BLEReceiverService.d.ts +2 -0
- package/lib/typescript/src/engine/BLEReceiverService.d.ts.map +1 -1
- package/lib/typescript/src/engine/BLESenderService.d.ts.map +1 -1
- package/lib/typescript/src/engine/FPEngine.d.ts +5 -3
- package/lib/typescript/src/engine/FPEngine.d.ts.map +1 -1
- package/lib/typescript/src/engine/useIsForeground.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/store/FPStore.d.ts +60 -0
- package/lib/typescript/src/store/FPStore.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/AnimatedDots.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/ConfirmScreen.d.ts +5 -5
- package/lib/typescript/src/ui/components/ConfirmScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/FPButton.d.ts +1 -1
- package/lib/typescript/src/ui/components/FPButton.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/LoadingAnimation/InLoading.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/LoadingAnimation/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/OtpInput/OTPInputView.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/OtpInput/helpers/codeToArray.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/OtpInput/helpers/device.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/OtpInput/helpers/styles.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/OtpInput/helpers/types.d.ts +1 -2
- package/lib/typescript/src/ui/components/OtpInput/helpers/types.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/OtpInput/index.d.ts +3 -1
- package/lib/typescript/src/ui/components/OtpInput/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/components/PulseAnimation.d.ts.map +1 -1
- package/lib/typescript/src/ui/modals/FPPaymentRequestModal.d.ts.map +1 -1
- package/lib/typescript/src/ui/modals/FPShell.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts +1 -1
- package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/SendScreen.d.ts +1 -1
- package/lib/typescript/src/ui/screens/SendScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/styles.d.ts +197 -0
- package/lib/typescript/src/ui/screens/styles.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/receivePayment/Nfc/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/receivePayment/Qr/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/receivePayment/Transfer/index.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/BluetoothSubScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/NFCSubScreen.d.ts +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/NFCSubScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/NQRSubScreen.d.ts +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/NQRSubScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/ProximitySubScreen.d.ts +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/ProximitySubScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/TransferSubScreen.d.ts +1 -1
- package/lib/typescript/src/ui/screens/sub/sendPayment/TransferSubScreen.d.ts.map +1 -1
- package/lib/typescript/src/ui/theme/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/FountainPayProvider.tsx +163 -24
- package/src/core/api/client.ts +26 -4
- package/src/core/api/index.ts +170 -49
- package/src/core/types/index.ts +81 -48
- package/src/engine/BLEReceiverService.ts +86 -28
- package/src/engine/BLESenderService.ts +133 -69
- package/src/engine/FPEngine.ts +316 -97
- package/src/engine/NearbyUsersService.ts +6 -6
- package/src/engine/useIsForeground.ts +12 -12
- package/src/index.ts +10 -4
- package/src/store/FPStore.ts +216 -0
- package/src/ui/components/AnimatedDots.tsx +4 -5
- package/src/ui/components/ConfirmScreen.tsx +182 -169
- package/src/ui/components/FPButton.tsx +50 -9
- package/src/ui/components/LoadingAnimation/InLoading.tsx +23 -27
- package/src/ui/components/LoadingAnimation/index.tsx +3 -7
- package/src/ui/components/OtpInput/OTPInputView.tsx +254 -205
- package/src/ui/components/OtpInput/Styles.ts +1 -1
- package/src/ui/components/OtpInput/helpers/codeToArray.ts +2 -2
- package/src/ui/components/OtpInput/helpers/device.ts +4 -3
- package/src/ui/components/OtpInput/helpers/styles.ts +13 -14
- package/src/ui/components/OtpInput/helpers/types.ts +83 -79
- package/src/ui/components/OtpInput/index.tsx +18 -15
- package/src/ui/components/PulseAnimation.tsx +3 -5
- package/src/ui/modals/FPPaymentRequestModal.tsx +111 -28
- package/src/ui/modals/FPShell.tsx +60 -34
- package/src/ui/screens/ReceiveScreen.tsx +245 -84
- package/src/ui/screens/SendScreen.tsx +419 -167
- package/src/ui/screens/styles.ts +17 -5
- package/src/ui/screens/sub/receivePayment/Nfc/index.tsx +17 -25
- package/src/ui/screens/sub/receivePayment/Qr/index.tsx +21 -20
- package/src/ui/screens/sub/receivePayment/Transfer/index.tsx +34 -28
- package/src/ui/screens/sub/sendPayment/BluetoothSubScreen.tsx +135 -67
- package/src/ui/screens/sub/sendPayment/NFCSubScreen.tsx +188 -112
- package/src/ui/screens/sub/sendPayment/NQRSubScreen.tsx +102 -69
- package/src/ui/screens/sub/sendPayment/ProximitySubScreen.tsx +225 -99
- package/src/ui/screens/sub/sendPayment/TransferSubScreen.tsx +209 -89
- package/src/ui/theme/index.ts +14 -2
|
@@ -8,9 +8,10 @@ import { AppState, Vibration } from 'react-native';
|
|
|
8
8
|
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
9
9
|
import Geolocation from '@react-native-community/geolocation';
|
|
10
10
|
import { initClient } from "../core/api/client.js";
|
|
11
|
-
import { proximityAPI,
|
|
11
|
+
import { proximityAPI, accountAPI } from "../core/api/index.js";
|
|
12
12
|
import BLEReceiverService from "./BLEReceiverService.js";
|
|
13
13
|
import BLESenderService from "./BLESenderService.js";
|
|
14
|
+
import { getFPStore, isBalanceCacheValid } from "../store/FPStore.js";
|
|
14
15
|
|
|
15
16
|
// ── Module-level singleton state ──────────────────────────────
|
|
16
17
|
let _apiKey = null;
|
|
@@ -23,6 +24,7 @@ let _isListening = false;
|
|
|
23
24
|
let _proximitySessionId = null;
|
|
24
25
|
let _proximityInterval = null;
|
|
25
26
|
let _appStateSub = null;
|
|
27
|
+
const PROXIMITY_THRESHOLD_METERS = 100;
|
|
26
28
|
|
|
27
29
|
// ── Internal event bus ────────────────────────────────────────
|
|
28
30
|
// Used to communicate between FPEngine and the UI layer
|
|
@@ -62,31 +64,72 @@ function _getLocation() {
|
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
async function _startProximityBroadcast() {
|
|
65
|
-
|
|
67
|
+
const store = getFPStore();
|
|
68
|
+
const psspId = store.psspId;
|
|
69
|
+
if (!_user || !psspId) {
|
|
70
|
+
console.warn('[FPay Engine] Proximity skipped — no user or psspId');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
66
73
|
try {
|
|
67
74
|
const loc = await _getLocation();
|
|
68
|
-
|
|
75
|
+
|
|
76
|
+
// Check if we've moved more than 100m from last broadcast position
|
|
77
|
+
const lastPos = store.lastBroadcastPosition;
|
|
78
|
+
if (lastPos) {
|
|
79
|
+
const distance = _getDistanceMeters(lastPos.latitude, lastPos.longitude, loc.lat, loc.lng);
|
|
80
|
+
if (distance < PROXIMITY_THRESHOLD_METERS) {
|
|
81
|
+
console.log(`[FPay Engine] Within ${Math.round(distance)}m of last broadcast — skipping`);
|
|
82
|
+
return; // Not moved enough — no need to broadcast
|
|
83
|
+
}
|
|
84
|
+
console.log(`[FPay Engine] Moved ${Math.round(distance)}m — broadcasting new position`);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Broadcast new position
|
|
88
|
+
const session = await proximityAPI.broadcast(psspId, {
|
|
69
89
|
latitude: loc.lat,
|
|
70
90
|
longitude: loc.lng,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
91
|
+
user_type: 'VIRTUAL_ACCOUNT_USER'
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
// Save new position to store
|
|
95
|
+
store.setLastBroadcastPosition({
|
|
96
|
+
latitude: loc.lat,
|
|
97
|
+
longitude: loc.lng
|
|
77
98
|
});
|
|
78
99
|
_proximitySessionId = session.sessionId;
|
|
100
|
+
console.log('[FPay Engine] Proximity broadcast active at:', loc.lat, loc.lng);
|
|
101
|
+
|
|
102
|
+
// Start heartbeat interval
|
|
79
103
|
_clearProximityInterval();
|
|
80
104
|
_proximityInterval = setInterval(async () => {
|
|
81
105
|
if (!_proximitySessionId) return;
|
|
82
106
|
try {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
107
|
+
const current = await _getLocation();
|
|
108
|
+
const saved = getFPStore().lastBroadcastPosition;
|
|
109
|
+
if (saved) {
|
|
110
|
+
const moved = _getDistanceMeters(saved.latitude, saved.longitude, current.lat, current.lng);
|
|
111
|
+
if (moved >= PROXIMITY_THRESHOLD_METERS) {
|
|
112
|
+
// Moved significantly — broadcast new position
|
|
113
|
+
console.log(`[FPay Engine] Heartbeat: moved ${Math.round(moved)}m — re-broadcasting`);
|
|
114
|
+
await proximityAPI.broadcast(psspId, {
|
|
115
|
+
latitude: current.lat,
|
|
116
|
+
longitude: current.lng,
|
|
117
|
+
user_type: 'VIRTUAL_ACCOUNT_USER'
|
|
118
|
+
});
|
|
119
|
+
getFPStore().setLastBroadcastPosition({
|
|
120
|
+
latitude: current.lat,
|
|
121
|
+
longitude: current.lng
|
|
122
|
+
});
|
|
123
|
+
} else {
|
|
124
|
+
// Just send heartbeat to keep session alive
|
|
125
|
+
await proximityAPI.heartbeat(_proximitySessionId, current.lat, current.lng);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
} catch {
|
|
129
|
+
/* silent */
|
|
130
|
+
}
|
|
86
131
|
}, 15000);
|
|
87
|
-
console.log('[FPay Engine] Proximity broadcast active');
|
|
88
132
|
} catch (err) {
|
|
89
|
-
// Non-fatal — app still works without proximity
|
|
90
133
|
console.warn('[FPay Engine] Proximity unavailable:', err.message);
|
|
91
134
|
}
|
|
92
135
|
}
|
|
@@ -164,7 +207,8 @@ async function _handleIncomingRequest(req, deviceId) {
|
|
|
164
207
|
const fpRequest = {
|
|
165
208
|
requestId: req.senderId + '_' + req.timestamp,
|
|
166
209
|
sender: {
|
|
167
|
-
|
|
210
|
+
firstName: req.senderName,
|
|
211
|
+
lastName: '',
|
|
168
212
|
phone: req.senderPhone,
|
|
169
213
|
email: req.senderEmail,
|
|
170
214
|
userId: req.senderId,
|
|
@@ -182,7 +226,71 @@ async function _handleIncomingRequest(req, deviceId) {
|
|
|
182
226
|
// 2. Fire internal event → FPPaymentRequestModal will render the Accept/Decline UI
|
|
183
227
|
_emitEvent('incoming_payment_request', fpRequest);
|
|
184
228
|
}
|
|
229
|
+
async function _resolveAccount(user, callbacks) {
|
|
230
|
+
const store = getFPStore();
|
|
231
|
+
// const existingPsspId = store.psspId; // ← read before clearing
|
|
185
232
|
|
|
233
|
+
// // Now safe to clear stale data
|
|
234
|
+
// store.clearUser();
|
|
235
|
+
// store.clearAccount();
|
|
236
|
+
// store.clearBalance();
|
|
237
|
+
const psspId = store.psspId;
|
|
238
|
+
try {
|
|
239
|
+
if (psspId) {
|
|
240
|
+
// ← use the saved value, not store.psspId
|
|
241
|
+
console.log('[FPay Engine] Existing PSSP id found — fetching account...');
|
|
242
|
+
try {
|
|
243
|
+
const account = await accountAPI.getAccount(psspId);
|
|
244
|
+
store.setAccount(account);
|
|
245
|
+
store.setUser(user);
|
|
246
|
+
callbacks.onAccountReady?.(account);
|
|
247
|
+
_fetchBalance();
|
|
248
|
+
return;
|
|
249
|
+
} catch (err) {
|
|
250
|
+
console.warn('[FPay Engine] Existing account fetch failed — creating new...');
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
// Create new account
|
|
255
|
+
const account = await accountAPI.generate(user);
|
|
256
|
+
if (account.status) {
|
|
257
|
+
store.setPsspId(account.id);
|
|
258
|
+
store.setAccount(account);
|
|
259
|
+
store.setUser(user);
|
|
260
|
+
callbacks.onAccountReady?.(account);
|
|
261
|
+
_fetchBalance();
|
|
262
|
+
}
|
|
263
|
+
} catch (err) {
|
|
264
|
+
callbacks.onAccountError?.(err, user);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
async function _fetchBalance() {
|
|
268
|
+
const {
|
|
269
|
+
psspId
|
|
270
|
+
} = getFPStore();
|
|
271
|
+
if (!psspId) return;
|
|
272
|
+
if (isBalanceCacheValid()) {
|
|
273
|
+
console.log('[FPay Engine] Balance cache valid — skipping fetch.');
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
try {
|
|
277
|
+
const {
|
|
278
|
+
balance
|
|
279
|
+
} = await accountAPI.getBalance(psspId);
|
|
280
|
+
getFPStore().setBalance(balance);
|
|
281
|
+
console.log('[FPay Engine] Balance fetched:', balance);
|
|
282
|
+
} catch (err) {
|
|
283
|
+
console.warn('[FPay Engine] Balance fetch failed (non-fatal):', err);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
function _getDistanceMeters(lat1, lng1, lat2, lng2) {
|
|
287
|
+
const R = 6371000; // Earth radius in meters
|
|
288
|
+
const toRad = deg => deg * Math.PI / 180;
|
|
289
|
+
const dLat = toRad(lat2 - lat1);
|
|
290
|
+
const dLng = toRad(lng2 - lng1);
|
|
291
|
+
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * Math.sin(dLng / 2) * Math.sin(dLng / 2);
|
|
292
|
+
return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
293
|
+
}
|
|
186
294
|
// ── FPEngine public API ───────────────────────────────────────
|
|
187
295
|
|
|
188
296
|
export const FPEngine = {
|
|
@@ -193,25 +301,16 @@ export const FPEngine = {
|
|
|
193
301
|
_user = user;
|
|
194
302
|
_options = options;
|
|
195
303
|
_callbacks = callbacks;
|
|
196
|
-
|
|
197
|
-
// Boot the HTTP client
|
|
198
304
|
initClient(apiKey, {
|
|
199
305
|
baseUrl: options.baseUrl,
|
|
200
306
|
environment: options.environment
|
|
201
307
|
});
|
|
308
|
+
const displayName = options.bluetoothDisplayName ?? `${user.firstName} ${user.lastName}`;
|
|
309
|
+
await BLEReceiverService.initializeWithUserInfo(user.userId ?? '', displayName, 'FountainPay');
|
|
202
310
|
|
|
203
|
-
//
|
|
204
|
-
|
|
205
|
-
await BLEReceiverService.initializeWithUserInfo(user.userId ?? user.userId, displayName, 'FountainPay');
|
|
206
|
-
|
|
207
|
-
// Start BLE advertising + proximity broadcast in parallel.
|
|
208
|
-
// Both are non-fatal — SDK still works if either fails.
|
|
209
|
-
await Promise.allSettled([BLEReceiverService.startAdvertising(), _startProximityBroadcast()]);
|
|
210
|
-
|
|
211
|
-
// Initialize BLE sender (central) — used when user sends payments via BT
|
|
311
|
+
// Start BLE advertising immediately — doesn't need psspId
|
|
312
|
+
await BLEReceiverService.startAdvertising().catch(err => console.warn('[FPay Engine] BLE advertising failed (non-fatal):', err));
|
|
212
313
|
await BLESenderService.initialize().catch(err => console.warn('[FPay Engine] BLE sender init failed (non-fatal):', err));
|
|
213
|
-
|
|
214
|
-
// Resume broadcasting when app returns to foreground
|
|
215
314
|
_appStateSub = AppState.addEventListener('change', next => {
|
|
216
315
|
if (next === 'active' && _isReady) {
|
|
217
316
|
_startProximityBroadcast();
|
|
@@ -222,6 +321,11 @@ export const FPEngine = {
|
|
|
222
321
|
});
|
|
223
322
|
_isReady = true;
|
|
224
323
|
console.log('[FPay Engine] Initialized. Advertising as:', displayName);
|
|
324
|
+
|
|
325
|
+
// Resolve account first — sets psspId in store
|
|
326
|
+
// Then broadcast proximity — needs psspId to be set
|
|
327
|
+
await _resolveAccount(user, callbacks);
|
|
328
|
+
await _startProximityBroadcast(); // ← moved here, after psspId is available
|
|
225
329
|
},
|
|
226
330
|
async setAccountDetails(account) {
|
|
227
331
|
_account = account;
|
|
@@ -248,28 +352,33 @@ export const FPEngine = {
|
|
|
248
352
|
async acceptPaymentRequest(request) {
|
|
249
353
|
try {
|
|
250
354
|
const transactionId = 'txn_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9);
|
|
355
|
+
const store = getFPStore();
|
|
356
|
+
const account = getFPStore().account;
|
|
251
357
|
|
|
252
|
-
// Build response
|
|
253
|
-
// { accepted, transactionId, timestamp, accountDetails, requestTimestamp }
|
|
358
|
+
// Build BLE response with receiver's wallet details
|
|
254
359
|
const response = {
|
|
255
360
|
accepted: true,
|
|
256
361
|
transactionId,
|
|
257
362
|
timestamp: Date.now(),
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
363
|
+
requestTimestamp: new Date(request.timestamp).getTime(),
|
|
364
|
+
accountDetails: account ? {
|
|
365
|
+
accountName: account.accountName,
|
|
366
|
+
accountNumber: account.accountNumber,
|
|
367
|
+
bankName: account.bankName ?? '',
|
|
368
|
+
bankCode: account.bankCode ?? '',
|
|
369
|
+
userId: store.psspId ?? undefined,
|
|
370
|
+
type: 'USER'
|
|
371
|
+
} : undefined
|
|
266
372
|
};
|
|
267
|
-
|
|
268
|
-
|
|
373
|
+
console.log('[FPay Engine] _account at accept time:', _account);
|
|
374
|
+
console.log('[FPay Engine] store account at accept time:', getFPStore().account);
|
|
375
|
+
console.log('[FPay Engine] response at accept time:', response);
|
|
376
|
+
// Send response back to sender via BLE
|
|
269
377
|
await BLEReceiverService.sendPaymentResponse(response);
|
|
270
378
|
console.log('[FPay Engine] Acceptance response sent to sender');
|
|
271
379
|
|
|
272
|
-
// Notify host app
|
|
380
|
+
// Notify host app that payment is incoming
|
|
381
|
+
// Status is 'pending' until sender confirms transfer on their end
|
|
273
382
|
const tx = {
|
|
274
383
|
id: transactionId,
|
|
275
384
|
reference: transactionId,
|
|
@@ -277,11 +386,17 @@ export const FPEngine = {
|
|
|
277
386
|
channel: 'bluetooth',
|
|
278
387
|
amount: request.amount,
|
|
279
388
|
currency: request.currency,
|
|
280
|
-
status: '
|
|
389
|
+
status: 'pending',
|
|
390
|
+
// ← pending until sender processes
|
|
281
391
|
sender: request.sender,
|
|
282
392
|
createdAt: new Date().toISOString()
|
|
283
393
|
};
|
|
284
394
|
_callbacks.onPaymentReceived?.(tx);
|
|
395
|
+
|
|
396
|
+
// Refresh balance after a delay to give sender time to process
|
|
397
|
+
setTimeout(() => {
|
|
398
|
+
_fetchBalance();
|
|
399
|
+
}, 5000); // ← 5s delay to allow sender's transfer to settle
|
|
285
400
|
} catch (err) {
|
|
286
401
|
_callbacks.onError?.(err);
|
|
287
402
|
}
|
|
@@ -315,7 +430,13 @@ export const FPEngine = {
|
|
|
315
430
|
// ── Other SDK actions ──────────────────────────────────────
|
|
316
431
|
|
|
317
432
|
async generateAccount(req) {
|
|
318
|
-
return
|
|
433
|
+
return accountAPI.generate(req);
|
|
434
|
+
},
|
|
435
|
+
async refreshBalance() {
|
|
436
|
+
await _fetchBalance();
|
|
437
|
+
},
|
|
438
|
+
closeSend() {
|
|
439
|
+
_emitEvent('close_send');
|
|
319
440
|
},
|
|
320
441
|
showSend(amount, currency) {
|
|
321
442
|
_emitEvent('show_send', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AppState","Vibration","AsyncStorage","Geolocation","initClient","proximityAPI","walletAPI","BLEReceiverService","BLESenderService","_apiKey","_user","_account","_callbacks","_options","_isReady","_isListening","_proximitySessionId","_proximityInterval","_appStateSub","_listeners","Map","_emitEvent","event","data","get","forEach","fn","_onEvent","has","set","Set","add","delete","_clearProximityInterval","clearInterval","_getLocation","Promise","resolve","reject","getCurrentPosition","p","lat","coords","latitude","lng","longitude","e","code","message","enableHighAccuracy","timeout","maximumAge","_startProximityBroadcast","loc","session","broadcast","user","name","email","accountName","accountNumber","bankCode","bankName","sessionId","setInterval","l","heartbeat","console","log","err","warn","_stopProximityBroadcast","unregister","catch","_validateRequest","req","AGE_LIMIT","Date","now","timestamp","raw","getItem","blocked","JSON","parse","includes","senderId","amount","recent","isDuplicate","some","r","Math","abs","setItem","stringify","slice","_handleIncomingRequest","deviceId","senderName","currency","isValid","sendPaymentResponse","accepted","vibrate","fpRequest","requestId","sender","phone","senderPhone","senderEmail","userId","deviceName","toISOString","onPaymentRequest","FPEngine","initialize","apiKey","options","callbacks","baseUrl","environment","displayName","bluetoothDisplayName","initializeWithUserInfo","allSettled","startAdvertising","addEventListener","next","setAccountDetails","account","deviceConnection","connectToDevice","startListening","listenForPaymentRequests","stopListening","acceptPaymentRequest","request","transactionId","random","toString","substr","response","accountDetails","undefined","requestTimestamp","getTime","tx","id","reference","type","channel","status","createdAt","onPaymentReceived","onError","declinePaymentRequest","onPaymentDeclined","scanForBluetoothDevices","onDeviceFound","durationMs","scanForDevices","sendBluetoothPaymentRequest","sendPaymentRequest","generateAccount","generate","showSend","showReceive","getUser","getAccount","isReady","getCallbacks","destroy","stopAdvertising","remove","clear"],"sourceRoot":"../../../src","sources":["engine/FPEngine.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA,SAASA,QAAQ,EAAuBC,SAAS,QAAkB,cAAc;AACjF,OAAOC,YAAY,MAAM,2CAA2C;AACpE,OAAOC,WAAW,MAAM,qCAAqC;AAC7D,SAASC,UAAU,QAAQ,uBAAoB;AAC/C,SAASC,YAAY,EAAEC,SAAS,QAAQ,sBAAa;AAYrD,OAAOC,kBAAkB,MAA2D,yBAAsB;AAC1G,OAAOC,gBAAgB,MAAmE,uBAAoB;;AAE9G;AACA,IAAIC,OAAsB,GAAG,IAAI;AACjC,IAAIC,KAAwB,GAAG,IAAI;AACnC,IAAIC,QAAoC,GAAG,IAAI;AAC/C,IAAIC,UAAuB,GAAG,CAAC,CAAC;AAChC,IAAIC,QAAsB,GAAG,CAAC,CAAC;AAC/B,IAAIC,QAAQ,GAAG,KAAK;AACpB,IAAIC,YAAY,GAAG,KAAK;AACxB,IAAIC,mBAAkC,GAAG,IAAI;AAC7C,IAAIC,kBAAyD,GAAG,IAAI;AACpE,IAAIC,YAAiE,GAAG,IAAI;;AAE5E;AACA;AACA;;AAGA,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAExD,OAAO,SAASC,UAAUA,CAACC,KAAkB,EAAEC,IAAc,EAAQ;EACnEJ,UAAU,CAACK,GAAG,CAACF,KAAK,CAAC,EAAEG,OAAO,CAACC,EAAE,IAAIA,EAAE,CAACH,IAAI,CAAC,CAAC;AAChD;AAEA,OAAO,SAASI,QAAQA,CAACL,KAAkB,EAAEI,EAAY,EAAc;EACrE,IAAI,CAACP,UAAU,CAACS,GAAG,CAACN,KAAK,CAAC,EAAEH,UAAU,CAACU,GAAG,CAACP,KAAK,EAAE,IAAIQ,GAAG,CAAC,CAAC,CAAC;EAC5DX,UAAU,CAACK,GAAG,CAACF,KAAK,CAAC,CAAES,GAAG,CAACL,EAAE,CAAC;EAC9B,OAAO,MAAMP,UAAU,CAACK,GAAG,CAACF,KAAK,CAAC,EAAEU,MAAM,CAACN,EAAE,CAAC;AAChD;;AAEA;;AAEA,SAASO,uBAAuBA,CAAA,EAAS;EACvC,IAAIhB,kBAAkB,EAAE;IAAEiB,aAAa,CAACjB,kBAAkB,CAAC;IAAEA,kBAAkB,GAAG,IAAI;EAAE;AAC1F;AAEA,SAASkB,YAAYA,CAAA,EAA0C;EAC7D,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtCnC,WAAW,CAACoC,kBAAkB,CAC5BC,CAAC,IAAIH,OAAO,CAAC;MAAEI,GAAG,EAAED,CAAC,CAACE,MAAM,CAACC,QAAQ;MAAEC,GAAG,EAAEJ,CAAC,CAACE,MAAM,CAACG;IAAU,CAAC,CAAC,EACjEC,CAAC,IAAIR,MAAM,CAAC;MAAES,IAAI,EAAE,iBAAiB;MAAEC,OAAO,EAAEF,CAAC,CAACE;IAAQ,CAAY,CAAC,EACvE;MAAEC,kBAAkB,EAAE,IAAI;MAAEC,OAAO,EAAE,IAAI;MAAEC,UAAU,EAAE;IAAM,CAC/D,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,eAAeC,wBAAwBA,CAAA,EAAkB;EACvD,IAAI,CAAC1C,KAAK,IAAI,CAACC,QAAQ,EAAE;EACzB,IAAI;IACF,MAAM0C,GAAG,GAAG,MAAMlB,YAAY,CAAC,CAAC;IAChC,MAAMmB,OAAO,GAAG,MAAMjD,YAAY,CAACkD,SAAS,CAAC;MAC3CZ,QAAQ,EAAEU,GAAG,CAACZ,GAAG;MAAEI,SAAS,EAAEQ,GAAG,CAACT,GAAG;MACrCY,IAAI,EAAW9C,KAAK,EAAE+C,IAAI,IAAI,EAAE;MAChCC,KAAK,EAAUhD,KAAK,EAAEgD,KAAK,IAAI,EAAE;MACjCC,WAAW,EAAIhD,QAAQ,EAAEgD,WAAW,IAAI,EAAE;MAC1CC,aAAa,EAAEjD,QAAQ,EAAEiD,aAAa,IAAI,EAAE;MAC5CC,QAAQ,EAAOlD,QAAQ,EAAEkD,QAAQ,IAAI,EAAE;MACvCC,QAAQ,EAAOnD,QAAQ,EAAEmD,QAAQ,IAAI;IACvC,CAAC,CAAC;IACF9C,mBAAmB,GAAGsC,OAAO,CAACS,SAAS;IACvC9B,uBAAuB,CAAC,CAAC;IACzBhB,kBAAkB,GAAG+C,WAAW,CAAC,YAAY;MAC3C,IAAI,CAAChD,mBAAmB,EAAE;MAC1B,IAAI;QACF,MAAMiD,CAAC,GAAG,MAAM9B,YAAY,CAAC,CAAC;QAC9B,MAAM9B,YAAY,CAAC6D,SAAS,CAAClD,mBAAmB,EAAEiD,CAAC,CAACxB,GAAG,EAAEwB,CAAC,CAACrB,GAAG,CAAC;MACjE,CAAC,CAAC,MAAM,CAAE;IACZ,CAAC,EAAE,KAAK,CAAC;IACTuB,OAAO,CAACC,GAAG,CAAC,0CAA0C,CAAC;EACzD,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ;IACAF,OAAO,CAACG,IAAI,CAAC,sCAAsC,EAAGD,GAAG,CAAarB,OAAO,CAAC;EAChF;AACF;AAEA,eAAeuB,uBAAuBA,CAAA,EAAkB;EACtDtC,uBAAuB,CAAC,CAAC;EACzB,IAAIjB,mBAAmB,EAAE;IACvB,MAAMX,YAAY,CAACmE,UAAU,CAACxD,mBAAmB,CAAC,CAACyD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAClEzD,mBAAmB,GAAG,IAAI;EAC5B;AACF;;AAEA;AACA;;AAEA,eAAe0D,gBAAgBA,CAACC,GAAsB,EAAoB;EACxE;EACA,MAAMC,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;EAC/B,IAAIC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGH,GAAG,CAACI,SAAS,GAAGH,SAAS,EAAE;IAC1CT,OAAO,CAACC,GAAG,CAAC,yCAAyC,CAAC;IACtD,OAAO,KAAK;EACd;;EAEA;EACA,IAAI;IACF,MAAMY,GAAG,GAAG,MAAM9E,YAAY,CAAC+E,OAAO,CAAC,mBAAmB,CAAC;IAC3D,MAAMC,OAAiB,GAAGF,GAAG,GAAGG,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC,GAAG,EAAE;IACpD,IAAIE,OAAO,CAACG,QAAQ,CAACV,GAAG,CAACW,QAAQ,CAAC,EAAE;MAClCnB,OAAO,CAACC,GAAG,CAAC,2CAA2C,CAAC;MACxD,OAAO,KAAK;IACd;EACF,CAAC,CAAC,MAAM,CAAC;;EAET;EACA,IAAIO,GAAG,CAACY,MAAM,IAAI,CAAC,IAAIZ,GAAG,CAACY,MAAM,GAAG,QAAQ,EAAE;IAC5CpB,OAAO,CAACC,GAAG,CAAC,wCAAwC,EAAEO,GAAG,CAACY,MAAM,CAAC;IACjE,OAAO,KAAK;EACd;;EAEA;EACA,IAAI;IACF,MAAMP,GAAG,GAAG,MAAM9E,YAAY,CAAC+E,OAAO,CAAC,qBAAqB,CAAC;IAC7D,MAAMO,MAA2B,GAAGR,GAAG,GAAGG,IAAI,CAACC,KAAK,CAACJ,GAAG,CAAC,GAAG,EAAE;IAC9D,MAAMS,WAAW,GAAGD,MAAM,CAACE,IAAI,CAACC,CAAC,IAC/BA,CAAC,CAACL,QAAQ,KAAKX,GAAG,CAACW,QAAQ,IAC3BK,CAAC,CAACJ,MAAM,KAAOZ,GAAG,CAACY,MAAM,IACzBK,IAAI,CAACC,GAAG,CAACF,CAAC,CAACZ,SAAS,GAAGJ,GAAG,CAACI,SAAS,CAAC,GAAG,KAAK,CAAC;IAChD,CAAC;IACD;IACA,MAAM7E,YAAY,CAAC4F,OAAO,CACxB,qBAAqB,EACrBX,IAAI,CAACY,SAAS,CAAC,CAAC,GAAGP,MAAM,EAAEb,GAAG,CAAC,CAACqB,KAAK,CAAC,CAAC,EAAE,CAAC,CAC5C,CAAC;IACD,IAAIP,WAAW,EAAE;MACftB,OAAO,CAACC,GAAG,CAAC,2CAA2C,CAAC;MACxD,OAAO,KAAK;IACd;EACF,CAAC,CAAC,MAAM,CAAC;EAET,OAAO,IAAI;AACb;;AAEA;AACA;AACA;;AAEA,eAAe6B,sBAAsBA,CAACtB,GAAsB,EAAEuB,QAAgB,EAAiB;EAC7F/B,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAEO,GAAG,CAACwB,UAAU,EAAExB,GAAG,CAACyB,QAAQ,GAAGzB,GAAG,CAACY,MAAM,CAAC;EAEtG,MAAMc,OAAO,GAAG,MAAM3B,gBAAgB,CAACC,GAAG,CAAC;EAC3C,IAAI,CAAC0B,OAAO,EAAE;IACZ;IACA,MAAM9F,kBAAkB,CAAC+F,mBAAmB,CAAC;MAAEC,QAAQ,EAAE,KAAK;MAAExB,SAAS,EAAEF,IAAI,CAACC,GAAG,CAAC;IAAE,CAAC,CAAC,CAACL,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxG;EACF;;EAEA;EACAxE,SAAS,CAACuG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;;EAErC;EACA,MAAMC,SAAoC,GAAG;IAC3CC,SAAS,EAAE/B,GAAG,CAACW,QAAQ,GAAG,GAAG,GAAGX,GAAG,CAACI,SAAS;IAC7C4B,MAAM,EAAE;MACNlD,IAAI,EAAEkB,GAAG,CAACwB,UAAU;MACpBS,KAAK,EAAEjC,GAAG,CAACkC,WAAW;MACtBnD,KAAK,EAAEiB,GAAG,CAACmC,WAAW;MACtBC,MAAM,EAAEpC,GAAG,CAACW,QAAQ;MACpBY,QAAQ;MACRc,UAAU,EAAErC,GAAG,CAACwB;IAClB,CAAC;IACDZ,MAAM,EAAKZ,GAAG,CAACY,MAAM;IACrBa,QAAQ,EAAGzB,GAAG,CAACyB,QAAQ;IACvBrB,SAAS,EAAE,IAAIF,IAAI,CAACF,GAAG,CAACI,SAAS,CAAC,CAACkC,WAAW,CAAC;EACjD,CAAC;;EAED;EACArG,UAAU,CAACsG,gBAAgB,GAAGT,SAAS,CAAC;;EAExC;EACApF,UAAU,CAAC,0BAA0B,EAAEoF,SAAS,CAAC;AACnD;;AAEA;;AAEA,OAAO,MAAMU,QAAQ,GAAG;EAEtB;EACA;EACA,MAAMC,UAAUA,CACdC,MAAc,EACd7D,IAAgB,EAChB8D,OAAqB,GAAG,CAAC,CAAC,EAC1BC,SAAsB,GAAG,CAAC,CAAC,EACZ;IACf9G,OAAO,GAAM4G,MAAM;IACnB3G,KAAK,GAAQ8C,IAAI;IACjB3C,QAAQ,GAAKyG,OAAO;IACpB1G,UAAU,GAAG2G,SAAS;;IAEtB;IACAnH,UAAU,CAACiH,MAAM,EAAE;MAAEG,OAAO,EAAEF,OAAO,CAACE,OAAO;MAAEC,WAAW,EAAEH,OAAO,CAACG;IAAY,CAAC,CAAC;;IAElF;IACA,MAAMC,WAAW,GAAGJ,OAAO,CAACK,oBAAoB,IAAInE,IAAI,CAACC,IAAI;IAC7D,MAAMlD,kBAAkB,CAACqH,sBAAsB,CAC7CpE,IAAI,CAACuD,MAAM,IAAIvD,IAAI,CAACuD,MAAM,EAC1BW,WAAW,EACX,aACF,CAAC;;IAED;IACA;IACA,MAAMtF,OAAO,CAACyF,UAAU,CAAC,CACvBtH,kBAAkB,CAACuH,gBAAgB,CAAC,CAAC,EACrC1E,wBAAwB,CAAC,CAAC,CAC3B,CAAC;;IAEF;IACA,MAAM5C,gBAAgB,CAAC4G,UAAU,CAAC,CAAC,CAAC3C,KAAK,CAACJ,GAAG,IAC3CF,OAAO,CAACG,IAAI,CAAC,mDAAmD,EAAED,GAAG,CACvE,CAAC;;IAED;IACAnD,YAAY,GAAGlB,QAAQ,CAAC+H,gBAAgB,CAAC,QAAQ,EAAGC,IAAoB,IAAK;MAC3E,IAAIA,IAAI,KAAK,QAAQ,IAAIlH,QAAQ,EAAE;QACjCsC,wBAAwB,CAAC,CAAC;QAC1B7C,kBAAkB,CAACuH,gBAAgB,CAAC,CAAC,CAACrD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MACvD,CAAC,MAAM,IAAIuD,IAAI,KAAK,YAAY,EAAE;QAChC/F,uBAAuB,CAAC,CAAC;MAC3B;IACF,CAAC,CAAC;IAEFnB,QAAQ,GAAG,IAAI;IACfqD,OAAO,CAACC,GAAG,CAAC,4CAA4C,EAAEsD,WAAW,CAAC;EACxE,CAAC;EAED,MAAMO,iBAAiBA,CAACC,OAA4B,EAAgB;IAClEvH,QAAQ,GAAGuH,OAAO;EACpB,CAAC;EAID,MAAMC,gBAAgBA,CAAEjC,QAAgB,EAAgB;IACtD,MAAM1F,gBAAgB,CAAC4H,eAAe,CAAClC,QAAQ,CAAC;EAClD,CAAC;EAED;EACA;EACA;EACAmC,cAAcA,CAAA,EAAS;IACrB,IAAItH,YAAY,EAAE;IAClBA,YAAY,GAAG,IAAI;IACnBR,kBAAkB,CAAC+H,wBAAwB,CAACrC,sBAAsB,CAAC;IACnE9B,OAAO,CAACC,GAAG,CAAC,kDAAkD,CAAC;EACjE,CAAC;EAEDmE,aAAaA,CAAA,EAAS;IACpBxH,YAAY,GAAG,KAAK;IACpB;IACAR,kBAAkB,CAAC+H,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;EACvD,CAAC;EAED;EACA;EACA,MAAME,oBAAoBA,CAACC,OAAkC,EAAiB;IAC5E,IAAI;MACF,MAAMC,aAAa,GAAG,MAAM,GAAG7D,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAGc,IAAI,CAAC+C,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;;MAEzF;MACA;MACA,MAAMC,QAA4B,GAAG;QACnCvC,QAAQ,EAAE,IAAI;QACdmC,aAAa;QACb3D,SAAS,EAAEF,IAAI,CAACC,GAAG,CAAC,CAAC;QACrBiE,cAAc,EAAEpI,QAAQ,GAAG;UACzBgD,WAAW,EAAIhD,QAAQ,EAAEgD,WAAW;UACpCC,aAAa,EAAEjD,QAAQ,EAAEiD,aAAa;UACtCE,QAAQ,EAAOnD,QAAQ,EAAEmD,QAAQ;UACjCD,QAAQ,EAAOlD,QAAQ,EAAEkD;QAC3B,CAAC,GAAGmF,SAAS;QACb;QACAC,gBAAgB,EAAE,IAAIpE,IAAI,CAAC4D,OAAO,CAAC1D,SAAS,CAAC,CAACmE,OAAO,CAAC;MACxD,CAAC;;MAED;MACA,MAAM3I,kBAAkB,CAAC+F,mBAAmB,CAACwC,QAAQ,CAAC;MACtD3E,OAAO,CAACC,GAAG,CAAC,kDAAkD,CAAC;;MAE/D;MACA,MAAM+E,EAAE,GAAG;QACTC,EAAE,EAASV,aAAa;QACxBW,SAAS,EAAEX,aAAa;QACxBY,IAAI,EAAO,QAAiB;QAC5BC,OAAO,EAAI,WAAoB;QAC/BhE,MAAM,EAAKkD,OAAO,CAAClD,MAAM;QACzBa,QAAQ,EAAGqC,OAAO,CAACrC,QAAQ;QAC3BoD,MAAM,EAAK,YAAqB;QAChC7C,MAAM,EAAK8B,OAAO,CAAC9B,MAAM;QACzB8C,SAAS,EAAE,IAAI5E,IAAI,CAAC,CAAC,CAACoC,WAAW,CAAC;MACpC,CAAC;MACDrG,UAAU,CAAC8I,iBAAiB,GAAGP,EAAE,CAAC;IACpC,CAAC,CAAC,OAAO9E,GAAG,EAAE;MACZzD,UAAU,CAAC+I,OAAO,GAAGtF,GAAc,CAAC;IACtC;EACF,CAAC;EAED;EACA;EACA,MAAMuF,qBAAqBA,CAACnB,OAAkC,EAAiB;IAC7E,IAAI;MACF,MAAMlI,kBAAkB,CAAC+F,mBAAmB,CAAC;QAAEC,QAAQ,EAAE,KAAK;QAAExB,SAAS,EAAEF,IAAI,CAACC,GAAG,CAAC;MAAE,CAAC,CAAC;MACxFX,OAAO,CAACC,GAAG,CAAC,+CAA+C,CAAC;IAC9D,CAAC,CAAC,MAAM;MACN;IAAA;IAEFxD,UAAU,CAACiJ,iBAAiB,GAAGpB,OAAO,CAAC;EACzC,CAAC;EAED;;EAEA;EACA,MAAMqB,uBAAuBA,CAC3BC,aAA8C,EAC9CC,UAAU,GAAG,IAAI,EACF;IACf,OAAOxJ,gBAAgB,CAACyJ,cAAc,CAACF,aAAa,EAAEC,UAAU,CAAC;EACnE,CAAC;EAED;EACA;EACA;EACA,MAAME,2BAA2BA,CAC/BhE,QAAgB,EAChBuC,OAA8B,EACG;IACjC,OAAOjI,gBAAgB,CAAC2J,kBAAkB,CAACjE,QAAQ,EAAEuC,OAAO,CAAC;EAC/D,CAAC;EAED;;EAEA,MAAM2B,eAAeA,CAACzF,GAA6B,EAA6B;IAC9E,OAAOrE,SAAS,CAAC+J,QAAQ,CAAC1F,GAAG,CAAC;EAChC,CAAC;EAED2F,QAAQA,CAAC/E,MAAc,EAAEa,QAAgB,EAAQ;IAC/C/E,UAAU,CAAC,WAAW,EAAE;MAACkE,MAAM;MAAEa;IAAS,CAAC,CAAC;EAC9C,CAAC;EAEDmE,WAAWA,CAAChF,MAAe,EAAEa,QAAiB,EAAQ;IACpD/E,UAAU,CAAC,cAAc,EAAE;MAAEkE,MAAM;MAAEa;IAAS,CAAC,CAAC;EAClD,CAAC;EAEDoE,OAAO,EAAOA,CAAA,KAAM9J,KAAK;EACzB+J,UAAU,EAAIA,CAAA,KAAM9J,QAAQ;EAC5B+J,OAAO,EAAOA,CAAA,KAAM5J,QAAQ;EAC5B6J,YAAY,EAAEA,CAAA,KAAM/J,UAAU;EAE9B,MAAMgK,OAAOA,CAAA,EAAkB;IAC7B3I,uBAAuB,CAAC,CAAC;IACzB,MAAMsC,uBAAuB,CAAC,CAAC;IAC/B,MAAMhE,kBAAkB,CAACsK,eAAe,CAAC,CAAC;IAC1CrK,gBAAgB,CAACoK,OAAO,CAAC,CAAC;IAC1B7J,YAAY,GAAG,KAAK;IACpBG,YAAY,EAAE4J,MAAM,CAAC,CAAC;IACtBhK,QAAQ,GAAG,KAAK;IAChBJ,KAAK,GAAG,IAAI;IACZC,QAAQ,GAAG,IAAI;IACfK,mBAAmB,GAAG,IAAI;IAC1BG,UAAU,CAAC4J,KAAK,CAAC,CAAC;IAClB5G,OAAO,CAACC,GAAG,CAAC,yBAAyB,CAAC;EACxC;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AppState","Vibration","AsyncStorage","Geolocation","initClient","proximityAPI","accountAPI","BLEReceiverService","BLESenderService","getFPStore","isBalanceCacheValid","_apiKey","_user","_account","_callbacks","_options","_isReady","_isListening","_proximitySessionId","_proximityInterval","_appStateSub","PROXIMITY_THRESHOLD_METERS","_listeners","Map","_emitEvent","event","data","get","forEach","fn","_onEvent","has","set","Set","add","delete","_clearProximityInterval","clearInterval","_getLocation","Promise","resolve","reject","getCurrentPosition","p","lat","coords","latitude","lng","longitude","e","code","message","enableHighAccuracy","timeout","maximumAge","_startProximityBroadcast","store","psspId","console","warn","loc","lastPos","lastBroadcastPosition","distance","_getDistanceMeters","log","Math","round","session","broadcast","user_type","setLastBroadcastPosition","sessionId","setInterval","current","saved","moved","heartbeat","err","_stopProximityBroadcast","unregister","catch","_validateRequest","req","AGE_LIMIT","Date","now","timestamp","raw","getItem","blocked","JSON","parse","includes","senderId","amount","recent","isDuplicate","some","r","abs","setItem","stringify","slice","_handleIncomingRequest","deviceId","senderName","currency","isValid","sendPaymentResponse","accepted","vibrate","fpRequest","requestId","sender","firstName","lastName","phone","senderPhone","email","senderEmail","userId","deviceName","toISOString","onPaymentRequest","_resolveAccount","user","callbacks","account","getAccount","setAccount","setUser","onAccountReady","_fetchBalance","generate","status","setPsspId","id","onAccountError","balance","getBalance","setBalance","lat1","lng1","lat2","lng2","R","toRad","deg","PI","dLat","dLng","a","sin","cos","atan2","sqrt","FPEngine","initialize","apiKey","options","baseUrl","environment","displayName","bluetoothDisplayName","initializeWithUserInfo","startAdvertising","addEventListener","next","setAccountDetails","deviceConnection","connectToDevice","startListening","listenForPaymentRequests","stopListening","acceptPaymentRequest","request","transactionId","random","toString","substr","response","requestTimestamp","getTime","accountDetails","accountName","accountNumber","bankName","bankCode","undefined","type","tx","reference","channel","createdAt","onPaymentReceived","setTimeout","onError","declinePaymentRequest","onPaymentDeclined","scanForBluetoothDevices","onDeviceFound","durationMs","scanForDevices","sendBluetoothPaymentRequest","sendPaymentRequest","generateAccount","refreshBalance","closeSend","showSend","showReceive","getUser","isReady","getCallbacks","destroy","stopAdvertising","remove","clear"],"sourceRoot":"../../../src","sources":["engine/FPEngine.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,7 +43,7 @@ class NearbyUsersService {
|
|
|
43
43
|
const authToken = await this.getAuthToken();
|
|
44
44
|
const response = await fetch(`${this.API_URL}/api/users/nearby?radius=50`, {
|
|
45
45
|
headers: {
|
|
46
|
-
|
|
46
|
+
Authorization: `Bearer ${authToken}`
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
if (!response.ok) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Geolocation","NearbyUsersService","API_URL","startBroadcasting","locationUpdateInterval","setInterval","sendLocationToServer","getCurrentPosition","position","latitude","longitude","coords","authToken","getAuthToken","fetch","method","headers","body","JSON","stringify","timestamp","Date","now","error","console","enableHighAccuracy","timeout","maximumAge","getNearbyUsers","response","ok","Error","json","sendPaymentRequest","receiverId","amount","currency","stopBroadcasting","clearInterval"],"sourceRoot":"../../../src","sources":["engine/NearbyUsersService.ts"],"mappings":";;AAAA;AACA,OAAOA,WAAW,MAAM,qCAAqC;AAS7D,MAAMC,kBAAkB,CAAC;EAENC,OAAO,GAAG,wCAAwC;;EAEnE;EACA,MAAMC,iBAAiBA,CAAA,EAAG;IACxB;IACA,IAAI,CAACC,sBAAsB,GAAGC,WAAW,CAAC,MAAM;MAC9C,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC7B,CAAC,EAAE,IAAI,CAAC;EACV;EAEA,MAAcA,oBAAoBA,CAAA,EAAG;IACnCN,WAAW,CAACO,kBAAkB,CAC5B,MAAOC,QAAQ,IAAK;MAClB,MAAM;QAAEC,QAAQ;QAAEC;MAAU,CAAC,GAAGF,QAAQ,CAACG,MAAM;MAE/C,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;MAE3C,MAAMC,KAAK,CAAC,GAAG,IAAI,CAACZ,OAAO,qBAAqB,EAAE;QAChDa,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,cAAc,EAAE,kBAAkB;UAClC,eAAe,EAAE,UAAUJ,SAAS;QACtC,CAAC;QACDK,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;UACnBV,QAAQ;UACRC,SAAS;UACTU,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC;QACtB,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,EACAC,KAAK,IAAKC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC,EAClD;MAAEE,kBAAkB,EAAE,IAAI;MAAEC,OAAO,EAAE,KAAK;MAAEC,UAAU,EAAE;IAAK,CAC/D,CAAC;EACH;;EAEA;EACA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,MAAMhB,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;IAE3C,MAAMgB,QAAQ,GAAG,MAAMf,KAAK,CAAC,GAAG,IAAI,CAACZ,OAAO,6BAA6B,EAAE;MACzEc,OAAO,EAAE;
|
|
1
|
+
{"version":3,"names":["Geolocation","NearbyUsersService","API_URL","startBroadcasting","locationUpdateInterval","setInterval","sendLocationToServer","getCurrentPosition","position","latitude","longitude","coords","authToken","getAuthToken","fetch","method","headers","body","JSON","stringify","timestamp","Date","now","error","console","enableHighAccuracy","timeout","maximumAge","getNearbyUsers","response","Authorization","ok","Error","json","sendPaymentRequest","receiverId","amount","currency","stopBroadcasting","clearInterval"],"sourceRoot":"../../../src","sources":["engine/NearbyUsersService.ts"],"mappings":";;AAAA;AACA,OAAOA,WAAW,MAAM,qCAAqC;AAS7D,MAAMC,kBAAkB,CAAC;EAENC,OAAO,GAAG,wCAAwC;;EAEnE;EACA,MAAMC,iBAAiBA,CAAA,EAAG;IACxB;IACA,IAAI,CAACC,sBAAsB,GAAGC,WAAW,CAAC,MAAM;MAC9C,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC7B,CAAC,EAAE,IAAI,CAAC;EACV;EAEA,MAAcA,oBAAoBA,CAAA,EAAG;IACnCN,WAAW,CAACO,kBAAkB,CAC5B,MAAOC,QAAQ,IAAK;MAClB,MAAM;QAAEC,QAAQ;QAAEC;MAAU,CAAC,GAAGF,QAAQ,CAACG,MAAM;MAE/C,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;MAE3C,MAAMC,KAAK,CAAC,GAAG,IAAI,CAACZ,OAAO,qBAAqB,EAAE;QAChDa,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACP,cAAc,EAAE,kBAAkB;UAClC,eAAe,EAAE,UAAUJ,SAAS;QACtC,CAAC;QACDK,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;UACnBV,QAAQ;UACRC,SAAS;UACTU,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC;QACtB,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,EACAC,KAAK,IAAKC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC,EAClD;MAAEE,kBAAkB,EAAE,IAAI;MAAEC,OAAO,EAAE,KAAK;MAAEC,UAAU,EAAE;IAAK,CAC/D,CAAC;EACH;;EAEA;EACA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,MAAMhB,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;IAE3C,MAAMgB,QAAQ,GAAG,MAAMf,KAAK,CAAC,GAAG,IAAI,CAACZ,OAAO,6BAA6B,EAAE;MACzEc,OAAO,EAAE;QACPc,aAAa,EAAE,UAAUlB,SAAS;MACpC;IACF,CAAC,CAAC;IAEF,IAAI,CAACiB,QAAQ,CAACE,EAAE,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IAEA,OAAOH,QAAQ,CAACI,IAAI,CAAC,CAAC;EACxB;;EAEA;EACA,MAAMC,kBAAkBA,CACtBC,UAAkB,EAClBC,MAAc,EACdC,QAAgB,GAAG,KAAK,EACxB;IACA,MAAMzB,SAAS,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;IAE3C,MAAMgB,QAAQ,GAAG,MAAMf,KAAK,CAAC,GAAG,IAAI,CAACZ,OAAO,uBAAuB,EAAE;MACnEa,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACP,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,UAAUJ,SAAS;MACtC,CAAC;MACDK,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QACnBgB,UAAU;QACVC,MAAM;QACNC,QAAQ;QACRjB,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC;MACtB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAACO,QAAQ,CAACE,EAAE,EAAE;MAChB,MAAM,IAAIC,KAAK,CAAC,gCAAgC,CAAC;IACnD;IAEA,OAAOH,QAAQ,CAACI,IAAI,CAAC,CAAC;EACxB;EAEAK,gBAAgBA,CAAA,EAAG;IACjB,IAAI,IAAI,CAAClC,sBAAsB,EAAE;MAC/BmC,aAAa,CAAC,IAAI,CAACnC,sBAAsB,CAAC;IAC5C;EACF;EAEA,MAAcS,YAAYA,CAAA,EAAoB;IAC5C;IACA,OAAO,gBAAgB;EACzB;AACF;AAEA,eAAe,IAAIZ,kBAAkB,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export { useFountainPay } from "./useFountainPay.js";
|
|
|
11
11
|
|
|
12
12
|
// The one provider (mount at app root)
|
|
13
13
|
export { FountainPayProvider } from "./FountainPayProvider.js";
|
|
14
|
+
export { useFPStore, getFPStore, isBanksCacheValid, isTokenValid } from "./store/FPStore.js";
|
|
14
15
|
|
|
15
16
|
// All TypeScript types (for type-safe usage)
|
|
16
17
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useFountainPay","FountainPayProvider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,cAAc,
|
|
1
|
+
{"version":3,"names":["useFountainPay","FountainPayProvider","useFPStore","getFPStore","isBanksCacheValid","isTokenValid"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,cAAc,QAAQ,qBAAkB;;AAEjD;AACA,SAASC,mBAAmB,QAAQ,0BAAuB;AAE3D,SACEC,UAAU,EACVC,UAAU,EACVC,iBAAiB,EACjBC,YAAY,QACP,oBAAiB;;AAExB","ignoreList":[]}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
// FPStore — SDK-internal Zustand store with persistence
|
|
5
|
+
//
|
|
6
|
+
// Stores: access token, user info, wallet/account details, bank list cache.
|
|
7
|
+
// Persisted to AsyncStorage under the key '@fp_store' so it survives
|
|
8
|
+
// app restarts without hitting the backend again.
|
|
9
|
+
//
|
|
10
|
+
// Usage (inside SDK only — never exported to host app):
|
|
11
|
+
// import { useFPStore, getFPStore, setFPStore } from '../store/FPStore';
|
|
12
|
+
// const token = getFPStore().accessToken;
|
|
13
|
+
// setFPStore({ accessToken: 'abc123' });
|
|
14
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
15
|
+
|
|
16
|
+
import { create } from 'zustand';
|
|
17
|
+
import { persist, createJSONStorage } from 'zustand/middleware';
|
|
18
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
19
|
+
|
|
20
|
+
// ── State shape ───────────────────────────────────────────────────────────────
|
|
21
|
+
|
|
22
|
+
// ── Actions shape ─────────────────────────────────────────────────────────────
|
|
23
|
+
|
|
24
|
+
// ── Initial state ─────────────────────────────────────────────────────────────
|
|
25
|
+
|
|
26
|
+
const initialState = {
|
|
27
|
+
accessToken: null,
|
|
28
|
+
tokenExpiresAt: null,
|
|
29
|
+
user: null,
|
|
30
|
+
accountDetails: null,
|
|
31
|
+
banks: [],
|
|
32
|
+
balance: null,
|
|
33
|
+
balanceFetchedAt: null,
|
|
34
|
+
banksFetchedAt: null,
|
|
35
|
+
isAuthenticated: false,
|
|
36
|
+
authError: null,
|
|
37
|
+
psspId: null,
|
|
38
|
+
account: null,
|
|
39
|
+
lastBroadcastPosition: null
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// ── Store ─────────────────────────────────────────────────────────────────────
|
|
43
|
+
|
|
44
|
+
export const useFPStore = create()(persist((set, get) => ({
|
|
45
|
+
...initialState,
|
|
46
|
+
setAccessToken: (token, expiresInSeconds) => set({
|
|
47
|
+
accessToken: token,
|
|
48
|
+
tokenExpiresAt: expiresInSeconds ? Date.now() + expiresInSeconds * 1000 : null
|
|
49
|
+
}),
|
|
50
|
+
clearAccessToken: () => set({
|
|
51
|
+
accessToken: null,
|
|
52
|
+
tokenExpiresAt: null
|
|
53
|
+
}),
|
|
54
|
+
setUser: user => set({
|
|
55
|
+
user
|
|
56
|
+
}),
|
|
57
|
+
clearUser: () => set({
|
|
58
|
+
user: null
|
|
59
|
+
}),
|
|
60
|
+
setAccountDetails: accountDetails => set({
|
|
61
|
+
accountDetails
|
|
62
|
+
}),
|
|
63
|
+
setBalance: balance => set({
|
|
64
|
+
balance,
|
|
65
|
+
balanceFetchedAt: Date.now()
|
|
66
|
+
}),
|
|
67
|
+
clearBalance: () => set({
|
|
68
|
+
balance: null,
|
|
69
|
+
balanceFetchedAt: null
|
|
70
|
+
}),
|
|
71
|
+
setBanks: banks => set({
|
|
72
|
+
banks,
|
|
73
|
+
banksFetchedAt: Date.now()
|
|
74
|
+
}),
|
|
75
|
+
setAuthenticated: (value, error = null) => set({
|
|
76
|
+
isAuthenticated: value,
|
|
77
|
+
authError: error
|
|
78
|
+
}),
|
|
79
|
+
setPsspId: id => set({
|
|
80
|
+
psspId: id
|
|
81
|
+
}),
|
|
82
|
+
setAccount: account => set({
|
|
83
|
+
account
|
|
84
|
+
}),
|
|
85
|
+
clearAccount: () => set({
|
|
86
|
+
psspId: null,
|
|
87
|
+
account: null,
|
|
88
|
+
balance: null,
|
|
89
|
+
balanceFetchedAt: null
|
|
90
|
+
}),
|
|
91
|
+
setLastBroadcastPosition: pos => set({
|
|
92
|
+
lastBroadcastPosition: pos
|
|
93
|
+
}),
|
|
94
|
+
reset: () => set(initialState)
|
|
95
|
+
}), {
|
|
96
|
+
name: '@fp_store',
|
|
97
|
+
// AsyncStorage key
|
|
98
|
+
storage: createJSONStorage(() => AsyncStorage),
|
|
99
|
+
// Only persist data that should survive app restarts.
|
|
100
|
+
// Omit runtime-only flags that should reset each session.
|
|
101
|
+
partialize: state => ({
|
|
102
|
+
accessToken: state.accessToken,
|
|
103
|
+
tokenExpiresAt: state.tokenExpiresAt,
|
|
104
|
+
user: state.user,
|
|
105
|
+
accountDetails: state.accountDetails,
|
|
106
|
+
banks: state.banks,
|
|
107
|
+
banksFetchedAt: state.banksFetchedAt,
|
|
108
|
+
psspId: state.psspId,
|
|
109
|
+
account: state.account,
|
|
110
|
+
balance: state.balance,
|
|
111
|
+
balanceFetchedAt: state.balanceFetchedAt,
|
|
112
|
+
lastBroadcastPosition: state.lastBroadcastPosition
|
|
113
|
+
// isAuthenticated and authError are NOT persisted —
|
|
114
|
+
// the API key must be verified fresh each session
|
|
115
|
+
})
|
|
116
|
+
}));
|
|
117
|
+
|
|
118
|
+
// ── Helpers for use outside React components (e.g. FPEngine) ─────────────────
|
|
119
|
+
|
|
120
|
+
/** Read current store state without subscribing */
|
|
121
|
+
export const getFPStore = () => useFPStore.getState();
|
|
122
|
+
|
|
123
|
+
/** Update store state without subscribing */
|
|
124
|
+
export const setFPStore = partial => useFPStore.setState(partial);
|
|
125
|
+
|
|
126
|
+
// ── Cache validity helpers ────────────────────────────────────────────────────
|
|
127
|
+
|
|
128
|
+
const WALLET_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
|
|
129
|
+
const BANKS_CACHE_TTL = 24 * 60 * 60 * 1000; // 24 hours
|
|
130
|
+
const BALANCE_CACHE_TTL = 2 * 60 * 1000; // 2 minutes
|
|
131
|
+
|
|
132
|
+
export function isBanksCacheValid() {
|
|
133
|
+
const {
|
|
134
|
+
banksFetchedAt
|
|
135
|
+
} = getFPStore();
|
|
136
|
+
if (!banksFetchedAt) return false;
|
|
137
|
+
return Date.now() - banksFetchedAt < BANKS_CACHE_TTL;
|
|
138
|
+
}
|
|
139
|
+
export function isTokenValid() {
|
|
140
|
+
const {
|
|
141
|
+
accessToken,
|
|
142
|
+
tokenExpiresAt
|
|
143
|
+
} = getFPStore();
|
|
144
|
+
if (!accessToken) return false;
|
|
145
|
+
if (!tokenExpiresAt) return true; // no expiry info — assume valid
|
|
146
|
+
return Date.now() < tokenExpiresAt - 60000; // 60s buffer before expiry
|
|
147
|
+
}
|
|
148
|
+
export function isBalanceCacheValid() {
|
|
149
|
+
const {
|
|
150
|
+
balanceFetchedAt
|
|
151
|
+
} = getFPStore();
|
|
152
|
+
if (!balanceFetchedAt) return false;
|
|
153
|
+
return Date.now() - balanceFetchedAt < BALANCE_CACHE_TTL;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=FPStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["create","persist","createJSONStorage","AsyncStorage","initialState","accessToken","tokenExpiresAt","user","accountDetails","banks","balance","balanceFetchedAt","banksFetchedAt","isAuthenticated","authError","psspId","account","lastBroadcastPosition","useFPStore","set","get","setAccessToken","token","expiresInSeconds","Date","now","clearAccessToken","setUser","clearUser","setAccountDetails","setBalance","clearBalance","setBanks","setAuthenticated","value","error","setPsspId","id","setAccount","clearAccount","setLastBroadcastPosition","pos","reset","name","storage","partialize","state","getFPStore","getState","setFPStore","partial","setState","WALLET_CACHE_TTL","BANKS_CACHE_TTL","BALANCE_CACHE_TTL","isBanksCacheValid","isTokenValid","isBalanceCacheValid"],"sourceRoot":"../../../src","sources":["store/FPStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useEffect, useRef } from
|
|
4
|
-
import { Animated, Easing } from
|
|
5
|
-
import styled from
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { Animated, Easing } from 'react-native';
|
|
5
|
+
import styled from 'styled-components/native';
|
|
6
6
|
|
|
7
7
|
// Animated Dots Component
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","Animated","Easing","styled","jsx","_jsx","jsxs","_jsxs","DotsContainer","View","Dot","AnimatedDots","dot1","Value","current","dot2","dot3","AnimatedDot","createAnimatedComponent","animateDot","dot","delay","loop","sequence","timing","toValue","duration","easing","ease","useNativeDriver","animations","parallel","start","stop","dotStyle","animValue","opacity","interpolate","inputRange","outputRange","transform","scale","children","style"],"sourceRoot":"../../../../src","sources":["ui/components/AnimatedDots.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,EAAEC,MAAM,QAAQ,cAAc;AAC/C,OAAOC,MAAM,MAAM,0BAA0B;;AAE7C;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,aAAa,GAAGL,MAAM,CAACM,IAAI;AACjC;AACA;AACA,CAAC;AAED,MAAMC,GAAG,GAAGP,MAAM,CAACF,QAAQ,CAACQ,IAAI,CAAoB;AACpD;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAME,YAAsB,GAAGA,CAAA,KAAM;EAC1C,MAAMC,IAAI,GAAGZ,MAAM,CAAC,IAAIC,QAAQ,CAACY,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAClD,MAAMC,IAAI,GAAGf,MAAM,CAAC,IAAIC,QAAQ,CAACY,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAClD,MAAME,IAAI,GAAGhB,MAAM,CAAC,IAAIC,QAAQ,CAACY,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAElD,MAAMG,WAAW,GAAGhB,QAAQ,CAACiB,uBAAuB,CAACR,GAAG,CAAC;
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","Animated","Easing","styled","jsx","_jsx","jsxs","_jsxs","DotsContainer","View","Dot","AnimatedDots","dot1","Value","current","dot2","dot3","AnimatedDot","createAnimatedComponent","animateDot","dot","delay","loop","sequence","timing","toValue","duration","easing","ease","useNativeDriver","animations","parallel","start","stop","dotStyle","animValue","opacity","interpolate","inputRange","outputRange","transform","scale","children","style"],"sourceRoot":"../../../../src","sources":["ui/components/AnimatedDots.tsx"],"mappings":"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","ignoreList":[]}
|