@polymedia/profile-sdk v2.0.0
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-sdkOverview
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) => {
// ...
});1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago