mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
move datatoken name generation out of class (#943)
This commit is contained in:
parent
1af59c1c85
commit
c61aab0670
@ -4,10 +4,10 @@ import { AbiItem } from 'web3-utils/types'
|
||||
import defaultFactoryABI from '@oceanprotocol/contracts/artifacts/DTFactory.json'
|
||||
import defaultDatatokensABI from '@oceanprotocol/contracts/artifacts/DataTokenTemplate.json'
|
||||
import { Logger, getFairGasPrice } from '../utils'
|
||||
import wordListDefault from '../data/words.json'
|
||||
import { TransactionReceipt } from 'web3-core'
|
||||
import BigNumber from 'bignumber.js'
|
||||
import Decimal from 'decimal.js'
|
||||
import { generateDatatokenName } from '../utils/Datatokens'
|
||||
|
||||
/**
|
||||
* Provides an interface to DataTokens
|
||||
@ -51,21 +51,7 @@ export class DataTokens {
|
||||
name: string
|
||||
symbol: string
|
||||
} {
|
||||
const list = wordList || wordListDefault
|
||||
const random1 = Math.floor(Math.random() * list.adjectives.length)
|
||||
const random2 = Math.floor(Math.random() * list.nouns.length)
|
||||
const indexNumber = Math.floor(Math.random() * 100)
|
||||
|
||||
// Capitalized adjective & noun
|
||||
const adjective = list.adjectives[random1].replace(/^\w/, (c) => c.toUpperCase())
|
||||
const noun = list.nouns[random2].replace(/^\w/, (c) => c.toUpperCase())
|
||||
|
||||
const name = `${adjective} ${noun} Token`
|
||||
// use first 3 letters of name, uppercase it, and add random number
|
||||
const symbol = `${(
|
||||
adjective.substring(0, 3) + noun.substring(0, 3)
|
||||
).toUpperCase()}-${indexNumber}`
|
||||
|
||||
const { name, symbol } = generateDatatokenName(wordList)
|
||||
return { name, symbol }
|
||||
}
|
||||
|
||||
|
30
src/utils/Datatokens.ts
Normal file
30
src/utils/Datatokens.ts
Normal file
@ -0,0 +1,30 @@
|
||||
import wordListDefault from '../data/words.json'
|
||||
|
||||
/**
|
||||
* Generate new datatoken name & symbol from a word list
|
||||
* @return {<{ name: String; symbol: String }>} datatoken name & symbol. Produces e.g. "Endemic Jellyfish Token" & "ENDJEL-45"
|
||||
*/
|
||||
export function generateDatatokenName(wordList?: {
|
||||
nouns: string[]
|
||||
adjectives: string[]
|
||||
}): {
|
||||
name: string
|
||||
symbol: string
|
||||
} {
|
||||
const list = wordList || wordListDefault
|
||||
const random1 = Math.floor(Math.random() * list.adjectives.length)
|
||||
const random2 = Math.floor(Math.random() * list.nouns.length)
|
||||
const indexNumber = Math.floor(Math.random() * 100)
|
||||
|
||||
// Capitalized adjective & noun
|
||||
const adjective = list.adjectives[random1].replace(/^\w/, (c) => c.toUpperCase())
|
||||
const noun = list.nouns[random2].replace(/^\w/, (c) => c.toUpperCase())
|
||||
|
||||
const name = `${adjective} ${noun} Token`
|
||||
// use first 3 letters of name, uppercase it, and add random number
|
||||
const symbol = `${(
|
||||
adjective.substring(0, 3) + noun.substring(0, 3)
|
||||
).toUpperCase()}-${indexNumber}`
|
||||
|
||||
return { name, symbol }
|
||||
}
|
@ -6,3 +6,4 @@ export * from './SubscribablePromise'
|
||||
export * from './SubscribableObserver'
|
||||
export * from './GasUtils'
|
||||
export * from './AssetResolverHelper'
|
||||
export * from './Datatokens'
|
||||
|
Loading…
x
Reference in New Issue
Block a user