Remove usage of request ID

This commit is contained in:
Shreerang Kale 2025-05-05 18:53:38 +05:30
parent c2557eb3eb
commit 610939cea5

View File

@ -41,7 +41,6 @@ interface IncomingMessageEventData {
} }
type TransactionDetails = { type TransactionDetails = {
requestId: string;
source: MessageEventSource; source: MessageEventSource;
origin: string; origin: string;
signerAddress: string; signerAddress: string;
@ -72,13 +71,13 @@ export const SignTxEmbed = () => {
// Message Handlers // Message Handlers
const handleGetCosmosAccountsRequest = useCallback(async (event: MessageEvent<IncomingMessageEventData>) => { const handleGetCosmosAccountsRequest = useCallback(async (event: MessageEvent<IncomingMessageEventData>) => {
const { id, data } = event.data; const { data } = event.data;
const source = event.source as Window; const source = event.source as Window;
const origin = event.origin; const origin = event.origin;
const requestData = data as GetAccountsRequestData; const requestData = data as GetAccountsRequestData;
const mnemonic = await getMnemonic(); const mnemonic = await getMnemonic();
console.log(`Received ${REQUEST_COSMOS_ACCOUNTS_DATA}`, id); console.log(`Received ${REQUEST_COSMOS_ACCOUNTS_DATA}`);
try { try {
const requestedNetworkData = networksData.find(networkData => networkData.chainId === requestData.chainId) const requestedNetworkData = networksData.find(networkData => networkData.chainId === requestData.chainId)
@ -103,22 +102,22 @@ export const SignTxEmbed = () => {
); );
const response: GetAccountsResponse = { accounts: responseAccounts }; const response: GetAccountsResponse = { accounts: responseAccounts };
sendMessage(source, COSMOS_ACCOUNTS_RESPONSE, {id, data: response}, origin); sendMessage(source, COSMOS_ACCOUNTS_RESPONSE, {data: response}, origin);
} catch (error: unknown) { } catch (error: unknown) {
console.error(`Error handling ${REQUEST_COSMOS_ACCOUNTS_DATA}:`, error); console.error(`Error handling ${REQUEST_COSMOS_ACCOUNTS_DATA}:`, error);
const errorMsg = error instanceof Error ? error.message : String(error); const errorMsg = error instanceof Error ? error.message : String(error);
sendMessage(source, COSMOS_ACCOUNTS_RESPONSE, { id, error: `Failed to get accounts: ${errorMsg}` }, origin); sendMessage(source, COSMOS_ACCOUNTS_RESPONSE, { error: `Failed to get accounts: ${errorMsg}` }, origin);
} }
}, [networksData]); }, [networksData]);
const handleSignTxRequest = useCallback(async (event: MessageEvent<IncomingMessageEventData>) => { const handleSignTxRequest = useCallback(async (event: MessageEvent<IncomingMessageEventData>) => {
const { id, data } = event.data; const { data } = event.data;
const source = event.source as Window; const source = event.source as Window;
const origin = event.origin; const origin = event.origin;
const requestData = data as SignTxRequestData; const requestData = data as SignTxRequestData;
console.log(`Received ${REQUEST_SIGN_TX}`, id); console.log(`Received ${REQUEST_SIGN_TX}`);
setIsTxApprovalVisible(false); setIsTxApprovalVisible(false);
setTransactionDetails(null); setTransactionDetails(null);
setTxError(null); setTxError(null);
@ -150,7 +149,6 @@ export const SignTxEmbed = () => {
} }
setTransactionDetails({ setTransactionDetails({
requestId: id,
source: source, source: source,
origin: origin, origin: origin,
signerAddress, signerAddress,
@ -168,13 +166,13 @@ export const SignTxEmbed = () => {
console.error(`Error handling ${REQUEST_SIGN_TX}:`, error); console.error(`Error handling ${REQUEST_SIGN_TX}:`, error);
const errorMsg = error instanceof Error ? error.message : String(error); const errorMsg = error instanceof Error ? error.message : String(error);
sendMessage(source, id, { error: `Failed to prepare transaction: ${errorMsg}` }, origin); sendMessage(source, SIGN_TX_RESPONSE, { error: `Failed to prepare transaction: ${errorMsg}` }, origin);
setTxError(errorMsg); setTxError(errorMsg);
} }
}, [networksData]); }, [networksData]);
const handleIncomingMessage = useCallback((event: MessageEvent) => { const handleIncomingMessage = useCallback((event: MessageEvent) => {
if (!event.data || typeof event.data !== 'object' || !event.data.type || !event.data.id || !event.source || event.source === window) { if (!event.data || typeof event.data !== 'object' || !event.data.type || !event.source || event.source === window) {
return; // Basic validation return; // Basic validation
} }
@ -212,7 +210,7 @@ export const SignTxEmbed = () => {
setIsTxLoading(true); setIsTxLoading(true);
setTxError(null); setTxError(null);
const { requestId, source, origin, requestedNetwork, chainId, account, signerAddress, signDoc } = transactionDetails; const { source, origin, requestedNetwork, chainId, account, signerAddress, signDoc } = transactionDetails;
try { try {
const { privKey } = await getPathKey(`${requestedNetwork.namespace}:${chainId}`, account.index); const { privKey } = await getPathKey(`${requestedNetwork.namespace}:${chainId}`, account.index);
@ -222,8 +220,8 @@ export const SignTxEmbed = () => {
// Perform the actual signing // Perform the actual signing
const signResponse = await wallet.signDirect(signerAddress, signDoc); const signResponse = await wallet.signDirect(signerAddress, signDoc);
sendMessage(source as Window, SIGN_TX_RESPONSE, {id: requestId, data: signResponse}, origin); sendMessage(source as Window, SIGN_TX_RESPONSE, {data: signResponse}, origin);
console.log("Sent signDirect response:", requestId); console.log("Sent signDirect response");
setIsTxApprovalVisible(false); setIsTxApprovalVisible(false);
setTransactionDetails(null); setTransactionDetails(null);
@ -233,7 +231,7 @@ export const SignTxEmbed = () => {
const errorMsg = error instanceof Error ? error.message : String(error); const errorMsg = error instanceof Error ? error.message : String(error);
setTxError(errorMsg); setTxError(errorMsg);
sendMessage(source as Window, SIGN_TX_RESPONSE, {id: requestId, error: `Failed to sign transaction: ${errorMsg}` }, origin); sendMessage(source as Window, SIGN_TX_RESPONSE, { error: `Failed to sign transaction: ${errorMsg}` }, origin);
} finally { } finally {
setIsTxLoading(false); setIsTxLoading(false);
} }
@ -241,10 +239,10 @@ export const SignTxEmbed = () => {
const rejectRequestHandler = () => { const rejectRequestHandler = () => {
if (!transactionDetails) return; if (!transactionDetails) return;
const { requestId, source, origin } = transactionDetails; const { source, origin } = transactionDetails;
console.log("Rejecting request:", requestId); console.log("Rejecting request");
sendMessage(source as Window, SIGN_TX_RESPONSE, {id: requestId, error: "User rejected the signature request." }, origin); sendMessage(source as Window, SIGN_TX_RESPONSE, { error: "User rejected the signature request." }, origin);
setIsTxApprovalVisible(false); setIsTxApprovalVisible(false);
setTransactionDetails(null); setTransactionDetails(null);
setTxError(null); setTxError(null);