1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

prototype auto-generating data token name

This commit is contained in:
Matthias Kretschmann 2020-09-02 16:23:01 +02:00
parent 9873076e4b
commit 0290f57bf4
Signed by: m
GPG Key ID: 606EEEF3C479A91F
2 changed files with 161 additions and 0 deletions

133
src/data/words.json Normal file
View File

@ -0,0 +1,133 @@
{
"nouns": [
"Crab",
"Fish",
"Seal",
"Octopus",
"Shark",
"Seahorse",
"Walrus",
"Starfish",
"Whale",
"Orca",
"Penguin",
"Jellyfish",
"Squid",
"Lobster",
"Pelican",
"Shrimp",
"Oyster",
"Clam",
"Seagull",
"Dolphin",
"Shell",
"Cormorant",
"Otter",
"Pelican",
"Anemone",
"Turtle",
"Coral"
],
"adjectives": [
"adamant",
"adroit",
"amatory",
"animistic",
"antic",
"arcadian",
"baleful",
"bellicose",
"bilious",
"boorish",
"calamitous",
"caustic",
"cerulean",
"comely",
"concomitant",
"contumacious",
"corpulent",
"crapulous",
"defamatory",
"didactic",
"dilatory",
"dowdy",
"efficacious",
"effulgent",
"egregious",
"endemic",
"equanimous",
"execrable",
"fastidious",
"feckless",
"fecund",
"friable",
"fulsome",
"garrulous",
"guileless",
"gustatory",
"heuristic",
"histrionic",
"hubristic",
"incendiary",
"insidious",
"insolent",
"intransigent",
"inveterate",
"invidious",
"irksome",
"jejune",
"jocular",
"judicious",
"lachrymose",
"limpid",
"loquacious",
"luminous",
"mannered",
"mendacious",
"meretricious",
"minatory",
"mordant",
"munificent",
"nefarious",
"noxious",
"obtuse",
"parsimonious",
"pendulous",
"pernicious",
"pervasive",
"petulant",
"platitudinous",
"precipitate",
"propitious",
"puckish",
"querulous",
"quiescent",
"rebarbative",
"recalcitant",
"redolent",
"rhadamanthine",
"risible",
"ruminative",
"sagacious",
"salubrious",
"sartorial",
"sclerotic",
"serpentine",
"spasmodic",
"strident",
"taciturn",
"tenacious",
"tremulous",
"trenchant",
"turbulent",
"turgid",
"ubiquitous",
"uxorious",
"verdant",
"voluble",
"voracious",
"wheedling",
"withering",
"zealous"
]
}

View File

@ -4,6 +4,8 @@ import { AbiItem } from 'web3-utils/types'
import defaultFactoryABI from '@oceanprotocol/contracts/artifacts/DTFactory.json'
import defaultDatatokensABI from '@oceanprotocol/contracts/artifacts/DataTokenTemplate.json'
import wordListDefault from '../data/words.json'
/**
* Provides a interface to DataTokens
*/
@ -32,6 +34,32 @@ export class DataTokens {
this.web3 = web3
}
/**
* Generate new datatoken name & symbol from a word list
* @return {<{ name: String; symbol: String }>} datatoken name & symbol. Produces e.g. "Endemic Jellyfish Token" & "ENDJEL-145"
*/
public generateDtName(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 }
}
/**
* Create new datatoken
* @param {String} metaDataStoreURI