mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
more customProvider code
This commit is contained in:
parent
3e79a3a37f
commit
11b58cb8c0
@ -16,6 +16,7 @@ import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'
|
|||||||
import { WebServiceConnector } from './utils/WebServiceConnector'
|
import { WebServiceConnector } from './utils/WebServiceConnector'
|
||||||
import { DataTokens } from '../lib'
|
import { DataTokens } from '../lib'
|
||||||
import BigNumber from 'bignumber.js'
|
import BigNumber from 'bignumber.js'
|
||||||
|
import { Provider } from '../provider/Provider'
|
||||||
|
|
||||||
export enum CreateProgressStep {
|
export enum CreateProgressStep {
|
||||||
CreatingDataToken,
|
CreatingDataToken,
|
||||||
@ -56,6 +57,7 @@ export class Assets extends Instantiable {
|
|||||||
* @param {String} cap Maximum cap (Number) - will be converted to wei
|
* @param {String} cap Maximum cap (Number) - will be converted to wei
|
||||||
* @param {String} name Token name
|
* @param {String} name Token name
|
||||||
* @param {String} symbol Token symbol
|
* @param {String} symbol Token symbol
|
||||||
|
* @param {String} customProviderURL
|
||||||
* @return {Promise<DDO>}
|
* @return {Promise<DDO>}
|
||||||
*/
|
*/
|
||||||
public create(
|
public create(
|
||||||
@ -65,7 +67,8 @@ export class Assets extends Instantiable {
|
|||||||
dtAddress?: string,
|
dtAddress?: string,
|
||||||
cap?: string,
|
cap?: string,
|
||||||
name?: string,
|
name?: string,
|
||||||
symbol?: string
|
symbol?: string,
|
||||||
|
customProviderURL?: string
|
||||||
): SubscribablePromise<CreateProgressStep, DDO> {
|
): SubscribablePromise<CreateProgressStep, DDO> {
|
||||||
this.logger.log('Creating asset')
|
this.logger.log('Creating asset')
|
||||||
return new SubscribablePromise(async (observer) => {
|
return new SubscribablePromise(async (observer) => {
|
||||||
@ -93,7 +96,12 @@ export class Assets extends Instantiable {
|
|||||||
|
|
||||||
this.logger.log('Encrypting files')
|
this.logger.log('Encrypting files')
|
||||||
observer.next(CreateProgressStep.EncryptingFiles)
|
observer.next(CreateProgressStep.EncryptingFiles)
|
||||||
const encryptedFiles = await this.ocean.provider.encrypt(
|
let provider
|
||||||
|
if (customProviderURL) {
|
||||||
|
provider = new Provider(this.instanceConfig)
|
||||||
|
provider.setBaseUrl(customProviderURL)
|
||||||
|
} else provider = this.ocean.provider
|
||||||
|
const encryptedFiles = await provider.encrypt(
|
||||||
did.getId(),
|
did.getId(),
|
||||||
metadata.main.files,
|
metadata.main.files,
|
||||||
publisher
|
publisher
|
||||||
@ -386,9 +394,7 @@ export class Assets extends Instantiable {
|
|||||||
return {
|
return {
|
||||||
type: 'access',
|
type: 'access',
|
||||||
index: 2,
|
index: 2,
|
||||||
serviceEndpoint: customProvider
|
serviceEndpoint: customProvider || this.ocean.provider.url,
|
||||||
? customProvider + this.ocean.provider.getConsumeEndpointShort()
|
|
||||||
: this.ocean.provider.getConsumeEndpoint(),
|
|
||||||
attributes: {
|
attributes: {
|
||||||
main: {
|
main: {
|
||||||
creator: creator.getId(),
|
creator: creator.getId(),
|
||||||
@ -416,14 +422,12 @@ export class Assets extends Instantiable {
|
|||||||
did: string,
|
did: string,
|
||||||
serviceType: string,
|
serviceType: string,
|
||||||
consumerAddress: string,
|
consumerAddress: string,
|
||||||
serviceIndex = -1
|
serviceIndex = -1,
|
||||||
|
serviceEndpoint: string
|
||||||
): Promise<any> {
|
): Promise<any> {
|
||||||
const res = await this.ocean.provider.initialize(
|
const provider = new Provider(this.instanceConfig)
|
||||||
did,
|
provider.setBaseUrl(serviceEndpoint)
|
||||||
serviceIndex,
|
const res = await provider.initialize(did, serviceIndex, serviceType, consumerAddress)
|
||||||
serviceType,
|
|
||||||
consumerAddress
|
|
||||||
)
|
|
||||||
if (res === null) return null
|
if (res === null) return null
|
||||||
const providerData = JSON.parse(res)
|
const providerData = JSON.parse(res)
|
||||||
return providerData
|
return providerData
|
||||||
@ -445,11 +449,12 @@ export class Assets extends Instantiable {
|
|||||||
serviceIndex = -1,
|
serviceIndex = -1,
|
||||||
mpAddress?: string
|
mpAddress?: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
|
let service
|
||||||
if (serviceIndex === -1) {
|
if (serviceIndex === -1) {
|
||||||
const service = await this.getServiceByType(did, serviceType)
|
service = await this.getServiceByType(did, serviceType)
|
||||||
serviceIndex = service.index
|
serviceIndex = service.index
|
||||||
} else {
|
} else {
|
||||||
const service = await this.getServiceByIndex(did, serviceIndex)
|
service = await this.getServiceByIndex(did, serviceIndex)
|
||||||
serviceType = service.type
|
serviceType = service.type
|
||||||
}
|
}
|
||||||
const { datatokens } = this.ocean
|
const { datatokens } = this.ocean
|
||||||
@ -458,10 +463,11 @@ export class Assets extends Instantiable {
|
|||||||
did,
|
did,
|
||||||
serviceType,
|
serviceType,
|
||||||
consumerAddress,
|
consumerAddress,
|
||||||
serviceIndex
|
serviceIndex,
|
||||||
|
service.serviceEndpoint
|
||||||
)
|
)
|
||||||
if (!providerData) return null
|
if (!providerData) return null
|
||||||
const service = await this.getServiceByIndex(did, serviceIndex)
|
service = await this.getServiceByIndex(did, serviceIndex)
|
||||||
const previousOrder = await datatokens.getPreviousValidOrders(
|
const previousOrder = await datatokens.getPreviousValidOrders(
|
||||||
providerData.dataToken,
|
providerData.dataToken,
|
||||||
providerData.numTokens,
|
providerData.numTokens,
|
||||||
@ -526,8 +532,9 @@ export class Assets extends Instantiable {
|
|||||||
destination = destination
|
destination = destination
|
||||||
? `${destination}/datafile.${ddo.shortId()}.${service.index}/`
|
? `${destination}/datafile.${ddo.shortId()}.${service.index}/`
|
||||||
: undefined
|
: undefined
|
||||||
|
const provider = new Provider(this.instanceConfig)
|
||||||
await this.ocean.provider.download(
|
provider.setBaseUrl(serviceEndpoint)
|
||||||
|
await provider.download(
|
||||||
did,
|
did,
|
||||||
txId,
|
txId,
|
||||||
tokenAddress,
|
tokenAddress,
|
||||||
|
@ -6,6 +6,7 @@ import { SubscribablePromise } from '../utils'
|
|||||||
import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'
|
import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'
|
||||||
import { Output } from './interfaces/ComputeOutput'
|
import { Output } from './interfaces/ComputeOutput'
|
||||||
import { ComputeJob } from './interfaces/ComputeJob'
|
import { ComputeJob } from './interfaces/ComputeJob'
|
||||||
|
import { Provider } from '../provider/Provider'
|
||||||
|
|
||||||
export enum OrderProgressStep {
|
export enum OrderProgressStep {
|
||||||
TransferDataToken
|
TransferDataToken
|
||||||
@ -87,7 +88,12 @@ export class Compute extends Instantiable {
|
|||||||
algorithmDataToken?: string
|
algorithmDataToken?: string
|
||||||
): Promise<ComputeJob> {
|
): Promise<ComputeJob> {
|
||||||
output = this.checkOutput(consumerAccount, output)
|
output = this.checkOutput(consumerAccount, output)
|
||||||
|
const ddo = await this.ocean.assets.resolve(did)
|
||||||
|
const service = ddo.findServiceByType('access')
|
||||||
|
const { serviceEndpoint } = service
|
||||||
if (did && txId) {
|
if (did && txId) {
|
||||||
|
const provider = new Provider(this.instanceConfig)
|
||||||
|
provider.setBaseUrl(serviceEndpoint)
|
||||||
const computeJobsList = await this.ocean.provider.compute(
|
const computeJobsList = await this.ocean.provider.compute(
|
||||||
'post',
|
'post',
|
||||||
did,
|
did,
|
||||||
|
@ -18,16 +18,22 @@ const apiPath = '/api/v1/services'
|
|||||||
*/
|
*/
|
||||||
export class Provider extends Instantiable {
|
export class Provider extends Instantiable {
|
||||||
public nonce: string
|
public nonce: string
|
||||||
private get url() {
|
private baseUrl: string
|
||||||
return this.config.providerUri
|
public get url() {
|
||||||
|
return this.baseUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(config: InstantiableConfig) {
|
constructor(config: InstantiableConfig) {
|
||||||
super()
|
super()
|
||||||
this.setInstanceConfig(config)
|
this.setInstanceConfig(config)
|
||||||
|
this.baseUrl = this.config.providerUri
|
||||||
this.nonce = '0'
|
this.nonce = '0'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public setBaseUrl(url: string): void {
|
||||||
|
this.baseUrl = url
|
||||||
|
}
|
||||||
|
|
||||||
public async createSignature(account: Account, agreementId: string): Promise<string> {
|
public async createSignature(account: Account, agreementId: string): Promise<string> {
|
||||||
const signature = await this.ocean.utils.signature.signText(
|
const signature = await this.ocean.utils.signature.signText(
|
||||||
noZeroX(agreementId),
|
noZeroX(agreementId),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user