diff --git a/src/datatokens/Datatokens.ts b/src/datatokens/Datatokens.ts index 0ec7ff73..861dac66 100644 --- a/src/datatokens/Datatokens.ts +++ b/src/datatokens/Datatokens.ts @@ -1,5 +1,3 @@ -import Account from '../ocean/Account' - const defaultFactoryABI = require('@oceanprotocol/contracts/artifacts/development/Factory.json') const defaultDatatokensABI = require('@oceanprotocol/contracts/artifacts/development/DataTokenTemplate.json') @@ -35,13 +33,13 @@ export class DataTokens { /** * Create new datatoken * @param {String} metaDataStoreURI - * @param {Account} account + * @param {String} address * @return {Promise} datatoken address */ - public async create(metaDataStoreURI: string, account: Account): Promise { + public async create(metaDataStoreURI: string, address: string): Promise { // Create factory contract object const factory = new this.web3.eth.Contract(this.factoryABI, this.factoryAddress, { - from: account + from: address }) const estGas = await factory.methods .createToken(metaDataStoreURI) @@ -51,7 +49,7 @@ export class DataTokens { }) // Invoke createToken function of the contract const trxReceipt = await factory.methods.createToken(metaDataStoreURI).send({ - from: account, + from: address, gas: estGas + 1, gasPrice: '3000000000' }) @@ -70,19 +68,19 @@ export class DataTokens { * @param {String} dataTokenAddress * @param {String} toAddress * @param {Number} amount Number of datatokens, as number. Will be converted to wei - * @param {Account} account + * @param {String} address * @return {Promise} transactionId */ public async approve( dataTokenAddress: string, spender: string, amount: number, - account: Account + address: string ): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account } + { from: address } ) const trxReceipt = await datatoken.methods .approve(spender, this.web3.utils.toWei(String(amount))) @@ -93,34 +91,34 @@ export class DataTokens { /** * Mint * @param {String} dataTokenAddress - * @param {Account} account + * @param {String} address * @param {Number} 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, - account: Account, + address: string, amount: number, toAddress?: string ): Promise { - const address = toAddress || account + const destAddress = toAddress || address const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account } + { from: address } ) const estGas = await datatoken.methods - .mint(address, this.web3.utils.toWei(String(amount))) + .mint(destAddress, this.web3.utils.toWei(String(amount))) .estimateGas(function (err, estGas) { if (err) console.log('Datatokens: ' + err) return estGas }) const trxReceipt = await datatoken.methods - .mint(address, this.web3.utils.toWei(String(amount))) + .mint(destAddress, this.web3.utils.toWei(String(amount))) .send({ - from: account, + from: address, gas: estGas + 1, gasPrice: '3000000000' }) @@ -129,58 +127,58 @@ export class DataTokens { } /** - * Transfer as number from Account to Address + * 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 {Account} account + * @param {String} address * @return {Promise} transactionId */ public async transfer( dataTokenAddress: string, toAddress: string, amount: number, - account: Account + address: string ): Promise { - return this.transferToken(dataTokenAddress, toAddress, amount, account) + return this.transferToken(dataTokenAddress, toAddress, amount, address) } /** - * Transfer as number from Account to Address + * 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 {Account} account + * @param {String} address * @return {Promise} transactionId */ public async transferToken( dataTokenAddress: string, toAddress: string, amount: number, - account: Account + address: string ): Promise { const weiAmount = this.web3.utils.toWei(String(amount)) - return this.transferWei(dataTokenAddress, toAddress, weiAmount, account) + return this.transferWei(dataTokenAddress, toAddress, weiAmount, address) } /** - * Transfer in wei from Account to Address + * 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 {Account} account + * @param {String} address * @return {Promise} transactionId */ public async transferWei( dataTokenAddress: string, toAddress: string, amount: string, - account: Account + address: string ): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account } + { from: address } ) const trxReceipt = await datatoken.methods .transfer(toAddress, String(amount)) @@ -189,50 +187,51 @@ export class DataTokens { } /** - * Transfer from Address to Account (needs an Approve operation before) + * 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 {Account} account + * @param {String} address * @return {Promise} transactionId */ public async transferFrom( dataTokenAddress: string, fromAddress: string, amount: number, - account: string + address: string ): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account } + { from: address } ) const trxReceipt = await datatoken.methods - .transferFrom(fromAddress, account, this.web3.utils.toWei(String(amount))) + .transferFrom(fromAddress, address, this.web3.utils.toWei(String(amount))) .send() return trxReceipt } /** - * Get Account Balance for datatoken + * Get Address Balance for datatoken * @param {String} dataTokenAddress - * @param {Account} account + * @param {String} address * @return {Promise} balance Number of datatokens, as number. Will be converted from wei */ - public async balance(dataTokenAddress: string, account: Account): Promise { + public async balance(dataTokenAddress: string, address: string): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account } + { from: address } ) - const balance = await datatoken.methods.balanceOf(account).call() + const balance = await datatoken.methods.balanceOf(address).call() return this.web3.utils.fromWei(balance) } /** - * - * @param dataTokenAddress - * @param account + * Get Alloance + * @param {String } dataTokenAddress + * @param {String} owner + * @param {String} spender */ public async allowance( dataTokenAddress: string, @@ -250,14 +249,14 @@ export class DataTokens { /** Get Blob * @param {String} dataTokenAddress - * @param {Account} account + * @param {String} address * @return {Promise} string */ - public async getBlob(dataTokenAddress: string, account: Account): Promise { + public async getBlob(dataTokenAddress: string, address: string): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account.getId() } + { from: address } ) const trxReceipt = await datatoken.methods.blob().call() return trxReceipt @@ -265,14 +264,14 @@ export class DataTokens { /** Get Name * @param {String} dataTokenAddress - * @param {Account} account + * @param {String} address * @return {Promise} string */ - public async getName(dataTokenAddress: string, account: Account): Promise { + public async getName(dataTokenAddress: string, address: string): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account.getId() } + { from: address } ) const trxReceipt = await datatoken.methods.name().call() return trxReceipt @@ -280,14 +279,14 @@ export class DataTokens { /** Get Symbol * @param {String} dataTokenAddress - * @param {Account} account + * @param {String} address * @return {Promise} string */ - public async getSymbol(dataTokenAddress: string, account: Account): Promise { + public async getSymbol(dataTokenAddress: string, address: string): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account.getId() } + { from: address } ) const trxReceipt = await datatoken.methods.symbol().call() return trxReceipt @@ -295,14 +294,14 @@ export class DataTokens { /** Get Cap * @param {String} dataTokenAddress - * @param {Account} account + * @param {String} address * @return {Promise} string */ - public async getCap(dataTokenAddress: string, account: Account): Promise { + public async getCap(dataTokenAddress: string, address: string): Promise { const datatoken = new this.web3.eth.Contract( this.datatokensABI, dataTokenAddress, - { from: account.getId() } + { from: address } ) const trxReceipt = await datatoken.methods.cap().call() return this.web3.utils.fromWei(trxReceipt) diff --git a/src/ocean/Assets.ts b/src/ocean/Assets.ts index d5fa3244..871a6084 100644 --- a/src/ocean/Assets.ts +++ b/src/ocean/Assets.ts @@ -73,7 +73,10 @@ export class Assets extends Instantiable { const metadataStoreURI = this.ocean.metadatastore.getURI() const jsonBlob = { t: 1, url: metadataStoreURI } const { datatokens } = this.ocean - dtAddress = await datatokens.create(JSON.stringify(jsonBlob), publisher) + dtAddress = await datatokens.create( + JSON.stringify(jsonBlob), + publisher.getId() + ) this.logger.log('DataToken creted') observer.next(CreateProgressStep.DataTokenCreated) }