Class Ecosystem

Summary

Create an instance of Ecosystem class with optional session credentials

Usage

await new Ecosystem(topia, {
credentials: { interactiveNonce: "exampleNonce", assetId: "droppedAssetId", visitorId: 1, urlSlug: "exampleWorld" }
});

Hierarchy

Constructors

Properties

credentials: undefined | InteractiveCredentials
dataObject?: null | object
jwt?: string
requestOptions: object
topia: Topia

Methods

  • Parameters

    • __namedParameters: {
          error?: unknown;
          message?: string;
          params?: object;
          sdkMethod?: string;
      }
      • Optional error?: unknown
      • Optional message?: string
      • Optional params?: object
      • Optional sdkMethod?: string

    Returns {
        data: {};
        message: string;
        method: string;
        params: object;
        sdkMethod: undefined | string;
        stack: string;
        stackTrace: Error;
        status: number;
        success: boolean;
        url: string;
    }

    • data: {}
      • message: string
      • method: string
      • params: object
      • sdkMethod: undefined | string
      • stack: string
      • stackTrace: Error
      • status: number
      • success: boolean
      • url: string
    • Summary

      Retrieves the data object for a Topia ecosystem. Requires canUpdateEcosystemDataObjects permission to be set to true for the public key.

      Usage

      const dataObject = await ecosystem.fetchDataObject("exampleAppPublicKey", "exampleAppPublicKeyJWT");
      

      Parameters

      • Optional appPublicKey: string
      • Optional appJWT: string

      Returns Promise<void | ResponseType>

    • Summary

      Increments a specific value in the data object for a Topia ecosystem by the amount specified. Must have valid interactive credentials from a visitor in the world.

      Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id

      Usage

      await ecosystem.incrementDataObjectValue("key", 1, {
      sharedAppPublicKey: "exampleAppPublicKey",
      sharedAppJWT: "exampleAppPublicKeyJWT",}
      });

      Parameters

      • path: string
      • amount: number
      • options: {
            analytics?: AnalyticType[];
            appJWT?: string;
            appPublicKey?: string;
            lock?: {
                lockId: string;
                releaseLock?: boolean;
            };
            sharedAppJWT?: string;
            sharedAppPublicKey?: string;
        } = {}
        • Optional analytics?: AnalyticType[]
        • Optional appJWT?: string
        • Optional appPublicKey?: string
        • Optional lock?: {
              lockId: string;
              releaseLock?: boolean;
          }
          • lockId: string
          • Optional releaseLock?: boolean
        • Optional sharedAppJWT?: string
        • Optional sharedAppPublicKey?: string

      Returns Promise<void | ResponseType>

    • Summary

      Sets the data object for a Topia ecosystem.

      Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id

      Usage

      await ecosystem.setDataObject({ "exampleKey": "exampleValue" }, {
      sharedAppPublicKey: "exampleAppPublicKey",
      sharedAppJWT: "exampleAppPublicKeyJWT",}
      });

      Parameters

      • dataObject: undefined | null | object
      • options: {
            analytics?: AnalyticType[];
            appJWT?: string;
            appPublicKey?: string;
            lock?: {
                lockId: string;
                releaseLock?: boolean;
            };
            sharedAppJWT?: string;
            sharedAppPublicKey?: string;
        } = {}
        • Optional analytics?: AnalyticType[]
        • Optional appJWT?: string
        • Optional appPublicKey?: string
        • Optional lock?: {
              lockId: string;
              releaseLock?: boolean;
          }
          • lockId: string
          • Optional releaseLock?: boolean
        • Optional sharedAppJWT?: string
        • Optional sharedAppPublicKey?: string

      Returns Promise<void | ResponseType>

    • Returns AxiosInstance

    • Summary

      Updates the data object for a Topia ecosystem.

      Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id

      Usage

      await ecosystem.updateDataObject({ "exampleKey": "exampleValue" }, {
      sharedAppPublicKey: "exampleAppPublicKey",
      sharedAppJWT: "exampleAppPublicKeyJWT",}
      });

      Parameters

      • dataObject: object
      • options: {
            analytics?: AnalyticType[];
            appJWT?: string;
            appPublicKey?: string;
            lock?: {
                lockId: string;
                releaseLock?: boolean;
            };
            sharedAppJWT?: string;
            sharedAppPublicKey?: string;
        } = {}
        • Optional analytics?: AnalyticType[]
        • Optional appJWT?: string
        • Optional appPublicKey?: string
        • Optional lock?: {
              lockId: string;
              releaseLock?: boolean;
          }
          • lockId: string
          • Optional releaseLock?: boolean
        • Optional sharedAppJWT?: string
        • Optional sharedAppPublicKey?: string

      Returns Promise<void | ResponseType>