import { CollectionTraits , Trait , TraitType } from './types' ; import Web3 from 'web3' ; import { Network } from 'opensea-js/lib' ; export const formatTraitType = ( traitType ) => traitType . replace ( /_/g , ' ' ) ; const isBoost = ( trait ) => trait . display_type && trait . display_type . includes ( 'boost' ) ; const isRanking = ( trait , collectionTraits ) => trait . display_type === null && trait . trait_type in collectionTraits && 'max' in collectionTraits [ trait . trait_type ] ; param trait return const isStat = ( trait ) => trait . display_type === 'number' ; param trait param collectionTraits return const isProperty = ( trait , collectionTraits ) => ( trait . display_type === null && trait . trait_type in collectionTraits && ! ( 'max' in collectionTraits [ trait . trait_type ] ) ) || ! ( trait . trait_type in collectionTraits ) ; export const toBaseDenomination = ( value , decimals ) => + value . toFixed ( ) / Math . pow ( 10 , decimals ) ; export const getTraitType = ( trait , collectionTraits ) => { if ( isProperty ( trait , collectionTraits ) ) { return TraitType . Property ; } if ( isRanking ( trait , collectionTraits ) ) { return TraitType . Ranking ; } if ( isStat ( trait ) ) { return TraitType . Stat ; } if ( isBoost ( trait ) ) { return TraitType . Boost ; } return null ; } ; export const getProvider = ( ) => ( Web3 . givenProvider || new Web3 . providers . HttpProvider ( 'https://mainnet.infura.io' ) ) ; export const networkFromString = ( name ) => { switch ( name ) { case 'rinkeby' : case 'testnet' : case 'testnets' : return Network . Rinkeby ; case 'mainnet' : case 'main' : default : return Network . Main ; } } ;