Skip to content

Commit

Permalink
Merge pull request #309 from oceanprotocol/feature/updated_events
Browse files Browse the repository at this point in the history
use dtAddress as did, update metadata contract
  • Loading branch information
kremalicious authored Sep 23, 2020
2 parents e06f96a + 8ac5f73 commit 1190954
Show file tree
Hide file tree
Showing 16 changed files with 112 additions and 66 deletions.
3 changes: 1 addition & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ before_script:
- git clone https://github.com/oceanprotocol/barge
- cd barge
- git checkout v3
- export PROVIDER_VERSION=latest
- export ADDRESS_FILE="${HOME}/.ocean/ocean-contracts/artifacts/address.json"
- export AQUARIUS_URI="http://172.15.0.5:5000"
- export DEPLOY_CONTRACTS=true
Expand All @@ -47,4 +46,4 @@ deploy:
api_key: ${NPM_TOKEN}
skip_cleanup: true
on:
tags: true
tags: true
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
},
"dependencies": {
"@ethereum-navigator/navigator": "^0.5.0",
"@oceanprotocol/contracts": "^0.4.2",
"@oceanprotocol/contracts": "^0.4.4",
"decimal.js": "^10.2.0",
"fs": "0.0.1-security",
"lzma": "^2.3.2",
Expand Down
8 changes: 2 additions & 6 deletions src/datatokens/Datatokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,6 @@ export class DataTokens {
/** Start Order
* @param {String} dataTokenAddress
* @param {String} amount
* @param {String} did
* @param {Number} serviceId
* @param {String} mpFeeAddress
* @param {String} address consumer Address
Expand All @@ -365,7 +364,6 @@ export class DataTokens {
public async startOrder(
dataTokenAddress: string,
amount: string,
did: string,
serviceId: number,
mpFeeAddress: string,
address: string
Expand All @@ -376,7 +374,7 @@ export class DataTokens {
if (!mpFeeAddress) mpFeeAddress = '0x0000000000000000000000000000000000000000'
try {
const trxReceipt = await datatoken.methods
.startOrder(this.web3.utils.toWei(amount), did, String(serviceId), mpFeeAddress)
.startOrder(this.web3.utils.toWei(amount), String(serviceId), mpFeeAddress)
.send({ from: address, gas: 600000 })
return trxReceipt
} catch (e) {
Expand All @@ -397,7 +395,6 @@ export class DataTokens {
public async getPreviousValidOrders(
dataTokenAddress: string,
amount: string,
did: string,
serviceId: number,
timeout: number,
address: string
Expand All @@ -411,8 +408,7 @@ export class DataTokens {
})
for (let i = 0; i < events.length; i++) {
if (
events[i].returnValues.did === did &&
String(events[i].returnValues.amount) === String(amount) &&
String(events[i].returnValues.amount) === this.web3.utils.toWei(String(amount)) &&
String(events[i].returnValues.serviceId) === String(serviceId)
) {
const transaction = await this.web3.eth.getTransaction(events[i].transactionHash)
Expand Down
15 changes: 8 additions & 7 deletions src/metadatastore/OnChainMetaData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { TransactionReceipt } from 'web3-core'
import { Contract } from 'web3-eth-contract'
import { AbiItem } from 'web3-utils/types'
import Web3 from 'web3'
import defaultDDOContractABI from '@oceanprotocol/contracts/artifacts/DDO.json'
import defaultDDOContractABI from '@oceanprotocol/contracts/artifacts/Metadata.json'
import { didZeroX } from '../utils'
import { LZMA } from 'lzma'

Expand Down Expand Up @@ -102,15 +102,16 @@ export class OnChainMetadataStore {
return null
}
try {
const estGas = await this.DDOContract.methods
.create(did, flags, data)
/* const estGas = await this.DDOContract.methods
.create(didZeroX(did), flags, data)
.estimateGas(function (err, estGas) {
if (err) console.log('OnChainMetadataStore: ' + err)
if (err) console.log('OnChainMetadataStoreEstimateGas: ' + err)
return estGas
})
*/
const trxReceipt = await this.DDOContract.methods
.create(did, flags, data)
.send({ from: consumerAccount, gas: estGas + 1 })
.create(didZeroX(did), flags, data)
.send({ from: consumerAccount })
return trxReceipt
} catch (e) {
console.error(e)
Expand Down Expand Up @@ -138,7 +139,7 @@ export class OnChainMetadataStore {
}
try {
const trxReceipt = await this.DDOContract.methods
.update(did, flags, data)
.update(didZeroX(did), flags, data)
.send({ from: consumerAccount })
return trxReceipt
} catch (e) {
Expand Down
4 changes: 2 additions & 2 deletions src/models/Config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,13 @@ export class Config {
* DDOContractAddress
* @type {string}
*/
public DDOContractAddress?: string
public metadataContractAddress?: string

/**
* DDOContractABI
* @type {any}
*/
public DDOContractABI?: AbiItem | AbiItem[]
public metadataContractABI?: AbiItem | AbiItem[]
/**
* Log level.
* @type {boolean | LogLevel}
Expand Down
12 changes: 4 additions & 8 deletions src/ocean/Assets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export class Assets extends Instantiable {
observer.next(CreateProgressStep.DataTokenCreated)
}

const did: DID = DID.generate()
const did: DID = DID.generate(dtAddress)

this.logger.log('Encrypting files')
observer.next(CreateProgressStep.EncryptingFiles)
Expand All @@ -118,7 +118,7 @@ export class Assets extends Instantiable {
provider.setBaseUrl(providerUri)
} else provider = this.ocean.provider
const encryptedFiles = await provider.encrypt(
did.getId(),
did.getDid(),
metadata.main.files,
publisher
)
Expand Down Expand Up @@ -486,7 +486,6 @@ export class Assets extends Instantiable {
const previousOrder = await datatokens.getPreviousValidOrders(
providerData.dataToken,
providerData.numTokens,
didZeroX(did),
serviceIndex,
service.attributes.main.timeout,
consumerAddress
Expand All @@ -495,9 +494,7 @@ export class Assets extends Instantiable {
const balance = new BigNumber(
await datatokens.balance(providerData.dataToken, consumerAddress)
)
const totalCost = new BigNumber(
this.web3.utils.fromWei(String(providerData.numTokens))
)
const totalCost = new BigNumber(String(providerData.numTokens))
if (balance.isLessThanOrEqualTo(totalCost)) {
console.error(
'Not enough funds. Needed ' +
Expand All @@ -509,8 +506,7 @@ export class Assets extends Instantiable {
}
const txid = await datatokens.startOrder(
providerData.dataToken,
this.web3.utils.fromWei(String(providerData.numTokens)),
didZeroX(did),
String(providerData.numTokens),
serviceIndex,
mpAddress,
consumerAddress
Expand Down
13 changes: 6 additions & 7 deletions src/ocean/DID.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { generateId } from '../utils/GeneratorHelpers'

import { noZeroX } from '../utils'
const prefix = 'did:op:'

/**
Expand All @@ -16,8 +15,7 @@ export default class DID {
didString = didString.getDid()
}
let did: DID
const didMatch = didString.match(/^did:op:([a-f0-9]{64})$/i)

const didMatch = didString.match(/^did:op:([a-f0-9]{40})$/i)
if (didMatch) {
did = new DID(didMatch[1])
}
Expand All @@ -30,11 +28,12 @@ export default class DID {
}

/**
* Returns a new DID.
* Generate a new DID.
* @param {string} dataTokenAddress Address of data token to use for DID.
* @return {DID}
*/
public static generate(): DID {
return new DID(generateId())
public static generate(dataTokenAddress: string): DID {
return new DID(noZeroX(dataTokenAddress))
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/ocean/Ocean.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ export class Ocean extends Instantiable {
)
instance.OnChainMetadataStore = new OnChainMetadataStore(
instanceConfig.config.web3Provider,
instanceConfig.config.DDOContractAddress,
instanceConfig.config.DDOContractABI
instanceConfig.config.metadataContractAddress,
instanceConfig.config.metadataContractABI
)
instance.versions = await Versions.getInstance(instanceConfig)
instance.network = new Network()
Expand Down
15 changes: 8 additions & 7 deletions src/utils/ConfigHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@ const configs: ConfigHelperConfig[] = [
providerUri: 'http://127.0.0.1:8030',
poolFactoryAddress: null,
fixedRateExchangeAddress: null,
DDOContractAddress: null
metadataContractAddress: null
},
{
chainId: 4,
network: 'rinkeby',
nodeUri: 'https://rinkeby.infura.io/v3',
factoryAddress: '0x3ECd1429101f93149D799Ef257C07a2B1Dc30897',
factoryAddress: '0x732cad3502e2A543118C8047D6bb20D5DB9c3242',
oceanTokenAddress: '0x8967BCF84170c91B0d24D4302C2376283b0B3a07',
metadataStoreUri: 'https://aquarius.rinkeby.v3.dev-ocean.com',
providerUri: 'https://provider.rinkeby.v3.dev-ocean.com',
poolFactoryAddress: '0x9B90A1358fbeEC1C4bB1DA7D4E85C708f87556Ec',
fixedRateExchangeAddress: '0x991c08bD00761A299d3126a81a985329096896D4',
DDOContractAddress: '0xEfA25E39192b3175d451D79C1c0a41Fa3C32c87d'
poolFactoryAddress: '0x1735C3A59EcedC617bB570b79A71A6FC7C0380E8',
fixedRateExchangeAddress: '0x2B8da1F6DE33EfCDEc254ebE57d1D854a314b81b',
metadataContractAddress: '0x01906293EAd697f6038b0E3E1f0591F56ABf8EC0'
},
{
chainId: 1,
Expand All @@ -49,7 +49,7 @@ const configs: ConfigHelperConfig[] = [
providerUri: null,
poolFactoryAddress: null,
fixedRateExchangeAddress: null,
DDOContractAddress: null
metadataContractAddress: null
}
]

Expand All @@ -64,7 +64,8 @@ export class ConfigHelper {
if (data.ganache.BFactory) configs[0].poolFactoryAddress = data.ganache.BFactory
if (data.ganache.FixedRateExchange)
configs[0].fixedRateExchangeAddress = data.ganache.FixedRateExchange
if (data.ganache.DDO) configs[0].DDOContractAddress = data.ganache.DDO
if (data.ganache.Metadata)
configs[0].metadataContractAddress = data.ganache.Metadata
}
}
if (process.env.AQUARIUS_URI) configs[0].metadataStoreUri = process.env.AQUARIUS_URI
Expand Down
2 changes: 1 addition & 1 deletion src/utils/ConversionTypeHelpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const noDidPrefixed = (input: string): string => didTransformer(input, fa
export function didTransformer(input = '', prefixOutput: boolean): string {
const { valid, output } = inputMatch(
input,
/^(?:0x|did:op:)*([a-f0-9]{64})$/i,
/^(?:0x|did:op:)*([a-f0-9]{40})$/i,
'didTransformer'
)
return (prefixOutput && valid ? 'did:op:' : '') + output
Expand Down
Loading

0 comments on commit 1190954

Please sign in to comment.