@diviswap/sdk 1.7.12 → 1.7.14

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 (45) hide show
  1. package/dist/cli/index.js +8 -2
  2. package/dist/cli/templates/nextjs-app/actions.ts.hbs +32 -32
  3. package/dist/cli/templates/nextjs-app/api-hooks.ts.hbs +10 -10
  4. package/dist/cli/templates/nextjs-app/api-route.ts.hbs +67 -67
  5. package/dist/cli/templates/nextjs-app/auth-context.tsx.hbs +1 -1
  6. package/dist/cli/templates/nextjs-app/client.ts.hbs +10 -10
  7. package/dist/cli/templates/nextjs-app/dashboard-hooks.ts.hbs +7 -7
  8. package/dist/cli/templates/nextjs-app/example-page.tsx.hbs +9 -9
  9. package/dist/cli/templates/nextjs-app/hooks.ts.hbs +7 -7
  10. package/dist/cli/templates/nextjs-app/kyc-hooks.ts.hbs +3 -3
  11. package/dist/cli/templates/nextjs-app/kyc-wizard.css.hbs +16 -16
  12. package/dist/cli/templates/nextjs-app/kyc-wizard.tsx.hbs +25 -25
  13. package/dist/cli/templates/nextjs-app/layout-wrapper.tsx.hbs +4 -4
  14. package/dist/cli/templates/nextjs-app/layout.tsx.hbs +4 -4
  15. package/dist/cli/templates/nextjs-app/middleware.ts.hbs +15 -15
  16. package/dist/cli/templates/nextjs-app/provider-wrapper.tsx.hbs +4 -4
  17. package/dist/cli/templates/nextjs-app/provider.tsx.hbs +21 -21
  18. package/dist/cli/templates/nextjs-app/setup-provider.tsx.hbs +4 -4
  19. package/dist/cli/templates/react/api-client-wrapper.ts.hbs +14 -14
  20. package/dist/cli/templates/react/example.tsx.hbs +6 -6
  21. package/dist/cli/templates/react/tanstack-hooks.ts.hbs +14 -14
  22. package/dist/cli/templates/webhooks/nextjs.hbs +3 -3
  23. package/package.json +2 -1
  24. package/src/cli/templates/index.ts +13 -2
  25. package/src/cli/templates/nextjs-app/actions.ts.hbs +32 -32
  26. package/src/cli/templates/nextjs-app/api-hooks.ts.hbs +10 -10
  27. package/src/cli/templates/nextjs-app/api-route.ts.hbs +67 -67
  28. package/src/cli/templates/nextjs-app/auth-context.tsx.hbs +1 -1
  29. package/src/cli/templates/nextjs-app/client.ts.hbs +10 -10
  30. package/src/cli/templates/nextjs-app/dashboard-hooks.ts.hbs +7 -7
  31. package/src/cli/templates/nextjs-app/example-page.tsx.hbs +9 -9
  32. package/src/cli/templates/nextjs-app/hooks.ts.hbs +7 -7
  33. package/src/cli/templates/nextjs-app/kyc-hooks.ts.hbs +3 -3
  34. package/src/cli/templates/nextjs-app/kyc-wizard.css.hbs +16 -16
  35. package/src/cli/templates/nextjs-app/kyc-wizard.tsx.hbs +25 -25
  36. package/src/cli/templates/nextjs-app/layout-wrapper.tsx.hbs +4 -4
  37. package/src/cli/templates/nextjs-app/layout.tsx.hbs +4 -4
  38. package/src/cli/templates/nextjs-app/middleware.ts.hbs +15 -15
  39. package/src/cli/templates/nextjs-app/provider-wrapper.tsx.hbs +4 -4
  40. package/src/cli/templates/nextjs-app/provider.tsx.hbs +21 -21
  41. package/src/cli/templates/nextjs-app/setup-provider.tsx.hbs +4 -4
  42. package/src/cli/templates/react/api-client-wrapper.ts.hbs +14 -14
  43. package/src/cli/templates/react/example.tsx.hbs +6 -6
  44. package/src/cli/templates/react/tanstack-hooks.ts.hbs +14 -14
  45. package/src/cli/templates/webhooks/nextjs.hbs +3 -3
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect, useCallback } from 'react';
2
- import { useDiviswap } from '{{providerImportPath}}';
2
+ import { useLiberEx } from '{{providerImportPath}}';
3
3
  import type { Transaction, Payee, TransactionStatus } from '{{typesImportPath}}';
4
4
 
5
5
  // IMPORTANT: These hooks use direct SDK calls which may not work properly
@@ -7,11 +7,11 @@ import type { Transaction, Payee, TransactionStatus } from '{{typesImportPath}}'
7
7
  // pattern demonstrated in api-hooks.ts instead.
8
8
 
9
9
  // Re-export the main hook
10
- export { useDiviswap };
10
+ export { useLiberEx };
11
11
 
12
12
  // Convenience hook for authentication
13
13
  export function useAuth() {
14
- const { user, login, logout, register, loading, error } = useDiviswap();
14
+ const { user, login, logout, register, loading, error } = useLiberEx();
15
15
 
16
16
  return {
17
17
  user,
@@ -27,7 +27,7 @@ export function useAuth() {
27
27
 
28
28
  // Hook for managing transactions
29
29
  export function useTransactions() {
30
- const { createTransaction, getTransactions, error } = useDiviswap();
30
+ const { createTransaction, getTransactions, error } = useLiberEx();
31
31
  const [transactions, setTransactions] = useState<Transaction[]>([]);
32
32
  const [loading, setLoading] = useState(false);
33
33
 
@@ -76,7 +76,7 @@ export function useTransactions() {
76
76
 
77
77
  // Hook for managing payees
78
78
  export function usePayees() {
79
- const { getPayees, createPayee, deletePayee, error } = useDiviswap();
79
+ const { getPayees, createPayee, deletePayee, error } = useLiberEx();
80
80
  const [payees, setPayees] = useState<Payee[]>([]);
81
81
  const [loading, setLoading] = useState(false);
82
82
 
@@ -141,7 +141,7 @@ export function usePayees() {
141
141
  {{#if (includes features "fees")}}
142
142
  // Hook for fee calculations
143
143
  export function useFeeCalculator() {
144
- const { calculateFees } = useDiviswap();
144
+ const { calculateFees } = useLiberEx();
145
145
  const [fees, setFees] = useState<any>(null);
146
146
  const [loading, setLoading] = useState(false);
147
147
  const [error, setError] = useState<Error | null>(null);
@@ -184,7 +184,7 @@ export function useFeeCalculator() {
184
184
  {{#if (includes features "realtime")}}
185
185
  // Hook for real-time transaction updates
186
186
  export function useTransactionUpdates(transactionId?: string) {
187
- const { socket, subscribeToTransaction, unsubscribeFromTransaction } = useDiviswap();
187
+ const { socket, subscribeToTransaction, unsubscribeFromTransaction } = useLiberEx();
188
188
  const [updates, setUpdates] = useState<any[]>([]);
189
189
  const [latestStatus, setLatestStatus] = useState<TransactionStatus | null>(null);
190
190
 
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useState } from 'react';
4
- import { use{{prefix}}Auth } from '~/context/diviswap-auth-context';
4
+ import { use{{prefix}}Auth } from '~/context/liberex-auth-context';
5
5
 
6
6
  interface KYCFormData {
7
7
  firstName: string;
@@ -29,7 +29,7 @@ export function use{{prefix}}KYC() {
29
29
 
30
30
  try {
31
31
  // Format date of birth
32
- const dateOfBirth = `\${formData.dobYear}-\${formData.dobMonth.padStart(2, '0')}-\${formData.dobDay.padStart(2, '0')}`;
32
+ const dateOfBirth = formData.dobYear + '-' + formData.dobMonth.padStart(2, '0') + '-' + formData.dobDay.padStart(2, '0');
33
33
 
34
34
  // Prepare KYC data
35
35
  const kycData = {
@@ -53,7 +53,7 @@ export function use{{prefix}}KYC() {
53
53
  };
54
54
 
55
55
  // Call API to submit KYC
56
- const response = await fetch('/api/diviswap', {
56
+ const response = await fetch('/api/liberex', {
57
57
  method: 'POST',
58
58
  headers: { 'Content-Type': 'application/json' },
59
59
  body: JSON.stringify({
@@ -1,5 +1,5 @@
1
- /* Diviswap KYC Wizard Styles */
2
- .diviswap-kyc-container {
1
+ /* LiberEx KYC Wizard Styles */
2
+ .liberex-kyc-container {
3
3
  max-width: 600px;
4
4
  margin: 0 auto;
5
5
  padding: 2rem;
@@ -288,7 +288,7 @@
288
288
  }
289
289
 
290
290
  /* Modal */
291
- .diviswap-kyc-modal-overlay {
291
+ .liberex-kyc-modal-overlay {
292
292
  position: fixed;
293
293
  top: 0;
294
294
  left: 0;
@@ -302,7 +302,7 @@
302
302
  padding: 1rem;
303
303
  }
304
304
 
305
- .diviswap-kyc-modal {
305
+ .liberex-kyc-modal {
306
306
  background-color: white;
307
307
  border-radius: 12px;
308
308
  max-width: 600px;
@@ -311,54 +311,54 @@
311
311
  overflow-y: auto;
312
312
  }
313
313
 
314
- .diviswap-kyc-modal .diviswap-kyc-container {
314
+ .liberex-kyc-modal .liberex-kyc-container {
315
315
  border: none;
316
316
  box-shadow: none;
317
317
  margin: 0;
318
318
  }
319
319
 
320
320
  /* Dark Theme */
321
- .diviswap-kyc-container[data-theme="dark"] {
321
+ .liberex-kyc-container[data-theme="dark"] {
322
322
  background-color: #1f2937;
323
323
  color: #f9fafb;
324
324
  border-color: #374151;
325
325
  }
326
326
 
327
- .diviswap-kyc-container[data-theme="dark"] .form-field input,
328
- .diviswap-kyc-container[data-theme="dark"] .form-field select {
327
+ .liberex-kyc-container[data-theme="dark"] .form-field input,
328
+ .liberex-kyc-container[data-theme="dark"] .form-field select {
329
329
  background-color: #374151;
330
330
  border-color: #4b5563;
331
331
  color: #f9fafb;
332
332
  }
333
333
 
334
- .diviswap-kyc-container[data-theme="dark"] .form-field input:focus,
335
- .diviswap-kyc-container[data-theme="dark"] .form-field select:focus {
334
+ .liberex-kyc-container[data-theme="dark"] .form-field input:focus,
335
+ .liberex-kyc-container[data-theme="dark"] .form-field select:focus {
336
336
  border-color: #6366f1;
337
337
  }
338
338
 
339
- .diviswap-kyc-container[data-theme="dark"] .review-section {
339
+ .liberex-kyc-container[data-theme="dark"] .review-section {
340
340
  background-color: #374151;
341
341
  border-color: #4b5563;
342
342
  }
343
343
 
344
- .diviswap-kyc-container[data-theme="dark"] .btn-secondary {
344
+ .liberex-kyc-container[data-theme="dark"] .btn-secondary {
345
345
  border-color: #4b5563;
346
346
  color: #d1d5db;
347
347
  }
348
348
 
349
- .diviswap-kyc-container[data-theme="dark"] .btn-secondary:hover {
349
+ .liberex-kyc-container[data-theme="dark"] .btn-secondary:hover {
350
350
  background-color: #374151;
351
351
  border-color: #6b7280;
352
352
  }
353
353
 
354
- .diviswap-kyc-container[data-theme="dark"] .info-box {
354
+ .liberex-kyc-container[data-theme="dark"] .info-box {
355
355
  background-color: #064e3b;
356
356
  border-color: #047857;
357
357
  }
358
358
 
359
359
  /* Responsive Design */
360
360
  @media (max-width: 640px) {
361
- .diviswap-kyc-container {
361
+ .liberex-kyc-container {
362
362
  padding: 1rem;
363
363
  margin: 1rem;
364
364
  }
@@ -417,7 +417,7 @@
417
417
 
418
418
  /* High Contrast Mode */
419
419
  @media (prefers-contrast: high) {
420
- .diviswap-kyc-container {
420
+ .liberex-kyc-container {
421
421
  border-width: 2px;
422
422
  }
423
423
 
@@ -82,7 +82,7 @@ export function LiberexKYC({
82
82
  setIsSubmitting(true);
83
83
  try {
84
84
  // Format date of birth
85
- const dateOfBirth = `\${formData.dobYear}-\${formData.dobMonth.padStart(2, '0')}-\${formData.dobDay.padStart(2, '0')}`;
85
+ const dateOfBirth = formData.dobYear + '-' + formData.dobMonth.padStart(2, '0') + '-' + formData.dobDay.padStart(2, '0');
86
86
 
87
87
  // Prepare KYC data
88
88
  const kycData = {
@@ -106,7 +106,7 @@ export function LiberexKYC({
106
106
  };
107
107
 
108
108
  // Call your KYC submission API
109
- const response = await fetch('/api/diviswap', {
109
+ const response = await fetch('/api/liberex', {
110
110
  method: 'POST',
111
111
  headers: { 'Content-Type': 'application/json' },
112
112
  body: JSON.stringify({
@@ -155,32 +155,32 @@ export function LiberexKYC({
155
155
  };
156
156
 
157
157
  const updateFormData = (updates: Partial<KycFormData>) => {
158
- setFormData(prev => ({ ...prev, ...updates }));
158
+ setFormData(prev => (\{{ ...prev, ...updates \}}));
159
159
  };
160
160
 
161
- const containerStyle = {
161
+ const containerStyle = \{{
162
162
  backgroundColor: themeConfig.backgroundColor,
163
163
  color: themeConfig.textColor,
164
164
  borderRadius: themeConfig.borderRadius
165
- };
165
+ \}};
166
166
 
167
- const primaryButtonStyle = {
167
+ const primaryButtonStyle = \{{
168
168
  backgroundColor: themeConfig.primaryColor,
169
169
  borderRadius: themeConfig.borderRadius
170
- };
170
+ \}};
171
171
 
172
172
  return (
173
- <div className={`diviswap-kyc-container \${className}`} style={containerStyle}>
173
+ <div className={`liberex-kyc-container ${className}`} style={containerStyle}>
174
174
  {/* Progress Bar */}
175
175
  {currentStep !== 'intro' && currentStep !== 'success' && (
176
176
  <div className="progress-container">
177
177
  <div className="progress-bar">
178
- <div
179
- className="progress-fill"
180
- style={{
181
- width: `\${progressPercentage}%`,
182
- backgroundColor: themeConfig.primaryColor
183
- }}
178
+ <div
179
+ className="progress-fill"
180
+ style=\{{
181
+ width: progressPercentage + '%',
182
+ backgroundColor: themeConfig.primaryColor
183
+ \}}
184
184
  />
185
185
  </div>
186
186
  <div className="progress-text">
@@ -253,7 +253,7 @@ function IntroStep({ onNext, onClose, theme }: any) {
253
253
  return (
254
254
  <div className="kyc-step intro-step">
255
255
  <div className="step-header">
256
- <CheckCircle className="step-icon" style={{ color: theme.primaryColor }} />
256
+ <CheckCircle className="step-icon" style=\{{ color: theme.primaryColor \}} />
257
257
  <h2>Identity Verification</h2>
258
258
  <p>We need to verify your identity to comply with financial regulations. This process takes about 3 minutes.</p>
259
259
  </div>
@@ -286,7 +286,7 @@ function IntroStep({ onNext, onClose, theme }: any) {
286
286
  <button
287
287
  onClick={onNext}
288
288
  className="btn-primary"
289
- style={{ backgroundColor: theme.primaryColor }}
289
+ style=\{{ backgroundColor: theme.primaryColor \}}
290
290
  >
291
291
  Start Verification
292
292
  <ArrowRight className="btn-icon" />
@@ -402,7 +402,7 @@ function PersonalInfoStep({ formData, updateFormData, onNext, onPrev, theme }: a
402
402
  onClick={onNext}
403
403
  disabled={!isValid}
404
404
  className="btn-primary"
405
- style={{ backgroundColor: theme.primaryColor }}
405
+ style=\{{ backgroundColor: theme.primaryColor \}}
406
406
  >
407
407
  Continue
408
408
  <ArrowRight className="btn-icon" />
@@ -465,7 +465,7 @@ function IdentificationStep({ formData, updateFormData, onNext, onPrev, theme }:
465
465
  onClick={onNext}
466
466
  disabled={!isValid}
467
467
  className="btn-primary"
468
- style={{ backgroundColor: theme.primaryColor }}
468
+ style=\{{ backgroundColor: theme.primaryColor \}}
469
469
  >
470
470
  Continue
471
471
  <ArrowRight className="btn-icon" />
@@ -567,7 +567,7 @@ function AddressStep({ formData, updateFormData, onNext, onPrev, theme }: any) {
567
567
  onClick={onNext}
568
568
  disabled={!isValid}
569
569
  className="btn-primary"
570
- style={{ backgroundColor: theme.primaryColor }}
570
+ style=\{{ backgroundColor: theme.primaryColor \}}
571
571
  >
572
572
  Continue
573
573
  <ArrowRight className="btn-icon" />
@@ -620,7 +620,7 @@ function ReviewStep({ formData, onSubmit, onPrev, isSubmitting, theme }: any) {
620
620
  <span>Address:</span>
621
621
  <span>
622
622
  {formData.addressLine1}
623
- {formData.addressLine2 && `, \${formData.addressLine2}`}
623
+ {formData.addressLine2 && `, ${formData.addressLine2}`}
624
624
  </span>
625
625
  </div>
626
626
  <div className="review-item">
@@ -643,7 +643,7 @@ function ReviewStep({ formData, onSubmit, onPrev, isSubmitting, theme }: any) {
643
643
  onClick={onSubmit}
644
644
  disabled={isSubmitting}
645
645
  className="btn-primary"
646
- style={{ backgroundColor: theme.primaryColor }}
646
+ style=\{{ backgroundColor: theme.primaryColor \}}
647
647
  >
648
648
  {isSubmitting ? (
649
649
  <>
@@ -666,7 +666,7 @@ function SuccessStep({ onClose, theme }: any) {
666
666
  return (
667
667
  <div className="kyc-step success-step">
668
668
  <div className="step-header">
669
- <CheckCircle className="step-icon success-icon" style={{ color: theme.primaryColor }} />
669
+ <CheckCircle className="step-icon success-icon" style=\{{ color: theme.primaryColor \}} />
670
670
  <h2>Verification Submitted!</h2>
671
671
  <p>Your identity verification has been submitted successfully. We'll review your information and notify you of the results.</p>
672
672
  </div>
@@ -687,7 +687,7 @@ function SuccessStep({ onClose, theme }: any) {
687
687
  <button
688
688
  onClick={onClose}
689
689
  className="btn-primary"
690
- style={{ backgroundColor: theme.primaryColor }}
690
+ style=\{{ backgroundColor: theme.primaryColor \}}
691
691
  >
692
692
  Continue
693
693
  </button>
@@ -702,8 +702,8 @@ export function LiberexKYCModal({ isOpen, onClose, ...props }: LiberexKYCProps &
702
702
  if (!isOpen) return null;
703
703
 
704
704
  return (
705
- <div className="diviswap-kyc-modal-overlay">
706
- <div className="diviswap-kyc-modal">
705
+ <div className="liberex-kyc-modal-overlay">
706
+ <div className="liberex-kyc-modal">
707
707
  <LiberexKYC {...props} onClose={onClose} />
708
708
  </div>
709
709
  </div>
@@ -1,13 +1,13 @@
1
- import { DiviswapProvider } from '@diviswap/sdk/react';
1
+ import { LiberExProvider } from '@99darwin/liberex-sdk/react';
2
2
 
3
- export default function DiviswapLayout({
3
+ export default function LiberExLayout({
4
4
  children,
5
5
  }: {
6
6
  children: React.ReactNode;
7
7
  }) {
8
8
  return (
9
- <DiviswapProvider>
9
+ <LiberExProvider>
10
10
  {children}
11
- </DiviswapProvider>
11
+ </LiberExProvider>
12
12
  );
13
13
  }
@@ -1,13 +1,13 @@
1
- import { DiviswapProvider } from './lbx-provider';
1
+ import { LiberExProvider } from './lbx-provider';
2
2
 
3
- export default function DiviswapLayout({
3
+ export default function LiberExLayout({
4
4
  children,
5
5
  }: {
6
6
  children: React.ReactNode;
7
7
  }) {
8
8
  return (
9
- <DiviswapProvider>
9
+ <LiberExProvider>
10
10
  {children}
11
- </DiviswapProvider>
11
+ </LiberExProvider>
12
12
  );
13
13
  }
@@ -1,22 +1,22 @@
1
1
  import { NextRequest, NextResponse } from 'next/server';
2
2
 
3
- // This middleware adds Diviswap session information to requests
3
+ // This middleware adds LiberEx session information to requests
4
4
  // Note: In middleware, we use request.cookies (not the async cookies() from next/headers)
5
- export function diviswapMiddleware(request: NextRequest) {
6
- // Check for Diviswap session cookie
7
- const diviswapSession = request.cookies.get('diviswap_session');
5
+ export function liberexMiddleware(request: NextRequest) {
6
+ // Check for LiberEx session cookie
7
+ const liberexSession = request.cookies.get('liberex_session');
8
8
 
9
- if (!diviswapSession) {
9
+ if (!liberexSession) {
10
10
  // No session, proceed without authentication
11
11
  return NextResponse.next();
12
12
  }
13
13
 
14
14
  // Add session to headers for API routes
15
15
  const requestHeaders = new Headers(request.headers);
16
- requestHeaders.set('x-diviswap-session', diviswapSession.value);
16
+ requestHeaders.set('x-liberex-session', liberexSession.value);
17
17
 
18
18
  // You can also add other headers or perform additional checks here
19
- requestHeaders.set('x-diviswap-client-version', '1.0.0');
19
+ requestHeaders.set('x-liberex-client-version', '1.0.0');
20
20
 
21
21
  return NextResponse.next({
22
22
  request: {
@@ -26,24 +26,24 @@ export function diviswapMiddleware(request: NextRequest) {
26
26
  }
27
27
 
28
28
  // Optional: Add route protection
29
- export function protectDiviswapRoutes(request: NextRequest) {
30
- const diviswapSession = request.cookies.get('diviswap_session');
29
+ export function protectLiberExRoutes(request: NextRequest) {
30
+ const liberexSession = request.cookies.get('liberex_session');
31
31
 
32
32
  // List of protected routes
33
33
  const protectedRoutes = [
34
- '/diviswap/dashboard',
35
- '/diviswap/transactions',
36
- '/diviswap/settings'
34
+ '/liberex/dashboard',
35
+ '/liberex/transactions',
36
+ '/liberex/settings'
37
37
  ];
38
38
 
39
39
  const isProtectedRoute = protectedRoutes.some(route =>
40
40
  request.nextUrl.pathname.startsWith(route)
41
41
  );
42
42
 
43
- if (isProtectedRoute && !diviswapSession) {
43
+ if (isProtectedRoute && !liberexSession) {
44
44
  // Redirect to login page
45
- return NextResponse.redirect(new URL('/diviswap', request.url));
45
+ return NextResponse.redirect(new URL('/liberex', request.url));
46
46
  }
47
47
 
48
- return diviswapMiddleware(request);
48
+ return liberexMiddleware(request);
49
49
  }
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
 
3
- import { DiviswapProvider } from '@diviswap/sdk/react';
3
+ import { LiberExProvider } from '@99darwin/liberex-sdk/react';
4
4
 
5
- // Wrapper to ensure client-side rendering for Diviswap components
6
- export function DiviswapClientProvider({ children }: { children: React.ReactNode }) {
7
- return <DiviswapProvider>{children}</DiviswapProvider>;
5
+ // Wrapper to ensure client-side rendering for LiberEx components
6
+ export function LiberExClientProvider({ children }: { children: React.ReactNode }) {
7
+ return <LiberExProvider>{children}</LiberExProvider>;
8
8
  }
@@ -6,7 +6,7 @@ import type { User, Transaction, Payee, TransactionStatus } from './lbx-types';
6
6
  import io, { Socket } from 'socket.io-client';
7
7
  {{/if}}
8
8
 
9
- interface DiviswapContextValue {
9
+ interface LiberExContextValue {
10
10
  // Customer state (for partner authentication)
11
11
  customerId: string | null;
12
12
  customerEmail: string | null;
@@ -63,17 +63,17 @@ interface DiviswapContextValue {
63
63
  {{/if}}
64
64
  }
65
65
 
66
- const DiviswapContext = createContext<DiviswapContextValue | null>(null);
66
+ const LiberExContext = createContext<LiberExContextValue | null>(null);
67
67
 
68
68
  // API client class
69
- class DiviswapClient {
70
- constructor(private baseUrl: string = '/api/diviswap') {}
69
+ class LiberExClient {
70
+ constructor(private baseUrl: string = '/api/liberex') {}
71
71
 
72
72
  private async request<T = any>(
73
73
  endpoint: string,
74
74
  options: RequestInit = {}
75
75
  ): Promise<T> {
76
- const response = await fetch(`\${this.baseUrl}\${endpoint}`, {
76
+ const response = await fetch(this.baseUrl + endpoint, {
77
77
  ...options,
78
78
  headers: {
79
79
  'Content-Type': 'application/json',
@@ -106,7 +106,7 @@ class DiviswapClient {
106
106
 
107
107
  async getCustomerStatus(customerId: string, customerEmail: string) {
108
108
  try {
109
- return await this.request(`?resource=customerStatus&customerId=\${encodeURIComponent(customerId)}&customerEmail=\${encodeURIComponent(customerEmail)}`);
109
+ return await this.request(`?resource=customerStatus&customerId=${encodeURIComponent(customerId)}&customerEmail=${encodeURIComponent(customerEmail)}`);
110
110
  } catch {
111
111
  return null;
112
112
  }
@@ -132,16 +132,16 @@ class DiviswapClient {
132
132
  ...(params.type && { type: params.type }),
133
133
  }),
134
134
  });
135
- return this.request(`?\${searchParams}`);
135
+ return this.request(`?${searchParams}`);
136
136
  }
137
137
 
138
138
  async getTransaction(id: string) {
139
- return this.request(`?resource=transaction&id=\${id}`);
139
+ return this.request(`?resource=transaction&id=${id}`);
140
140
  }
141
141
 
142
142
  // Payee methods
143
143
  async getPayees(customerId: string, customerEmail: string) {
144
- return this.request(`?resource=payees&customerId=\${encodeURIComponent(customerId)}&customerEmail=\${encodeURIComponent(customerEmail)}`);
144
+ return this.request(`?resource=payees&customerId=${encodeURIComponent(customerId)}&customerEmail=${encodeURIComponent(customerEmail)}`);
145
145
  }
146
146
 
147
147
  async createPayee(data: any) {
@@ -152,7 +152,7 @@ class DiviswapClient {
152
152
  }
153
153
 
154
154
  async deletePayee(id: string, customerId: string, customerEmail: string) {
155
- return this.request(`?resource=payee&id=\${id}&customerId=\${encodeURIComponent(customerId)}&customerEmail=\${encodeURIComponent(customerEmail)}`, {
155
+ return this.request(`?resource=payee&id=${id}&customerId=${encodeURIComponent(customerId)}&customerEmail=${encodeURIComponent(customerEmail)}`, {
156
156
  method: 'DELETE',
157
157
  });
158
158
  }
@@ -168,7 +168,7 @@ class DiviswapClient {
168
168
  {{/if}}
169
169
  }
170
170
 
171
- export function DiviswapProvider({ children }: { children: React.ReactNode }) {
171
+ export function LiberExProvider({ children }: { children: React.ReactNode }) {
172
172
  const [customerId, setCustomerId] = useState<string | null>(null);
173
173
  const [customerEmail, setCustomerEmail] = useState<string | null>(null);
174
174
  const [loading, setLoading] = useState(false);
@@ -177,7 +177,7 @@ export function DiviswapProvider({ children }: { children: React.ReactNode }) {
177
177
  const [socket, setSocket] = useState<Socket | null>(null);
178
178
  {{/if}}
179
179
 
180
- const client = new DiviswapClient('/api/diviswap');
180
+ const client = new LiberExClient('/api/liberex');
181
181
 
182
182
  // Initialize with demo customer for development
183
183
  useEffect(() => {
@@ -192,7 +192,7 @@ export function DiviswapProvider({ children }: { children: React.ReactNode }) {
192
192
  useEffect(() => {
193
193
  if (customerId && customerEmail) {
194
194
  const socketInstance = io(
195
- process.env.NEXT_PUBLIC_DIVISWAP_WS_URL || 'wss://ws.liberex.sv',
195
+ process.env.NEXT_PUBLIC_LIBEREX_WS_URL || 'wss://ws.liberex.io',
196
196
  {
197
197
  auth: {
198
198
  customerId,
@@ -205,11 +205,11 @@ export function DiviswapProvider({ children }: { children: React.ReactNode }) {
205
205
  );
206
206
 
207
207
  socketInstance.on('connect', () => {
208
- console.log('Connected to Diviswap WebSocket');
208
+ console.log('Connected to LiberEx WebSocket');
209
209
  });
210
210
 
211
211
  socketInstance.on('disconnect', () => {
212
- console.log('Disconnected from Diviswap WebSocket');
212
+ console.log('Disconnected from LiberEx WebSocket');
213
213
  });
214
214
 
215
215
  socketInstance.on('transaction:update', (data) => {
@@ -368,7 +368,7 @@ export function DiviswapProvider({ children }: { children: React.ReactNode }) {
368
368
  }, [socket]);
369
369
  {{/if}}
370
370
 
371
- const value: DiviswapContextValue = {
371
+ const value: LiberExContextValue = {
372
372
  customerId,
373
373
  customerEmail,
374
374
  loading,
@@ -393,16 +393,16 @@ export function DiviswapProvider({ children }: { children: React.ReactNode }) {
393
393
  };
394
394
 
395
395
  return (
396
- <DiviswapContext.Provider value={value}>
396
+ <LiberExContext.Provider value={value}>
397
397
  {children}
398
- </DiviswapContext.Provider>
398
+ </LiberExContext.Provider>
399
399
  );
400
400
  }
401
401
 
402
- export function useDiviswap() {
403
- const context = useContext(DiviswapContext);
402
+ export function useLiberEx() {
403
+ const context = useContext(LiberExContext);
404
404
  if (!context) {
405
- throw new Error('useDiviswap must be used within a DiviswapProvider');
405
+ throw new Error('useLiberEx must be used within a LiberExProvider');
406
406
  }
407
407
  return context;
408
408
  }
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Add this to your root layout.tsx to enable Diviswap functionality
2
+ * Add this to your root layout.tsx to enable LiberEx functionality
3
3
  *
4
4
  * Example:
5
5
  *
6
- * import { DiviswapProvider } from '@diviswap/sdk/react';
6
+ * import { LiberExProvider } from '@99darwin/liberex-sdk/react';
7
7
  *
8
8
  * export default function RootLayout({
9
9
  * children,
@@ -13,9 +13,9 @@
13
13
  * return (
14
14
  * <html lang="en">
15
15
  * <body>
16
- * <DiviswapProvider>
16
+ * <LiberExProvider>
17
17
  * {children}
18
- * </DiviswapProvider>
18
+ * </LiberExProvider>
19
19
  * </body>
20
20
  * </html>
21
21
  * );