From f834be35208574f929fc9be0748f111dcf8dc1d7 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Thu, 3 Sep 2020 11:28:50 +0200 Subject: [PATCH] move defaults into datatokens.create() --- src/datatokens/Datatokens.ts | 21 ++++++++++++++------- src/ocean/Assets.ts | 17 +++++++++-------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/datatokens/Datatokens.ts b/src/datatokens/Datatokens.ts index 63380456..e9666782 100644 --- a/src/datatokens/Datatokens.ts +++ b/src/datatokens/Datatokens.ts @@ -36,7 +36,7 @@ export class DataTokens { /** * 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" + * @return {<{ name: String; symbol: String }>} datatoken name & symbol. Produces e.g. "Endemic Jellyfish Token" & "ENDJEL-45" */ public generateDtName(wordList?: { nouns: string[] @@ -63,19 +63,26 @@ export class DataTokens { /** * Create new datatoken * @param {String} metaDataStoreURI + * @param {String} address + * @param {String} cap Maximum cap (Number) - will be converted to wei * @param {String} name Token name * @param {String} symbol Token symbol - * @param {String} cap Maximum cap (Number) - will be converted to wei - * @param {String} address * @return {Promise} datatoken address */ public async create( metaDataStoreURI: string, - name: string, - symbol: string, - cap: string, - address: string + address: string, + cap?: string, + name?: string, + symbol?: string ): Promise { + if (!cap) cap = '1410000000000000000000000000' + + // Generate name & symbol if not present + if (!name || !symbol) { + ;({ name, symbol } = this.generateDtName()) + } + // Create factory contract object const factory = new this.web3.eth.Contract(this.factoryABI, this.factoryAddress, { from: address diff --git a/src/ocean/Assets.ts b/src/ocean/Assets.ts index 491dd5b1..f6039b69 100644 --- a/src/ocean/Assets.ts +++ b/src/ocean/Assets.ts @@ -50,6 +50,10 @@ export class Assets extends Instantiable { * @param {Metadata} metadata DDO metadata. * @param {Account} publisher Publisher account. * @param {list} services list of Service description documents + * @param {String} dtAddress existing Data Token Address + * @param {String} cap Maximum cap (Number) - will be converted to wei + * @param {String} name Token name + * @param {String} symbol Token symbol * @return {Promise} */ public create( @@ -57,9 +61,9 @@ export class Assets extends Instantiable { publisher: Account, services: Service[] = [], dtAddress?: string, + cap?: string, name?: string, - symbol?: string, - cap?: string + symbol?: string ): SubscribablePromise { this.logger.log('Creating asset') return new SubscribablePromise(async (observer) => { @@ -68,19 +72,16 @@ export class Assets extends Instantiable { } if (!dtAddress) { this.logger.log('Creating datatoken') - if (!name) name = 'DataToken' - if (!symbol) symbol = 'DT' - if (!cap) cap = '1410000000000000000000000000' observer.next(CreateProgressStep.CreatingDataToken) const metadataStoreURI = this.ocean.metadatastore.getURI() const jsonBlob = { t: 1, url: metadataStoreURI } const { datatokens } = this.ocean dtAddress = await datatokens.create( JSON.stringify(jsonBlob), - name, - symbol, + publisher.getId(), cap, - publisher.getId() + name, + symbol ) this.logger.log('DataToken creted') observer.next(CreateProgressStep.DataTokenCreated)