import { Signer } from 'ethers'; import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, ComputeResultStream, NodeStatus, NodeComputeJob, NodeLogEntry, PersistentStorageAccessList, PersistentStorageBucket, PersistentStorageCreateBucketRequest, PersistentStorageDeleteFileResponse, PersistentStorageFileEntry, PersistentStorageObject, PersistentStorageUpdateBucketResponse, SignerOrAuthTokenOrSignature } from '../../@types/index.js'; import { type DDO, type ValidateMetadata } from '@oceanprotocol/ddo-js'; import { type P2PRequestBodyStream } from './P2pProvider.js'; export declare class HttpProvider { protected getAuthorization(s: SignerOrAuthTokenOrSignature): string; private getSignedCommandParams; private resolvePersistentStorageRoute; /** * Returns the provider endpoints * @param {string} nodeUri - the provider url * @return {Promise} */ getEndpoints(nodeUri: string, authorization?: string): Promise; getNodeStatus(nodeUri: string, signal?: AbortSignal): Promise; getNodeJobs(nodeUri: string, fromTimestamp?: number, signal?: AbortSignal): Promise; /** * Returns the node public key * @return {string} The node public key */ private getNodePublicKey; /** * This function returns the endpoint URL for a given service name. * @param {ServiceEndpoint[]} servicesEndpoints - The array of service endpoints * @param {string} serviceName - The name of the service * @returns {ServiceEndpoint} The endpoint URL for the given service name */ getEndpointURL(servicesEndpoints: ServiceEndpoint[], serviceName: string): ServiceEndpoint; /** * This function returns an array of service endpoints for a given provider endpoint. * @param {string} providerEndpoint - The provider endpoint * @param {any} endpoints - The endpoints object * @returns {ServiceEndpoint[]} An array of service endpoints */ getServiceEndpoints(providerEndpoint: string, endpoints: any): Promise; /** * Get current nonce from the provider. * @param {string} nodeUri provider uri address * @param {string} consumerAddress Publisher address * @param {AbortSignal} signal abort signal * @param {string} providerEndpoints Identifier of the asset to be registered in ocean * @param {string} serviceEndpoints document description object (DDO)= * @return {Promise} urlDetails */ getNonce(nodeUri: string, consumerAddress: string, signal?: AbortSignal, providerEndpoints?: any, serviceEndpoints?: ServiceEndpoint[]): Promise; /** * Encrypt data using the Provider's own symmetric key * @param {string} data data in json format that needs to be sent , it can either be a DDO or a File array * @param {number} chainId network's id so provider can choose the corresponding Signer object * @param {string} nodeUri provider uri address * @param {AbortSignal} signal abort signal * @return {Promise} urlDetails */ encrypt(data: any, chainId: number, nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, policyServer?: any, signal?: AbortSignal): Promise; /** * Get file details for a given DID and service ID. * @param {string} did - The DID to check. * @param {string} serviceId - The service ID to check. * @param {string} nodeUri - The URI of the provider. * @param {boolean} [withChecksum=false] - Whether or not to include a checksum. * @param {AbortSignal} [signal] - An optional abort signal. * @returns {Promise} A promise that resolves with an array of file info objects. */ checkDidFiles(did: string, serviceId: string, nodeUri: string, withChecksum?: boolean, signal?: AbortSignal): Promise; /** * Get File details (if possible) * @param {StorageObject} file one of the supported file structures * @param {string} nodeUri uri of the provider that will be used to check the file * @param {boolean} [withChecksum=false] - Whether or not to include a checksum. * @param {AbortSignal} [signal] - An optional abort signal. * @returns {Promise} A promise that resolves with an array of file info objects. */ getFileInfo(file: StorageObject, nodeUri: string, withChecksum?: boolean, signal?: AbortSignal): Promise; /** * Returns compute environments from a provider. * @param {string} nodeUri - The URI of the provider. * @param {AbortSignal} [signal] - An optional abort signal. * @returns {Promise} A promise that resolves with compute environments. */ getComputeEnvironments(nodeUri: string, signal?: AbortSignal): Promise; /** * Initializes the provider for a service request. * @param {string} did - The asset DID . * @param {string} serviceId - The asset service ID. * @param {number} fileIndex - The file index. * @param {string} consumerAddress - The consumer address. * @param {string} nodeUri - The URI of the provider. * @param {AbortSignal} [signal] - The abort signal if any. * @param {UserCustomParameters} [userCustomParameters] - The custom parameters if any. * @param {string} [computeEnv] - The compute environment if any. * @param {number} [validUntil] - The validity time if any. * @returns {Promise} A promise that resolves with ProviderInitialize response. */ initialize(did: string, serviceId: string, fileIndex: number, consumerAddress: string, nodeUri: string, signal?: AbortSignal, userCustomParameters?: UserCustomParameters, computeEnv?: string, validUntil?: number): Promise; /** Initializes the provider for a compute request. * @param {ComputeAsset[]} assets The datasets array to initialize compute request. * @param {ComputeAlgorithmber} algorithm The algorithm to use. * @param {string} computeEnv The compute environment. * @param {string} token The payment token address. * @param {number} validUntil The job expiration date. * @param {string} nodeUri The provider URI. * @param {SignerOrAuthToken} signerOrAuthToken Signer or auth token * @param {ComputeResourceRequest[]} resources The resources to start compute job with. * @param {number} chainId The chain used to do payments * @param {any} policyServer Policy server data. * @param {AbortSignal} signal abort signal * @param {dockerRegistryAuth} dockerRegistryAuth Docker registry authentication data. * @return {Promise} ProviderComputeInitialize data */ initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string, consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuthData?: dockerRegistryAuth, output?: ComputeOutput): Promise; /** * Gets the download URL. * @param {string} did - The DID. * @param {string} serviceId - The service ID. * @param {number} fileIndex - The file index. * @param {string} transferTxId - The transfer transaction ID. * @param {string} nodeUri - The provider URI. * @param {SignerOrAuthToken} signerOrAuthToken - The signer or auth token. * @param {any} policyServer Policy server data. * @param {UserCustomParameters} userCustomParameters - The user custom parameters. * @returns {Promise} The download URL. */ getDownloadUrl(did: string, serviceId: string, fileIndex: number, transferTxId: string, nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, policyServer?: any, userCustomParameters?: UserCustomParameters): Promise; /** Instruct the provider to start a PAYED compute job * @param {string} nodeUri The provider URI. * @param {SignerOrAuthToken} signerOrAuthToken The consumer signer object or auth token. * @param {string} computeEnv The compute environment. * @param {ComputeAsset} datasets The dataset to start compute on + additionalDatasets (the additional datasets if that is the case) * @param {ComputeAlgorithm} algorithm The algorithm to start compute with. * @param {number} maxJobDuration The compute job max execution time. * @param {string} token The token address for compute payment. * @param {ComputeResourceRequest} resources The resources to start compute job with. * @param {chainId} chainId The chain used to do payments * @param {ComputeJobMetadata} metadata The compute job metadata. Additional metadata to be stored in the database. * @param {ComputeOutput} output The compute job output settings. * @param {any} policyServer Policy server data. * @param {AbortSignal} signal abort signal * @param {number} queueMaxWaitTime Maximum time in seconds to wait in the compute queue if resources are not available * @param {dockerRegistryAuth} dockerRegistryAuth Docker registry authentication data. * @param {string} outputBucketId Persistent-storage bucket id to store job results in, mounted at /data/outputs. Mutually exclusive with output. * @return {Promise} The compute job or jobs. */ computeStart(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, maxJobDuration: number, token: string, resources: ComputeResourceRequest[], chainId: number, metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth, outputBucketId?: string): Promise; /** Instruct the provider to start a FREE compute job * @param {string} nodeUri The provider URI. * @param {SignerOrAuthToken} signerOrAuthToken The consumer signer object or auth token. * @param {string} computeEnv The compute environment. * @param {ComputeAsset} datasets The dataset to start compute on + additionalDatasets (the additional datasets if that is the case) * @param {ComputeAlgorithm} algorithm The algorithm to start compute with. * @param {ComputeResourceRequest} resources The resources to start compute job with. * @param {ComputeJobMetadata} metadata The compute job metadata. Additional metadata to be stored in the database. * @param {ComputeOutput} output The compute job output settings. * @param {any} policyServer Policy server data. * @param {AbortSignal} signal abort signal * @param {number} queueMaxWaitTime Maximum time in seconds to wait in the compute queue if resources are not available * @param {dockerRegistryAuth} dockerRegistryAuth Docker registry authentication data. * @param {string} outputBucketId Persistent-storage bucket id to store job results in, mounted at /data/outputs. Mutually exclusive with output. * @return {Promise} The compute job or jobs. */ freeComputeStart(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, resources?: ComputeResourceRequest[], metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth, outputBucketId?: string): Promise; /** * @param nodeUri provider URL * @param signerOrAuthToken signer or auth token * @param jobId jobId * @param signal abort signal * @returns logs response */ computeStreamableLogs(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, jobId: string, signal?: AbortSignal): Promise; /** Instruct the provider to Stop the execution of a to stop a compute job. * @param {string} jobId the compute job id * @param {string} nodeUri The provider URI. * @param {SignerOrAuthToken} signerOrAuthToken The consumer signer or auth token. * @param {string} agreementId The agreement id. * @param {AbortSignal} signal abort signal * @return {Promise} */ computeStop(jobId: string, nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, agreementId?: string, signal?: AbortSignal): Promise; /** Get compute status for a specific jobId/documentId/owner. * @param {string} nodeUri The URI of the provider we want to query * @param {string} consumerAddress The consumer ethereum address * @param {string} jobId The ID of a compute job. * @param {string} agreementId The ID of the service agreement (tx id) * @param {AbortSignal} signal abort signal * @return {Promise} */ computeStatus(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, jobId?: string, agreementId?: string, signal?: AbortSignal): Promise; /** Get compute result url * @param {string} nodeUri The URI of the provider we want to query * @param {SignerOrAuthToken} signerOrAuthToken signer or auth token * @param {string} jobId The ID of a compute job. * @param {number} index Result index * @return {Promise} */ getComputeResultUrl(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, jobId: string, index: number): Promise; getComputeResult(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, jobId: string, index: number, offset?: number): Promise; /** Generates an auth token * @param {Signer} consumer consumer Signer wallet object * @param {string} nodeUri The URI of the provider we want to query * @param {AbortSignal} signal abort signal * @return {Promise} */ generateAuthToken(consumer: Signer, nodeUri: string, signal?: AbortSignal): Promise; /** Invalidates an auth token * @param {Signer} consumer consumer Signer wallet object * @param {string} token The auth token to invalidate * @param {string} nodeUri The URI of the provider we want to query * @param {AbortSignal} signal abort signal * @return {Promise<{ success: boolean }>} */ invalidateAuthToken(consumer: Signer, token: string, nodeUri: string, signal?: AbortSignal): Promise<{ success: boolean; }>; /** Check for a valid provider at URL * @param {String} url provider uri address * @param {AbortSignal} signal abort signal * @return {Promise} valid or not */ isValidProvider(url: string, signal?: AbortSignal): Promise; /** Sends a PolicyServer request to node to be passthrough to PS * @param {string} nodeUri The provider URI. * @param {PolicyServerPassthroughCommand} request The request to be passed through to the Policy Server. * @param {AbortSignal} signal abort signal */ PolicyServerPassthrough(nodeUri: string, request: PolicyServerPassthroughCommand, signal?: AbortSignal): Promise; /** Initialize Policy Server verification * @param {string} nodeUri The provider URI. * @param {PolicyServerInitializeCommand} request The request to be sent to the Policy Server. * @param {AbortSignal} signal abort signal */ initializePSVerification(nodeUri: string, request: PolicyServerInitializeCommand, signal?: AbortSignal): Promise; /** * Download node logs as an admin. * @param {string} nodeUri - The provider URI. * @param {Signer} signer - The admin signer. * @param {string} startTime - Start time (epoch ms) to get logs from. * @param {string} endTime - End time (epoch ms) to get logs to. * @param {number} [maxLogs] - Maximum number of logs to retrieve (default: 100, max: 1000). * @param {string} [moduleName] - Filter logs by module name. * @param {string} [level] - Filter logs by log level. * @param {number} [page] - Pagination page number. * @param {AbortSignal} [signal] - An optional abort signal. * @returns {Promise} The logs response body stream. */ downloadNodeLogs(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise; private noZeroX; private zeroXTransformer; private inputMatch; resolveDdo(nodeUri: string, did: string, signal?: AbortSignal): Promise; validateDdo(nodeUri: string, ddo: DDO, signerOrAuthToken: SignerOrAuthTokenOrSignature, signal?: AbortSignal): Promise; private getData; createPersistentStorageBucket(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, payload: PersistentStorageCreateBucketRequest, signal?: AbortSignal): Promise<{ bucketId: string; owner: string; accessList: PersistentStorageAccessList[]; label?: string | null; }>; getPersistentStorageBuckets(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, owner: string, signal?: AbortSignal): Promise; listPersistentStorageFiles(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, bucketId: string, signal?: AbortSignal): Promise; getPersistentStorageFileObject(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, bucketId: string, fileName: string, signal?: AbortSignal): Promise; uploadPersistentStorageFile(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, bucketId: string, fileName: string, content: P2PRequestBodyStream, signal?: AbortSignal): Promise; deletePersistentStorageFile(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, bucketId: string, fileName: string, signal?: AbortSignal): Promise; updatePersistentStorageBucket(nodeUri: string, signerOrAuthToken: SignerOrAuthTokenOrSignature, bucketId: string, label: string | null, signal?: AbortSignal): Promise; }