Appearance
Props Diamond SDK • Docs
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
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
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: { ... } }
]
}
}
});