diff --git a/src/app/components/confirmBtcTransaction/index.tsx b/src/app/components/confirmBtcTransaction/index.tsx
index 662feb83c..3a316abcd 100644
--- a/src/app/components/confirmBtcTransaction/index.tsx
+++ b/src/app/components/confirmBtcTransaction/index.tsx
@@ -48,6 +48,7 @@ type Props = {
outputs: btcTransaction.EnhancedOutput[];
feeOutput?: btcTransaction.TransactionFeeOutput;
runeSummary?: RuneSummary;
+ showCenotaphCallout: boolean;
isLoading: boolean;
isSubmitting: boolean;
isBroadcast?: boolean;
@@ -76,6 +77,7 @@ function ConfirmBtcTransaction({
outputs,
feeOutput,
runeSummary,
+ showCenotaphCallout,
isLoading,
isSubmitting,
isBroadcast,
@@ -205,6 +207,7 @@ function ConfirmBtcTransaction({
outputs={outputs}
feeOutput={feeOutput}
isPartialTransaction={isPartialTransaction}
+ showCenotaphCallout={showCenotaphCallout}
getFeeForFeeRate={getFeeForFeeRate}
onFeeRateSet={onFeeRateSet}
feeRate={feeRate}
diff --git a/src/app/components/confirmBtcTransaction/transactionSummary.tsx b/src/app/components/confirmBtcTransaction/transactionSummary.tsx
index 20604d20c..b54f3c913 100644
--- a/src/app/components/confirmBtcTransaction/transactionSummary.tsx
+++ b/src/app/components/confirmBtcTransaction/transactionSummary.tsx
@@ -34,6 +34,7 @@ const WarningCallout = styled(Callout)`
type Props = {
isPartialTransaction: boolean;
+ showCenotaphCallout: boolean;
inputs: btcTransaction.EnhancedInput[];
outputs: btcTransaction.EnhancedOutput[];
feeOutput?: btcTransaction.TransactionFeeOutput;
@@ -49,6 +50,7 @@ type Props = {
function TransactionSummary({
isPartialTransaction,
+ showCenotaphCallout,
inputs,
outputs,
feeOutput,
@@ -127,6 +129,9 @@ function TransactionSummary({
{isUnConfirmedInput && (
)}
+ {showCenotaphCallout && (
+
+ )}
{runeSummary?.mint && !runeSummary?.mint?.runeIsOpen && (
)}
diff --git a/src/app/screens/confirmBtcTransaction/index.tsx b/src/app/screens/confirmBtcTransaction/index.tsx
index 61a9eb014..ce9985a8f 100644
--- a/src/app/screens/confirmBtcTransaction/index.tsx
+++ b/src/app/screens/confirmBtcTransaction/index.tsx
@@ -242,7 +242,7 @@ function ConfirmBtcTransaction() {
description={t('BTC_TRANSFER_DANGER_ALERT_DESC')}
buttonText={t('BACK')}
onClose={onClosePress}
- secondButtonText={t('CONITNUE')}
+ secondButtonText={t('CONTINUE')}
onButtonClick={onClosePress}
onSecondButtonClick={onContinueButtonClick}
isWarningAlert
diff --git a/src/app/screens/confirmInscriptionRequest/index.tsx b/src/app/screens/confirmInscriptionRequest/index.tsx
index 6ecc408ce..be57df492 100644
--- a/src/app/screens/confirmInscriptionRequest/index.tsx
+++ b/src/app/screens/confirmInscriptionRequest/index.tsx
@@ -344,7 +344,7 @@ function ConfirmInscriptionRequest() {
description={t('CONFIRM_TRANSACTION.BTC_TRANSFER_DANGER_ALERT_DESC')}
buttonText={t('CONFIRM_TRANSACTION.BACK')}
onClose={onClosePress}
- secondButtonText={t('CONITNUE')}
+ secondButtonText={t('CONTINUE')}
onButtonClick={onClosePress}
onSecondButtonClick={onContinueButtonClick}
isWarningAlert
diff --git a/src/app/screens/restoreFunds/recoverRunes/index.tsx b/src/app/screens/restoreFunds/recoverRunes/index.tsx
index 4844bb58f..cb7997505 100644
--- a/src/app/screens/restoreFunds/recoverRunes/index.tsx
+++ b/src/app/screens/restoreFunds/recoverRunes/index.tsx
@@ -176,6 +176,7 @@ function RecoverRunes() {
inputs={summary?.inputs ?? []}
outputs={summary?.outputs ?? []}
feeOutput={summary?.feeOutput}
+ showCenotaphCallout={!!summary?.runeOp?.Cenotaph?.flaws}
runeSummary={runeSummary}
isLoading={isLoading}
isSubmitting={isBroadcasting}
diff --git a/src/app/screens/sendBtc/stepDisplay.tsx b/src/app/screens/sendBtc/stepDisplay.tsx
index 0f344e71d..6caae368d 100644
--- a/src/app/screens/sendBtc/stepDisplay.tsx
+++ b/src/app/screens/sendBtc/stepDisplay.tsx
@@ -125,6 +125,7 @@ function StepDisplay({
inputs={summary.inputs}
outputs={summary.outputs}
feeOutput={summary.feeOutput}
+ showCenotaphCallout={!!summary?.runeOp?.Cenotaph?.flaws}
isLoading={false}
confirmText={t('COMMON.CONFIRM')}
cancelText={t('COMMON.CANCEL')}
diff --git a/src/app/screens/sendRune/stepDisplay.tsx b/src/app/screens/sendRune/stepDisplay.tsx
index 3310e4151..c2870b1a5 100644
--- a/src/app/screens/sendRune/stepDisplay.tsx
+++ b/src/app/screens/sendRune/stepDisplay.tsx
@@ -131,6 +131,7 @@ function StepDisplay({
inputs={summary.inputs}
outputs={summary.outputs}
feeOutput={summary.feeOutput}
+ showCenotaphCallout={!!summary?.runeOp?.Cenotaph?.flaws}
runeSummary={runeSummary}
isLoading={false}
confirmText={t('COMMON.CONFIRM')}
diff --git a/src/app/screens/signBatchPsbtRequest/index.tsx b/src/app/screens/signBatchPsbtRequest/index.tsx
index e71c72fdf..7916a980d 100644
--- a/src/app/screens/signBatchPsbtRequest/index.tsx
+++ b/src/app/screens/signBatchPsbtRequest/index.tsx
@@ -124,12 +124,8 @@ interface TxResponse {
psbtBase64: string;
}
-type PsbtSummary = {
- inputs: btcTransaction.EnhancedInput[];
- outputs: btcTransaction.EnhancedOutput[];
- feeOutput?: btcTransaction.TransactionFeeOutput | undefined;
- hasSigHashNone: boolean;
-};
+// TODO: export this from core
+type PsbtSummary = Awaited>;
function SignBatchPsbtRequest() {
const { btcAddress, ordinalsAddress, selectedAccount, network } = useWalletSelector();
@@ -434,6 +430,9 @@ function SignBatchPsbtRequest() {
feeOutput={parsedPsbts[currentPsbtIndex].summary.feeOutput}
runeSummary={parsedPsbts[currentPsbtIndex].runeSummary}
isPartialTransaction={!parsedPsbts[currentPsbtIndex].summary.feeOutput}
+ showCenotaphCallout={
+ !!parsedPsbts[currentPsbtIndex].summary.runeOp?.Cenotaph?.flaws
+ }
/>
)}
diff --git a/src/app/screens/signPsbtRequest/index.tsx b/src/app/screens/signPsbtRequest/index.tsx
index dd8d0080f..c890a917d 100644
--- a/src/app/screens/signPsbtRequest/index.tsx
+++ b/src/app/screens/signPsbtRequest/index.tsx
@@ -1,7 +1,6 @@
import { makeRPCError, sendRpcResponse } from '@common/utils/rpc/helpers';
import ConfirmBitcoinTransaction from '@components/confirmBtcTransaction';
import RequestError from '@components/requests/requestError';
-import useBtcClient from '@hooks/useBtcClient';
import useHasFeature from '@hooks/useHasFeature';
import useTransactionContext from '@hooks/useTransactionContext';
import useWalletSelector from '@hooks/useWalletSelector';
@@ -18,6 +17,9 @@ import { RpcErrorCode } from 'sats-connect';
import useSignPsbt from './useSignPsbt';
import useSignPsbtValidationGate from './useSignPsbtValidationGate';
+// TODO: export this from core
+type PSBTSummary = Awaited>;
+
function SignPsbtRequest() {
const navigate = useNavigate();
@@ -26,10 +28,7 @@ function SignPsbtRequest() {
const [isLoading, setIsLoading] = useState(true);
const [isSigning, setIsSigning] = useState(false);
- const [inputs, setInputs] = useState([]);
- const [outputs, setOutputs] = useState([]);
- const [feeOutput, setFeeOutput] = useState();
- const [hasSigHashNone, setHasSigHashNone] = useState(false);
+ const [summary, setSummary] = useState();
const [runeSummary, setRuneSummary] = useState(undefined);
const hasRunesSupport = useHasFeature('RUNES_SUPPORT');
@@ -49,19 +48,10 @@ function SignPsbtRequest() {
parsedPsbt
.getSummary()
- .then(async (summary) => {
- const {
- feeOutput: psbtFeeOutput,
- inputs: psbtInputs,
- outputs: psbtOutputs,
- hasSigHashNone: psbtHasSigHashNone,
- } = summary;
- setFeeOutput(psbtFeeOutput);
- setInputs(psbtInputs);
- setOutputs(psbtOutputs);
- setHasSigHashNone(psbtHasSigHashNone);
+ .then(async (txSummary) => {
+ setSummary(txSummary);
if (hasRunesSupport) {
- setRuneSummary(await parseSummaryForRunes(txnContext, summary, network.type));
+ setRuneSummary(await parseSummaryForRunes(txnContext, txSummary, network.type));
}
setIsLoading(false);
})
@@ -138,14 +128,15 @@ function SignPsbtRequest() {
/>
) : (