@@ -29,6 +29,7 @@ import {
2929 WorldERC20Token ,
3030 XrpCoin ,
3131 ZkethERC20Token ,
32+ VetNFTCollection ,
3233} from './account' ;
3334import { CoinFamily , CoinKind , BaseCoin } from './base' ;
3435import { coins } from './coins' ;
@@ -130,6 +131,10 @@ export type VetTokenConfig = BaseNetworkConfig & {
130131 contractAddress : string ;
131132} ;
132133
134+ export type VetNFTCollectionConfig = BaseNetworkConfig & {
135+ nftCollectionId : string ;
136+ } ;
137+
133138export type CosmosTokenConfig = BaseNetworkConfig & {
134139 denom : string ;
135140} ;
@@ -155,6 +160,7 @@ export type TokenConfig =
155160 | Nep141TokenConfig
156161 | CosmosTokenConfig
157162 | VetTokenConfig
163+ | VetNFTCollectionConfig
158164 | TaoTokenConfig
159165 | PolyxTokenConfig ;
160166
@@ -245,6 +251,7 @@ export interface Tokens {
245251 } ;
246252 vet : {
247253 tokens : VetTokenConfig [ ] ;
254+ nftCollections : VetNFTCollectionConfig [ ] ;
248255 } ;
249256 cosmos : {
250257 tokens : CosmosTokenConfig [ ] ;
@@ -336,6 +343,7 @@ export interface Tokens {
336343 } ;
337344 vet : {
338345 tokens : VetTokenConfig [ ] ;
346+ nftCollections : VetNFTCollectionConfig [ ] ;
339347 } ;
340348 cosmos : {
341349 tokens : CosmosTokenConfig [ ] ;
@@ -912,6 +920,17 @@ function getAptNFTCollectionConfig(coin: AptNFTCollection): AptNFTCollectionConf
912920 decimalPlaces : coin . decimalPlaces ,
913921 } ;
914922}
923+
924+ function getVetNFTCollectionConfig ( coin : VetNFTCollection ) : VetNFTCollectionConfig {
925+ return {
926+ type : coin . name ,
927+ coin : coin . network . type === NetworkType . MAINNET ? 'vet' : 'tvet' ,
928+ network : coin . network . type === NetworkType . MAINNET ? 'Mainnet' : 'Testnet' ,
929+ name : coin . fullName ,
930+ nftCollectionId : coin . nftCollectionId ,
931+ decimalPlaces : coin . decimalPlaces ,
932+ } ;
933+ }
915934const getFormattedAptNFTCollections = ( customCoinMap = coins ) =>
916935 customCoinMap . reduce ( ( acc : AptNFTCollectionConfig [ ] , coin ) => {
917936 if ( coin instanceof AptNFTCollection ) {
@@ -920,6 +939,14 @@ const getFormattedAptNFTCollections = (customCoinMap = coins) =>
920939 return acc ;
921940 } , [ ] ) ;
922941
942+ const getFormattedVetNFTCollections = ( customCoinMap = coins ) =>
943+ customCoinMap . reduce ( ( acc : VetNFTCollectionConfig [ ] , coin ) => {
944+ if ( coin instanceof VetNFTCollection ) {
945+ acc . push ( getVetNFTCollectionConfig ( coin ) ) ;
946+ }
947+ return acc ;
948+ } , [ ] ) ;
949+
923950function getSip10TokenConfig ( coin : Sip10Token ) : Sip10TokenConfig {
924951 return {
925952 type : coin . name ,
@@ -997,6 +1024,7 @@ function getCosmosTokenConfig(coin: CosmosChainToken): CosmosTokenConfig {
9971024
9981025export const getFormattedTokens = ( coinMap = coins ) : Tokens => {
9991026 const formattedAptNFTCollections = getFormattedAptNFTCollections ( coinMap ) ;
1027+ const formattedVetNFTCollections = getFormattedVetNFTCollections ( coinMap ) ;
10001028 return {
10011029 bitcoin : {
10021030 eth : {
@@ -1088,6 +1116,9 @@ export const getFormattedTokens = (coinMap = coins): Tokens => {
10881116 } ,
10891117 vet : {
10901118 tokens : getFormattedVetTokens ( coinMap ) . filter ( ( token ) => token . network === 'Mainnet' ) ,
1119+ nftCollections : formattedVetNFTCollections . filter (
1120+ ( nftCollection : VetNFTCollectionConfig ) => nftCollection . network === 'Mainnet'
1121+ ) ,
10911122 } ,
10921123 cosmos : {
10931124 tokens : getFormattedCosmosChainTokens ( coinMap ) . filter ( ( token ) => token . network === 'Mainnet' ) ,
@@ -1183,6 +1214,9 @@ export const getFormattedTokens = (coinMap = coins): Tokens => {
11831214 } ,
11841215 vet : {
11851216 tokens : getFormattedVetTokens ( coinMap ) . filter ( ( token ) => token . network === 'Testnet' ) ,
1217+ nftCollections : formattedVetNFTCollections . filter (
1218+ ( nftCollection : VetNFTCollectionConfig ) => nftCollection . network === 'Testnet'
1219+ ) ,
11861220 } ,
11871221 cosmos : {
11881222 tokens : getFormattedCosmosChainTokens ( coinMap ) . filter ( ( token ) => token . network === 'Testnet' ) ,
@@ -1294,6 +1328,8 @@ export function getFormattedTokenConfigForCoin(coin: Readonly<BaseCoin>): TokenC
12941328 return getCosmosTokenConfig ( coin ) ;
12951329 } else if ( coin instanceof VetToken ) {
12961330 return getVetTokenConfig ( coin ) ;
1331+ } else if ( coin instanceof VetNFTCollection ) {
1332+ return getVetNFTCollectionConfig ( coin ) ;
12971333 }
12981334 return undefined ;
12991335}
0 commit comments