@frontiertower/frontier-sdk 0.3.1 → 0.3.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.
@@ -0,0 +1,215 @@
1
+ // src/ui-utils/detection.ts
2
+ function isInFrontierApp() {
3
+ return window.self !== window.top;
4
+ }
5
+ function getParentOrigin() {
6
+ try {
7
+ if (window.parent !== window) {
8
+ if (document.referrer) {
9
+ return new URL(document.referrer).origin;
10
+ }
11
+ return window.parent.location.origin;
12
+ }
13
+ } catch (e) {
14
+ if (document.referrer) {
15
+ return new URL(document.referrer).origin;
16
+ }
17
+ }
18
+ return null;
19
+ }
20
+
21
+ // src/ui-utils/standalone.ts
22
+ function renderStandaloneMessage(container, appName = "Frontier App") {
23
+ container.innerHTML = `
24
+ <div style="
25
+ min-height: 100vh;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ padding: 1.5rem;
30
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
31
+ ">
32
+ <div style="
33
+ max-width: 32rem;
34
+ width: 100%;
35
+ background: white;
36
+ border-radius: 1rem;
37
+ padding: 2rem;
38
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
39
+ ">
40
+ <h1 style="
41
+ font-size: 2rem;
42
+ font-weight: bold;
43
+ margin-bottom: 1rem;
44
+ color: #1a202c;
45
+ ">
46
+ \u{1F680} ${appName}
47
+ </h1>
48
+
49
+ <div style="
50
+ background: #f7fafc;
51
+ border-radius: 0.5rem;
52
+ padding: 1.5rem;
53
+ margin-bottom: 1rem;
54
+ ">
55
+ <h2 style="
56
+ font-size: 1.25rem;
57
+ font-weight: 600;
58
+ margin-bottom: 0.75rem;
59
+ color: #2d3748;
60
+ ">
61
+ Frontier Wallet Required
62
+ </h2>
63
+ <p style="
64
+ color: #4a5568;
65
+ line-height: 1.6;
66
+ margin-bottom: 1rem;
67
+ ">
68
+ This is a Frontier App and needs to be opened within the Frontier Wallet.
69
+ </p>
70
+ <p style="
71
+ color: #4a5568;
72
+ font-weight: 600;
73
+ margin-bottom: 0.5rem;
74
+ ">
75
+ To use this app:
76
+ </p>
77
+ <ol style="
78
+ margin-left: 1.5rem;
79
+ color: #4a5568;
80
+ line-height: 1.8;
81
+ ">
82
+ <li>Visit <a href="https://wallet.frontiertower.io" style="color: #667eea; text-decoration: underline; font-weight: 500;">wallet.frontiertower.io</a></li>
83
+ <li>Go to the App Store</li>
84
+ <li>Install this app</li>
85
+ </ol>
86
+ </div>
87
+
88
+ <div style="
89
+ text-align: center;
90
+ padding-top: 1rem;
91
+ border-top: 1px solid #e2e8f0;
92
+ ">
93
+ <a
94
+ href="https://wallet.frontiertower.io"
95
+ style="
96
+ display: inline-block;
97
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
98
+ color: white;
99
+ padding: 0.75rem 2rem;
100
+ border-radius: 0.5rem;
101
+ text-decoration: none;
102
+ font-weight: 600;
103
+ transition: transform 0.2s;
104
+ "
105
+ onmouseover="this.style.transform='scale(1.05)'"
106
+ onmouseout="this.style.transform='scale(1)'"
107
+ >
108
+ Open Frontier Wallet
109
+ </a>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ `;
114
+ }
115
+ function createStandaloneHTML(appName = "Frontier App") {
116
+ return `
117
+ <div style="
118
+ min-height: 100vh;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ padding: 1.5rem;
123
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
124
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
125
+ ">
126
+ <div style="
127
+ max-width: 32rem;
128
+ width: 100%;
129
+ background: white;
130
+ border-radius: 1rem;
131
+ padding: 2rem;
132
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
133
+ ">
134
+ <h1 style="
135
+ font-size: 2rem;
136
+ font-weight: bold;
137
+ margin-bottom: 1rem;
138
+ color: #1a202c;
139
+ ">
140
+ \u{1F680} ${appName}
141
+ </h1>
142
+
143
+ <div style="
144
+ background: #f7fafc;
145
+ border-radius: 0.5rem;
146
+ padding: 1.5rem;
147
+ margin-bottom: 1rem;
148
+ ">
149
+ <h2 style="
150
+ font-size: 1.25rem;
151
+ font-weight: 600;
152
+ margin-bottom: 0.75rem;
153
+ color: #2d3748;
154
+ ">
155
+ Frontier Wallet Required
156
+ </h2>
157
+ <p style="
158
+ color: #4a5568;
159
+ line-height: 1.6;
160
+ margin-bottom: 1rem;
161
+ ">
162
+ This is a Frontier App and needs to be opened within the Frontier Wallet.
163
+ </p>
164
+ <p style="
165
+ color: #4a5568;
166
+ font-weight: 600;
167
+ margin-bottom: 0.5rem;
168
+ ">
169
+ To use this app:
170
+ </p>
171
+ <ol style="
172
+ margin-left: 1.5rem;
173
+ color: #4a5568;
174
+ line-height: 1.8;
175
+ ">
176
+ <li>Visit <a href="https://wallet.frontiertower.io" style="color: #667eea; text-decoration: underline; font-weight: 500;">wallet.frontiertower.io</a></li>
177
+ <li>Go to the App Store</li>
178
+ <li>Install this app</li>
179
+ </ol>
180
+ </div>
181
+
182
+ <div style="
183
+ text-align: center;
184
+ padding-top: 1rem;
185
+ border-top: 1px solid #e2e8f0;
186
+ ">
187
+ <a
188
+ href="https://wallet.frontiertower.io"
189
+ style="
190
+ display: inline-block;
191
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
192
+ color: white;
193
+ padding: 0.75rem 2rem;
194
+ border-radius: 0.5rem;
195
+ text-decoration: none;
196
+ font-weight: 600;
197
+ transition: transform 0.2s;
198
+ "
199
+ onmouseover="this.style.transform='scale(1.05)'"
200
+ onmouseout="this.style.transform='scale(1)'"
201
+ >
202
+ Open Frontier Wallet
203
+ </a>
204
+ </div>
205
+ </div>
206
+ </div>
207
+ `;
208
+ }
209
+
210
+ export {
211
+ isInFrontierApp,
212
+ getParentOrigin,
213
+ renderStandaloneMessage,
214
+ createStandaloneHTML
215
+ };
package/dist/index.d.mts CHANGED
@@ -1,3 +1,5 @@
1
+ export { createStandaloneHTML, getParentOrigin, isInFrontierApp, renderStandaloneMessage } from './ui-utils/index.mjs';
2
+
1
3
  /**
2
4
  * Smart account information
3
5
  */
@@ -392,15 +394,21 @@ declare class ChainAccess {
392
394
  */
393
395
  interface User {
394
396
  /** Unique user identifier */
395
- id: string;
397
+ id: number;
396
398
  /** User's email address */
397
399
  email: string;
398
- /** User's first name (optional) */
399
- firstName?: string;
400
- /** User's last name (optional) */
401
- lastName?: string;
402
- /** Username (optional) */
403
- username?: string;
400
+ /** User's first name */
401
+ firstName: string;
402
+ /** User's last name */
403
+ lastName: string;
404
+ /** Whether user is active */
405
+ isActive: boolean;
406
+ /** Date user joined */
407
+ dateJoined: string;
408
+ /** Whether user is staff */
409
+ isStaff: boolean;
410
+ /** Whether user is superuser */
411
+ isSuperuser: boolean;
404
412
  }
405
413
  /**
406
414
  * Detailed user profile information
@@ -475,37 +483,48 @@ interface PaginatedResponse<T> {
475
483
  */
476
484
  interface ReferralOverview {
477
485
  /** Total number of referrals */
478
- totalReferrals: number;
479
- /** Number of active referrals */
480
- activeReferrals: number;
481
- /** Total rewards earned */
482
- totalRewards: number;
486
+ referralCount: number;
487
+ /** User's ranking */
488
+ ranking: number;
489
+ /** Referral link */
490
+ referralLink: string;
491
+ /** Referral code */
492
+ referralCode: string;
493
+ /** Who referred this user */
494
+ referredBy: string | null;
483
495
  }
484
496
  /**
485
497
  * Detailed referral information
486
498
  */
487
499
  interface ReferralDetails {
488
500
  /** Referral ID */
489
- id: string;
501
+ id: number;
490
502
  /** Referred user email */
491
503
  email: string;
492
- /** Referral status */
493
- status: string;
494
- /** Date of referral */
495
- createdAt: string;
496
- /** Reward amount */
497
- reward?: number;
504
+ /** First name */
505
+ firstName: string;
506
+ /** Last name */
507
+ lastName: string;
508
+ /** Date user joined */
509
+ dateJoined: string;
498
510
  }
499
511
  /**
500
- * User contact information payload
512
+ * Single contact entry
501
513
  */
502
- interface UserContactPayload {
514
+ interface UserContact {
503
515
  /** Contact email */
504
- email?: string;
516
+ email: string;
505
517
  /** Contact phone number */
506
- phoneNumber?: string;
507
- /** Additional contact information */
508
- [key: string]: any;
518
+ phone: string;
519
+ /** Contact name */
520
+ name: string;
521
+ }
522
+ /**
523
+ * User contact information payload
524
+ */
525
+ interface UserContactPayload {
526
+ /** Array of contacts */
527
+ contacts: UserContact[];
509
528
  }
510
529
  /**
511
530
  * User access class for interacting with user information
@@ -667,4 +686,4 @@ interface SDKResponse {
667
686
  error?: string;
668
687
  }
669
688
 
670
- export { ChainAccess, type ChainConfig, type ExecuteCall, FrontierSDK, type GasOverrides, type SDKRequest, type SDKResponse, type SmartAccount, StorageAccess, type User, UserAccess, type UserOperationReceipt, type UserProfile, WalletAccess };
689
+ export { ChainAccess, type ChainConfig, type ExecuteCall, FrontierSDK, type GasOverrides, type PaginatedResponse, type ReferralDetails, type ReferralOverview, type SDKRequest, type SDKResponse, type SmartAccount, StorageAccess, type User, UserAccess, type UserContact, type UserContactPayload, type UserOperationReceipt, type UserProfile, WalletAccess };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export { createStandaloneHTML, getParentOrigin, isInFrontierApp, renderStandaloneMessage } from './ui-utils/index.js';
2
+
1
3
  /**
2
4
  * Smart account information
3
5
  */
@@ -392,15 +394,21 @@ declare class ChainAccess {
392
394
  */
393
395
  interface User {
394
396
  /** Unique user identifier */
395
- id: string;
397
+ id: number;
396
398
  /** User's email address */
397
399
  email: string;
398
- /** User's first name (optional) */
399
- firstName?: string;
400
- /** User's last name (optional) */
401
- lastName?: string;
402
- /** Username (optional) */
403
- username?: string;
400
+ /** User's first name */
401
+ firstName: string;
402
+ /** User's last name */
403
+ lastName: string;
404
+ /** Whether user is active */
405
+ isActive: boolean;
406
+ /** Date user joined */
407
+ dateJoined: string;
408
+ /** Whether user is staff */
409
+ isStaff: boolean;
410
+ /** Whether user is superuser */
411
+ isSuperuser: boolean;
404
412
  }
405
413
  /**
406
414
  * Detailed user profile information
@@ -475,37 +483,48 @@ interface PaginatedResponse<T> {
475
483
  */
476
484
  interface ReferralOverview {
477
485
  /** Total number of referrals */
478
- totalReferrals: number;
479
- /** Number of active referrals */
480
- activeReferrals: number;
481
- /** Total rewards earned */
482
- totalRewards: number;
486
+ referralCount: number;
487
+ /** User's ranking */
488
+ ranking: number;
489
+ /** Referral link */
490
+ referralLink: string;
491
+ /** Referral code */
492
+ referralCode: string;
493
+ /** Who referred this user */
494
+ referredBy: string | null;
483
495
  }
484
496
  /**
485
497
  * Detailed referral information
486
498
  */
487
499
  interface ReferralDetails {
488
500
  /** Referral ID */
489
- id: string;
501
+ id: number;
490
502
  /** Referred user email */
491
503
  email: string;
492
- /** Referral status */
493
- status: string;
494
- /** Date of referral */
495
- createdAt: string;
496
- /** Reward amount */
497
- reward?: number;
504
+ /** First name */
505
+ firstName: string;
506
+ /** Last name */
507
+ lastName: string;
508
+ /** Date user joined */
509
+ dateJoined: string;
498
510
  }
499
511
  /**
500
- * User contact information payload
512
+ * Single contact entry
501
513
  */
502
- interface UserContactPayload {
514
+ interface UserContact {
503
515
  /** Contact email */
504
- email?: string;
516
+ email: string;
505
517
  /** Contact phone number */
506
- phoneNumber?: string;
507
- /** Additional contact information */
508
- [key: string]: any;
518
+ phone: string;
519
+ /** Contact name */
520
+ name: string;
521
+ }
522
+ /**
523
+ * User contact information payload
524
+ */
525
+ interface UserContactPayload {
526
+ /** Array of contacts */
527
+ contacts: UserContact[];
509
528
  }
510
529
  /**
511
530
  * User access class for interacting with user information
@@ -667,4 +686,4 @@ interface SDKResponse {
667
686
  error?: string;
668
687
  }
669
688
 
670
- export { ChainAccess, type ChainConfig, type ExecuteCall, FrontierSDK, type GasOverrides, type SDKRequest, type SDKResponse, type SmartAccount, StorageAccess, type User, UserAccess, type UserOperationReceipt, type UserProfile, WalletAccess };
689
+ export { ChainAccess, type ChainConfig, type ExecuteCall, FrontierSDK, type GasOverrides, type PaginatedResponse, type ReferralDetails, type ReferralOverview, type SDKRequest, type SDKResponse, type SmartAccount, StorageAccess, type User, UserAccess, type UserContact, type UserContactPayload, type UserOperationReceipt, type UserProfile, WalletAccess };
package/dist/index.js CHANGED
@@ -24,7 +24,11 @@ __export(index_exports, {
24
24
  FrontierSDK: () => FrontierSDK,
25
25
  StorageAccess: () => StorageAccess,
26
26
  UserAccess: () => UserAccess,
27
- WalletAccess: () => WalletAccess
27
+ WalletAccess: () => WalletAccess,
28
+ createStandaloneHTML: () => createStandaloneHTML,
29
+ getParentOrigin: () => getParentOrigin,
30
+ isInFrontierApp: () => isInFrontierApp,
31
+ renderStandaloneMessage: () => renderStandaloneMessage
28
32
  });
29
33
  module.exports = __toCommonJS(index_exports);
30
34
 
@@ -562,11 +566,224 @@ var FrontierSDK = class {
562
566
  this.pendingRequests.clear();
563
567
  }
564
568
  };
569
+
570
+ // src/ui-utils/detection.ts
571
+ function isInFrontierApp() {
572
+ return window.self !== window.top;
573
+ }
574
+ function getParentOrigin() {
575
+ try {
576
+ if (window.parent !== window) {
577
+ if (document.referrer) {
578
+ return new URL(document.referrer).origin;
579
+ }
580
+ return window.parent.location.origin;
581
+ }
582
+ } catch (e) {
583
+ if (document.referrer) {
584
+ return new URL(document.referrer).origin;
585
+ }
586
+ }
587
+ return null;
588
+ }
589
+
590
+ // src/ui-utils/standalone.ts
591
+ function renderStandaloneMessage(container, appName = "Frontier App") {
592
+ container.innerHTML = `
593
+ <div style="
594
+ min-height: 100vh;
595
+ display: flex;
596
+ align-items: center;
597
+ justify-content: center;
598
+ padding: 1.5rem;
599
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
600
+ ">
601
+ <div style="
602
+ max-width: 32rem;
603
+ width: 100%;
604
+ background: white;
605
+ border-radius: 1rem;
606
+ padding: 2rem;
607
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
608
+ ">
609
+ <h1 style="
610
+ font-size: 2rem;
611
+ font-weight: bold;
612
+ margin-bottom: 1rem;
613
+ color: #1a202c;
614
+ ">
615
+ \u{1F680} ${appName}
616
+ </h1>
617
+
618
+ <div style="
619
+ background: #f7fafc;
620
+ border-radius: 0.5rem;
621
+ padding: 1.5rem;
622
+ margin-bottom: 1rem;
623
+ ">
624
+ <h2 style="
625
+ font-size: 1.25rem;
626
+ font-weight: 600;
627
+ margin-bottom: 0.75rem;
628
+ color: #2d3748;
629
+ ">
630
+ Frontier Wallet Required
631
+ </h2>
632
+ <p style="
633
+ color: #4a5568;
634
+ line-height: 1.6;
635
+ margin-bottom: 1rem;
636
+ ">
637
+ This is a Frontier App and needs to be opened within the Frontier Wallet.
638
+ </p>
639
+ <p style="
640
+ color: #4a5568;
641
+ font-weight: 600;
642
+ margin-bottom: 0.5rem;
643
+ ">
644
+ To use this app:
645
+ </p>
646
+ <ol style="
647
+ margin-left: 1.5rem;
648
+ color: #4a5568;
649
+ line-height: 1.8;
650
+ ">
651
+ <li>Visit <a href="https://wallet.frontiertower.io" style="color: #667eea; text-decoration: underline; font-weight: 500;">wallet.frontiertower.io</a></li>
652
+ <li>Go to the App Store</li>
653
+ <li>Install this app</li>
654
+ </ol>
655
+ </div>
656
+
657
+ <div style="
658
+ text-align: center;
659
+ padding-top: 1rem;
660
+ border-top: 1px solid #e2e8f0;
661
+ ">
662
+ <a
663
+ href="https://wallet.frontiertower.io"
664
+ style="
665
+ display: inline-block;
666
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
667
+ color: white;
668
+ padding: 0.75rem 2rem;
669
+ border-radius: 0.5rem;
670
+ text-decoration: none;
671
+ font-weight: 600;
672
+ transition: transform 0.2s;
673
+ "
674
+ onmouseover="this.style.transform='scale(1.05)'"
675
+ onmouseout="this.style.transform='scale(1)'"
676
+ >
677
+ Open Frontier Wallet
678
+ </a>
679
+ </div>
680
+ </div>
681
+ </div>
682
+ `;
683
+ }
684
+ function createStandaloneHTML(appName = "Frontier App") {
685
+ return `
686
+ <div style="
687
+ min-height: 100vh;
688
+ display: flex;
689
+ align-items: center;
690
+ justify-content: center;
691
+ padding: 1.5rem;
692
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
693
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
694
+ ">
695
+ <div style="
696
+ max-width: 32rem;
697
+ width: 100%;
698
+ background: white;
699
+ border-radius: 1rem;
700
+ padding: 2rem;
701
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
702
+ ">
703
+ <h1 style="
704
+ font-size: 2rem;
705
+ font-weight: bold;
706
+ margin-bottom: 1rem;
707
+ color: #1a202c;
708
+ ">
709
+ \u{1F680} ${appName}
710
+ </h1>
711
+
712
+ <div style="
713
+ background: #f7fafc;
714
+ border-radius: 0.5rem;
715
+ padding: 1.5rem;
716
+ margin-bottom: 1rem;
717
+ ">
718
+ <h2 style="
719
+ font-size: 1.25rem;
720
+ font-weight: 600;
721
+ margin-bottom: 0.75rem;
722
+ color: #2d3748;
723
+ ">
724
+ Frontier Wallet Required
725
+ </h2>
726
+ <p style="
727
+ color: #4a5568;
728
+ line-height: 1.6;
729
+ margin-bottom: 1rem;
730
+ ">
731
+ This is a Frontier App and needs to be opened within the Frontier Wallet.
732
+ </p>
733
+ <p style="
734
+ color: #4a5568;
735
+ font-weight: 600;
736
+ margin-bottom: 0.5rem;
737
+ ">
738
+ To use this app:
739
+ </p>
740
+ <ol style="
741
+ margin-left: 1.5rem;
742
+ color: #4a5568;
743
+ line-height: 1.8;
744
+ ">
745
+ <li>Visit <a href="https://wallet.frontiertower.io" style="color: #667eea; text-decoration: underline; font-weight: 500;">wallet.frontiertower.io</a></li>
746
+ <li>Go to the App Store</li>
747
+ <li>Install this app</li>
748
+ </ol>
749
+ </div>
750
+
751
+ <div style="
752
+ text-align: center;
753
+ padding-top: 1rem;
754
+ border-top: 1px solid #e2e8f0;
755
+ ">
756
+ <a
757
+ href="https://wallet.frontiertower.io"
758
+ style="
759
+ display: inline-block;
760
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
761
+ color: white;
762
+ padding: 0.75rem 2rem;
763
+ border-radius: 0.5rem;
764
+ text-decoration: none;
765
+ font-weight: 600;
766
+ transition: transform 0.2s;
767
+ "
768
+ onmouseover="this.style.transform='scale(1.05)'"
769
+ onmouseout="this.style.transform='scale(1)'"
770
+ >
771
+ Open Frontier Wallet
772
+ </a>
773
+ </div>
774
+ </div>
775
+ </div>
776
+ `;
777
+ }
565
778
  // Annotate the CommonJS export names for ESM import in node:
566
779
  0 && (module.exports = {
567
780
  ChainAccess,
568
781
  FrontierSDK,
569
782
  StorageAccess,
570
783
  UserAccess,
571
- WalletAccess
784
+ WalletAccess,
785
+ createStandaloneHTML,
786
+ getParentOrigin,
787
+ isInFrontierApp,
788
+ renderStandaloneMessage
572
789
  });
package/dist/index.mjs CHANGED
@@ -1,3 +1,10 @@
1
+ import {
2
+ createStandaloneHTML,
3
+ getParentOrigin,
4
+ isInFrontierApp,
5
+ renderStandaloneMessage
6
+ } from "./chunk-7VB6TETG.mjs";
7
+
1
8
  // src/access/wallet.ts
2
9
  var WalletAccess = class {
3
10
  constructor(sdk) {
@@ -537,5 +544,9 @@ export {
537
544
  FrontierSDK,
538
545
  StorageAccess,
539
546
  UserAccess,
540
- WalletAccess
547
+ WalletAccess,
548
+ createStandaloneHTML,
549
+ getParentOrigin,
550
+ isInFrontierApp,
551
+ renderStandaloneMessage
541
552
  };
@@ -1,211 +1,9 @@
1
- // src/ui-utils/detection.ts
2
- function isInFrontierApp() {
3
- return window.self !== window.top;
4
- }
5
- function getParentOrigin() {
6
- try {
7
- if (window.parent !== window) {
8
- if (document.referrer) {
9
- return new URL(document.referrer).origin;
10
- }
11
- return window.parent.location.origin;
12
- }
13
- } catch (e) {
14
- if (document.referrer) {
15
- return new URL(document.referrer).origin;
16
- }
17
- }
18
- return null;
19
- }
20
-
21
- // src/ui-utils/standalone.ts
22
- function renderStandaloneMessage(container, appName = "Frontier App") {
23
- container.innerHTML = `
24
- <div style="
25
- min-height: 100vh;
26
- display: flex;
27
- align-items: center;
28
- justify-content: center;
29
- padding: 1.5rem;
30
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
31
- ">
32
- <div style="
33
- max-width: 32rem;
34
- width: 100%;
35
- background: white;
36
- border-radius: 1rem;
37
- padding: 2rem;
38
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
39
- ">
40
- <h1 style="
41
- font-size: 2rem;
42
- font-weight: bold;
43
- margin-bottom: 1rem;
44
- color: #1a202c;
45
- ">
46
- \u{1F680} ${appName}
47
- </h1>
48
-
49
- <div style="
50
- background: #f7fafc;
51
- border-radius: 0.5rem;
52
- padding: 1.5rem;
53
- margin-bottom: 1rem;
54
- ">
55
- <h2 style="
56
- font-size: 1.25rem;
57
- font-weight: 600;
58
- margin-bottom: 0.75rem;
59
- color: #2d3748;
60
- ">
61
- Frontier Wallet Required
62
- </h2>
63
- <p style="
64
- color: #4a5568;
65
- line-height: 1.6;
66
- margin-bottom: 1rem;
67
- ">
68
- This is a Frontier App and needs to be opened within the Frontier Wallet.
69
- </p>
70
- <p style="
71
- color: #4a5568;
72
- font-weight: 600;
73
- margin-bottom: 0.5rem;
74
- ">
75
- To use this app:
76
- </p>
77
- <ol style="
78
- margin-left: 1.5rem;
79
- color: #4a5568;
80
- line-height: 1.8;
81
- ">
82
- <li>Visit <a href="https://wallet.frontiertower.io" style="color: #667eea; text-decoration: underline; font-weight: 500;">wallet.frontiertower.io</a></li>
83
- <li>Go to the App Store</li>
84
- <li>Install this app</li>
85
- </ol>
86
- </div>
87
-
88
- <div style="
89
- text-align: center;
90
- padding-top: 1rem;
91
- border-top: 1px solid #e2e8f0;
92
- ">
93
- <a
94
- href="https://wallet.frontiertower.io"
95
- style="
96
- display: inline-block;
97
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
98
- color: white;
99
- padding: 0.75rem 2rem;
100
- border-radius: 0.5rem;
101
- text-decoration: none;
102
- font-weight: 600;
103
- transition: transform 0.2s;
104
- "
105
- onmouseover="this.style.transform='scale(1.05)'"
106
- onmouseout="this.style.transform='scale(1)'"
107
- >
108
- Open Frontier Wallet
109
- </a>
110
- </div>
111
- </div>
112
- </div>
113
- `;
114
- }
115
- function createStandaloneHTML(appName = "Frontier App") {
116
- return `
117
- <div style="
118
- min-height: 100vh;
119
- display: flex;
120
- align-items: center;
121
- justify-content: center;
122
- padding: 1.5rem;
123
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
124
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
125
- ">
126
- <div style="
127
- max-width: 32rem;
128
- width: 100%;
129
- background: white;
130
- border-radius: 1rem;
131
- padding: 2rem;
132
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
133
- ">
134
- <h1 style="
135
- font-size: 2rem;
136
- font-weight: bold;
137
- margin-bottom: 1rem;
138
- color: #1a202c;
139
- ">
140
- \u{1F680} ${appName}
141
- </h1>
142
-
143
- <div style="
144
- background: #f7fafc;
145
- border-radius: 0.5rem;
146
- padding: 1.5rem;
147
- margin-bottom: 1rem;
148
- ">
149
- <h2 style="
150
- font-size: 1.25rem;
151
- font-weight: 600;
152
- margin-bottom: 0.75rem;
153
- color: #2d3748;
154
- ">
155
- Frontier Wallet Required
156
- </h2>
157
- <p style="
158
- color: #4a5568;
159
- line-height: 1.6;
160
- margin-bottom: 1rem;
161
- ">
162
- This is a Frontier App and needs to be opened within the Frontier Wallet.
163
- </p>
164
- <p style="
165
- color: #4a5568;
166
- font-weight: 600;
167
- margin-bottom: 0.5rem;
168
- ">
169
- To use this app:
170
- </p>
171
- <ol style="
172
- margin-left: 1.5rem;
173
- color: #4a5568;
174
- line-height: 1.8;
175
- ">
176
- <li>Visit <a href="https://wallet.frontiertower.io" style="color: #667eea; text-decoration: underline; font-weight: 500;">wallet.frontiertower.io</a></li>
177
- <li>Go to the App Store</li>
178
- <li>Install this app</li>
179
- </ol>
180
- </div>
181
-
182
- <div style="
183
- text-align: center;
184
- padding-top: 1rem;
185
- border-top: 1px solid #e2e8f0;
186
- ">
187
- <a
188
- href="https://wallet.frontiertower.io"
189
- style="
190
- display: inline-block;
191
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
192
- color: white;
193
- padding: 0.75rem 2rem;
194
- border-radius: 0.5rem;
195
- text-decoration: none;
196
- font-weight: 600;
197
- transition: transform 0.2s;
198
- "
199
- onmouseover="this.style.transform='scale(1.05)'"
200
- onmouseout="this.style.transform='scale(1)'"
201
- >
202
- Open Frontier Wallet
203
- </a>
204
- </div>
205
- </div>
206
- </div>
207
- `;
208
- }
1
+ import {
2
+ createStandaloneHTML,
3
+ getParentOrigin,
4
+ isInFrontierApp,
5
+ renderStandaloneMessage
6
+ } from "../chunk-7VB6TETG.mjs";
209
7
  export {
210
8
  createStandaloneHTML,
211
9
  getParentOrigin,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontiertower/frontier-sdk",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "SDK for building apps on Frontier Wallet",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",