fare-privy-core 1.7.8 → 1.7.9
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/README.md +108 -26
- package/dist/PrivyProviderTest.d.ts +1 -1
- package/dist/PrivyProviderTest.d.ts.map +1 -1
- package/dist/PrivyProviderTest.js +9 -43
- package/dist/PrivyProviderTest.js.map +1 -1
- package/dist/index.d.ts +44 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -6
- package/dist/index.js.map +1 -1
- package/dist/src/components/WalletOverview.d.ts +14 -0
- package/dist/src/components/WalletOverview.d.ts.map +1 -0
- package/dist/src/components/WalletOverview.js +46 -0
- package/dist/src/components/WalletOverview.js.map +1 -0
- package/dist/src/components/shared/Button/index.d.ts +22 -0
- package/dist/src/components/shared/Button/index.d.ts.map +1 -0
- package/dist/src/components/shared/Button/index.js +16 -0
- package/dist/src/components/shared/Button/index.js.map +1 -0
- package/dist/src/components/shared/Button/style.d.ts +560 -0
- package/dist/src/components/shared/Button/style.d.ts.map +1 -0
- package/dist/src/components/shared/Button/style.js +249 -0
- package/dist/src/components/shared/Button/style.js.map +1 -0
- package/dist/src/components/shared/Modal/Card.d.ts +4 -0
- package/dist/src/components/shared/Modal/Card.d.ts.map +1 -0
- package/dist/src/components/shared/Modal/Card.js +30 -0
- package/dist/src/components/shared/Modal/Card.js.map +1 -0
- package/dist/src/components/shared/Modal/ModalFooter.d.ts +7 -0
- package/dist/src/components/shared/Modal/ModalFooter.d.ts.map +1 -0
- package/dist/src/components/shared/Modal/ModalFooter.js +10 -0
- package/dist/src/components/shared/Modal/ModalFooter.js.map +1 -0
- package/dist/src/components/shared/Modal/ModalHeader.d.ts +8 -0
- package/dist/src/components/shared/Modal/ModalHeader.d.ts.map +1 -0
- package/dist/src/components/shared/Modal/ModalHeader.js +30 -0
- package/dist/src/components/shared/Modal/ModalHeader.js.map +1 -0
- package/dist/src/components/shared/Modal/animations.d.ts +4 -0
- package/dist/src/components/shared/Modal/animations.d.ts.map +1 -0
- package/dist/src/components/shared/Modal/animations.js +26 -0
- package/dist/src/components/shared/Modal/animations.js.map +1 -0
- package/dist/src/components/shared/Modal/styles.d.ts +1625 -0
- package/dist/src/components/shared/Modal/styles.d.ts.map +1 -0
- package/dist/src/components/shared/Modal/styles.js +210 -0
- package/dist/src/components/shared/Modal/styles.js.map +1 -0
- package/dist/src/components/shared/Modal/types.d.ts +18 -0
- package/dist/src/components/shared/Modal/types.d.ts.map +1 -0
- package/dist/src/components/shared/Modal/types.js +2 -0
- package/dist/src/components/shared/Modal/types.js.map +1 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/useActiveWallet.d.ts +19 -0
- package/dist/src/hooks/useActiveWallet.d.ts.map +1 -0
- package/dist/{hooks → src/hooks}/useActiveWallet.js +15 -23
- package/dist/src/hooks/useActiveWallet.js.map +1 -0
- package/dist/src/hooks/useAuthActions.d.ts.map +1 -0
- package/dist/src/hooks/useAuthActions.js.map +1 -0
- package/dist/{hooks → src/hooks}/useConnectedWallets.d.ts +2 -2
- package/dist/src/hooks/useConnectedWallets.d.ts.map +1 -0
- package/dist/{hooks → src/hooks}/useConnectedWallets.js +10 -10
- package/dist/src/hooks/useConnectedWallets.js.map +1 -0
- package/dist/src/hooks/useIsAuthenticated.d.ts.map +1 -0
- package/dist/{hooks → src/hooks}/useIsAuthenticated.js +3 -3
- package/dist/src/hooks/useIsAuthenticated.js.map +1 -0
- package/dist/src/hooks/useWalletAddresses.d.ts.map +1 -0
- package/dist/src/hooks/useWalletAddresses.js +42 -0
- package/dist/src/hooks/useWalletAddresses.js.map +1 -0
- package/dist/{hooks → src/hooks}/useWalletBalance.d.ts +1 -1
- package/dist/src/hooks/useWalletBalance.d.ts.map +1 -0
- package/dist/src/hooks/useWalletBalance.js +147 -0
- package/dist/src/hooks/useWalletBalance.js.map +1 -0
- package/dist/src/modals/SelectWalletModal/index.d.ts +30 -0
- package/dist/src/modals/SelectWalletModal/index.d.ts.map +1 -0
- package/dist/src/modals/SelectWalletModal/index.js +68 -0
- package/dist/src/modals/SelectWalletModal/index.js.map +1 -0
- package/dist/src/modals/SelectWalletModal/styles.d.ts +3001 -0
- package/dist/src/modals/SelectWalletModal/styles.d.ts.map +1 -0
- package/dist/src/modals/SelectWalletModal/styles.js +137 -0
- package/dist/src/modals/SelectWalletModal/styles.js.map +1 -0
- package/dist/src/modals/SelectWalletModal/variants.d.ts +6 -0
- package/dist/src/modals/SelectWalletModal/variants.d.ts.map +1 -0
- package/dist/src/modals/SelectWalletModal/variants.js +59 -0
- package/dist/src/modals/SelectWalletModal/variants.js.map +1 -0
- package/dist/src/store/switchWallet.d.ts.map +1 -0
- package/dist/src/store/switchWallet.js.map +1 -0
- package/package.json +114 -98
- package/dist/farePrivy/store/switchWallet.d.ts.map +0 -1
- package/dist/farePrivy/store/switchWallet.js.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useActiveWallet.d.ts +0 -24
- package/dist/hooks/useActiveWallet.d.ts.map +0 -1
- package/dist/hooks/useActiveWallet.js.map +0 -1
- package/dist/hooks/useAuthActions.d.ts.map +0 -1
- package/dist/hooks/useAuthActions.js.map +0 -1
- package/dist/hooks/useConnectedWallets.d.ts.map +0 -1
- package/dist/hooks/useConnectedWallets.js.map +0 -1
- package/dist/hooks/useIsAuthenticated.d.ts.map +0 -1
- package/dist/hooks/useIsAuthenticated.js.map +0 -1
- package/dist/hooks/useWalletAddresses.d.ts.map +0 -1
- package/dist/hooks/useWalletAddresses.js +0 -50
- package/dist/hooks/useWalletAddresses.js.map +0 -1
- package/dist/hooks/useWalletBalance.d.ts.map +0 -1
- package/dist/hooks/useWalletBalance.js +0 -99
- package/dist/hooks/useWalletBalance.js.map +0 -1
- /package/dist/{hooks → src/hooks}/index.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/index.js +0 -0
- /package/dist/{hooks → src/hooks}/useAuthActions.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useAuthActions.js +0 -0
- /package/dist/{hooks → src/hooks}/useIsAuthenticated.d.ts +0 -0
- /package/dist/{hooks → src/hooks}/useWalletAddresses.d.ts +0 -0
- /package/dist/{farePrivy → src}/store/switchWallet.d.ts +0 -0
- /package/dist/{farePrivy → src}/store/switchWallet.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/Modal/styles.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,EAAE,GAapC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,GAiB3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,GAW9B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGxB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW7B,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,GAW1B,CAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { motion } from "framer-motion";
|
|
2
|
+
import styled from "styled-components";
|
|
3
|
+
import { Button } from "../Button";
|
|
4
|
+
export const SModalOverlayContainer = styled(motion.div) `
|
|
5
|
+
position: fixed;
|
|
6
|
+
inset: 0;
|
|
7
|
+
background-color: rgba(0, 0, 0, 0.8);
|
|
8
|
+
z-index: 999;
|
|
9
|
+
display: flex;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
align-items: center;
|
|
12
|
+
text-align: justify;
|
|
13
|
+
|
|
14
|
+
@media (min-aspect-ratio: 16/9) and (max-width: 992px) and (orientation: landscape) {
|
|
15
|
+
display: none;
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
export const SModalWrapper = styled(motion.div) `
|
|
19
|
+
position: fixed;
|
|
20
|
+
top: 50%;
|
|
21
|
+
left: 50%;
|
|
22
|
+
transform: translate(-50%, -50%);
|
|
23
|
+
z-index: 1000;
|
|
24
|
+
display: flex;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
align-items: center;
|
|
27
|
+
height: 100%;
|
|
28
|
+
min-width: 450px;
|
|
29
|
+
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
|
|
30
|
+
|
|
31
|
+
@media (max-width: 600px) {
|
|
32
|
+
min-width: 300px;
|
|
33
|
+
width: 90%;
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
export const SModalContent = styled.div `
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-direction: column;
|
|
39
|
+
justify-content: flex-start;
|
|
40
|
+
align-items: center;
|
|
41
|
+
background-color: black;
|
|
42
|
+
height: 90%;
|
|
43
|
+
max-height: 800px;
|
|
44
|
+
width: 600px;
|
|
45
|
+
border-radius: 6px;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
position: relative;
|
|
48
|
+
|
|
49
|
+
&.card-modal-content {
|
|
50
|
+
height: 600px;
|
|
51
|
+
|
|
52
|
+
@media (max-height: 605px) {
|
|
53
|
+
height: 500px;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&.fund-modal-content {
|
|
58
|
+
padding: 2rem;
|
|
59
|
+
width: 440px;
|
|
60
|
+
text-align: left;
|
|
61
|
+
background-color: #1c1c1e;
|
|
62
|
+
border-radius: 2.5rem !important;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
border-radius: 16px;
|
|
65
|
+
text-align: justify;
|
|
66
|
+
|
|
67
|
+
@media (max-width: 992px) {
|
|
68
|
+
padding: 14px;
|
|
69
|
+
width: 100%;
|
|
70
|
+
text-align: left;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&.support-modal {
|
|
75
|
+
display: flex;
|
|
76
|
+
flex-direction: column;
|
|
77
|
+
text-align: center;
|
|
78
|
+
align-items: center;
|
|
79
|
+
justify-content: center;
|
|
80
|
+
margin: auto;
|
|
81
|
+
padding: 16px 0;
|
|
82
|
+
height: 330px;
|
|
83
|
+
width: 100%;
|
|
84
|
+
|
|
85
|
+
p {
|
|
86
|
+
text-align: center;
|
|
87
|
+
font-size: 16px;
|
|
88
|
+
margin: 0;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&.offer-modal {
|
|
93
|
+
padding: 32px;
|
|
94
|
+
flex-direction: row;
|
|
95
|
+
|
|
96
|
+
h2 {
|
|
97
|
+
color: #4af5d3;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@media (max-width: 992px) {
|
|
101
|
+
flex-direction: column;
|
|
102
|
+
padding: 16px 24px;
|
|
103
|
+
height: 600px;
|
|
104
|
+
overflow-y: auto;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@media (max-width: 992px) {
|
|
109
|
+
width: 320px;
|
|
110
|
+
text-align: center;
|
|
111
|
+
}
|
|
112
|
+
`;
|
|
113
|
+
export const SFundModalButton = styled(Button) `
|
|
114
|
+
height: 30px;
|
|
115
|
+
width: 30px;
|
|
116
|
+
padding: 0;
|
|
117
|
+
border: none;
|
|
118
|
+
background-color: transparent;
|
|
119
|
+
font-family: system-ui, sans-serif;
|
|
120
|
+
|
|
121
|
+
&:hover {
|
|
122
|
+
border: none;
|
|
123
|
+
}
|
|
124
|
+
`;
|
|
125
|
+
export const SModalHeader = styled.div `
|
|
126
|
+
padding: 0 16px;
|
|
127
|
+
width: 100%;
|
|
128
|
+
`;
|
|
129
|
+
export const SModalTitle = styled.h2 `
|
|
130
|
+
font-size: 20px;
|
|
131
|
+
font-weight: 600;
|
|
132
|
+
color: white;
|
|
133
|
+
line-height: 1;
|
|
134
|
+
|
|
135
|
+
@media (max-width: 600px) {
|
|
136
|
+
font-size: 18px;
|
|
137
|
+
margin-inline: 12px;
|
|
138
|
+
}
|
|
139
|
+
`;
|
|
140
|
+
export const SModalDescription = styled.p `
|
|
141
|
+
font-size: 16px;
|
|
142
|
+
color: #aaa;
|
|
143
|
+
margin: 8px 0;
|
|
144
|
+
text-align: justify;
|
|
145
|
+
|
|
146
|
+
@media (max-width: 600px) {
|
|
147
|
+
font-size: 14px;
|
|
148
|
+
margin-inline: 12px;
|
|
149
|
+
text-align: left;
|
|
150
|
+
}
|
|
151
|
+
`;
|
|
152
|
+
export const SModalBody = styled.div `
|
|
153
|
+
overflow-y: auto;
|
|
154
|
+
flex-grow: 1;
|
|
155
|
+
width: 100%;
|
|
156
|
+
padding: 16px;
|
|
157
|
+
|
|
158
|
+
@media (max-width: 600px) {
|
|
159
|
+
padding: 8px;
|
|
160
|
+
overflow-x: hidden;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
&.support-modal-content {
|
|
164
|
+
width: 100%;
|
|
165
|
+
width: -moz-available; /* WebKit-based browsers will ignore this. */
|
|
166
|
+
width: -webkit-fill-available; /* Firefox will ignore this. */
|
|
167
|
+
align-items: center;
|
|
168
|
+
justify-content: center;
|
|
169
|
+
margin: auto;
|
|
170
|
+
height: 100%;
|
|
171
|
+
line-height: 1.5;
|
|
172
|
+
|
|
173
|
+
@media (max-width: 992px) {
|
|
174
|
+
padding: 20px 24px;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
`;
|
|
178
|
+
export const SModalFooter = styled.div `
|
|
179
|
+
width: 100%;
|
|
180
|
+
display: flex;
|
|
181
|
+
justify-content: space-between;
|
|
182
|
+
align-items: center;
|
|
183
|
+
|
|
184
|
+
&.submit-button {
|
|
185
|
+
position: absolute;
|
|
186
|
+
bottom: 20px;
|
|
187
|
+
left: 50%;
|
|
188
|
+
transform: translateX(-50%);
|
|
189
|
+
display: flex;
|
|
190
|
+
justify-content: center;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.next-button {
|
|
194
|
+
display: flex;
|
|
195
|
+
justify-content: flex-end;
|
|
196
|
+
}
|
|
197
|
+
`;
|
|
198
|
+
export const SModalButton = styled(Button) `
|
|
199
|
+
width: 30px !important;
|
|
200
|
+
aspect-ratio: 1;
|
|
201
|
+
padding: 0;
|
|
202
|
+
border: none;
|
|
203
|
+
background-color: transparent;
|
|
204
|
+
font-family: system-ui, sans-serif;
|
|
205
|
+
|
|
206
|
+
&:hover {
|
|
207
|
+
border: none;
|
|
208
|
+
}
|
|
209
|
+
`;
|
|
210
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/components/shared/Modal/styles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,CAAC,MAAM,sBAAsB,GAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;;;;;;;CAa5D,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;;;;;;;;;;;CAiBnD,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EtC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAQ,MAAM,CAAC,MAAM,CAAC,CAAA;;;;;;;;;;;CAWlD,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAGrC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;;;;;;;;;;CAUnC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAA;;;;;;;;;;;CAWxC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;CAyBnC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;CAmBrC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAQ,MAAM,CAAC,MAAM,CAAC,CAAA;;;;;;;;;;;CAW9C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface ModalCardProps {
|
|
2
|
+
title: React.ReactNode;
|
|
3
|
+
description?: React.ReactNode;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
submit?: React.ReactNode;
|
|
6
|
+
isVisible?: boolean;
|
|
7
|
+
setIsVisible?: (isVisible: boolean) => void;
|
|
8
|
+
className?: string;
|
|
9
|
+
stepIdx?: number;
|
|
10
|
+
onClose?: () => void;
|
|
11
|
+
setStepIdx?: (idx: number) => void;
|
|
12
|
+
maxHeight?: string;
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
closeIcon: any;
|
|
15
|
+
caretLeftIcon: any;
|
|
16
|
+
isMobileScreen: any;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/shared/Modal/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,EAAE,GAAG,CAAC;IACf,aAAa,EAAE,GAAG,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/components/shared/Modal/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2CAA2C;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,iCAAiC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useActiveWallet - Active wallet management (previous stable version)
|
|
3
|
+
* Based on the working pattern from your casino app
|
|
4
|
+
*/
|
|
5
|
+
import { type ConnectedWallet } from "@privy-io/react-auth";
|
|
6
|
+
export interface IActiveWallet extends ConnectedWallet {
|
|
7
|
+
getEthereumProvider: () => Promise<any>;
|
|
8
|
+
getSolanaProvider?: () => Promise<any>;
|
|
9
|
+
}
|
|
10
|
+
export declare const useActiveWallet: () => {
|
|
11
|
+
activeWallet: ConnectedWallet;
|
|
12
|
+
isWalletAuthed: boolean;
|
|
13
|
+
walletAddress: string;
|
|
14
|
+
ready: boolean;
|
|
15
|
+
authenticated: boolean;
|
|
16
|
+
readyAndAuth: boolean;
|
|
17
|
+
wallets: ConnectedWallet[];
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=useActiveWallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveWallet.d.ts","sourceRoot":"","sources":["../../../src/hooks/useActiveWallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,mBAAmB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,eAAe;;;;;;;;CAyD3B,CAAC"}
|
|
@@ -4,33 +4,25 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { useMemo } from "react";
|
|
6
6
|
import { usePrivy, useWallets, } from "@privy-io/react-auth";
|
|
7
|
-
|
|
8
|
-
export function useActiveWallet() {
|
|
7
|
+
export const useActiveWallet = () => {
|
|
9
8
|
const { ready, authenticated } = usePrivy();
|
|
10
9
|
const { wallets: unlinkedWallets } = useWallets();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
}, [unlinkedWallets]);
|
|
23
|
-
// Select first linked wallet as active
|
|
10
|
+
const wallets = useMemo(() => unlinkedWallets.filter((wallet) => wallet.linked), [unlinkedWallets]);
|
|
11
|
+
// Previous stable pattern: select first linked wallet as active
|
|
12
|
+
// Type guard for IActiveWallet
|
|
13
|
+
function isActiveWallet(obj) {
|
|
14
|
+
return (obj &&
|
|
15
|
+
typeof obj.getEthereumProvider === "function" &&
|
|
16
|
+
// If you need Solana, you can add:
|
|
17
|
+
(typeof obj.getSolanaProvider === "function" ||
|
|
18
|
+
typeof obj.getSolanaProvider === "undefined"));
|
|
19
|
+
}
|
|
24
20
|
const activeWallet = useMemo(() => {
|
|
25
21
|
if (!ready || !authenticated || wallets.length === 0)
|
|
26
22
|
return null;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return w;
|
|
31
|
-
if (w.walletType === "solana")
|
|
32
|
-
return w;
|
|
33
|
-
return null;
|
|
23
|
+
const selectedWallet = wallets[0];
|
|
24
|
+
// Only return if it passes the type guard
|
|
25
|
+
return isActiveWallet(selectedWallet) ? selectedWallet : null;
|
|
34
26
|
}, [ready, authenticated, wallets]);
|
|
35
27
|
const walletAddress = useMemo(() => activeWallet?.address || "", [activeWallet]);
|
|
36
28
|
const isWalletAuthed = useMemo(() => Boolean(activeWallet), [activeWallet]);
|
|
@@ -52,5 +44,5 @@ export function useActiveWallet() {
|
|
|
52
44
|
readyAndAuth,
|
|
53
45
|
wallets,
|
|
54
46
|
]);
|
|
55
|
-
}
|
|
47
|
+
};
|
|
56
48
|
//# sourceMappingURL=useActiveWallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useActiveWallet.js","sourceRoot":"","sources":["../../../src/hooks/useActiveWallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,QAAQ,EACR,UAAU,GAEX,MAAM,sBAAsB,CAAC;AAO9B,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5C,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACvD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,gEAAgE;IAChE,+BAA+B;IAC/B,SAAS,cAAc,CAAC,GAAQ;QAC9B,OAAO,CACL,GAAG;YACH,OAAO,GAAG,CAAC,mBAAmB,KAAK,UAAU;YAC7C,mCAAmC;YACnC,CAAC,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU;gBAC1C,OAAO,GAAG,CAAC,iBAAiB,KAAK,WAAW,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClE,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,0CAA0C;QAC1C,OAAO,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,EACjC,CAAC,YAAY,CAAC,CACf,CAAC;IACF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,KAAK,IAAI,aAAa,EAC5B,CAAC,KAAK,EAAE,aAAa,CAAC,CACvB,CAAC;IAEF,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,YAAY;QACZ,cAAc;QACd,aAAa;QACb,KAAK;QACL,aAAa;QACb,YAAY;QACZ,OAAO;KACR,CAAC,EACF;QACE,YAAY;QACZ,cAAc;QACd,aAAa;QACb,KAAK;QACL,aAAa;QACb,YAAY;QACZ,OAAO;KACR,CACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAuthActions.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAuthActions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,cAAc;IAMvB,yCAAyC;;IAEzC,yCAAyC;;IAEzC,uCAAuC;;IAEvC,8CAA8C;;CAGjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAuthActions.js","sourceRoot":"","sources":["../../../src/hooks/useAuthActions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE5C,OAAO;QACL,yCAAyC;QACzC,KAAK;QACL,yCAAyC;QACzC,MAAM;QACN,uCAAuC;QACvC,OAAO,EAAE,KAAK;QACd,8CAA8C;QAC9C,eAAe,EAAE,aAAa;KAC/B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Get active/connected wallets for both Ethereum and Solana
|
|
4
4
|
*/
|
|
5
5
|
export declare const useConnectedWallets: () => {
|
|
6
|
-
/** All linked wallets */
|
|
7
|
-
|
|
6
|
+
/** All connected/linked wallets */
|
|
7
|
+
connectedWallets: import("@privy-io/react-auth").ConnectedWallet[];
|
|
8
8
|
/** Primary wallet (first connected) */
|
|
9
9
|
primaryWallet: import("@privy-io/react-auth").ConnectedWallet;
|
|
10
10
|
/** Embedded Privy wallet if exists */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnectedWallets.d.ts","sourceRoot":"","sources":["../../../src/hooks/useConnectedWallets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,eAAO,MAAM,mBAAmB;IA6B5B,mCAAmC;;IAEnC,uCAAuC;;IAEvC,sCAAsC;;IAEtC,0DAA0D;;IAE1D,oCAAoC;;IAEpC,6BAA6B;;CAGhC,CAAC"}
|
|
@@ -7,23 +7,23 @@ import { usePrivy, useWallets as usePrivyWallets } from "@privy-io/react-auth";
|
|
|
7
7
|
export const useConnectedWallets = () => {
|
|
8
8
|
const { ready, authenticated } = usePrivy();
|
|
9
9
|
const { wallets } = usePrivyWallets();
|
|
10
|
-
const
|
|
10
|
+
const connectedWallets = useMemo(() => wallets.filter((wallet) => wallet.linked), [wallets]);
|
|
11
11
|
const primaryWallet = useMemo(() => {
|
|
12
|
-
if (!ready || !authenticated ||
|
|
12
|
+
if (!ready || !authenticated || connectedWallets.length === 0)
|
|
13
13
|
return null;
|
|
14
|
-
return
|
|
15
|
-
}, [ready, authenticated,
|
|
14
|
+
return connectedWallets[0];
|
|
15
|
+
}, [ready, authenticated, connectedWallets]);
|
|
16
16
|
const embeddedWallet = useMemo(() => {
|
|
17
|
-
return (
|
|
17
|
+
return (connectedWallets.find((wallet) => wallet.connectorType === "embedded") ||
|
|
18
18
|
null);
|
|
19
|
-
}, [
|
|
19
|
+
}, [connectedWallets]);
|
|
20
20
|
const externalWallet = useMemo(() => {
|
|
21
|
-
return (
|
|
21
|
+
return (connectedWallets.find((wallet) => wallet.connectorType !== "embedded") ||
|
|
22
22
|
null);
|
|
23
|
-
}, [
|
|
23
|
+
}, [connectedWallets]);
|
|
24
24
|
return {
|
|
25
|
-
/** All linked wallets */
|
|
26
|
-
|
|
25
|
+
/** All connected/linked wallets */
|
|
26
|
+
connectedWallets,
|
|
27
27
|
/** Primary wallet (first connected) */
|
|
28
28
|
primaryWallet,
|
|
29
29
|
/** Embedded Privy wallet if exists */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConnectedWallets.js","sourceRoot":"","sources":["../../../src/hooks/useConnectedWallets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IAEtC,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC/C,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3E,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE7C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,CACL,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,UAAU,CAAC;YACtE,IAAI,CACL,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,CACL,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,UAAU,CAAC;YACtE,IAAI,CACL,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO;QACL,mCAAmC;QACnC,gBAAgB;QAChB,uCAAuC;QACvC,aAAa;QACb,sCAAsC;QACtC,cAAc;QACd,0DAA0D;QAC1D,cAAc;QACd,oCAAoC;QACpC,eAAe,EAAE,aAAa,IAAI,KAAK;QACvC,6BAA6B;QAC7B,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsAuthenticated.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsAuthenticated.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,eAAO,MAAM,kBAAkB;IAQ3B,qDAAqD;;IAErD,6BAA6B;;IAE7B,kCAAkC;;IAElC,wBAAwB;;CAG3B,CAAC"}
|
|
@@ -6,8 +6,8 @@ import { usePrivy } from "@privy-io/react-auth";
|
|
|
6
6
|
import { useConnectedWallets } from "./useConnectedWallets";
|
|
7
7
|
export const useIsAuthenticated = () => {
|
|
8
8
|
const { user, ready, authenticated } = usePrivy();
|
|
9
|
-
const {
|
|
10
|
-
const hasWallet =
|
|
9
|
+
const { connectedWallets } = useConnectedWallets();
|
|
10
|
+
const hasWallet = connectedWallets.length > 0;
|
|
11
11
|
const isFullyAuthenticated = authenticated && ready && hasWallet;
|
|
12
12
|
return {
|
|
13
13
|
/** User is authenticated and has wallet connected */
|
|
@@ -15,7 +15,7 @@ export const useIsAuthenticated = () => {
|
|
|
15
15
|
/** User object from Privy */
|
|
16
16
|
user,
|
|
17
17
|
/** Number of connected wallets */
|
|
18
|
-
walletCount:
|
|
18
|
+
walletCount: connectedWallets.length,
|
|
19
19
|
/** Privy ready state */
|
|
20
20
|
isReady: ready,
|
|
21
21
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsAuthenticated.js","sourceRoot":"","sources":["../../../src/hooks/useIsAuthenticated.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC;IAClD,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,MAAM,oBAAoB,GAAG,aAAa,IAAI,KAAK,IAAI,SAAS,CAAC;IAEjE,OAAO;QACL,qDAAqD;QACrD,eAAe,EAAE,oBAAoB;QACrC,6BAA6B;QAC7B,IAAI;QACJ,kCAAkC;QAClC,WAAW,EAAE,gBAAgB,CAAC,MAAM;QACpC,wBAAwB;QACxB,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWalletAddresses.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWalletAddresses.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,eAAO,MAAM,kBAAkB;IA6B3B,oCAAoC;;IAEpC,kCAAkC;;IAElC,+BAA+B;;IAE/B,6BAA6B;;CAGhC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useWalletAddresses - Address extraction by chain type
|
|
3
|
+
* Get wallet addresses organized by blockchain
|
|
4
|
+
*/
|
|
5
|
+
import { useMemo } from "react";
|
|
6
|
+
import { useConnectedWallets } from "./useConnectedWallets";
|
|
7
|
+
export const useWalletAddresses = () => {
|
|
8
|
+
const { connectedWallets } = useConnectedWallets();
|
|
9
|
+
const ethereumAddresses = useMemo(() => {
|
|
10
|
+
return connectedWallets
|
|
11
|
+
.filter((w) => {
|
|
12
|
+
// Multiple ways to check for Ethereum wallets
|
|
13
|
+
const { chainType, walletClientType, connectorType } = w;
|
|
14
|
+
return (chainType === "ethereum" ||
|
|
15
|
+
walletClientType === "ethereum" ||
|
|
16
|
+
connectorType === "embedded" || // Embedded wallets are usually Ethereum
|
|
17
|
+
connectorType === "injected" || // MetaMask, etc.
|
|
18
|
+
!chainType // Default to Ethereum if no chain type specified
|
|
19
|
+
);
|
|
20
|
+
})
|
|
21
|
+
.map((w) => w.address);
|
|
22
|
+
}, [connectedWallets]);
|
|
23
|
+
const solanaAddresses = useMemo(() => {
|
|
24
|
+
return connectedWallets
|
|
25
|
+
.filter((w) => {
|
|
26
|
+
const { chainType, walletClientType } = w;
|
|
27
|
+
return chainType === "solana" || walletClientType === "solana";
|
|
28
|
+
})
|
|
29
|
+
.map((w) => w.address);
|
|
30
|
+
}, [connectedWallets]);
|
|
31
|
+
return {
|
|
32
|
+
/** All Ethereum wallet addresses */
|
|
33
|
+
ethereumAddresses,
|
|
34
|
+
/** All Solana wallet addresses */
|
|
35
|
+
solanaAddresses,
|
|
36
|
+
/** Primary Ethereum address */
|
|
37
|
+
primaryEthereumAddress: ethereumAddresses[0] || null,
|
|
38
|
+
/** Primary Solana address */
|
|
39
|
+
primarySolanaAddress: solanaAddresses[0] || null,
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=useWalletAddresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWalletAddresses.js","sourceRoot":"","sources":["../../../src/hooks/useWalletAddresses.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAa,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAU5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAEnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,OAAQ,gBAA6B;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,8CAA8C;YAC9C,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YACzD,OAAO,CACL,SAAS,KAAK,UAAU;gBACxB,gBAAgB,KAAK,UAAU;gBAC/B,aAAa,KAAK,UAAU,IAAI,wCAAwC;gBACxE,aAAa,KAAK,UAAU,IAAI,iBAAiB;gBACjD,CAAC,SAAS,CAAC,iDAAiD;aAC7D,CAAC;QACJ,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,OAAQ,gBAA6B;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO,SAAS,KAAK,QAAQ,IAAI,gBAAgB,KAAK,QAAQ,CAAC;QACjE,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO;QACL,oCAAoC;QACpC,iBAAiB;QACjB,kCAAkC;QAClC,eAAe;QACf,+BAA+B;QAC/B,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,IAAI;QACpD,6BAA6B;QAC7B,oBAAoB,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,IAAI;KACjD,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ export interface WalletBalance {
|
|
|
2
2
|
ethereumBalance: string | null;
|
|
3
3
|
solanaBalance: string | null;
|
|
4
4
|
loading: boolean;
|
|
5
|
-
error:
|
|
5
|
+
error: string | null;
|
|
6
6
|
refetchBalance: () => void;
|
|
7
7
|
}
|
|
8
8
|
export declare function useWalletBalance(): WalletBalance;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWalletBalance.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWalletBalance.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CA+IhD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// ...existing code from previous stable version (single implementation only)...
|
|
2
|
+
import { useState, useEffect, useCallback, useRef } from "react";
|
|
3
|
+
import { useActiveWallet } from "./useActiveWallet";
|
|
4
|
+
export function useWalletBalance() {
|
|
5
|
+
const { activeWallet } = useActiveWallet();
|
|
6
|
+
const [ethereumBalance, setEthereumBalance] = useState(null);
|
|
7
|
+
const [solanaBalance, setSolanaBalance] = useState(null);
|
|
8
|
+
const [loading, setLoading] = useState(false);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
const fetchingRef = useRef(false);
|
|
11
|
+
const fetchBalances = useCallback(async () => {
|
|
12
|
+
if (!activeWallet || fetchingRef.current) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
fetchingRef.current = true;
|
|
16
|
+
setLoading(true);
|
|
17
|
+
setError(null);
|
|
18
|
+
try {
|
|
19
|
+
// For Ethereum wallets, try to get balance
|
|
20
|
+
if (activeWallet.address && activeWallet.getEthereumProvider) {
|
|
21
|
+
try {
|
|
22
|
+
// Try to get provider and fetch balance
|
|
23
|
+
const provider = await activeWallet.getEthereumProvider();
|
|
24
|
+
if (provider && provider.request) {
|
|
25
|
+
const balance = await provider.request({
|
|
26
|
+
method: "eth_getBalance",
|
|
27
|
+
params: [activeWallet.address, "latest"],
|
|
28
|
+
});
|
|
29
|
+
// Convert from hex wei to ETH
|
|
30
|
+
const balanceInWei = parseInt(balance, 16);
|
|
31
|
+
const balanceInEth = (balanceInWei / Math.pow(10, 18)).toFixed(4);
|
|
32
|
+
setEthereumBalance(balanceInEth);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
// If no provider available, set placeholder
|
|
36
|
+
setEthereumBalance("0.0000");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (providerError) {
|
|
40
|
+
console.log("Provider balance fetch failed, using placeholder:", providerError);
|
|
41
|
+
setEthereumBalance("0.0000");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
setEthereumBalance(null);
|
|
46
|
+
}
|
|
47
|
+
// Solana placeholder (Privy doesn't support Solana balances in React SDK yet)
|
|
48
|
+
setSolanaBalance(null);
|
|
49
|
+
}
|
|
50
|
+
catch (fetchError) {
|
|
51
|
+
console.error("Error fetching wallet balance:", fetchError);
|
|
52
|
+
setError("Failed to fetch balance");
|
|
53
|
+
setEthereumBalance(null);
|
|
54
|
+
setSolanaBalance(null);
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
setLoading(false);
|
|
58
|
+
fetchingRef.current = false;
|
|
59
|
+
}
|
|
60
|
+
}, [activeWallet?.address]);
|
|
61
|
+
// Reset balances when wallet changes
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
let cancelled = false;
|
|
64
|
+
const safeSetEthereumBalance = (val) => {
|
|
65
|
+
if (!cancelled)
|
|
66
|
+
setEthereumBalance(val);
|
|
67
|
+
};
|
|
68
|
+
const safeSetSolanaBalance = (val) => {
|
|
69
|
+
if (!cancelled)
|
|
70
|
+
setSolanaBalance(val);
|
|
71
|
+
};
|
|
72
|
+
const safeSetError = (val) => {
|
|
73
|
+
if (!cancelled)
|
|
74
|
+
setError(val);
|
|
75
|
+
};
|
|
76
|
+
const safeSetLoading = (val) => {
|
|
77
|
+
if (!cancelled)
|
|
78
|
+
setLoading(val);
|
|
79
|
+
};
|
|
80
|
+
const fetchBalancesWithCancel = async () => {
|
|
81
|
+
if (!activeWallet || fetchingRef.current) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
fetchingRef.current = true;
|
|
85
|
+
safeSetLoading(true);
|
|
86
|
+
safeSetError(null);
|
|
87
|
+
try {
|
|
88
|
+
// For Ethereum wallets, try to get balance
|
|
89
|
+
if (activeWallet.address && activeWallet.getEthereumProvider) {
|
|
90
|
+
try {
|
|
91
|
+
const provider = await activeWallet.getEthereumProvider();
|
|
92
|
+
if (provider && provider.request) {
|
|
93
|
+
const balance = await provider.request({
|
|
94
|
+
method: "eth_getBalance",
|
|
95
|
+
params: [activeWallet.address, "latest"],
|
|
96
|
+
});
|
|
97
|
+
const balanceInWei = parseInt(balance, 16);
|
|
98
|
+
const balanceInEth = (balanceInWei / Math.pow(10, 18)).toFixed(4);
|
|
99
|
+
safeSetEthereumBalance(balanceInEth);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
safeSetEthereumBalance("0.0000");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (providerError) {
|
|
106
|
+
console.log("Provider balance fetch failed, using placeholder:", providerError);
|
|
107
|
+
safeSetEthereumBalance("0.0000");
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
safeSetEthereumBalance(null);
|
|
112
|
+
}
|
|
113
|
+
// Solana placeholder
|
|
114
|
+
safeSetSolanaBalance(null);
|
|
115
|
+
}
|
|
116
|
+
catch (fetchError) {
|
|
117
|
+
console.error("Error fetching wallet balance:", fetchError);
|
|
118
|
+
safeSetError("Failed to fetch balance");
|
|
119
|
+
safeSetEthereumBalance(null);
|
|
120
|
+
safeSetSolanaBalance(null);
|
|
121
|
+
}
|
|
122
|
+
finally {
|
|
123
|
+
safeSetLoading(false);
|
|
124
|
+
fetchingRef.current = false;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
if (activeWallet?.address) {
|
|
128
|
+
fetchBalancesWithCancel();
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
safeSetEthereumBalance(null);
|
|
132
|
+
safeSetSolanaBalance(null);
|
|
133
|
+
safeSetError(null);
|
|
134
|
+
}
|
|
135
|
+
return () => {
|
|
136
|
+
cancelled = true;
|
|
137
|
+
};
|
|
138
|
+
}, [activeWallet?.address]);
|
|
139
|
+
return {
|
|
140
|
+
ethereumBalance,
|
|
141
|
+
solanaBalance,
|
|
142
|
+
loading,
|
|
143
|
+
error,
|
|
144
|
+
refetchBalance: fetchBalances,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=useWalletBalance.js.map
|