1
1
import { OffChainTokenConfig , OnChainIssuer , OnChainTokenConfig , SolanaIssuerConfig , UltraIssuerConfig } from './interface'
2
2
3
3
import { logger } from '../utils'
4
+ import { DecodedToken } from '../outlet/ticketStorage'
4
5
5
6
interface IssuerLookup {
6
7
[ collectionID : string ] : TokenConfig & { timestamp : number }
@@ -10,14 +11,17 @@ interface TokenLookup {
10
11
[ issuer : string ] : { timestamp : number ; tokens : TokenData [ ] | null }
11
12
}
12
13
13
- interface TokenData {
14
+ export interface TokenData {
15
+ tokenId : string | number
14
16
walletAddress ?: string
15
17
// TODO: add more common fields to this interface
16
18
[ key : string ] : any
17
19
}
18
20
19
21
type TokenConfig = OnChainTokenConfig | OffChainTokenConfig | SolanaIssuerConfig | UltraIssuerConfig
20
22
23
+ type SelectedTokens = { [ collectionId : string ] : { tokens : DecodedToken [ ] | TokenData [ ] } }
24
+
21
25
export class TokenStore {
22
26
public static LOCAL_STORAGE_KEY = 'tn-tokenStore'
23
27
@@ -28,7 +32,7 @@ export class TokenStore {
28
32
private tokenLookup : IssuerLookup = { }
29
33
30
34
// TODO: change to disabled tokens
31
- private selectedTokens : any = { }
35
+ private selectedTokens : SelectedTokens = { }
32
36
33
37
constructor (
34
38
private autoEnableTokens : boolean ,
@@ -173,7 +177,7 @@ export class TokenStore {
173
177
return null
174
178
}
175
179
176
- public setTokens ( issuer : string , tokens : TokenData [ ] ) {
180
+ public setTokens ( issuer : string , tokens : TokenData [ ] | DecodedToken [ ] ) {
177
181
this . tokenData [ issuer ] = { timestamp : Date . now ( ) , tokens }
178
182
179
183
this . saveTokenStore ( )
@@ -185,7 +189,7 @@ export class TokenStore {
185
189
return this . selectedTokens
186
190
}
187
191
188
- public setSelectedTokens ( selectedTokens : any ) {
192
+ public setSelectedTokens ( selectedTokens : SelectedTokens ) {
189
193
this . selectedTokens = selectedTokens
190
194
}
191
195
0 commit comments