diff --git a/src/extension/popups/sign-pset.tsx b/src/extension/popups/sign-pset.tsx index 0c6f897a..a7246d0e 100644 --- a/src/extension/popups/sign-pset.tsx +++ b/src/extension/popups/sign-pset.tsx @@ -18,7 +18,7 @@ import { useToastContext } from '../context/toast-context'; import { extractErrorMessage } from '../utility/error'; import { fromSatoshiStr } from '../utility'; import { Spinner } from '../components/spinner'; -import type { TxDetailsExtended } from '../../domain/transaction'; +import type { TxDetailsExtended, TxFlow } from '../../domain/transaction'; import { computeTxDetailsExtended } from '../../domain/transaction'; import { MainAccount, MainAccountLegacy, MainAccountTest } from '../../application/account'; import { DefaultAssetRegistry } from '../../port/asset-registry'; @@ -26,7 +26,19 @@ import { WalletRepositoryUnblinder } from '../../application/unblinder'; import type { Outpoint } from '../../domain/repository'; import type { UnblindingData } from 'marina-provider'; -const PsetView: React.FC = ({ txFlow }) => { +const NonStandardPsetWarning: React.FC = () => { + return ( +
+

Warning

+

+ This PSET is not standard, it does not spend coins from any of your main accounts but asks + for a signature. +

+
+ ); +}; + +const PsetView: React.FC> = ({ txFlow }) => { const { cache, assetRepository } = useStorageContext(); const getPrecision = (asset: string) => { if (!cache || !cache.assetsDetails || !cache.assetsDetails.value[asset]) return 8; @@ -96,9 +108,10 @@ const ConnectSignTransaction: React.FC = () => { const { showToast } = useToastContext(); const { backgroundPort } = useBackgroundPortContext(); - const [isModalUnlockOpen, showUnlockModal] = useState(false); + const [isModalUnlockOpen, showUnlockModal] = useState(false); const [error, setError] = useState(); - const [txDetails, setTxDetails] = useState(); + const [txFlow, setTxFlow] = useState(); + const [isNonStandard, setIsNonStandard] = useState(false); const psetToSign = useSelectPopupPsetToSign(); const hostname = useSelectPopupHostname(); @@ -146,8 +159,10 @@ const ConnectSignTransaction: React.FC = () => { mainAccountsScripts )({ height: -1, hex: unsignedTx.toHex() }); - console.log('txDetailsExtended', txDetailsExtended.txFlow); - setTxDetails(txDetailsExtended); + const isNonStandard = + Object.values(txDetailsExtended.txFlow).filter((value) => value < 0).length === 0; + setTxFlow(txDetailsExtended.txFlow); + setIsNonStandard(isNonStandard); }; init().catch((e) => { console.error(e); @@ -196,13 +211,13 @@ const ConnectSignTransaction: React.FC = () => { <>

{hostname}

- {!txDetails ? ( + {!txFlow ? (

Loading PSET data...

) : ( - +
{isNonStandard ? : }
)} diff --git a/tailwind.config.js b/tailwind.config.js index 6982d42a..401f9c24 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -22,6 +22,9 @@ module.exports = { smokeLight: 'rgba(0, 0, 0, 0.3)', transparent: 'transparent', white: '#fefefe', + amberLight: colors.amber[100], + amber: colors.amber[500], + amberDark: colors.amber[700], }, container: { padding: {