Skip to content

Props Diamond SDKDocs


Manages diamonds and platforms in the Props ecosystem.

PropsDiamondSDK

Constructors

new PropsDiamondSDK()

new PropsDiamondSDK(options): PropsDiamondSDK

Creates an instance of PropsDiamondSDK.

Parameters

options: PropsDiamondSDKConfigurationOptions

The configuration options for PropsDiamondSDK.

Returns

PropsDiamondSDK

Example

typescript
import { ethers } from "ethers";
import { PropsDiamondSDK } from "@props-labs/diamond-sdk";

const signer = new ethers.Wallet("YOUR_PRIVATE_KEY", ethers.getDefaultProvider());

const propsDiamondSDKClient = new PropsDiamondSDK({
  signer: signer,
  networkConfiguration: {
    provider: ethers.getDefaultProvider(),
  },
  platformConfiguration: {
    platform: {
      propsDiamondFactory: "FACTORY_ADDRESS",
      facetCatalog: "FACET_CATALOG_ADDRESS",
    },
  },
});

Properties

diamondConfiguration

diamondConfiguration: undefined | PropsDiamondManagerConfigurationOptions

Configuration for the diamond manager.


diamondManager

diamondManager: DiamondManager

Manager for diamond-related operations.


networkConfiguration

networkConfiguration: undefined | PropsNetworkConfiguration

Network configuration for the SDK.


platformConfiguration

platformConfiguration: undefined | PropsDiamondPlatformManagerConfigurationOptions

Configuration for the platform manager.


platformManager

platformManager: PlatformManager

Manager for platform-related operations.


signer

signer: undefined | Signer

The signer used for transactions.

Methods

setDiamondConfiguration()

setDiamondConfiguration(propsDiamondManagerConfigurationOptions): void

Sets the diamond configuration.

Parameters

propsDiamondManagerConfigurationOptions: PropsDiamondManagerConfigurationOptions

The new diamond configuration options.

Returns

void

Example

typescript
const facets = await propsDiamondSDKClient.platformManager.catalogManager.getFacetCatalogFacetsByNames(
  ["DiamondLoupeFacet", "PropsERC1155"]
);

const diamondCuts = await propsDiamondSDKClient.diamondManager.createDiamondCuts(
  FacetCutAction.Add,
  facets,
  [],
  []
);

await propsDiamondSDKClient.diamondManager.deployDiamondCloneWithCuts(
  diamondCuts,
  [
    await propsDiamondSDKClient.diamondManager.createFacetInit(
      "PropsERC1155",
      "init",
      ["NAME", "SYMBOL", "DESCRIPTION", "ipfs://baseuricid/", "ipfs://contracturicid"]
    )
  ]
);

propsDiamondSDKClient.setDiamondConfiguration({
  diamondAddress: "DEPLOYED_DIAMOND_ADDRESS",
});

setPlatformConfiguration()

setPlatformConfiguration(propsDiamondPlatformManagerConfigurationOptions): void

Sets the platform configuration.

Parameters

propsDiamondPlatformManagerConfigurationOptions: PropsDiamondPlatformManagerConfigurationOptions

The new platform configuration options.

Returns

void

Example

typescript
propsDiamondSDKClient.setPlatformConfiguration({
  platform: {
    propsDiamondFactory: "NEW_FACTORY_ADDRESS",
    facetCatalog: "NEW_FACET_CATALOG_ADDRESS",
  },
});

toJSON()

toJSON(): Object

Converts the SDK instance to a JSON-serializable object.

Returns

Object

A JSON representation of the SDK instance.

Example

typescript
const jsonRepresentation = propsDiamondSDKClient.toJSON();
console.log(JSON.stringify(jsonRepresentation, null, 2));
// Output will include diamondConfiguration, platformConfiguration,
// diamondManager, and platformManager properties