Skip to content

Props Diamond SDKDocs


PlatformManager

Classdesc

Manages the underlying diamond structure and platform components. This class is responsible for handling platform configuration, facet catalogs, and installed facets. It also provides an interface to interact with the CatalogManager.

Constructors

new PlatformManager()

new PlatformManager(getPlatformConfiguration?, setPlatformConfiguration?): PlatformManager

Parameters

getPlatformConfiguration?

Function to retrieve the platform configuration.

setPlatformConfiguration?

Function to set the platform configuration.

Returns

PlatformManager

Example

typescript
const platformManager = new PlatformManager(
  () => ({ platform: { propsDiamondFactory: "0x...", facetCatalog: [...] } }),
  (config) => console.log("New configuration set:", config)
);

Properties

catalogManager

catalogManager: CatalogManager

The CatalogManager instance used to manage facet catalogs.

Methods

getCatalogManager()

getCatalogManager(): CatalogManager

Retrieves the CatalogManager instance.

Returns

CatalogManager

The CatalogManager instance.

Example

typescript
const catalogManager = platformManager.getCatalogManager();
const facetCatalog = await catalogManager.getFacetCatalog();
console.log("Current facet catalog:", facetCatalog);

getDiamondFactory()

getDiamondFactory(): undefined | Contract

Retrieves the Diamond Factory contract.

Returns

undefined | Contract

The Diamond Factory contract or undefined if not set.

Example

typescript
const diamondFactory = platformManager.getDiamondFactory();
if (diamondFactory) {
  const owner = await diamondFactory.owner();
  console.log("Diamond Factory owner:", owner);
}

getFacetCatalog()

getFacetCatalog(): Promise<undefined | PropsFacetCatalog>

Retrieves the facet catalog from the platform configuration.

Returns

Promise<undefined | PropsFacetCatalog>

A promise that resolves to the facet catalog or undefined if not set.

Example

typescript
const facetCatalog = await platformManager.getFacetCatalog();
if (facetCatalog) {
  console.log("Available facets:", facetCatalog.facets.map(f => f.facetName));
}

getInstalledFacets()

getInstalledFacets(): Promise<undefined | PropsFacetCatalog>

Retrieves the installed facets from the platform configuration.

Returns

Promise<undefined | PropsFacetCatalog>

A promise that resolves to the installed facets or undefined if not set.

Example

typescript
const installedFacets = await platformManager.getInstalledFacets();
if (installedFacets) {
  console.log("Installed facets:", installedFacets.facets.map(f => f.facetName));
}

getPlatformConfiguration()

getPlatformConfiguration(): undefined | PropsDiamondPlatformManagerConfigurationOptions

Retrieves the current platform configuration.

Returns

undefined | PropsDiamondPlatformManagerConfigurationOptions

The current platform configuration or undefined if not set.

Example

typescript
const currentConfig = platformManager.getPlatformConfiguration();
if (currentConfig) {
  console.log("Current Diamond Factory:", currentConfig.platform?.propsDiamondFactory);
  console.log("Number of facets in catalog:", currentConfig.platform?.facetCatalog?.facets.length);
}

setFacetCatalog()

setFacetCatalog(facetCatalog): void

Sets the facet catalog in the platform configuration.

Parameters

facetCatalog: PropsFacetCatalog

The facet catalog to be set.

Returns

void

Example

typescript
const newFacetCatalog = {
  facets: [
    { facetName: "DiamondLoupeFacet", facetAddress: "0x...", data: { ... } },
    { facetName: "PropsERC1155", facetAddress: "0x...", data: { ... } },
    { facetName: "PropsMetadataTokenBased", facetAddress: "0x...", data: { ... } }
  ]
};
platformManager.setFacetCatalog(newFacetCatalog);

setInstalledFacets()

setInstalledFacets(facetCatalog): void

Sets the installed facets in the platform configuration.

Parameters

facetCatalog: PropsFacetCatalog

The facet catalog to be set as installed facets.

Returns

void

Example

typescript
const newInstalledFacets = {
  facets: [
    { facetName: "DiamondLoupeFacet", facetAddress: "0x...", data: { ... } },
    { facetName: "PropsERC1155", facetAddress: "0x...", data: { ... } }
  ]
};
platformManager.setInstalledFacets(newInstalledFacets);

setPlatformConfiguration()

setPlatformConfiguration(propsDiamondPlatformManagerConfigurationOptions): void

Sets the platform configuration.

Parameters

propsDiamondPlatformManagerConfigurationOptions: PropsDiamondPlatformManagerConfigurationOptions

The configuration options to be set.

Returns

void

Example

typescript
platformManager.setPlatformConfiguration({
  platform: {
    propsDiamondFactory: "0x...",
    facetCatalog: {
      facets: [
        { facetName: "DiamondLoupeFacet", facetAddress: "0x...", data: { ... } },
        { facetName: "PropsERC1155", facetAddress: "0x...", data: { ... } }
      ]
    }
  }
});