@@ -58,8 +58,8 @@ const StoreProvider = ({ children }) => {
58
58
! hash
59
59
? null
60
60
: network === NETWORK . EVM
61
- ? new EvmAccount ( hash , chainId )
62
- : new TronAccount ( hash ) ,
61
+ ? new EvmAccount ( hash , chainId )
62
+ : new TronAccount ( hash ) ,
63
63
[ hash , network , chainId ]
64
64
) ;
65
65
@@ -68,26 +68,33 @@ const StoreProvider = ({ children }) => {
68
68
const [ inMenu , openMenu ] = useState ( false ) ;
69
69
const [ showBalances , setShowBalances ] = useState ( false ) ;
70
70
71
- // active token
72
- const [ selectedTokenAddress , selectToken ] = useState ( "" ) ;
73
-
74
71
// balances related
75
72
const [ nativeTokenName , setNativeTokenName ] = useState ( "" ) ;
76
73
const [ nativeTokenBalance , setNativeTokenBalance ] = useState ( 0 ) ;
77
74
const [ tokenBalances , setTokenBalances ] = useState ( [ ] ) ;
78
75
const [ nftBalances , setNftBalances ] = useState ( [ ] ) ;
79
76
77
+ // transfers history
78
+ const [ transfers , setTransfers ] = useState ( [ ] ) ;
79
+
80
80
// prices related
81
81
const [ nativeTokenPrice , setNativeTokenPrice ] = useState ( 0 ) ;
82
82
83
+ // active token
84
+ const [ selectedTokenAddress , selectToken ] = useState ( "" ) ;
85
+ const token = useMemo (
86
+ ( ) => tokenBalances . find ( ( t ) => t . address === selectedTokenAddress ) ,
87
+ [ tokenBalances , selectedTokenAddress ]
88
+ ) ;
89
+
83
90
// unique counter that increments regularly
84
91
const [ tick , setTick ] = useState ( 0 ) ;
85
92
86
93
useEffect ( ( ) => {
87
94
if ( ! account ) {
88
95
return ;
89
96
}
90
- setNativeTokenName ( "" )
97
+ setNativeTokenName ( "" ) ;
91
98
setTokenBalances ( [ ] ) ;
92
99
account . getNetworkStatus ( ) . then ( ( ) => {
93
100
setTick ( ( _tick ) => _tick + 1 ) ;
@@ -113,6 +120,21 @@ const StoreProvider = ({ children }) => {
113
120
} ;
114
121
} , [ account ] ) ;
115
122
123
+ useEffect ( ( ) => {
124
+ if ( ! selectedTokenAddress ) {
125
+ setTransfers ( [ ] ) ;
126
+ return ;
127
+ }
128
+ account
129
+ . queryTokenHistory (
130
+ token . native ? "" : selectedTokenAddress ,
131
+ token . decimals
132
+ )
133
+ . then ( ( result ) => {
134
+ setTransfers ( result ) ;
135
+ } ) ;
136
+ } , [ selectedTokenAddress ] ) ;
137
+
116
138
const reset = ( ) => {
117
139
setPassword ( "" ) ;
118
140
setPasscode ( "" ) ;
@@ -129,6 +151,7 @@ const StoreProvider = ({ children }) => {
129
151
setNativeTokenBalance ( 0 ) ;
130
152
setTokenBalances ( [ ] ) ;
131
153
setNftBalances ( [ ] ) ;
154
+ setTransfers ( [ ] ) ;
132
155
133
156
selectToken ( "" ) ;
134
157
} ;
@@ -149,10 +172,10 @@ const StoreProvider = ({ children }) => {
149
172
const result = await account . queryBalances ( ) ;
150
173
151
174
if ( result ) {
152
- setNativeTokenName ( result [ 0 ] ) ;
153
- setNativeTokenBalance ( result [ 1 ] ) ;
154
- setNativeTokenPrice ( result [ 2 ] ) ;
155
- setTokenBalances ( result [ 3 ] ) ;
175
+ setNativeTokenName ( result [ 0 ] . name ) ;
176
+ setNativeTokenBalance ( result [ 0 ] . balance ) ;
177
+ setNativeTokenPrice ( result [ 0 ] . price ) ;
178
+ setTokenBalances ( result ) ;
156
179
157
180
setConnectivity ( true ) ;
158
181
} else {
@@ -184,11 +207,13 @@ const StoreProvider = ({ children }) => {
184
207
nativeTokenBalance,
185
208
tokenBalances,
186
209
nftBalances,
210
+ transfers,
187
211
nativeTokenPrice,
188
212
tick,
189
213
fetchBalances,
190
214
selectedTokenAddress,
191
215
selectToken,
216
+ token,
192
217
} }
193
218
>
194
219
{ children }
0 commit comments