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