web3-mq-snaps
v1.0.8
Published
mq-web3 snap provides more possibilities for building web3 social dapps
Downloads
5
Maintainers
Readme
Web3-mq snap
mq-web3 snap provides more possibilities for building web3 social dapps
You can familiarize yourself with mq-web3 snap based on the following example
Before starting, you need to install the flask plugin on your browser. After the plugin is installed, execute the following code in your dapp to install the mq-web3 snap
Installation
const connect = async function () {
await window.ethereum.request({
method: "wallet_enable",
params: [
{
wallet_snap: {
["npm:web3-mq-snaps"]: {
version: "^1.0.6",
},
},
},
],
});
};
connect();
Methods
| name | type | Parameters Description | response | | ----------------- | -------- |------------------------------------------------------------------------------------------------------------| --------------------------------------------------------------------------------------------------------- | | creatRoom | function | 1.group_name?: string 2. avatar_url ?: string | Object: Web3-MQ Client | | queryChannelList | function | 1. options: PageParams | Promise: activechanneltype[] | | getTargetUserId | function | 1. address: string | Promise: searchusersresponse | | sendMessage | function | 1. msg: string 2. topic : string | Promise: void | | getMessageList | function | 1. options: PageParams 2.topic: string | Promise: messagelistitem[] | | sendNotifyMessage | function | 1. message: string | Promise: void |
Useage
creatRoom()
Create Web3MQ chat room
const createRoomsBySnaps = async (roomName: string = "") => {
return await ethereum.request({
method: "wallet_invokeSnap",
params: [
newSnapId,
{
method: "creatRoom",
payload: { group_name: roomName },
},
],
});
};
queryChannelList()
Get user all channel list
const getChannelListBySnaps = async () => {
//@ts-ignore
return await ethereum.request({
method: "wallet_invokeSnap",
params: [
newSnapId,
{
method: "queryChannelList",
payload: { options: { page: 1, size: 100 } },
},
],
});
};
getTargetUserId()
Get Web3MQ userid by wallet address
const getUserIdByAddress = async (address: string) => {
//@ts-ignore
return await ethereum.request({
method: "wallet_invokeSnap",
params: [
newSnapId,
{
method: "getTargetUserId",
payload: address,
},
],
});
}
sendMessage()
Send Message to chat room or Web3MQ user
const sendMessageBySnaps = async (msg: string, topic: string) => {
//@ts-ignore
return await ethereum.request({
method: "wallet_invokeSnap",
params: [
newSnapId,
{
method: "sendMessage",
payload: { msg, topic },
},
],
});
};
getMessageList()
Get channel history message
const getMessagesBySnaps = async (topic: string) => {
//@ts-ignore
return await ethereum.request({
method: "wallet_invokeSnap",
params: [
newSnapId,
{
method: "getMessageList",
payload: {
options: { page: 1, size: 100 },
topic,
},
},
],
});
}
sendNotifyMessage()
export const sendNotifyMessage = async (message: string) => {
//@ts-ignore
return await ethereum.request({
method: "wallet_invokeSnap",
params: [
newSnapId,
{
method: "sendNotifyMessage",
payload: { message },
},
],
});
};