mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
add data token address validity check
This commit is contained in:
parent
587c9f9b09
commit
2ac93392b4
@ -6,10 +6,10 @@ import defaultDatatokensABI from '@oceanprotocol/contracts/artifacts/DataTokenTe
|
||||
|
||||
import wordListDefault from '../data/words.json'
|
||||
import { TransactionReceipt } from 'web3-core'
|
||||
import { time } from 'console'
|
||||
import BigNumber from 'bignumber.js'
|
||||
|
||||
/**
|
||||
* Provides a interface to DataTokens
|
||||
* Provides an interface to DataTokens
|
||||
*/
|
||||
export class DataTokens {
|
||||
public factoryAddress: string
|
||||
|
@ -14,8 +14,8 @@ import DID from './DID'
|
||||
import { SubscribablePromise, didZeroX } from '../utils'
|
||||
import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'
|
||||
import { WebServiceConnector } from './utils/WebServiceConnector'
|
||||
import { DataTokens } from '../lib'
|
||||
import BigNumber from 'bignumber.js'
|
||||
import { isAddress } from 'web3-utils'
|
||||
|
||||
export enum CreateProgressStep {
|
||||
CreatingDataToken,
|
||||
@ -78,6 +78,7 @@ 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.getId(),
|
||||
@ -85,7 +86,15 @@ export class Assets extends Instantiable {
|
||||
name,
|
||||
symbol
|
||||
)
|
||||
this.logger.log('DataToken creted')
|
||||
|
||||
if (!isAddress(dtAddress)) {
|
||||
this.logger.error(
|
||||
`Created Data Token address ${dtAddress} is not valid. Aborting publishing.`
|
||||
)
|
||||
return null
|
||||
}
|
||||
|
||||
this.logger.log(`DataToken ${dtAddress} created`)
|
||||
observer.next(CreateProgressStep.DataTokenCreated)
|
||||
}
|
||||
|
||||
|
@ -197,10 +197,12 @@ describe('Marketplace flow', () => {
|
||||
const balanceAfter = await datatoken.balance(tokenAddress, bob.getId())
|
||||
assert(balanceBefore === balanceAfter)
|
||||
})
|
||||
|
||||
it('owner can list there assets', async () => {
|
||||
const assets = await ocean.assets.ownerAssets(alice.getId())
|
||||
assert(assets.length > 0)
|
||||
})
|
||||
|
||||
it('Alice updates metadata', async () => {
|
||||
const newMetaData: EditableMetadata = {
|
||||
description: 'new description',
|
||||
@ -217,4 +219,18 @@ describe('Marketplace flow', () => {
|
||||
)
|
||||
assert(metaData.attributes.additionalInformation.links === newMetaData.links)
|
||||
})
|
||||
|
||||
it('Alice publishes a dataset but created data token is invalid', async () => {
|
||||
price = datatoken.toWei('10') // in datatoken
|
||||
const publishedDate = new Date(Date.now()).toISOString().split('.')[0] + 'Z'
|
||||
const timeout = 0
|
||||
service1 = await ocean.assets.createAccessServiceAttributes(
|
||||
alice,
|
||||
price,
|
||||
publishedDate,
|
||||
timeout
|
||||
)
|
||||
ddo = await ocean.assets.create(asset, '0xxxxx', [service1])
|
||||
assert(ddo === null)
|
||||
})
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user