squid-js/src/ocean/Ocean.ts

130 lines
3.1 KiB
TypeScript
Raw Normal View History

2019-06-20 00:20:09 +02:00
import { OceanAccounts } from './OceanAccounts'
import { OceanAgreements } from './OceanAgreements'
import { OceanAssets } from './OceanAssets'
import { OceanAuth } from './OceanAuth'
import { OceanSecretStore } from './OceanSecretStore'
import { OceanTokens } from './OceanTokens'
import { OceanVersions } from './OceanVersions'
import { OceanUtils } from './utils/OceanUtils'
2019-01-21 17:48:40 +01:00
2019-06-20 00:20:09 +02:00
import { Aquarius } from '../aquarius/Aquarius'
import { Brizo } from '../brizo/Brizo'
2018-10-05 12:34:31 +02:00
2019-06-20 00:20:09 +02:00
import Keeper from '../keeper/Keeper'
2019-06-20 00:20:09 +02:00
import { Config } from '../models/Config'
2019-06-20 00:20:09 +02:00
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 {
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),
2019-06-20 00:20:09 +02:00
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)
2019-06-20 00:20:09 +02:00
instance.secretStore = await OceanSecretStore.getInstance(
instanceConfig
)
instance.tokens = await OceanTokens.getInstance(instanceConfig)
2019-06-14 00:34:53 +02:00
instance.versions = await OceanVersions.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
2019-06-14 00:34:53 +02:00
/**
* Ocean versions submodule
* @type {OceanVersions}
*/
public versions: OceanVersions
/**
* 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
}