@oceanprotocol/lib 7.0.0-next.0 → 7.0.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/lib.cjs +4 -3
  2. package/dist/lib.module.mjs +4 -3
  3. package/dist/lib.umd.js +4 -3
  4. package/dist/types/@types/Compute.d.ts +21 -0
  5. package/dist/types/@types/Provider.d.ts +39 -0
  6. package/dist/types/services/providers/BaseProvider.d.ts +35 -32
  7. package/dist/types/services/providers/HttpProvider.d.ts +4 -2
  8. package/dist/types/services/providers/P2pProvider.d.ts +39 -37
  9. package/package.json +27 -21
  10. package/.mocharc.json +0 -8
  11. package/.nvmrc +0 -1
  12. package/CHANGELOG.md +0 -3228
  13. package/Cheatsheet.md +0 -326
  14. package/CodeExamples.md +0 -881
  15. package/ComputeExamples.md +0 -941
  16. package/dist/lib.cjs.map +0 -1
  17. package/dist/lib.modern.js +0 -4
  18. package/dist/lib.modern.js.map +0 -1
  19. package/dist/lib.module.mjs.map +0 -1
  20. package/dist/lib.umd.js.map +0 -1
  21. package/docs/.nojekyll +0 -1
  22. package/docs/README.md +0 -195
  23. package/docs/classes/Aquarius.md +0 -175
  24. package/docs/classes/Config.md +0 -481
  25. package/docs/classes/ConfigHelper.md +0 -66
  26. package/docs/classes/Datatoken.md +0 -1123
  27. package/docs/classes/Dispenser.md +0 -502
  28. package/docs/classes/Escrow.md +0 -285
  29. package/docs/classes/FixedRateExchange.md +0 -1068
  30. package/docs/classes/Logger.md +0 -191
  31. package/docs/classes/Nft.md +0 -970
  32. package/docs/classes/NftFactory.md +0 -861
  33. package/docs/classes/Provider.md +0 -727
  34. package/docs/classes/Router.md +0 -645
  35. package/docs/classes/SmartContract.md +0 -193
  36. package/docs/classes/SmartContractWithAddress.md +0 -268
  37. package/docs/enums/LogLevel.md +0 -63
  38. package/docs/interfaces/AbiInput.md +0 -63
  39. package/docs/interfaces/AbiItem.md +0 -107
  40. package/docs/interfaces/AbiOutput.md +0 -52
  41. package/docs/interfaces/Arweave.md +0 -32
  42. package/docs/interfaces/Asset.md +0 -227
  43. package/docs/interfaces/AssetDatatoken.md +0 -60
  44. package/docs/interfaces/AssetLastEvent.md +0 -63
  45. package/docs/interfaces/AssetNft.md +0 -105
  46. package/docs/interfaces/AssetPrice.md +0 -47
  47. package/docs/interfaces/ComputeAlgorithm.md +0 -82
  48. package/docs/interfaces/ComputeAsset.md +0 -56
  49. package/docs/interfaces/ComputeEnvFees.md +0 -30
  50. package/docs/interfaces/ComputeEnvFeesStructure.md +0 -20
  51. package/docs/interfaces/ComputeEnvironment.md +0 -177
  52. package/docs/interfaces/ComputeJob.md +0 -173
  53. package/docs/interfaces/ComputeOutput.md +0 -118
  54. package/docs/interfaces/ComputeResourcesPricingInfo.md +0 -30
  55. package/docs/interfaces/ComputeResourcesRequest.md +0 -34
  56. package/docs/interfaces/ComputeResult.md +0 -52
  57. package/docs/interfaces/ConsumeMarketFee.md +0 -41
  58. package/docs/interfaces/Credential.md +0 -30
  59. package/docs/interfaces/Credentials.md +0 -30
  60. package/docs/interfaces/DDO.md +0 -137
  61. package/docs/interfaces/DatatokenCreateParams.md +0 -107
  62. package/docs/interfaces/DatatokenRoles.md +0 -30
  63. package/docs/interfaces/DispenserCreationParams.md +0 -63
  64. package/docs/interfaces/DispenserParams.md +0 -52
  65. package/docs/interfaces/DispenserToken.md +0 -85
  66. package/docs/interfaces/DownloadResponse.md +0 -30
  67. package/docs/interfaces/Event.md +0 -73
  68. package/docs/interfaces/FeesInfo.md +0 -74
  69. package/docs/interfaces/FileInfo.md +0 -118
  70. package/docs/interfaces/Files.md +0 -41
  71. package/docs/interfaces/FixedPriceExchange.md +0 -162
  72. package/docs/interfaces/FreCreationParams.md +0 -118
  73. package/docs/interfaces/FreOrderParams.md +0 -85
  74. package/docs/interfaces/GraphqlQuery.md +0 -69
  75. package/docs/interfaces/Ipfs.md +0 -32
  76. package/docs/interfaces/Metadata.md +0 -193
  77. package/docs/interfaces/MetadataAlgorithm.md +0 -69
  78. package/docs/interfaces/MetadataAndTokenURI.md +0 -107
  79. package/docs/interfaces/MetadataProof.md +0 -52
  80. package/docs/interfaces/NftCreateData.md +0 -74
  81. package/docs/interfaces/NftRoles.md +0 -52
  82. package/docs/interfaces/Operation.md +0 -145
  83. package/docs/interfaces/OrderParams.md +0 -52
  84. package/docs/interfaces/PriceAndFees.md +0 -52
  85. package/docs/interfaces/ProviderComputeInitialize.md +0 -41
  86. package/docs/interfaces/ProviderComputeInitializeResults.md +0 -43
  87. package/docs/interfaces/ProviderFees.md +0 -96
  88. package/docs/interfaces/ProviderInitialize.md +0 -52
  89. package/docs/interfaces/PublisherTrustedAlgorithm.md +0 -47
  90. package/docs/interfaces/PublishingMarketFee.md +0 -41
  91. package/docs/interfaces/Purgatory.md +0 -34
  92. package/docs/interfaces/RunningPlatform.md +0 -30
  93. package/docs/interfaces/SearchQuery.md +0 -67
  94. package/docs/interfaces/Service.md +0 -138
  95. package/docs/interfaces/ServiceComputeOptions.md +0 -63
  96. package/docs/interfaces/ServiceEndpoint.md +0 -41
  97. package/docs/interfaces/Smartcontract-1.md +0 -58
  98. package/docs/interfaces/Stats.md +0 -47
  99. package/docs/interfaces/Template.md +0 -30
  100. package/docs/interfaces/TokenOrder.md +0 -63
  101. package/docs/interfaces/UrlFile.md +0 -71
  102. package/docs/interfaces/UserCustomParameters.md +0 -7
  103. package/docs/interfaces/ValidateMetadata.md +0 -52
  104. package/docs/modules.md +0 -850
  105. package/typedoc.json +0 -4
@@ -95,6 +95,27 @@ export interface ComputeJob {
95
95
  OOMKilled?: boolean;
96
96
  };
97
97
  }
98
+ export interface ComputeJobPayment {
99
+ chainId: number;
100
+ token: string;
101
+ lockTx: string | null;
102
+ claimTx: string | null;
103
+ cancelTx: string | null;
104
+ cost: number;
105
+ }
106
+ export interface NodeComputeJob extends ComputeJob {
107
+ environment?: string;
108
+ stopRequested?: boolean;
109
+ resources?: ComputeResourceRequest[];
110
+ isFree?: boolean;
111
+ algoStartTimestamp?: string;
112
+ algoStopTimestamp?: string;
113
+ payment?: ComputeJobPayment;
114
+ algoDuration?: number;
115
+ queueMaxWaitTime?: number;
116
+ jobIdHash?: string;
117
+ maxJobDuration?: number;
118
+ }
98
119
  export interface ComputeOutputEncryption {
99
120
  encryptMethod: EncryptMethod.AES;
100
121
  key: string;
@@ -37,6 +37,45 @@ export interface ServiceEndpoint {
37
37
  method: string;
38
38
  urlPath: string;
39
39
  }
40
+ export interface NodeStatusProvider {
41
+ chainId: string;
42
+ network: string;
43
+ }
44
+ export interface NodeStatusIndexer {
45
+ chainId: string;
46
+ network: string;
47
+ block: string;
48
+ }
49
+ export interface NodeStatus {
50
+ id: string;
51
+ publicKey: string;
52
+ friendlyName: string;
53
+ address: string;
54
+ version: string;
55
+ http: boolean;
56
+ p2p: boolean;
57
+ provider: NodeStatusProvider[];
58
+ indexer: NodeStatusIndexer[];
59
+ escrowAddress: Record<string, string>;
60
+ supportedStorage: Record<string, boolean>;
61
+ platform: {
62
+ cpus: number;
63
+ freemem: number;
64
+ totalmem: number;
65
+ loadavg: number[];
66
+ arch: string;
67
+ machine: string;
68
+ platform: string;
69
+ osType: string;
70
+ node: string;
71
+ };
72
+ codeHash: string;
73
+ allowedAdmins: {
74
+ addresses: string[];
75
+ accessLists: string[] | null;
76
+ };
77
+ uptime: number;
78
+ }
40
79
  export interface UserCustomParameters {
41
80
  [key: string]: any;
42
81
  }
@@ -1,47 +1,50 @@
1
+ import { type Multiaddr } from '@multiformats/multiaddr';
1
2
  import { Signer } from 'ethers';
2
- import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ComputeResultStream, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, DownloadResponse } from '../../@types/index.js';
3
+ import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ComputeResultStream, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, DownloadResponse, NodeStatus, NodeComputeJob } from '../../@types/index.js';
3
4
  import { type DDO, type ValidateMetadata } from '@oceanprotocol/ddo-js';
4
- import { HttpProvider } from './HttpProvider.js';
5
- import { P2pProvider, type P2PConfig } from './P2pProvider.js';
5
+ import { type P2PConfig } from './P2pProvider.js';
6
6
  export { OCEAN_P2P_PROTOCOL, type P2PConfig } from './P2pProvider.js';
7
7
  export declare function getConsumerAddress(signerOrAuthToken: Signer | string): Promise<string>;
8
8
  export declare function getSignature(signerOrAuthToken: Signer | string, nonce: string, command: string): Promise<string | null>;
9
9
  export declare function getAuthorization(signerOrAuthToken: Signer | string): string | undefined;
10
- export declare function isP2pUri(nodeUri: string): boolean;
10
+ export declare function isP2pUri(nodeUri: string | Multiaddr[]): boolean;
11
11
  export declare class BaseProvider {
12
12
  private httpProvider;
13
13
  private p2pProvider;
14
- protected getImpl(nodeUri: string): HttpProvider | P2pProvider;
15
- getNonce(nodeUri: string, consumerAddress: string, signal?: AbortSignal, providerEndpoints?: any, serviceEndpoints?: ServiceEndpoint[]): Promise<number>;
16
- encrypt(data: any, chainId: number, nodeUri: string, signerOrAuthToken: Signer | string, policyServer?: any, signal?: AbortSignal): Promise<string>;
17
- checkDidFiles(did: string, serviceId: string, nodeUri: string, withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
18
- getFileInfo(file: StorageObject, nodeUri: string, withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
19
- getComputeEnvironments(nodeUri: string, signal?: AbortSignal): Promise<ComputeEnvironment[]>;
20
- initialize(did: string, serviceId: string, fileIndex: number, consumerAddress: string, nodeUri: string, signal?: AbortSignal, userCustomParameters?: UserCustomParameters, computeEnv?: string, validUntil?: number): Promise<ProviderInitialize>;
21
- initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string, signerOrAuthToken: Signer | string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, output?: ComputeOutput, dockerRegistryAuth?: dockerRegistryAuth): Promise<ProviderComputeInitializeResults>;
22
- getDownloadUrl(did: string, serviceId: string, fileIndex: number, transferTxId: string, nodeUri: string, signerOrAuthToken: Signer | string, policyServer?: any, userCustomParameters?: UserCustomParameters): Promise<string | DownloadResponse>;
23
- computeStart(nodeUri: string, signerOrAuthToken: Signer | string, 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): Promise<ComputeJob | ComputeJob[]>;
24
- freeComputeStart(nodeUri: string, signerOrAuthToken: Signer | string, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, resources?: ComputeResourceRequest[], metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth): Promise<ComputeJob | ComputeJob[]>;
25
- computeStreamableLogs(nodeUri: string, signerOrAuthToken: Signer | string, jobId: string, signal?: AbortSignal): Promise<any>;
26
- computeStop(jobId: string, nodeUri: string, signerOrAuthToken: Signer | string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
27
- computeStatus(nodeUri: string, signerOrAuthToken: Signer | string, jobId?: string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
28
- getComputeResultUrl(nodeUri: string, signerOrAuthToken: Signer | string, jobId: string, index: number): Promise<string>;
29
- getComputeResult(nodeUri: string, signerOrAuthToken: Signer | string, jobId: string, index: number, offset?: number): Promise<ComputeResultStream>;
30
- generateAuthToken(consumer: Signer, nodeUri: string, signal?: AbortSignal): Promise<string>;
31
- invalidateAuthToken(consumer: Signer, token: string, nodeUri: string, signal?: AbortSignal): Promise<{
14
+ protected getImpl(nodeUri: string | Multiaddr[]): any;
15
+ getNonce(nodeUri: string | Multiaddr[], consumerAddress: string, signal?: AbortSignal, providerEndpoints?: any, serviceEndpoints?: ServiceEndpoint[]): Promise<number>;
16
+ encrypt(data: any, chainId: number, nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, policyServer?: any, signal?: AbortSignal): Promise<string>;
17
+ checkDidFiles(did: string, serviceId: string, nodeUri: string | Multiaddr[], withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
18
+ getFileInfo(file: StorageObject, nodeUri: string | Multiaddr[], withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
19
+ getComputeEnvironments(nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<ComputeEnvironment[]>;
20
+ initialize(did: string, serviceId: string, fileIndex: number, consumerAddress: string, nodeUri: string | Multiaddr[], signal?: AbortSignal, userCustomParameters?: UserCustomParameters, computeEnv?: string, validUntil?: number): Promise<ProviderInitialize>;
21
+ initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string | Multiaddr[], consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuthData?: dockerRegistryAuth, output?: ComputeOutput): Promise<ProviderComputeInitializeResults>;
22
+ getDownloadUrl(did: string, serviceId: string, fileIndex: number, transferTxId: string, nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, policyServer?: any, userCustomParameters?: UserCustomParameters): Promise<string | DownloadResponse>;
23
+ computeStart(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, 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): Promise<ComputeJob | ComputeJob[]>;
24
+ freeComputeStart(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, resources?: ComputeResourceRequest[], metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth): Promise<ComputeJob | ComputeJob[]>;
25
+ computeStreamableLogs(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, signal?: AbortSignal): Promise<any>;
26
+ computeStop(jobId: string, nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
27
+ computeStatus(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId?: string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
28
+ getComputeResultUrl(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number): Promise<string>;
29
+ getComputeResult(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number, offset?: number): Promise<ComputeResultStream>;
30
+ generateAuthToken(consumer: Signer, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<string>;
31
+ invalidateAuthToken(consumer: Signer, token: string, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<{
32
32
  success: boolean;
33
33
  }>;
34
- resolveDdo(nodeUri: string, did: string, signal?: AbortSignal): Promise<any>;
35
- validateDdo(nodeUri: string, ddo: DDO, signer: Signer, signal?: AbortSignal): Promise<ValidateMetadata>;
36
- isValidProvider(url: string, signal?: AbortSignal): Promise<boolean>;
37
- PolicyServerPassthrough(nodeUri: string, request: PolicyServerPassthroughCommand, signal?: AbortSignal): Promise<any>;
38
- initializePSVerification(nodeUri: string, request: PolicyServerInitializeCommand, signal?: AbortSignal): Promise<any>;
39
- downloadNodeLogs(nodeUri: string, signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<any>;
34
+ resolveDdo(nodeUri: string | Multiaddr[], did: string, signal?: AbortSignal): Promise<any>;
35
+ validateDdo(nodeUri: string | Multiaddr[], ddo: DDO, signer: Signer, signal?: AbortSignal): Promise<ValidateMetadata>;
36
+ isValidProvider(url: string | Multiaddr[], signal?: AbortSignal): Promise<boolean>;
37
+ PolicyServerPassthrough(nodeUri: string | Multiaddr[], request: PolicyServerPassthroughCommand, signal?: AbortSignal): Promise<any>;
38
+ initializePSVerification(nodeUri: string | Multiaddr[], request: PolicyServerInitializeCommand, signal?: AbortSignal): Promise<any>;
39
+ downloadNodeLogs(nodeUri: string | Multiaddr[], signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<any>;
40
+ getNodeStatus(nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<NodeStatus>;
41
+ getNodeJobs(nodeUri: string | Multiaddr[], fromTimestamp?: number, signal?: AbortSignal): Promise<NodeComputeJob[]>;
40
42
  setupP2P(config: P2PConfig): Promise<void>;
41
- getDiscoveredNodes(): Array<{
43
+ getDiscoveredNodes(): Promise<Array<{
42
44
  peerId: string;
43
45
  multiaddrs: string[];
44
- }>;
45
- fetchConfig(nodeUri: string, payload: Record<string, any>): Promise<any>;
46
- pushConfig(nodeUri: string, payload: Record<string, any>): Promise<any>;
46
+ }>>;
47
+ getMultiaddrFromPeerId(peerId: string): Promise<string>;
48
+ fetchConfig(nodeUri: string | Multiaddr[], payload: Record<string, any>): Promise<any>;
49
+ pushConfig(nodeUri: string | Multiaddr[], payload: Record<string, any>): Promise<any>;
47
50
  }
@@ -1,5 +1,5 @@
1
1
  import { Signer } from 'ethers';
2
- import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, ComputeResultStream } from '../../@types/index.js';
2
+ import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, ComputeResultStream, NodeStatus, NodeComputeJob } from '../../@types/index.js';
3
3
  import { type DDO, type ValidateMetadata } from '@oceanprotocol/ddo-js';
4
4
  export declare class HttpProvider {
5
5
  protected getConsumerAddress(s: Signer | string): Promise<string>;
@@ -11,6 +11,8 @@ export declare class HttpProvider {
11
11
  * @return {Promise<any>}
12
12
  */
13
13
  getEndpoints(nodeUri: string, authorization?: string): Promise<any>;
14
+ getNodeStatus(nodeUri: string, signal?: AbortSignal): Promise<NodeStatus>;
15
+ getNodeJobs(nodeUri: string, fromTimestamp?: number, signal?: AbortSignal): Promise<NodeComputeJob[]>;
14
16
  /**
15
17
  * Returns the node public key
16
18
  * @return {string} The node public key
@@ -104,7 +106,7 @@ export declare class HttpProvider {
104
106
  * @param {dockerRegistryAuth} dockerRegistryAuth Docker registry authentication data.
105
107
  * @return {Promise<ProviderComputeInitialize>} ProviderComputeInitialize data
106
108
  */
107
- initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string, signerOrAuthToken: Signer | string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, output?: ComputeOutput, dockerRegistryAuth?: dockerRegistryAuth): Promise<ProviderComputeInitializeResults>;
109
+ 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<ProviderComputeInitializeResults>;
108
110
  /**
109
111
  * Gets the download URL.
110
112
  * @param {string} did - The DID.
@@ -1,6 +1,7 @@
1
1
  import { type Libp2pOptions } from 'libp2p';
2
+ import { type Multiaddr } from '@multiformats/multiaddr';
2
3
  import { Signer } from 'ethers';
3
- import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, DownloadResponse, ComputeResultStream } from '../../@types/index.js';
4
+ import { StorageObject, FileInfo, ComputeJob, ComputeOutput, ComputeAlgorithm, ComputeAsset, ComputeEnvironment, ProviderInitialize, ProviderComputeInitializeResults, UserCustomParameters, ComputeResourceRequest, ComputeJobMetadata, PolicyServerInitializeCommand, PolicyServerPassthroughCommand, dockerRegistryAuth, DownloadResponse, ComputeResultStream, NodeStatus, NodeComputeJob } from '../../@types/index.js';
4
5
  import { type DDO, type ValidateMetadata } from '@oceanprotocol/ddo-js';
5
6
  export declare const OCEAN_P2P_PROTOCOL = "/ocean/nodes/1.0.0";
6
7
  export interface P2PConfig {
@@ -22,11 +23,6 @@ export interface P2PConfig {
22
23
  * a direct dial. Once a peer is found and connected, subsequent calls skip this.
23
24
  */
24
25
  dhtLookupTimeout?: number;
25
- /**
26
- * mDNS discovery interval in ms. Set to 0 to disable. Default: 20000
27
- * Useful for local development — discovers peers on the same LAN without bootstrap nodes.
28
- */
29
- mDNSInterval?: number;
30
26
  /**
31
27
  * Enable TCP transport in addition to WebSockets. Default: false.
32
28
  * Required in Node.js/Electron environments to reach nodes over plain TCP.
@@ -43,7 +39,6 @@ export interface P2PConfig {
43
39
  export declare class P2pProvider {
44
40
  private p2pConfig;
45
41
  private libp2pNode;
46
- private discoveredNodes;
47
42
  /**
48
43
  * Configure the internal libp2p node used for P2P transport.
49
44
  * Call this once before making P2P requests, e.g.:
@@ -53,15 +48,19 @@ export declare class P2pProvider {
53
48
  * provide DHT entry points so the peer can be located.
54
49
  */
55
50
  setupP2P(config: P2PConfig): Promise<void>;
56
- /** Returns all peers discovered via mDNS or DHT bootstrap. */
57
- getDiscoveredNodes(): Array<{
51
+ getMultiaddrFromPeerId(peerId: string): Promise<string>;
52
+ /** Returns all peers known to the peerStore (discovered via bootstrap, DHT, or connections). */
53
+ getDiscoveredNodes(): Promise<Array<{
58
54
  peerId: string;
59
55
  multiaddrs: string[];
60
- }>;
56
+ }>>;
61
57
  private bufToHex;
62
58
  private getOrCreateLibp2pNode;
63
59
  private toUint8Array;
60
+ private isDialable;
61
+ private peerIdFromMultiaddr;
64
62
  private getConnection;
63
+ private dialByPeerId;
65
64
  protected getConsumerAddress(s: Signer | string): Promise<string>;
66
65
  protected getSignature(s: Signer | string, nonce: string, command: string): Promise<string>;
67
66
  private getNodePublicKey;
@@ -72,109 +71,112 @@ export declare class P2pProvider {
72
71
  * Returns node status via P2P STATUS command.
73
72
  * @param {string} nodeUri - multiaddr of the node
74
73
  */
75
- getEndpoints(nodeUri: string): Promise<any>;
74
+ getEndpoints(nodeUri: string | Multiaddr[]): Promise<any>;
75
+ getNodeStatus(nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<NodeStatus>;
76
+ getNodeJobs(nodeUri: string | Multiaddr[], fromTimestamp?: number, signal?: AbortSignal): Promise<NodeComputeJob[]>;
76
77
  /**
77
78
  * Get current nonce from the node via P2P.
78
79
  */
79
- getNonce(nodeUri: string, consumerAddress: string, signal?: AbortSignal): Promise<number>;
80
+ getNonce(nodeUri: string | Multiaddr[], consumerAddress: string, signal?: AbortSignal): Promise<number>;
80
81
  /**
81
82
  * Encrypt data via P2P ENCRYPT command.
82
83
  */
83
- encrypt(data: any, chainId: number, nodeUri: string, signerOrAuthToken: Signer | string, _policyServer?: any, signal?: AbortSignal): Promise<string>;
84
+ encrypt(data: any, chainId: number, nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, _policyServer?: any, signal?: AbortSignal): Promise<string>;
84
85
  /**
85
86
  * Get file details for a given DID and service ID via P2P.
86
87
  */
87
- checkDidFiles(did: string, serviceId: string, nodeUri: string, withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
88
+ checkDidFiles(did: string, serviceId: string, nodeUri: string | Multiaddr[], withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
88
89
  /**
89
90
  * Get File details via P2P.
90
91
  */
91
- getFileInfo(file: StorageObject, nodeUri: string, withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
92
+ getFileInfo(file: StorageObject, nodeUri: string | Multiaddr[], withChecksum?: boolean, signal?: AbortSignal): Promise<FileInfo[]>;
92
93
  /**
93
94
  * Returns compute environments via P2P.
94
95
  */
95
- getComputeEnvironments(nodeUri: string, signal?: AbortSignal): Promise<ComputeEnvironment[]>;
96
+ getComputeEnvironments(nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<ComputeEnvironment[]>;
96
97
  /**
97
98
  * Initializes the provider for a service (download) request via P2P.
98
99
  */
99
- initialize(did: string, serviceId: string, fileIndex: number, consumerAddress: string, nodeUri: string, signal?: AbortSignal, userCustomParameters?: UserCustomParameters, computeEnv?: string, validUntil?: number): Promise<ProviderInitialize>;
100
+ initialize(did: string, serviceId: string, fileIndex: number, consumerAddress: string, nodeUri: string | Multiaddr[], signal?: AbortSignal, userCustomParameters?: UserCustomParameters, computeEnv?: string, validUntil?: number): Promise<ProviderInitialize>;
100
101
  /**
101
- * Initializes compute request via P2P.
102
+ * Initializes compute request via P2P. No auth required -- the node only
103
+ * validates parameters and applies rate limits.
102
104
  */
103
- initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string, signerOrAuthToken: Signer | string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, output?: ComputeOutput, dockerRegistryAuth?: dockerRegistryAuth): Promise<ProviderComputeInitializeResults>;
105
+ initializeCompute(assets: ComputeAsset[], algorithm: ComputeAlgorithm, computeEnv: string, token: string, validUntil: number, nodeUri: string | Multiaddr[], consumerAddress: string, resources: ComputeResourceRequest[], chainId: number, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuthData?: dockerRegistryAuth, output?: ComputeOutput): Promise<ProviderComputeInitializeResults>;
104
106
  /**
105
107
  * Sends a DOWNLOAD command to the peer via P2P, reads the binary stream
106
108
  * directly from the lpStream, and returns a DownloadResponse.
107
109
  * The node decrypts the service file and streams raw file data back.
108
110
  */
109
- getDownloadUrl(did: string, serviceId: string, fileIndex: number, transferTxId: string, nodeUri: string, signerOrAuthToken: Signer | string, policyServer?: any, userCustomParameters?: UserCustomParameters): Promise<DownloadResponse>;
111
+ getDownloadUrl(did: string, serviceId: string, fileIndex: number, transferTxId: string, nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, policyServer?: any, userCustomParameters?: UserCustomParameters): Promise<DownloadResponse>;
110
112
  /**
111
113
  * Start a paid compute job via P2P.
112
114
  */
113
- computeStart(nodeUri: string, signerOrAuthToken: Signer | string, 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): Promise<ComputeJob | ComputeJob[]>;
115
+ computeStart(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, 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): Promise<ComputeJob | ComputeJob[]>;
114
116
  /**
115
117
  * Start a free compute job via P2P.
116
118
  */
117
- freeComputeStart(nodeUri: string, signerOrAuthToken: Signer | string, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, resources?: ComputeResourceRequest[], metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth): Promise<ComputeJob | ComputeJob[]>;
119
+ freeComputeStart(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, computeEnv: string, datasets: ComputeAsset[], algorithm: ComputeAlgorithm, resources?: ComputeResourceRequest[], metadata?: ComputeJobMetadata, additionalViewers?: string[], output?: ComputeOutput, policyServer?: any, signal?: AbortSignal, queueMaxWaitTime?: number, dockerRegistryAuth?: dockerRegistryAuth): Promise<ComputeJob | ComputeJob[]>;
118
120
  /**
119
121
  * Get streamable compute logs via P2P. Returns an async generator of Uint8Array chunks.
120
122
  */
121
- computeStreamableLogs(nodeUri: string, signerOrAuthToken: Signer | string, jobId: string, signal?: AbortSignal): Promise<any>;
123
+ computeStreamableLogs(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, signal?: AbortSignal): Promise<any>;
122
124
  /**
123
125
  * Stop a compute job via P2P.
124
126
  */
125
- computeStop(jobId: string, nodeUri: string, signerOrAuthToken: Signer | string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
127
+ computeStop(jobId: string, nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
126
128
  /**
127
129
  * Get compute status via P2P.
128
130
  */
129
- computeStatus(nodeUri: string, signerOrAuthToken: Signer | string, jobId?: string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
131
+ computeStatus(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId?: string, agreementId?: string, signal?: AbortSignal): Promise<ComputeJob | ComputeJob[]>;
130
132
  /**
131
133
  * Get compute result as an async generator of Uint8Array chunks via P2P.
132
134
  * Supports resumable downloads via `offset` (byte position to resume from).
133
135
  */
134
- getComputeResult(nodeUri: string, signerOrAuthToken: Signer | string, jobId: string, index: number, offset?: number): Promise<ComputeResultStream>;
135
- getComputeResultUrl(nodeUri: string, signerOrAuthToken: Signer | string, jobId: string, index: number): Promise<string>;
136
+ getComputeResult(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number, offset?: number): Promise<ComputeResultStream>;
137
+ getComputeResultUrl(nodeUri: string | Multiaddr[], signerOrAuthToken: Signer | string, jobId: string, index: number): Promise<string>;
136
138
  /**
137
139
  * Generate an auth token via P2P.
138
140
  */
139
- generateAuthToken(consumer: Signer, nodeUri: string, signal?: AbortSignal): Promise<string>;
141
+ generateAuthToken(consumer: Signer, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<string>;
140
142
  /**
141
143
  * Resolve a DDO by DID via P2P GET_DDO command.
142
144
  */
143
- resolveDdo(nodeUri: string, did: string, signal?: AbortSignal): Promise<any>;
145
+ resolveDdo(nodeUri: string | Multiaddr[], did: string, signal?: AbortSignal): Promise<any>;
144
146
  /**
145
147
  * Validate a DDO via P2P VALIDATE_DDO command.
146
148
  */
147
- validateDdo(nodeUri: string, ddo: DDO, signer: Signer, signal?: AbortSignal): Promise<ValidateMetadata>;
149
+ validateDdo(nodeUri: string | Multiaddr[], ddo: DDO, signer: Signer, signal?: AbortSignal): Promise<ValidateMetadata>;
148
150
  /**
149
151
  * Invalidate an auth token via P2P.
150
152
  */
151
- invalidateAuthToken(consumer: Signer, token: string, nodeUri: string, signal?: AbortSignal): Promise<{
153
+ invalidateAuthToken(consumer: Signer, token: string, nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<{
152
154
  success: boolean;
153
155
  }>;
154
156
  /**
155
157
  * Check if a P2P node is reachable by calling STATUS.
156
158
  */
157
- isValidProvider(nodeUri: string, signal?: AbortSignal): Promise<boolean>;
159
+ isValidProvider(nodeUri: string | Multiaddr[], signal?: AbortSignal): Promise<boolean>;
158
160
  /**
159
161
  * PolicyServer passthrough via P2P.
160
162
  */
161
- PolicyServerPassthrough(nodeUri: string, request: PolicyServerPassthroughCommand, signal?: AbortSignal): Promise<any>;
163
+ PolicyServerPassthrough(nodeUri: string | Multiaddr[], request: PolicyServerPassthroughCommand, signal?: AbortSignal): Promise<any>;
162
164
  /**
163
165
  * Initialize Policy Server verification via P2P.
164
166
  */
165
- initializePSVerification(nodeUri: string, request: PolicyServerInitializeCommand, signal?: AbortSignal): Promise<any>;
167
+ initializePSVerification(nodeUri: string | Multiaddr[], request: PolicyServerInitializeCommand, signal?: AbortSignal): Promise<any>;
166
168
  /**
167
169
  * Download node logs via P2P.
168
170
  */
169
- downloadNodeLogs(nodeUri: string, signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<any>;
171
+ downloadNodeLogs(nodeUri: string | Multiaddr[], signer: Signer, startTime: string, endTime: string, maxLogs?: number, moduleName?: string, level?: string, page?: number, signal?: AbortSignal): Promise<any>;
170
172
  /**
171
173
  * Fetch node configuration via P2P. Accepts a pre-signed payload —
172
174
  * the caller is responsible for nonce retrieval and signing.
173
175
  */
174
- fetchConfig(nodeUri: string, payload: Record<string, any>): Promise<any>;
176
+ fetchConfig(nodeUri: string | Multiaddr[], payload: Record<string, any>): Promise<any>;
175
177
  /**
176
178
  * Push node configuration via P2P. Accepts a pre-signed payload —
177
179
  * the caller is responsible for nonce retrieval and signing.
178
180
  */
179
- pushConfig(nodeUri: string, payload: Record<string, any>): Promise<any>;
181
+ pushConfig(nodeUri: string | Multiaddr[], payload: Record<string, any>): Promise<any>;
180
182
  }
package/package.json CHANGED
@@ -1,18 +1,27 @@
1
1
  {
2
2
  "name": "@oceanprotocol/lib",
3
3
  "source": "./src/index.ts",
4
- "version": "7.0.0-next.0",
4
+ "version": "7.0.0-next.10",
5
5
  "description": "JavaScript client library for Ocean Protocol",
6
6
  "main": "./dist/lib.cjs",
7
7
  "umd:main": "dist/lib.umd.js",
8
8
  "module": "./dist/lib.module.mjs",
9
9
  "type": "module",
10
- "export": {
11
- "require": "./dist/lib.cjs",
12
- "import": "./dist/lib.module.mjs",
13
- "default": "./dist/lib.modern.mjs"
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/types/index.d.ts",
13
+ "import": "./dist/lib.module.mjs",
14
+ "require": "./dist/lib.cjs",
15
+ "default": "./dist/lib.modern.mjs"
16
+ }
14
17
  },
15
18
  "types": "./dist/types/index.d.ts",
19
+ "files": [
20
+ "dist",
21
+ "!dist/*.map",
22
+ "README.md",
23
+ "LICENSE"
24
+ ],
16
25
  "scripts": {
17
26
  "start": "npm run clean && npm run build:metadata && tsc -w",
18
27
  "build": "npm run clean && npm run build:metadata && microbundle build --format modern,esm,cjs,umd --compress --tsconfig tsconfig.json",
@@ -56,20 +65,8 @@
56
65
  "web3": "^1.8.0"
57
66
  },
58
67
  "dependencies": {
59
- "@chainsafe/libp2p-noise": "^17.0.0",
60
- "@chainsafe/libp2p-yamux": "^8.0.1",
61
- "@libp2p/bootstrap": "^12.0.14",
62
- "@libp2p/identify": "^4.0.13",
63
- "@libp2p/kad-dht": "^16.1.6",
64
- "@libp2p/tcp": "^11.0.13",
65
- "@libp2p/websockets": "^10.1.6",
66
- "@multiformats/multiaddr": "^13.0.1",
67
- "@oasisprotocol/sapphire-paratime": "^1.3.2",
68
- "@oceanprotocol/contracts": "^2.6.0",
69
68
  "@oceanprotocol/ddo-js": "^0.1.4",
70
- "@rdfjs/dataset": "^2.0.2",
71
- "@rdfjs/formats-common": "^3.1.0",
72
- "@zazuko/env-node": "^2.1.4",
69
+ "@oasisprotocol/sapphire-paratime": "^1.3.2",
73
70
  "bignumber.js": "^9.3.1",
74
71
  "cross-fetch": "^4.0.0",
75
72
  "crypto-js": "^4.1.1",
@@ -77,12 +74,21 @@
77
74
  "eciesjs": "^0.4.5",
78
75
  "ethers": "^6.15.0",
79
76
  "form-data": "^2.3.3",
80
- "jsonwebtoken": "^9.0.2",
81
- "libp2p": "^3.1.6",
82
- "uint8arrays": "^4.0.10"
77
+ "jsonwebtoken": "^9.0.2"
83
78
  },
84
79
  "devDependencies": {
80
+ "@chainsafe/libp2p-noise": "^17.0.0",
81
+ "@chainsafe/libp2p-yamux": "^8.0.1",
85
82
  "@istanbuljs/nyc-config-typescript": "^1.0.2",
83
+ "@libp2p/bootstrap": "^12.0.14",
84
+ "@libp2p/circuit-relay-v2": "^4.1.7",
85
+ "@libp2p/identify": "^4.0.13",
86
+ "@libp2p/kad-dht": "^16.1.6",
87
+ "@libp2p/tcp": "^11.0.13",
88
+ "@libp2p/websockets": "^10.1.6",
89
+ "@multiformats/multiaddr": "^13.0.1",
90
+ "@oceanprotocol/contracts": "^2.6.0",
91
+ "libp2p": "^3.1.6",
86
92
  "@truffle/hdwallet-provider": "^2.0.14",
87
93
  "@types/chai": "^5.2.2",
88
94
  "@types/chai-spies": "^1.0.3",
package/.mocharc.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "require": ["source-map-support/register", "mock-local-storage"],
3
- "extension": ["ts"],
4
- "timeout": 200000,
5
- "bail": true,
6
- "exit": true,
7
- "fullTrace": true
8
- }
package/.nvmrc DELETED
@@ -1 +0,0 @@
1
- 20