diff --git a/src/datatokens/Datatokens.ts b/src/datatokens/Datatokens.ts index 861dac66..e27c8213 100644 --- a/src/datatokens/Datatokens.ts +++ b/src/datatokens/Datatokens.ts @@ -67,14 +67,14 @@ export class DataTokens { * Approve * @param {String} dataTokenAddress * @param {String} toAddress - * @param {Number} amount Number of datatokens, as number. Will be converted to wei + * @param {string} amount Number of datatokens, as number. Will be converted to wei * @param {String} address * @return {Promise} transactionId */ public async approve( dataTokenAddress: string, spender: string, - amount: number, + amount: string, address: string ): Promise { const datatoken = new this.web3.eth.Contract( @@ -83,7 +83,7 @@ export class DataTokens { { from: address } ) const trxReceipt = await datatoken.methods - .approve(spender, this.web3.utils.toWei(String(amount))) + .approve(spender, this.web3.utils.toWei(amount)) .send() return trxReceipt } @@ -92,14 +92,14 @@ export class DataTokens { * Mint * @param {String} dataTokenAddress * @param {String} address - * @param {Number} amount Number of datatokens, as number. Will be converted to wei + * @param {String} amount Number of datatokens, as number. Will be converted to wei * @param {String} toAddress - only if toAddress is different from the minter * @return {Promise} transactionId */ public async mint( dataTokenAddress: string, address: string, - amount: number, + amount: string, toAddress?: string ): Promise { const destAddress = toAddress || address @@ -109,14 +109,14 @@ export class DataTokens { { from: address } ) const estGas = await datatoken.methods - .mint(destAddress, this.web3.utils.toWei(String(amount))) + .mint(destAddress, this.web3.utils.toWei(amount)) .estimateGas(function (err, estGas) { if (err) console.log('Datatokens: ' + err) return estGas }) const trxReceipt = await datatoken.methods - .mint(destAddress, this.web3.utils.toWei(String(amount))) + .mint(destAddress, this.web3.utils.toWei(amount)) .send({ from: address, gas: estGas + 1, @@ -130,14 +130,14 @@ export class DataTokens { * Transfer as number from address to toAddress * @param {String} dataTokenAddress * @param {String} toAddress - * @param {Number} amount Number of datatokens, as number. Will be converted to wei + * @param {String} amount Number of datatokens, as number. Will be converted to wei * @param {String} address * @return {Promise} transactionId */ public async transfer( dataTokenAddress: string, toAddress: string, - amount: number, + amount: string, address: string ): Promise { return this.transferToken(dataTokenAddress, toAddress, amount, address) @@ -147,17 +147,17 @@ export class DataTokens { * Transfer as number from address to toAddress * @param {String} dataTokenAddress * @param {String} toAddress - * @param {Number} amount Number of datatokens, as number. Will be converted to wei + * @param {String} amount Number of datatokens, as number. Will be converted to wei * @param {String} address * @return {Promise} transactionId */ public async transferToken( dataTokenAddress: string, toAddress: string, - amount: number, + amount: string, address: string ): Promise { - const weiAmount = this.web3.utils.toWei(String(amount)) + const weiAmount = this.web3.utils.toWei(amount) return this.transferWei(dataTokenAddress, toAddress, weiAmount, address) } @@ -165,7 +165,7 @@ export class DataTokens { * Transfer in wei from address to toAddress * @param {String} dataTokenAddress * @param {String} toAddress - * @param {Number} amount Number of datatokens, as number. Expressed as wei + * @param {String} amount Number of datatokens, as number. Expressed as wei * @param {String} address * @return {Promise} transactionId */ @@ -180,9 +180,7 @@ export class DataTokens { dataTokenAddress, { from: address } ) - const trxReceipt = await datatoken.methods - .transfer(toAddress, String(amount)) - .send() + const trxReceipt = await datatoken.methods.transfer(toAddress, amount).send() return trxReceipt } @@ -190,14 +188,14 @@ export class DataTokens { * Transfer from fromAddress to address (needs an Approve operation before) * @param {String} dataTokenAddress * @param {String} fromAddress - * @param {Number} amount Number of datatokens, as number. Will be converted to wei + * @param {String} amount Number of datatokens, as number. Will be converted to wei * @param {String} address * @return {Promise} transactionId */ public async transferFrom( dataTokenAddress: string, fromAddress: string, - amount: number, + amount: string, address: string ): Promise { const datatoken = new this.web3.eth.Contract( @@ -206,7 +204,7 @@ export class DataTokens { { from: address } ) const trxReceipt = await datatoken.methods - .transferFrom(fromAddress, address, this.web3.utils.toWei(String(amount))) + .transferFrom(fromAddress, address, this.web3.utils.toWei(amount)) .send() return trxReceipt } @@ -215,9 +213,9 @@ export class DataTokens { * Get Address Balance for datatoken * @param {String} dataTokenAddress * @param {String} address - * @return {Promise} balance Number of datatokens, as number. Will be converted from wei + * @return {Promise} balance Number of datatokens. Will be converted from wei */ - public async balance(dataTokenAddress: string, address: string): Promise { + public async balance(dataTokenAddress: string, address: string): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, @@ -307,19 +305,19 @@ export class DataTokens { return this.web3.utils.fromWei(trxReceipt) } - /** Convert from number to wei - * @param {Number} amount - * @return {Promise} string - */ - public toWei(amount) { - return this.web3.utils.toWei(String(amount)) - } - - /** Convert from wei to number + /** Convert to wei * @param {String} amount * @return {Promise} string */ - public fromWei(amount) { + public toWei(amount: string) { + return this.web3.utils.toWei(amount) + } + + /** Convert from wei + * @param {String} amount + * @return {Promise} string + */ + public fromWei(amount: string) { return this.web3.utils.fromWei(amount) } } diff --git a/test/integration/ComputeFlow.test.ts b/test/integration/ComputeFlow.test.ts index 4b43a6e8..cba228de 100644 --- a/test/integration/ComputeFlow.test.ts +++ b/test/integration/ComputeFlow.test.ts @@ -42,8 +42,8 @@ describe('Compute flow', () => { const dateCreated = new Date(Date.now()).toISOString().split('.')[0] + 'Z' // remove milliseconds - const marketplaceAllowance = 20 - const tokenAmount = 100 + const marketplaceAllowance = '20' + const tokenAmount = '100' const timeout = 86400 const algorithmMeta = { @@ -114,7 +114,7 @@ describe('Compute flow', () => { }) it('Alice publishes dataset with a compute service that allows Raw Algo', async () => { - price = datatoken.toWei(2) // in datatoken + price = datatoken.toWei('2') // in datatoken cluster = ocean.compute.createClusterAttributes( 'Kubernetes', 'http://10.0.0.17/xxx' @@ -261,7 +261,7 @@ describe('Compute flow', () => { }) it('Bob gets datatokens from Alice to be able to try the compute service', async () => { - const dTamount = 20 + const dTamount = '20' await datatoken .transfer(tokenAddress, bob.getId(), dTamount, alice.getId()) .then(async () => { @@ -284,7 +284,7 @@ describe('Compute flow', () => { const tx = await datatoken.transferWei( computeOrder['dataToken'], computeOrder['to'], - computeOrder['numTokens'], + String(computeOrder['numTokens']), computeOrder['from'] ) const response = await ocean.compute.start( @@ -352,7 +352,7 @@ describe('Compute flow', () => { const algoTx = await datatoken.transferWei( algoOrder['dataToken'], algoOrder['to'], - algoOrder['numTokens'], + String(algoOrder['numTokens']), algoOrder['from'] ) const order = await ocean.compute.order( @@ -367,7 +367,7 @@ describe('Compute flow', () => { const tx = await datatoken.transferWei( computeOrder['dataToken'], computeOrder['to'], - computeOrder['numTokens'], + String(computeOrder['numTokens']), computeOrder['from'] ) const response = await ocean.compute.start( diff --git a/test/integration/Marketplaceflow.test.ts b/test/integration/Marketplaceflow.test.ts index db16ddc9..cb0bf480 100644 --- a/test/integration/Marketplaceflow.test.ts +++ b/test/integration/Marketplaceflow.test.ts @@ -26,8 +26,8 @@ describe('Marketplace flow', () => { let data let blob - const marketplaceAllowance = 20 - const tokenAmount = 100 + const marketplaceAllowance = '20' + const tokenAmount = '100' describe('#MarketplaceDownloadFlow-Test', () => { it('Initialize Ocean contracts v3', async () => { @@ -84,7 +84,7 @@ describe('Marketplace flow', () => { }) it('Alice publishes a dataset', async () => { - price = datatoken.toWei(10) // in datatoken + price = datatoken.toWei('10') // in datatoken const publishedDate = new Date(Date.now()).toISOString().split('.')[0] + 'Z' const timeout = 0 service1 = await ocean.assets.createAccessServiceAttributes( @@ -146,11 +146,11 @@ describe('Marketplace flow', () => { it('Marketplace posts asset for sale', async () => { accessService = await ocean.assets.getServiceByType(ddo.id, 'access') price = 20 - assert(accessService.attributes.main.cost * price === datatoken.toWei(200)) + assert(accessService.attributes.main.cost * price === datatoken.toWei('200')) }) it('Bob gets datatokens', async () => { - const dTamount = 20 + const dTamount = '20' await datatoken .transfer(tokenAddress, bob.getId(), dTamount, alice.getId()) .then(async () => { @@ -167,7 +167,7 @@ describe('Marketplace flow', () => { return await datatoken.transferWei( res['dataToken'], res['to'], - res['numTokens'], + String(res['numTokens']), res['from'] ) }) diff --git a/test/integration/Simpleflow.test.ts b/test/integration/Simpleflow.test.ts index 7bc6129f..8d10cfe5 100644 --- a/test/integration/Simpleflow.test.ts +++ b/test/integration/Simpleflow.test.ts @@ -16,8 +16,8 @@ describe('Simple flow', () => { let datatoken let tokenAddress let transactionId - const tokenAmount = 100 - const transferAmount = 1 + const tokenAmount = '100' + const transferAmount = '1' const blob = 'http://localhost:8030/api/v1/services/consume' describe('#test', () => { it('Initialize Ocean contracts v3', async () => {