2.0.0 • Published 1 year ago

@polymedia/profile-sdk v2.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 year ago

Polymedia Profile: TypeScript SDK

A library to interact with the PolymediaProfile package on Sui.

For an overview of Polymedia Profile, see ../../README.md.

For details about the Sui package, see ../sui/README.md.

Installation

pnpm i @polymedia/profile-sdk

Overview

The ProfileClient class can be used to fetch profile data from the network.

The ./src/package.ts functions can be used to build transactions.

The PolymediaProfile type represents a Profile Sui object:

export type PolymediaProfile = {
    id: string;
    name: string;
    imageUrl: string;
    description: string;
    data: unknown;
    owner: string;
};

Instantiate ProfileClient

import { SuiClient } from '@mysten/sui/client';
import { ProfileClient } from '@polymedia/profile-sdk';

const profileClient = new ProfileClient(
    "mainnet",
    new SuiClient({url: 'https://your_rpc_endpoint'}),
);

ProfileClient uses Polymedia's package and registry by default, but you can change that by providing additional arguments to the constructor.

Find profiles

ProfileClient keeps an internal cache to avoid wasteful RPC requests. You can skip the cache by passing the useCache: false argument to any of the methods below.

Use ProfileClient.getProfileByOwner() to find the profile associated to a single address:

profileClient.getProfileByOwner(
    '0x_USER_ADDRESS'
).then((profile: PolymediaProfile|null) => {
    // A null result means lookupAddress does not have a Profile in this Registry
}).catch(error => {
    // Handle RPC error
});

Use ProfileClient.getProfilesByOwner() to find the profiles associated to multiple addresses:

profileClient.getProfilesByOwner(
    ['0x_USER_ADDRESS_1', '0x_USER_ADDRESS_2'],
).then((profiles: Map<string, PolymediaProfile|null>) => {
    // ...
});

Use ProfileClient.getProfileById() to get a single profile by its object ID:

profileClient.getProfileById(
    '0x_PROFILE_ID',
)
.then((profile: PolymediaProfile|null) => {
    // A null result means the object does not exist
})
.catch((error: any) => {
    // Handle RPC error
});

use ProfileClient.getProfilesById() to get multiple profiles by their object IDs:

profileClient.getProfilesById(
    ['0x_PROFILE_ID_1', '0x_PROFILE_ID_2'],
)
.then((profiles: Map<string, PolymediaProfile|null>) => {
    // ...
});

Use ProfileClient.hasProfile() to check if an address has a profile associated to it:

profileClient.hasProfile(
    '0x_USER_ADDRESS'
).then((hasProfile: boolean) => {
    // ...
});
2.0.0

1 year ago

1.9.0

1 year ago

1.2.0

2 years ago

1.0.9

2 years ago

1.8.0

2 years ago

1.4.4

2 years ago

1.0.8

2 years ago

1.4.3

2 years ago

1.0.7

2 years ago

1.6.0

2 years ago

1.4.2

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.7.0

2 years ago

1.5.0

2 years ago

1.3.0

2 years ago

1.4.0-mysten033

2 years ago

1.4.0-mysten037

2 years ago

1.0.6

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

0.1.29

2 years ago

0.1.28

2 years ago

0.1.20

2 years ago

0.1.21

2 years ago

0.1.22

2 years ago

0.1.23

2 years ago

0.1.24

2 years ago

0.1.25

2 years ago

0.1.26

2 years ago

0.1.17

2 years ago

0.1.19

2 years ago

0.1.14

2 years ago

0.1.15

2 years ago

0.1.16

2 years ago

0.1.13

2 years ago

0.1.12

2 years ago

0.1.11

2 years ago

0.1.10

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago