async UserMetadata({metadataSubtree="/", noCache=false}={}) {
    if(!noCache && this.cachedPrivateMetadata) {
      return this.__GetCachedMetadata(metadataSubtree);
    }

    const libraryId = this.client.contentSpaceLibraryId;
    const objectId = Utils.AddressToObjectId(await this.WalletAddress());

    // If caching not enabled, make direct query to object
    if(noCache) {
      return await this.client.ContentObjectMetadata({
        libraryId,
        objectId,
        metadataSubtree
      });
    }

    // If caching is enabled, just get all the metadata and store it.
    const metadata = await this.client.ContentObjectMetadata({libraryId, objectId});
    this.__CacheMetadata(metadata);
    return this.__GetCachedMetadata(metadataSubtree);
  }
/**
   * Access the current user's metadata
   *
   * Note: Subject to user's access level
   *
   * @see <a href="#PromptsAndAccessLevels">Prompts and access levels</a>
   *
   * @namedParams
   * @param {string=} metadataSubtree - Subtree of the metadata to retrieve
   * @param {boolean=} noCache=false - If specified, it will always query for metadata instead of returning from the cache
   *
   * @return {Promise<Object|string>} - The user's profile metadata - returns undefined if no metadata set or subtree doesn't exist
   */
Access the current user's metadata
Note: Subject to user's access level

@see Prompts and access levels

@namedParams
@param {string=} metadataSubtree - Subtree of the metadata to retrieve
@param {boolean=} noCache=false - If specified, it will always query for metadata instead of returning from the cache

@return {Promise} - The user's profile metadata - returns undefined if no metadata set or subtree doesn't exist
Access the current user ' s metadata Note : Subject to user ' s access level @see Prompts and access levels @namedParams @param { string = } metadataSubtree - Subtree of the metadata to retrieve @param { boolean = } noCache = false - If specified it will always query for metadata instead of returning from the cache @return { Promise } - The user ' s profile metadata - returns undefined if no metadata set or subtree doesn ' t exist
async UserMetadata({metadataSubtree="/", noCache=false}={}) {
    if(!noCache && this.cachedPrivateMetadata) {
      return this.__GetCachedMetadata(metadataSubtree);
    }
    const libraryId = this.client.contentSpaceLibraryId;
    const objectId = Utils.AddressToObjectId(await this.WalletAddress());
    if(noCache) {
      return await this.client.ContentObjectMetadata({
        libraryId,
        objectId,
        metadataSubtree
      });
    }
    const metadata = await this.client.ContentObjectMetadata({libraryId, objectId});
    this.__CacheMetadata(metadata);
    return this.__GetCachedMetadata(metadataSubtree);
  }
async UserMetadata ( { metadataSubtree = "/" , noCache = false } = { } ) { if ( ! noCache && this . cachedPrivateMetadata ) { return this . __GetCachedMetadata ( metadataSubtree ) ; } const libraryId = this . client . contentSpaceLibraryId ; const objectId = Utils . AddressToObjectId ( await this . WalletAddress ( ) ) ; if ( noCache ) { return await this . client . ContentObjectMetadata ( { libraryId , objectId , metadataSubtree } ) ; } const metadata = await this . client . ContentObjectMetadata ( { libraryId , objectId } ) ; this . __CacheMetadata ( metadata ) ; return this . __GetCachedMetadata ( metadataSubtree ) ; }
Access the current user's metadata
 Note: Subject to user's access level
Access the current user ' s metadata Note : Subject to user ' s access level
// If caching not enabled, make direct query to object // If caching is enabled, just get all the metadata and store it.