1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

move ConversionTypeHelper functions to Provider

This commit is contained in:
Miquel A. Cabot 2022-06-09 13:15:14 +02:00
parent 26f3aa6ef3
commit cd34833ff7
3 changed files with 42 additions and 34 deletions

View File

@ -1,6 +1,6 @@
import Web3 from 'web3'
import fetch from 'cross-fetch'
import { LoggerInstance, getData, noZeroX } from '../utils'
import { LoggerInstance, getData } from '../utils'
import {
FileMetadata,
ComputeJob,
@ -526,7 +526,7 @@ export class Provider {
let signatureMessage = consumerAddress
signatureMessage += jobId || ''
signatureMessage += (did && `${noZeroX(did)}`) || ''
signatureMessage += (did && `${this.noZeroX(did)}`) || ''
signatureMessage += nonce
const signature = await this.signProviderRequest(
web3,
@ -535,7 +535,7 @@ export class Provider {
)
const payload = Object()
payload.signature = signature
payload.documentId = noZeroX(did)
payload.documentId = this.noZeroX(did)
payload.consumerAddress = consumerAddress
if (jobId) payload.jobId = jobId
@ -590,7 +590,7 @@ export class Provider {
: null
let url = `?consumerAddress=${consumerAddress}`
url += (did && `&documentId=${noZeroX(did)}`) || ''
url += (did && `&documentId=${this.noZeroX(did)}`) || ''
url += (jobId && `&jobId=${jobId}`) || ''
if (!computeStatusUrl) return null
@ -699,7 +699,7 @@ export class Provider {
let signatureMessage = consumerAddress
signatureMessage += jobId || ''
signatureMessage += (did && `${noZeroX(did)}`) || ''
signatureMessage += (did && `${this.noZeroX(did)}`) || ''
signatureMessage += nonce
const signature = await this.signProviderRequest(
web3,
@ -707,7 +707,7 @@ export class Provider {
signatureMessage
)
const payload = Object()
payload.documentId = noZeroX(did)
payload.documentId = this.noZeroX(did)
payload.consumerAddress = consumerAddress
payload.jobId = jobId
if (signature) payload.signature = signature
@ -766,6 +766,42 @@ export class Provider {
return false
}
}
private zeroX(input: string): string {
return this.zeroXTransformer(input, true)
}
private noZeroX(input: string): string {
return this.zeroXTransformer(input, false)
}
private zeroXTransformer(input = '', zeroOutput: boolean): string {
const { valid, output } = this.inputMatch(
input,
/^(?:0x)*([a-f0-9]+)$/i,
'zeroXTransformer'
)
return (zeroOutput && valid ? '0x' : '') + output
}
// Shared functions
private inputMatch(
input: string,
regexp: RegExp,
conversorName: string
): { valid: boolean; output: string } {
if (typeof input !== 'string') {
LoggerInstance.debug('Not input string:')
LoggerInstance.debug(input)
throw new Error(`[${conversorName}] Expected string, input type: ${typeof input}`)
}
const match = input.match(regexp)
if (!match) {
LoggerInstance.warn(`[${conversorName}] Input transformation failed.`)
return { valid: false, output: input }
}
return { valid: true, output: match[1] }
}
}
export const ProviderInstance = new Provider()

View File

@ -1,27 +0,0 @@
import { LoggerInstance } from '.'
export const zeroX = (input: string): string => zeroXTransformer(input, true)
export const noZeroX = (input: string): string => zeroXTransformer(input, false)
export function zeroXTransformer(input = '', zeroOutput: boolean): string {
const { valid, output } = inputMatch(input, /^(?:0x)*([a-f0-9]+)$/i, 'zeroXTransformer')
return (zeroOutput && valid ? '0x' : '') + output
}
// Shared functions
function inputMatch(
input: string,
regexp: RegExp,
conversorName: string
): { valid: boolean; output: string } {
if (typeof input !== 'string') {
LoggerInstance.debug('Not input string:')
LoggerInstance.debug(input)
throw new Error(`[${conversorName}] Expected string, input type: ${typeof input}`)
}
const match = input.match(regexp)
if (!match) {
LoggerInstance.warn(`[${conversorName}] Input transformation failed.`)
return { valid: false, output: input }
}
return { valid: true, output: match[1] }
}

View File

@ -1,6 +1,5 @@
export * from './Constants'
export * from './ContractUtils'
export * from './ConversionTypeHelper'
export * from './DatatokenName'
export * from './DdoHelpers'
export * from './FetchHelper'