@@ -63,6 +63,7 @@ import {
63
63
getTotalTransactions ,
64
64
getAvailableAuthorities ,
65
65
getAffectedAddressTxCountFromTxList ,
66
+ incrementTokensTxCount ,
66
67
} from '@src/db' ;
67
68
import {
68
69
beginTransaction ,
@@ -109,6 +110,7 @@ import {
109
110
createOutput ,
110
111
createInput ,
111
112
countTxOutputTable ,
113
+ checkTokenTable ,
112
114
} from '@tests/utils' ;
113
115
import { AddressTxHistoryTableEntry } from '@tests/types' ;
114
116
@@ -917,8 +919,8 @@ test('getWalletBalances', async () => {
917
919
} ] ) ;
918
920
919
921
await addToTokenTable ( mysql , [
920
- { id : token1 . id , name : token1 . name , symbol : token1 . symbol } ,
921
- { id : token2 . id , name : token2 . name , symbol : token2 . symbol } ,
922
+ { id : token1 . id , name : token1 . name , symbol : token1 . symbol , transactions : 0 } ,
923
+ { id : token2 . id , name : token2 . name , symbol : token2 . symbol , transactions : 0 } ,
922
924
] ) ;
923
925
924
926
// first test fetching all tokens
@@ -1633,6 +1635,18 @@ test('rebuildAddressBalancesFromUtxos', async () => {
1633
1635
1634
1636
await addToAddressTxHistoryTable ( mysql , txHistory ) ;
1635
1637
1638
+ // add to the token table
1639
+ await addToTokenTable ( mysql , [
1640
+ { id : token1 , name : 'token1' , symbol : 'TKN1' , transactions : 2 } ,
1641
+ ] ) ;
1642
+
1643
+ await expect ( checkTokenTable ( mysql , 1 , [ {
1644
+ tokenId : token1 ,
1645
+ tokenSymbol : 'TKN1' ,
1646
+ tokenName : 'token1' ,
1647
+ transactions : 2 ,
1648
+ } ] ) ) . resolves . toBe ( true ) ;
1649
+
1636
1650
// We are only using the txList parameter on `transactions` recalculation, so our balance
1637
1651
// checks should include txId3 and txId4, but the transaction count should not.
1638
1652
await rebuildAddressBalancesFromUtxos ( mysql , [ addr1 , addr2 ] , [ txId3 , txId4 ] ) ;
@@ -1655,6 +1669,13 @@ test('rebuildAddressBalancesFromUtxos', async () => {
1655
1669
expect ( addressBalances [ 2 ] . address ) . toStrictEqual ( addr2 ) ;
1656
1670
expect ( addressBalances [ 2 ] . transactions ) . toStrictEqual ( 1 ) ;
1657
1671
expect ( addressBalances [ 2 ] . tokenId ) . toStrictEqual ( 'token2' ) ;
1672
+
1673
+ await expect ( checkTokenTable ( mysql , 1 , [ {
1674
+ tokenId : token1 ,
1675
+ tokenSymbol : 'TKN1' ,
1676
+ tokenName : 'token1' ,
1677
+ transactions : 0 ,
1678
+ } ] ) ) . resolves . toBe ( true ) ;
1658
1679
} ) ;
1659
1680
1660
1681
test ( 'markAddressTxHistoryAsVoided' , async ( ) => {
@@ -2121,3 +2142,36 @@ test('getAffectedAddressTxCountFromTxList', async () => {
2121
2142
// We should get an empty object if no addresses have been affected:
2122
2143
expect ( await getAffectedAddressTxCountFromTxList ( mysql , [ txId2 ] ) ) . toStrictEqual ( { } ) ;
2123
2144
} ) ;
2145
+
2146
+ test ( 'incrementTokensTxCount' , async ( ) => {
2147
+ expect . hasAssertions ( ) ;
2148
+
2149
+ const htr = new TokenInfo ( '00' , 'Hathor' , 'HTR' , 5 ) ;
2150
+ const token1 = new TokenInfo ( 'token1' , 'MyToken1' , 'MT1' , 10 ) ;
2151
+ const token2 = new TokenInfo ( 'token2' , 'MyToken2' , 'MT2' , 15 ) ;
2152
+
2153
+ await addToTokenTable ( mysql , [
2154
+ { id : htr . id , name : htr . name , symbol : htr . symbol , transactions : htr . transactions } ,
2155
+ { id : token1 . id , name : token1 . name , symbol : token1 . symbol , transactions : token1 . transactions } ,
2156
+ { id : token2 . id , name : token2 . name , symbol : token2 . symbol , transactions : token2 . transactions } ,
2157
+ ] ) ;
2158
+
2159
+ await incrementTokensTxCount ( mysql , [ 'token1' , '00' , 'token2' ] ) ;
2160
+
2161
+ await expect ( checkTokenTable ( mysql , 3 , [ {
2162
+ tokenId : token1 . id ,
2163
+ tokenSymbol : token1 . symbol ,
2164
+ tokenName : token1 . name ,
2165
+ transactions : token1 . transactions + 1 ,
2166
+ } , {
2167
+ tokenId : token2 . id ,
2168
+ tokenSymbol : token2 . symbol ,
2169
+ tokenName : token2 . name ,
2170
+ transactions : token2 . transactions + 1 ,
2171
+ } , {
2172
+ tokenId : htr . id ,
2173
+ tokenSymbol : htr . symbol ,
2174
+ tokenName : htr . name ,
2175
+ transactions : htr . transactions + 1 ,
2176
+ } ] ) ) . resolves . toBe ( true ) ;
2177
+ } ) ;
0 commit comments