mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
fixes #144
This commit is contained in:
parent
ed8eef68d8
commit
dc5b252842
@ -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<string>} datatoken address
|
||||
*/
|
||||
public async create(metaDataStoreURI: string, account: Account): Promise<string> {
|
||||
public async create(metaDataStoreURI: string, address: string): Promise<string> {
|
||||
// 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<string>} transactionId
|
||||
*/
|
||||
public async approve(
|
||||
dataTokenAddress: string,
|
||||
spender: string,
|
||||
amount: number,
|
||||
account: Account
|
||||
address: string
|
||||
): Promise<string> {
|
||||
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<string>} transactionId
|
||||
*/
|
||||
public async mint(
|
||||
dataTokenAddress: string,
|
||||
account: Account,
|
||||
address: string,
|
||||
amount: number,
|
||||
toAddress?: string
|
||||
): Promise<string> {
|
||||
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<string>} transactionId
|
||||
*/
|
||||
public async transfer(
|
||||
dataTokenAddress: string,
|
||||
toAddress: string,
|
||||
amount: number,
|
||||
account: Account
|
||||
address: string
|
||||
): Promise<string> {
|
||||
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<string>} transactionId
|
||||
*/
|
||||
public async transferToken(
|
||||
dataTokenAddress: string,
|
||||
toAddress: string,
|
||||
amount: number,
|
||||
account: Account
|
||||
address: string
|
||||
): Promise<string> {
|
||||
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<string>} transactionId
|
||||
*/
|
||||
public async transferWei(
|
||||
dataTokenAddress: string,
|
||||
toAddress: string,
|
||||
amount: string,
|
||||
account: Account
|
||||
address: string
|
||||
): Promise<string> {
|
||||
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<string>} transactionId
|
||||
*/
|
||||
public async transferFrom(
|
||||
dataTokenAddress: string,
|
||||
fromAddress: string,
|
||||
amount: number,
|
||||
account: string
|
||||
address: string
|
||||
): Promise<string> {
|
||||
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<number>} balance Number of datatokens, as number. Will be converted from wei
|
||||
*/
|
||||
public async balance(dataTokenAddress: string, account: Account): Promise<number> {
|
||||
public async balance(dataTokenAddress: string, address: string): Promise<number> {
|
||||
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>} string
|
||||
*/
|
||||
public async getBlob(dataTokenAddress: string, account: Account): Promise<string> {
|
||||
public async getBlob(dataTokenAddress: string, address: string): Promise<string> {
|
||||
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>} string
|
||||
*/
|
||||
public async getName(dataTokenAddress: string, account: Account): Promise<string> {
|
||||
public async getName(dataTokenAddress: string, address: string): Promise<string> {
|
||||
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>} string
|
||||
*/
|
||||
public async getSymbol(dataTokenAddress: string, account: Account): Promise<string> {
|
||||
public async getSymbol(dataTokenAddress: string, address: string): Promise<string> {
|
||||
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>} string
|
||||
*/
|
||||
public async getCap(dataTokenAddress: string, account: Account): Promise<string> {
|
||||
public async getCap(dataTokenAddress: string, address: string): Promise<string> {
|
||||
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)
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user