Remove usage of request ID
This commit is contained in:
parent
c2557eb3eb
commit
610939cea5
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user