1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00
squid-js/src/ocean/Ocean.ts

118 lines
2.9 KiB
TypeScript
Raw Normal View History

import { OceanAccounts } from "./OceanAccounts"
import { OceanAgreements } from "./OceanAgreements"
import { OceanAssets } from "./OceanAssets"
2019-05-08 02:53:59 +02:00
import { OceanAuth } from "./OceanAuth"
import { OceanSecretStore } from "./OceanSecretStore"
import { OceanTokens } from "./OceanTokens"
import { OceanUtils } from "./utils/OceanUtils"
2019-01-21 17:48:40 +01:00
import { Aquarius } from "../aquarius/Aquarius"
import { Brizo } from "../brizo/Brizo"
2018-10-05 12:34:31 +02:00
import Keeper from "../keeper/Keeper"
import { Config } from "../models/Config"
import { Instantiable, generateIntantiableConfigFromConfig } from "../Instantiable.abstract"
2018-11-23 16:01:42 +01:00
2019-01-09 16:17:23 +01:00
/**
* Main interface for Ocean Protocol.
*/
export class Ocean extends Instantiable {
2018-10-05 12:34:31 +02:00
2019-01-09 16:17:23 +01:00
/**
* Returns the instance of Ocean.
* @param {Config} config Ocean instance configuration.
* @return {Promise<Ocean>}
*/
public static async getInstance(config: Config): Promise<Ocean> {
const instance = new Ocean()
const instanceConfig = {
...generateIntantiableConfigFromConfig(config),
ocean: instance,
2018-10-16 14:56:18 +02:00
}
instance.setInstanceConfig(instanceConfig)
2018-10-16 14:56:18 +02:00
instance.keeper = await Keeper.getInstance(instanceConfig)
2018-10-05 12:34:31 +02:00
instance.brizo = new Brizo(instanceConfig)
instance.aquarius = new Aquarius(instanceConfig)
instance.accounts = await OceanAccounts.getInstance(instanceConfig)
2019-05-08 02:53:59 +02:00
instance.auth = await OceanAuth.getInstance(instanceConfig)
instance.assets = await OceanAssets.getInstance(instanceConfig)
instance.agreements = await OceanAgreements.getInstance(instanceConfig)
instance.secretStore = await OceanSecretStore.getInstance(instanceConfig)
instance.tokens = await OceanTokens.getInstance(instanceConfig)
instance.utils = await OceanUtils.getInstance(instanceConfig)
return instance
}
/**
* Keeper instance.
* @type {Keeper}
*/
public keeper: Keeper
/**
* Brizo instance.
* @type {Brizo}
*/
public brizo: Brizo
/**
* Aquarius instance.
* @type {Aquarius}
*/
public aquarius: Aquarius
2019-01-09 16:17:23 +01:00
/**
2019-01-21 17:48:40 +01:00
* Ocean account submodule
* @type {OceanAccounts}
*/
public accounts: OceanAccounts
2019-05-08 02:53:59 +02:00
/**
* Ocean auth submodule
* @type {OceanAuth}
*/
public auth: OceanAuth
2019-01-21 17:48:40 +01:00
/**
* Ocean assets submodule
* @type {OceanAssets}
*/
public assets: OceanAssets
/**
* Ocean agreements submodule
* @type {OceanAgreements}
2019-01-09 16:17:23 +01:00
*/
2019-01-21 17:48:40 +01:00
public agreements: OceanAgreements
2018-10-17 10:12:40 +02:00
2019-02-14 11:26:12 +01:00
/**
* Ocean secretStore submodule
* @type {OceanSecretStore}
*/
public secretStore: OceanSecretStore
/**
* Ocean tokens submodule
* @type {OceanTokens}
*/
public tokens: OceanTokens
/**
* Ocean utils submodule
* @type {OceanUtils}
*/
public utils: OceanUtils
private constructor() {
super()
2018-11-05 14:58:58 +01:00
}
2018-10-05 12:34:31 +02:00
}