diff --git a/src/ocean/Assets.ts b/src/ocean/Assets.ts index 9f56ccb1..43d70319 100644 --- a/src/ocean/Assets.ts +++ b/src/ocean/Assets.ts @@ -176,21 +176,24 @@ export class Assets extends Instantiable { public async download( dtAddress: string, serviceEndpoint: string, + txId: string, account: string ): Promise { let consumeUrl = serviceEndpoint - // consumeUrl += `&consumerAddress=${account}` - // consumeUrl += `&serviceAgreementId=${dtAddress}` + consumeUrl += `?` + consumeUrl += `consumerAddress=${account}` + consumeUrl += `&tokenAddress=${dtAddress}` + consumeUrl += `&transferTxId=${txId}` let serviceConnector = new WebServiceConnector(this.logger) try { await serviceConnector.downloadFile(consumeUrl) - } catch (e) { - this.logger.error('Error consuming assets') - this.logger.error(e) - throw e + } catch (e) { + this.logger.error('Error consuming assets') + this.logger.error(e) + throw e } return serviceEndpoint diff --git a/test/integration/Simpleflow.test.ts b/test/integration/Simpleflow.test.ts index 82ebe88d..6611d9db 100644 --- a/test/integration/Simpleflow.test.ts +++ b/test/integration/Simpleflow.test.ts @@ -20,6 +20,7 @@ describe('Simple flow', () => { let contracts let datatoken let tokenAddress + let transactionId let tokenAmount = 100 let transferAmount = 1 @@ -38,21 +39,22 @@ describe('Simple flow', () => { it('Alice publishes a dataset', async () => { // Alice creates a Datatoken datatoken = new DataTokens(contracts.factoryAddress, factoryABI, datatokensABI, web3) - tokenAddress = await datatoken.create(config.providerUri, alice) + tokenAddress = await datatoken.create(blob, alice) }) it('Alice mints 100 tokens', async () => { - datatoken.mint(tokenAddress, alice, tokenAmount) + await datatoken.mint(tokenAddress, alice, tokenAmount) }) it('Alice transfers 1 token to Bob', async () => { - datatoken.transfer(tokenAddress, bob, tokenAmount, alice) + const ts = await datatoken.transfer(tokenAddress, bob, tokenAmount, alice) + transactionId = ts['transactionHash'] }) it('Bob consumes dataset', async () => { const config = new Config() let ocean = await Ocean.getInstance(config) - ocean.assets.download(tokenAddress, blob, bob) + await ocean.assets.download(tokenAddress, blob, bob, transactionId) }) }) }) \ No newline at end of file