mirror of
https://github.com/Qortal/Qortal-Hub.git
synced 2025-04-23 19:37:52 +00:00
case
This commit is contained in:
parent
4d570068ef
commit
cbd372bc07
@ -32,11 +32,15 @@ import {
|
|||||||
registerName,
|
registerName,
|
||||||
removeAdmin,
|
removeAdmin,
|
||||||
saveTempPublish,
|
saveTempPublish,
|
||||||
|
sendChatGroup,
|
||||||
|
sendChatNotification,
|
||||||
sendCoin,
|
sendCoin,
|
||||||
setChatHeads,
|
setChatHeads,
|
||||||
setGroupData,
|
setGroupData,
|
||||||
walletVersion,
|
walletVersion,
|
||||||
} from "./background";
|
} from "./background";
|
||||||
|
import { encryptAndPublishSymmetricKeyGroupChat } from "./backgroundFunctions/encryption";
|
||||||
|
import { PUBLIC_NOTIFICATION_CODE_FIRST_SECRET_KEY } from "./constants/codes";
|
||||||
|
|
||||||
export function versionCase(request, event) {
|
export function versionCase(request, event) {
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
@ -186,7 +190,12 @@ export async function balanceCase(request, event) {
|
|||||||
const response = await getBalanceInfo();
|
const response = await getBalanceInfo();
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{ requestId: request.requestId, action: "balance", payload: response, type: "backgroundMessageResponse" },
|
{
|
||||||
|
requestId: request.requestId,
|
||||||
|
action: "balance",
|
||||||
|
payload: response,
|
||||||
|
type: "backgroundMessageResponse",
|
||||||
|
},
|
||||||
event.origin
|
event.origin
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -195,7 +204,7 @@ export async function balanceCase(request, event) {
|
|||||||
requestId: request.requestId,
|
requestId: request.requestId,
|
||||||
action: "balance",
|
action: "balance",
|
||||||
error: error?.message,
|
error: error?.message,
|
||||||
type: "backgroundMessageResponse"
|
type: "backgroundMessageResponse",
|
||||||
},
|
},
|
||||||
event.origin
|
event.origin
|
||||||
);
|
);
|
||||||
@ -206,7 +215,12 @@ export async function balanceCase(request, event) {
|
|||||||
const response = await getLTCBalance();
|
const response = await getLTCBalance();
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{ requestId: request.requestId, action: "ltcBalance", payload: response, type: "backgroundMessageResponse" },
|
{
|
||||||
|
requestId: request.requestId,
|
||||||
|
action: "ltcBalance",
|
||||||
|
payload: response,
|
||||||
|
type: "backgroundMessageResponse",
|
||||||
|
},
|
||||||
event.origin
|
event.origin
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -215,7 +229,7 @@ export async function balanceCase(request, event) {
|
|||||||
requestId: request.requestId,
|
requestId: request.requestId,
|
||||||
action: "ltcBalance",
|
action: "ltcBalance",
|
||||||
error: error?.message,
|
error: error?.message,
|
||||||
type: "backgroundMessageResponse"
|
type: "backgroundMessageResponse",
|
||||||
},
|
},
|
||||||
event.origin
|
event.origin
|
||||||
);
|
);
|
||||||
@ -263,7 +277,11 @@ export async function balanceCase(request, event) {
|
|||||||
export async function inviteToGroupCase(request, event) {
|
export async function inviteToGroupCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupId, qortalAddress, inviteTime } = request.payload;
|
const { groupId, qortalAddress, inviteTime } = request.payload;
|
||||||
const response = await inviteToGroup({groupId, qortalAddress, inviteTime});
|
const response = await inviteToGroup({
|
||||||
|
groupId,
|
||||||
|
qortalAddress,
|
||||||
|
inviteTime,
|
||||||
|
});
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
@ -342,18 +360,22 @@ export async function balanceCase(request, event) {
|
|||||||
|
|
||||||
export async function createGroupCase(request, event) {
|
export async function createGroupCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupName,
|
const {
|
||||||
|
groupName,
|
||||||
groupDescription,
|
groupDescription,
|
||||||
groupType,
|
groupType,
|
||||||
groupApprovalThreshold,
|
groupApprovalThreshold,
|
||||||
minBlock,
|
minBlock,
|
||||||
maxBlock } = request.payload;
|
maxBlock,
|
||||||
const response = await createGroup({groupName,
|
} = request.payload;
|
||||||
|
const response = await createGroup({
|
||||||
|
groupName,
|
||||||
groupDescription,
|
groupDescription,
|
||||||
groupType,
|
groupType,
|
||||||
groupApprovalThreshold,
|
groupApprovalThreshold,
|
||||||
minBlock,
|
minBlock,
|
||||||
maxBlock});
|
maxBlock,
|
||||||
|
});
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
@ -461,7 +483,11 @@ export async function balanceCase(request, event) {
|
|||||||
export async function kickFromGroupCase(request, event) {
|
export async function kickFromGroupCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupId, qortalAddress, rBanReason } = request.payload;
|
const { groupId, qortalAddress, rBanReason } = request.payload;
|
||||||
const response = await kickFromGroup({groupId, qortalAddress, rBanReason});
|
const response = await kickFromGroup({
|
||||||
|
groupId,
|
||||||
|
qortalAddress,
|
||||||
|
rBanReason,
|
||||||
|
});
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
@ -488,7 +514,12 @@ export async function balanceCase(request, event) {
|
|||||||
export async function banFromGroupCase(request, event) {
|
export async function banFromGroupCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupId, qortalAddress, rBanReason, rBanTime } = request.payload;
|
const { groupId, qortalAddress, rBanReason, rBanTime } = request.payload;
|
||||||
const response = await banFromGroup({groupId, qortalAddress, rBanReason, rBanTime});
|
const response = await banFromGroup({
|
||||||
|
groupId,
|
||||||
|
qortalAddress,
|
||||||
|
rBanReason,
|
||||||
|
rBanTime,
|
||||||
|
});
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
@ -539,7 +570,6 @@ export async function balanceCase(request, event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function getDataPublishesCase(request, event) {
|
export async function getDataPublishesCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupId, type } = request.payload;
|
const { groupId, type } = request.payload;
|
||||||
@ -857,7 +887,6 @@ export async function balanceCase(request, event) {
|
|||||||
try {
|
try {
|
||||||
const response = await getApiKeyFromStorage();
|
const response = await getApiKeyFromStorage();
|
||||||
|
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
requestId: request.requestId,
|
requestId: request.requestId,
|
||||||
@ -884,7 +913,6 @@ export async function balanceCase(request, event) {
|
|||||||
try {
|
try {
|
||||||
const response = await getCustomNodesFromStorage();
|
const response = await getCustomNodesFromStorage();
|
||||||
|
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
requestId: request.requestId,
|
requestId: request.requestId,
|
||||||
@ -910,7 +938,10 @@ export async function balanceCase(request, event) {
|
|||||||
export async function notifyAdminRegenerateSecretKeyCase(request, event) {
|
export async function notifyAdminRegenerateSecretKeyCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupName, adminAddress } = request.payload;
|
const { groupName, adminAddress } = request.payload;
|
||||||
const response = await notifyAdminRegenerateSecretKey({groupName, adminAddress});
|
const response = await notifyAdminRegenerateSecretKey({
|
||||||
|
groupName,
|
||||||
|
adminAddress,
|
||||||
|
});
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
@ -937,7 +968,10 @@ export async function balanceCase(request, event) {
|
|||||||
export async function addGroupNotificationTimestampCase(request, event) {
|
export async function addGroupNotificationTimestampCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupId, timestamp } = request.payload;
|
const { groupId, timestamp } = request.payload;
|
||||||
const response = await addTimestampGroupAnnouncement({groupId, timestamp});
|
const response = await addTimestampGroupAnnouncement({
|
||||||
|
groupId,
|
||||||
|
timestamp,
|
||||||
|
});
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
@ -989,8 +1023,14 @@ export async function balanceCase(request, event) {
|
|||||||
|
|
||||||
export async function setGroupDataCase(request, event) {
|
export async function setGroupDataCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const { groupId, secretKeyData, secretKeyResource, admins } = request.payload;
|
const { groupId, secretKeyData, secretKeyResource, admins } =
|
||||||
const response = await setGroupData({groupId, secretKeyData, secretKeyResource, admins});
|
request.payload;
|
||||||
|
const response = await setGroupData({
|
||||||
|
groupId,
|
||||||
|
secretKeyData,
|
||||||
|
secretKeyResource,
|
||||||
|
admins,
|
||||||
|
});
|
||||||
|
|
||||||
event.source.postMessage(
|
event.source.postMessage(
|
||||||
{
|
{
|
||||||
@ -1067,7 +1107,6 @@ export async function balanceCase(request, event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export async function getGroupNotificationTimestampCase(request, event) {
|
export async function getGroupNotificationTimestampCase(request, event) {
|
||||||
try {
|
try {
|
||||||
const response = await getTimestampGroupAnnouncement();
|
const response = await getTimestampGroupAnnouncement();
|
||||||
@ -1093,3 +1132,53 @@ export async function balanceCase(request, event) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function encryptAndPublishSymmetricKeyGroupChatCase(
|
||||||
|
request,
|
||||||
|
event
|
||||||
|
) {
|
||||||
|
try {
|
||||||
|
const { groupId, previousData, previousNumber } = request.payload;
|
||||||
|
const { data, numberOfMembers } =
|
||||||
|
await encryptAndPublishSymmetricKeyGroupChat({
|
||||||
|
groupId,
|
||||||
|
previousData,
|
||||||
|
previousNumber,
|
||||||
|
});
|
||||||
|
|
||||||
|
event.source.postMessage(
|
||||||
|
{
|
||||||
|
requestId: request.requestId,
|
||||||
|
action: "encryptAndPublishSymmetricKeyGroupChat",
|
||||||
|
payload: data,
|
||||||
|
type: "backgroundMessageResponse",
|
||||||
|
},
|
||||||
|
event.origin
|
||||||
|
);
|
||||||
|
try {
|
||||||
|
sendChatGroup({
|
||||||
|
groupId,
|
||||||
|
typeMessage: undefined,
|
||||||
|
chatReference: undefined,
|
||||||
|
messageText: PUBLIC_NOTIFICATION_CODE_FIRST_SECRET_KEY,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
// error in sending chat message
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
sendChatNotification(data, groupId, previousData, numberOfMembers);
|
||||||
|
} catch (error) {
|
||||||
|
// error in sending notification
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
event.source.postMessage(
|
||||||
|
{
|
||||||
|
requestId: request.requestId,
|
||||||
|
action: "encryptAndPublishSymmetricKeyGroupChat",
|
||||||
|
error: error?.message,
|
||||||
|
type: "backgroundMessageResponse",
|
||||||
|
},
|
||||||
|
event.origin
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -40,6 +40,7 @@ import {
|
|||||||
clearAllNotificationsCase,
|
clearAllNotificationsCase,
|
||||||
createGroupCase,
|
createGroupCase,
|
||||||
decryptWalletCase,
|
decryptWalletCase,
|
||||||
|
encryptAndPublishSymmetricKeyGroupChatCase,
|
||||||
getApiKeyCase,
|
getApiKeyCase,
|
||||||
getCustomNodesFromStorageCase,
|
getCustomNodesFromStorageCase,
|
||||||
getDataPublishesCase,
|
getDataPublishesCase,
|
||||||
@ -1660,7 +1661,7 @@ async function sendChat({ qortAddress, recipientPublicKey, message }) {
|
|||||||
return _response;
|
return _response;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function sendChatGroup({
|
export async function sendChatGroup({
|
||||||
groupId,
|
groupId,
|
||||||
typeMessage,
|
typeMessage,
|
||||||
chatReference,
|
chatReference,
|
||||||
@ -1991,7 +1992,7 @@ async function createBuyOrderTx({ crosschainAtInfo, useLocal }) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function sendChatNotification(
|
export async function sendChatNotification(
|
||||||
res,
|
res,
|
||||||
groupId,
|
groupId,
|
||||||
secretKeyObject,
|
secretKeyObject,
|
||||||
@ -3038,6 +3039,9 @@ function setupMessageListener() {
|
|||||||
case "getGroupNotificationTimestamp":
|
case "getGroupNotificationTimestamp":
|
||||||
getGroupNotificationTimestampCase(request, event);
|
getGroupNotificationTimestampCase(request, event);
|
||||||
break;
|
break;
|
||||||
|
case "encryptAndPublishSymmetricKeyGroupChat":
|
||||||
|
encryptAndPublishSymmetricKeyGroupChatCase(request, event);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
console.error("Unknown action:", request.action);
|
console.error("Unknown action:", request.action);
|
||||||
}
|
}
|
||||||
|
@ -107,28 +107,36 @@ export const CreateCommonSecret = ({groupId, secretKey, isOwner, myAddress, sec
|
|||||||
const secretKeyToSend = !secretKey2 ? null : secretKey2
|
const secretKeyToSend = !secretKey2 ? null : secretKey2
|
||||||
|
|
||||||
|
|
||||||
chrome?.runtime?.sendMessage({ action: "encryptAndPublishSymmetricKeyGroupChat", payload: {
|
window.sendMessage("encryptAndPublishSymmetricKeyGroupChat", {
|
||||||
groupId: groupId,
|
groupId: groupId,
|
||||||
previousData: secretKeyToSend
|
previousData: secretKeyToSend,
|
||||||
} }, (response) => {
|
})
|
||||||
|
.then((response) => {
|
||||||
if (!response?.error) {
|
if (!response?.error) {
|
||||||
setInfoSnack({
|
setInfoSnack({
|
||||||
type: "success",
|
type: "success",
|
||||||
message: "Successfully re-encrypted secret key. It may take a couple of minutes for the changes to propagate. Refresh the group in 5mins",
|
message: "Successfully re-encrypted secret key. It may take a couple of minutes for the changes to propagate. Refresh the group in 5 mins.",
|
||||||
});
|
});
|
||||||
setOpenSnack(true);
|
setOpenSnack(true);
|
||||||
setTxList((prev)=> [{
|
setTxList((prev) => [
|
||||||
|
{
|
||||||
...response,
|
...response,
|
||||||
type: 'created-common-secret',
|
type: 'created-common-secret',
|
||||||
label: `Published secret key for group ${groupId}: awaiting confirmation`,
|
label: `Published secret key for group ${groupId}: awaiting confirmation`,
|
||||||
labelDone: `Published secret key for group ${groupId}: success!`,
|
labelDone: `Published secret key for group ${groupId}: success!`,
|
||||||
done: false,
|
done: false,
|
||||||
groupId,
|
groupId,
|
||||||
|
},
|
||||||
}, ...prev])
|
...prev,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
setIsLoading(false)
|
setIsLoading(false);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error("Failed to encrypt and publish symmetric key for group chat:", error.message || "An error occurred");
|
||||||
|
setIsLoading(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user