diff --git a/packages/extension-base/src/koni/background/handlers/State.ts b/packages/extension-base/src/koni/background/handlers/State.ts index 8354010df8f..c5fa1c075d5 100644 --- a/packages/extension-base/src/koni/background/handlers/State.ts +++ b/packages/extension-base/src/koni/background/handlers/State.ts @@ -1229,9 +1229,9 @@ export default class KoniState { throw new BitcoinProviderError(BitcoinProviderErrorType.INVALID_PARAMS, t('Not found payload to sign')); } - if (!isHex(psbt)) { - throw new BitcoinProviderError(BitcoinProviderErrorType.INVALID_PARAMS, t('Psbt to be signed must be base64-encoded')); - } + // if (!isHex(psbt)) { + // throw new BitcoinProviderError(BitcoinProviderErrorType.INVALID_PARAMS, t('Psbt to be signed must be base64-encoded')); + // } let canSign = true; diff --git a/packages/extension-base/src/services/request-service/handler/BitcoinRequestHandler.ts b/packages/extension-base/src/services/request-service/handler/BitcoinRequestHandler.ts index 635f32e4caa..4b4332aba76 100644 --- a/packages/extension-base/src/services/request-service/handler/BitcoinRequestHandler.ts +++ b/packages/extension-base/src/services/request-service/handler/BitcoinRequestHandler.ts @@ -204,15 +204,13 @@ export default class BitcoinRequestHandler { keyring.unlockPair(pair.address); } - // Finalize all inputs in the Psbt - // Sign the Psbt using the pair's bitcoin object const signedTransaction = pair.bitcoin.signTransaction(psbt, signingIndexes[address]); return signedTransaction.finalizeAllInputs(); }); - const psbtCombine = new Psbt().combine(...psbtList); + const psbtCombine = psbtList[0].combine(...psbtList); const transactionObj = psbt.extractTransaction(); diff --git a/packages/extension-koni-ui/src/Popup/Confirmations/parts/Sign/Bitcoin.tsx b/packages/extension-koni-ui/src/Popup/Confirmations/parts/Sign/Bitcoin.tsx index 5a4b0d23dad..9cd664be620 100644 --- a/packages/extension-koni-ui/src/Popup/Confirmations/parts/Sign/Bitcoin.tsx +++ b/packages/extension-koni-ui/src/Popup/Confirmations/parts/Sign/Bitcoin.tsx @@ -64,7 +64,7 @@ const Component: React.FC = (props: Props) => { const chain = useGetChainInfoByChainId(chainId); const checkUnlock = useUnlockChecker(); - const signMode = useMemo(() => getSignMode(account || accounts[0]?.address), [account, accounts]); + const signMode = useMemo(() => getSignMode(account || accounts[0]), [account, accounts]); const isLedger = useMemo(() => signMode === AccountSignMode.LEDGER, [signMode]); const isMessage = isBitcoinMessage(payload); @@ -147,7 +147,7 @@ const Component: React.FC = (props: Props) => { setLoading(true); setTimeout(() => { - const signPromise = isMessage ? ledgerSignMessage(u8aToU8a(hashPayload), account.accountIndex, account.addressOffset) : ledgerSignTransaction(hexToU8a(hashPayload), account.accountIndex, account.addressOffset); + const signPromise = isMessage ? ledgerSignMessage(u8aToU8a(hashPayload), account?.accountIndex, account?.addressOffset) : ledgerSignTransaction(hexToU8a(hashPayload), account?.accountIndex, account?.addressOffset); signPromise .then(({ signature }) => { @@ -158,7 +158,7 @@ const Component: React.FC = (props: Props) => { setLoading(false); }); }); - }, [account.accountIndex, account.addressOffset, hashPayload, isLedgerConnected, isMessage, ledger, ledgerSignMessage, ledgerSignTransaction, onApproveSignature, refreshLedger]); + }, [account?.accountIndex, account?.addressOffset, hashPayload, isLedgerConnected, isMessage, ledger, ledgerSignMessage, ledgerSignTransaction, onApproveSignature, refreshLedger]); const onConfirmInject = useCallback(() => { console.error('Not implemented yet'); diff --git a/packages/extension-koni-ui/src/Popup/Confirmations/variants/BitcoinSignPsbtConfirmation.tsx b/packages/extension-koni-ui/src/Popup/Confirmations/variants/BitcoinSignPsbtConfirmation.tsx index bf14e6cc0b5..65cba51ee0d 100644 --- a/packages/extension-koni-ui/src/Popup/Confirmations/variants/BitcoinSignPsbtConfirmation.tsx +++ b/packages/extension-koni-ui/src/Popup/Confirmations/variants/BitcoinSignPsbtConfirmation.tsx @@ -22,7 +22,7 @@ interface Props extends ThemeProps { function Component ({ className, request, type }: Props) { const { id, payload } = request; const { t } = useTranslation(); - const { account } = payload; + const { accounts } = payload; const onClickDetail = useOpenDetailModal(); @@ -36,14 +36,16 @@ function Component ({ className, request, type }: Props) {
{t('You are approving a request with the following account')}
- + {accounts.map((account) => + )}