Skip to main content

User

Methods​

nametypeParameters Descriptionresponse
searchUsersfunctionwalletAddress: stringPromise:SearchUsersResponse
getMyProfilefunctionnonePromise:SearchUsersResponse
updateMyProfilefunction1.nickname: string 2.avatar_url: stringPromise:UpdateMyProfileResponse
getUserBindDidsfunctionnonePromise:UserBindDidIdsResponse[ ]
userBindDidfunctionUserBindDidParamsPromise:SearchUsersResponse
getUserPermissionsfunctionnonePromise:UserPermissionsType
getTargetUserPermissionsfunctionuserid: stringPromise:SearchUsersResponse
updateUserPermissionsfunctionUpdateUserPermissionsParamsPromise: SearchUsersResponse

Permission​

User permission currently only has user: chat rule, which Indicates the setting of user chat permission. user: chat rule has public, follower, following, friends values, and its value type is 'enum'

  • 1.public: Everyone can send me messages.
  • 2.follower: Only those who follow me can send messages to me.
  • 3.following: Only those I follow can send me messages.
  • 4.friends: Only those who follow each other can send me messages.

UserChatPermissionsType​

nametypeformatdesceg
type"enum"-Chat permission type in user permissions"enum"
value"public"|"follower"|"following"|"friends"-Chat permission value in user permissions"public"

UserPermissionsType​

nametypeformatdesceg
user: chatUserChatPermissionsType-chat permission in user permisson{'user: chat': {type: "enum",value: "public"}}

Prerequisites​

init() see: init

register() see: register

login() see: login

event see: event

Init and get Client​

To use the functions of the current module, please complete the following steps first.

tip

After successful login, you can get the secret key pair from the returned result

import { useEffect, useState } from 'react';
import { Client } from '@web3mq/client';

export const App = () => {
const [fastestUrl, setFastUrl] = useState<string | null>(null);
useEffect(() => {
Client.init({
connectUrl: '', //
app_key: 'app_key', // temporary authorization key obtained by applying, will be removed in future testnets and mainnet
}).then(data => {
setFastUrl(data);
});
}, [])
if (!fastestUrl) return;
const {
tempPrivateKey,
tempPublicKey,
pubkeyExpiredTimestamp,
mainPrivateKey,
mainPublicKey,
} = loginRes

const keys = {
PrivateKey: tempPrivateKey,
PublicKey: tempPublicKey,
userid: localStorage.getItem('userid')
};

const client = Client.getInstance(keys);
return (
<Child client={client} />
)
}

Methods​

searchUsers​

Search for users by wallet address, support eth and starknet.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<button
onClick={async () => {
const data = await client.user.searchUsers('walletAddress');
console.log(data);
}}>
Search Users
</button>
);
};

getMyProfile​

Get my profile.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<div>
<button
onClick={async () => {
const data = await client.user.getMyProfile();
console.log(data);
}}>
Get My Profile
</button>
</div>
);
};

updateMyProfile​

update my profile, such as nickname and avatar.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<div>
<button
onClick={async () => {
const data = await client.user.updateMyProfile(
'nickname',
'avatar_url'
);
console.log(data);
}}>
Update My Profile
</button>
</div>
);
};

getUserBindDids​

Get my bound dids.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<div>
<button
onClick={async () => {
const data = await client.user.getUserBindDids();
console.log(data);
}}>
Get User Bind Dids
</button>
</div>
);
};

userBindDid​

Bound dids.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<div>
<button
onClick={async () => {
const data = await client.user.userBindDid({
provider_id: 'provider_id',
did_type: 'did_type',
did_value: 'did_value',
});
console.log(data);
}}>
User Bind Did
</button>
</div>
);
};

getUserPermissions​

Get my user permissions.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<div>
<button
onClick={async () => {
const data = await client.user.getUserPermissions();
console.log(data);
}}>
get my permissions
</button>
</div>
);
};

getTargetUserPermissions​

Get the user permissions of target users.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<div>
<button
onClick={async () => {
const data = await client.user.getTargetUserPermissions('userid or wallet_address');
console.log(data);
}}>
get other user permissions
</button>
</div>
);
};

updateUserPermissions​

Change my user permissions.

import { Client } from '@web3mq/client';

interface IProps {
client: Client;
}

export const Child = (props: IProps) => {
const { client } = props;

return (
<div>
<button
onClick={async () => {
const data = await client.user.updateUserPermissions({
permissions: {
'user: chat': {
type: "enum",
value: "public"
}
}
});
console.log(data);
}}>
update my permissions
</button>
</div>
);
};