Skip to content

Commit 9e5f62a

Browse files
authored
refactor: remove redundant signTransaction method (#37)
1 parent 7105e42 commit 9e5f62a

File tree

5 files changed

+22
-272
lines changed

5 files changed

+22
-272
lines changed

public/background.js

Lines changed: 2 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ let responseCallbackForConnectRequest;
55
let responseCallbackForSendBsvRequest;
66
let responseCallbackForTransferOrdinalRequest;
77
let responseCallbackForSignMessageRequest;
8-
let responseCallbackForSignTransactionRequest;
98
let responseCallbackForBroadcastRequest;
109
let responseCallbackForGetSignaturesRequest;
1110
let popupWindowId = null;
@@ -76,8 +75,6 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
7675
return processTransferOrdinalResponse(message);
7776
case "signMessageResponse":
7877
return processSignMessageResponse(message);
79-
case "signTransactionResponse":
80-
return processSignTransactionResponse(message);
8178
case "broadcastResponse":
8279
return processBroadcastResponse(message);
8380
case "getSignaturesResponse":
@@ -121,8 +118,6 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
121118
return processTransferOrdinalRequest(message, sendResponse);
122119
case "signMessage":
123120
return processSignMessageRequest(message, sendResponse);
124-
case "signTransaction":
125-
return processSignTransactionRequest(message, sendResponse);
126121
case "broadcast":
127122
return processBroadcastRequest(message, sendResponse);
128123
case "getSignatures":
@@ -385,32 +380,6 @@ const processSignMessageRequest = (message, sendResponse) => {
385380
return true;
386381
};
387382

388-
const processSignTransactionRequest = (message, sendResponse) => {
389-
if (!message.params) {
390-
sendResponse({
391-
type: "signTransaction",
392-
success: false,
393-
error: "Must provide valid params!",
394-
});
395-
}
396-
try {
397-
responseCallbackForSignTransactionRequest = sendResponse;
398-
chrome.storage.local
399-
.set({
400-
signTransactionRequest: message.params,
401-
})
402-
.then(() => {
403-
launchPopUp();
404-
});
405-
} catch (error) {
406-
sendResponse({
407-
type: "signTransaction",
408-
success: false,
409-
error: JSON.stringify(error),
410-
});
411-
}
412-
};
413-
414383
const processGetSignaturesRequest = (message, sendResponse) => {
415384
if (!message.params) {
416385
sendResponse({
@@ -544,30 +513,6 @@ const processSignMessageResponse = (message) => {
544513
return true;
545514
};
546515

547-
const processSignTransactionResponse = (message) => {
548-
if (!responseCallbackForSignTransactionRequest)
549-
throw Error("Missing callback!");
550-
try {
551-
responseCallbackForSignTransactionRequest({
552-
type: "signTransaction",
553-
success: true,
554-
data: message?.signatureHex,
555-
});
556-
} catch (error) {
557-
responseCallbackForSignTransactionRequest({
558-
type: "signTransaction",
559-
success: false,
560-
error: JSON.stringify(error),
561-
});
562-
} finally {
563-
responseCallbackForSignTransactionRequest = null;
564-
popupWindowId = null;
565-
chrome.storage.local.remove(["signTransactionRequest", "popupWindowId"]);
566-
}
567-
568-
return true;
569-
};
570-
571516
const processBroadcastResponse = (message) => {
572517
if (!responseCallbackForBroadcastRequest) throw Error("Missing callback!");
573518
try {
@@ -592,7 +537,8 @@ const processBroadcastResponse = (message) => {
592537
};
593538

594539
const processGetSignaturesResponse = (message) => {
595-
if (!responseCallbackForGetSignaturesRequest) throw Error("Missing callback!");
540+
if (!responseCallbackForGetSignaturesRequest)
541+
throw Error("Missing callback!");
596542
try {
597543
responseCallbackForGetSignaturesRequest({
598544
type: "getSignatures",
@@ -649,16 +595,6 @@ chrome.windows.onRemoved.addListener((closedWindowId) => {
649595
chrome.storage.local.remove("signMessageRequest");
650596
}
651597

652-
if (responseCallbackForSignTransactionRequest) {
653-
responseCallbackForSignTransactionRequest({
654-
type: "signTransaction",
655-
success: false,
656-
error: "User dismissed the request!",
657-
});
658-
responseCallbackForSignTransactionRequest = null;
659-
chrome.storage.local.remove("signTransactionRequest");
660-
}
661-
662598
if (responseCallbackForTransferOrdinalRequest) {
663599
responseCallbackForTransferOrdinalRequest({
664600
type: "transferOrdinal",

public/inject.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ window.panda = {
3737
sendBsv: createPandaMethod("sendBsv"),
3838
transferOrdinal: createPandaMethod("transferOrdinal"),
3939
signMessage: createPandaMethod("signMessage"),
40-
signTransaction: createPandaMethod("signTransaction"),
4140
broadcast: createPandaMethod("broadcast"),
4241
getSignatures: createPandaMethod("getSignatures"),
4342
};

src/App.tsx

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,14 @@ import { useTheme } from "./hooks/useTheme";
1616
import { BsvSendRequest } from "./pages/requests/BsvSendRequest";
1717
import { storage } from "./utils/storage";
1818
import { useContext, useEffect, useState } from "react";
19-
import {
20-
Web3BroadcastRequest,
21-
Web3SendBsvRequest,
22-
Web3SignTransactionRequest,
23-
} from "./hooks/useBsv";
19+
import { Web3BroadcastRequest, Web3SendBsvRequest } from "./hooks/useBsv";
2420
import { Web3TransferOrdinalRequest } from "./hooks/useOrds";
2521
import { Web3GetSignaturesRequest } from "./hooks/useContracts";
2622
import { OrdTransferRequest } from "./pages/requests/OrdTransferRequest";
2723
import { BottomMenuContext } from "./contexts/BottomMenuContext";
2824
import { ConnectRequest } from "./pages/requests/ConnectRequest";
2925
import { SignMessageRequest } from "./pages/requests/SignMessageRequest";
3026
import { BroadcastRequest } from "./pages/requests/BroadcastRequest";
31-
import { SignTransactionRequest } from "./pages/requests/SignTransactionRequest";
3227
import { GetSignaturesRequest } from "./pages/requests/GetSignaturesRequest";
3328

3429
export type ThirdPartyAppRequestData = {
@@ -73,10 +68,6 @@ export const App = () => {
7368
Web3TransferOrdinalRequest | undefined
7469
>(undefined);
7570

76-
const [signTransactionRequest, setSignTransactionRequest] = useState<
77-
Web3SignTransactionRequest | undefined
78-
>(undefined);
79-
8071
const [getSignaturesRequest, setGetSignaturesRequest] = useState<
8172
Web3GetSignaturesRequest | undefined
8273
>(undefined);
@@ -108,7 +99,6 @@ export const App = () => {
10899
sendBsvRequest,
109100
transferOrdinalRequest,
110101
signMessageRequest,
111-
signTransactionRequest,
112102
broadcastRequest,
113103
getSignaturesRequest,
114104
} = result;
@@ -137,10 +127,6 @@ export const App = () => {
137127
setMessageToSign(signMessageRequest.message);
138128
}
139129

140-
if (signTransactionRequest) {
141-
setSignTransactionRequest(signTransactionRequest);
142-
}
143-
144130
if (broadcastRequest) {
145131
setBroadcastRequest(broadcastRequest);
146132
}
@@ -183,7 +169,6 @@ export const App = () => {
183169
!bsvSendRequest &&
184170
!messageToSign &&
185171
!broadcastRequest &&
186-
!signTransactionRequest &&
187172
!getSignaturesRequest
188173
}
189174
whenFalseContent={
@@ -201,17 +186,6 @@ export const App = () => {
201186
onSignature={() => setMessageToSign(undefined)}
202187
/>
203188
</Show>
204-
<Show when={!!signTransactionRequest}>
205-
<SignTransactionRequest
206-
request={
207-
signTransactionRequest as Web3SignTransactionRequest
208-
}
209-
popupId={popupId}
210-
onSignature={() =>
211-
setSignTransactionRequest(undefined)
212-
}
213-
/>
214-
</Show>
215189
<Show when={!!broadcastRequest}>
216190
<BroadcastRequest
217191
request={broadcastRequest as Web3BroadcastRequest}
@@ -221,9 +195,13 @@ export const App = () => {
221195
</Show>
222196
<Show when={!!getSignaturesRequest}>
223197
<GetSignaturesRequest
224-
getSigsRequest={getSignaturesRequest as Web3GetSignaturesRequest}
198+
getSigsRequest={
199+
getSignaturesRequest as Web3GetSignaturesRequest
200+
}
225201
popupId={popupId}
226-
onSignature={() => setGetSignaturesRequest(undefined)}
202+
onSignature={() =>
203+
setGetSignaturesRequest(undefined)
204+
}
227205
/>
228206
</Show>
229207
</>

src/hooks/useBsv.ts

Lines changed: 13 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,6 @@ type SendBsvResponse = {
2525
error?: string;
2626
};
2727

28-
type SignTransactionResponse = {
29-
signatureHex?: string;
30-
error?: string;
31-
};
32-
33-
export type Web3SignTransactionRequest = {
34-
rawtx: string;
35-
vin: number;
36-
sigHashTypeNumber: number;
37-
keyType: "bsv" | "ord";
38-
outputScript: string;
39-
outputSats: bigint;
40-
};
41-
4228
export type Web3SendBsvRequest = {
4329
satAmount: number;
4430
address: string;
@@ -57,12 +43,13 @@ export const useBsv = () => {
5743
const { bsvWasmInitialized } = useBsvWasm();
5844
const { network } = useNetwork();
5945
const { getUtxos, getBsvBalance, getExchangeRate, broadcastRawTx } =
60-
useWhatsOnChain();
61-
useEffect(() => { }, []);
46+
useWhatsOnChain();
6247

6348
const getChainParams = (network: NetWork): ChainParams => {
64-
return network === NetWork.Mainnet ? ChainParams.mainnet() : ChainParams.testnet();
65-
}
49+
return network === NetWork.Mainnet
50+
? ChainParams.mainnet()
51+
: ChainParams.testnet();
52+
};
6653

6754
const sendBsv = async (
6855
request: Web3SendBsvRequest,
@@ -82,7 +69,10 @@ export const useBsv = () => {
8269
if (!keys?.walletWif || !keys.walletPubKey) throw Error("Undefined key");
8370
const paymentPk = PrivateKey.from_wif(keys.walletWif);
8471
const pubKey = paymentPk.to_public_key();
85-
const fromAddress = pubKey.to_address().set_chain_params(getChainParams(network)).to_string();
72+
const fromAddress = pubKey
73+
.to_address()
74+
.set_chain_params(getChainParams(network))
75+
.to_string();
8676
const amount = request.reduce((a, r) => a + r.satAmount, 0);
8777

8878
// Format in and outs
@@ -188,39 +178,6 @@ export const useBsv = () => {
188178
}
189179
};
190180

191-
const signTransaction = async (
192-
password: string,
193-
request: Web3SignTransactionRequest
194-
): Promise<SignTransactionResponse> => {
195-
const { keyType, outputSats, outputScript, rawtx, sigHashTypeNumber, vin } =
196-
request;
197-
198-
const isAuthenticated = await verifyPassword(password);
199-
if (!isAuthenticated) {
200-
return { error: "invalid-password" };
201-
}
202-
try {
203-
const transaction = Transaction.from_hex(rawtx);
204-
const keys = await retrieveKeys(password);
205-
if (!keys?.walletWif || !keys.ordWif) throw Error("Undefined key");
206-
const privateKey = PrivateKey.from_wif(
207-
keyType === "bsv" ? keys.walletWif : keys.ordWif
208-
);
209-
const script = Script.from_hex(outputScript);
210-
const sig = transaction.sign(
211-
privateKey,
212-
sigHashTypeNumber,
213-
vin,
214-
script,
215-
BigInt(outputSats)
216-
);
217-
return { signatureHex: sig.to_hex() };
218-
} catch (error) {
219-
console.error("Error signing the transaction: ", error);
220-
throw error;
221-
}
222-
};
223-
224181
const signMessage = async (
225182
message: string,
226183
password: string
@@ -235,7 +192,10 @@ export const useBsv = () => {
235192
const hash = Hash.sha_256(Buffer.from(message)).to_hex();
236193
const privateKey = PrivateKey.from_wif(keys.walletWif);
237194
const publicKey = privateKey.to_public_key();
238-
const address = publicKey.to_address().set_chain_params(getChainParams(network)).to_string();
195+
const address = publicKey
196+
.to_address()
197+
.set_chain_params(getChainParams(network))
198+
.to_string();
239199
const encoder = new TextEncoder();
240200
const encodedMessage = encoder.encode(hash);
241201
const signature = privateKey.sign_message(encodedMessage);
@@ -318,6 +278,5 @@ export const useBsv = () => {
318278
exchangeRate,
319279
signMessage,
320280
verifyMessage,
321-
signTransaction,
322281
};
323282
};

0 commit comments

Comments
 (0)