{"version":3,"file":"static/chunks/2905-3721cebcccdffcf1.js","mappings":"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","sources":["webpack://_N_E/./src/components/common/NumberField/index.tsx","webpack://_N_E/./src/components/common/TokenIcon/index.tsx","webpack://_N_E/./src/components/transactions/HexEncodedData/index.tsx","webpack://_N_E/./src/components/transactions/InfoDetails/index.tsx","webpack://_N_E/./src/components/transactions/TxDetails/Summary/TxDataRow/index.tsx","webpack://_N_E/./src/components/transactions/TxDetails/SafeTxGasForm.tsx","webpack://_N_E/./src/components/transactions/TxDetails/Summary/index.tsx","webpack://_N_E/./src/components/transactions/TxDetails/TxData/DecodedData/ValueArray/index.tsx","webpack://_N_E/./src/components/transactions/TxDetails/TxData/DecodedData/MethodDetails/index.tsx","webpack://_N_E/./src/components/transactions/TxDetails/TxData/DecodedData/SingleTxDecoded/index.tsx","webpack://_N_E/./src/components/transactions/TxDetails/TxData/DecodedData/Multisend/index.tsx","webpack://_N_E/./src/components/transactions/Warning/index.tsx","webpack://_N_E/./src/components/tx-flow/SafeTxProvider.tsx","webpack://_N_E/./src/components/tx/ErrorMessage/index.tsx","webpack://_N_E/./src/services/tx/tx-sender/recommendedNonce.ts","webpack://_N_E/./src/components/tx/SignOrExecuteForm/hooks.ts","webpack://_N_E/./src/hooks/usePendingTxs.ts","webpack://_N_E/./src/hooks/useTransactionType.ts","webpack://_N_E/./src/services/tx/tx-sender/create.ts","webpack://_N_E/./src/services/tx/tx-sender/dispatch.ts","webpack://_N_E/./src/services/tx/spendingLimitParams.ts","webpack://_N_E/./src/services/tx/tx-sender/spendingLimit.ts","webpack://_N_E/./src/services/tx/tx-sender/index.ts","webpack://_N_E/./src/utils/date.ts","webpack://_N_E/./src/utils/tx-list.ts","webpack://_N_E/./src/components/common/TokenIcon/styles.module.css","webpack://_N_E/./src/components/transactions/HexEncodedData/styles.module.css","webpack://_N_E/./src/components/transactions/InfoDetails/styles.module.css","webpack://_N_E/./src/components/transactions/TxDetails/Summary/TxDataRow/styles.module.css","webpack://_N_E/./src/components/transactions/TxDetails/Summary/styles.module.css","webpack://_N_E/./src/components/transactions/TxDetails/TxData/DecodedData/Multisend/styles.module.css","webpack://_N_E/./src/components/transactions/TxDetails/TxData/DecodedData/SingleTxDecoded/styles.module.css","webpack://_N_E/./src/components/transactions/TxDetails/TxData/DecodedData/ValueArray/styles.module.css","webpack://_N_E/./src/components/transactions/Warning/styles.module.css","webpack://_N_E/./src/components/tx/ErrorMessage/styles.module.css","webpack://_N_E/./src/styles/accordion.module.css","webpack://_N_E/"],"sourcesContent":["import { TextField } from '@mui/material'\nimport { forwardRef } from 'react'\nimport type { TextFieldProps } from '@mui/material'\nimport type { ReactElement } from 'react'\n\nexport const _formatNumber = (value: string) => {\n value = value.trim()\n\n if (value === '') {\n return value\n }\n\n // Remove leading zeros from the string\n value = value.replace(/^0+/, '')\n\n if (value === '') {\n return '0'\n }\n\n // If the string starts with a decimal point, add a leading zero\n if (value.startsWith('.')) {\n value = '0' + value\n }\n\n return value\n}\n\nconst NumberField = forwardRef(({ onChange, ...props }, ref): ReactElement => {\n return (\n {\n event.target.value = _formatNumber(event.target.value)\n return onChange?.(event)\n }}\n {...props}\n inputProps={{\n ...props.inputProps,\n // Autocomplete passes `onChange` in `inputProps`\n onChange: (event) => {\n // inputProps['onChange'] is generically typed\n if ('value' in event.target && typeof event.target.value === 'string') {\n event.target.value = _formatNumber(event.target.value)\n return props.inputProps?.onChange?.(event)\n }\n },\n }}\n />\n )\n})\n\nNumberField.displayName = 'NumberField'\n\nexport default NumberField\n","import { type ReactElement } from 'react'\nimport ImageFallback from '../ImageFallback'\nimport css from './styles.module.css'\n\nconst FALLBACK_ICON = '/images/common/token-placeholder.svg'\n\nconst TokenIcon = ({\n logoUri,\n tokenSymbol,\n size = 26,\n fallbackSrc,\n}: {\n logoUri?: string\n tokenSymbol?: string\n size?: number\n fallbackSrc?: string\n}): ReactElement => {\n return (\n \n )\n}\n\nexport default TokenIcon\n","import { shortenText } from '@/utils/formatters'\nimport { Box, Link } from '@mui/material'\nimport type { ReactElement } from 'react'\nimport { useState } from 'react'\nimport css from './styles.module.css'\n\ninterface Props {\n hexData: string\n title?: string\n limit?: number\n}\n\nexport const HexEncodedData = ({ hexData, title, limit = 20 }: Props): ReactElement => {\n const [showTxData, setShowTxData] = useState(false)\n const showExpandBtn = hexData.length > limit\n\n const toggleExpanded = () => {\n setShowTxData((val) => !val)\n }\n\n return (\n \n {title && (\n \n {title}: \n \n )}\n {showExpandBtn ? (\n <>\n {showTxData ? hexData : shortenText(hexData, 25)}{' '}\n \n Show {showTxData ? 'less' : 'more'}\n \n \n ) : (\n {hexData}\n )}\n \n )\n}\n","import { Typography } from '@mui/material'\nimport type { ReactElement, ReactNode } from 'react'\nimport css from './styles.module.css'\n\ntype InfoDetailsProps = {\n datatestid?: String\n children?: ReactNode\n title: string | ReactElement\n}\n\nexport const InfoDetails = ({ datatestid, children, title }: InfoDetailsProps): ReactElement => (\n
\n \n {title}\n \n {children}\n
\n)\n","import type { ReactElement, ReactNode } from 'react'\nimport type { AddressEx } from '@safe-global/safe-gateway-typescript-sdk'\nimport CopyButton from '@/components/common/CopyButton'\nimport { HexEncodedData } from '@/components/transactions/HexEncodedData'\nimport { Typography } from '@mui/material'\nimport { hexDataLength } from 'ethers/lib/utils'\nimport css from './styles.module.css'\nimport EthHashInfo from '@/components/common/EthHashInfo'\n\ntype TxDataRowProps = {\n datatestid?: String\n title: ReactNode\n children?: ReactNode\n}\n\nexport const TxDataRow = ({ datatestid, title, children }: TxDataRowProps): ReactElement | null => {\n if (children == undefined) return null\n return (\n
\n
\n {title}\n
\n\n {typeof children === 'string' ? (\n \n {children}\n \n ) : (\n children\n )}\n
\n )\n}\n\nexport const generateDataRowValue = (\n value?: string,\n type?: 'hash' | 'rawData' | 'address' | 'bytes',\n hasExplorer?: boolean,\n addressInfo?: AddressEx,\n): ReactElement | null => {\n if (value == undefined) return null\n\n switch (type) {\n case 'hash':\n case 'address':\n const customAvatar = addressInfo?.logoUri\n\n return (\n \n )\n case 'rawData':\n return (\n
\n
{value ? hexDataLength(value) : 0} bytes
\n \n
\n )\n case 'bytes':\n return \n default:\n return {value}\n }\n}\n","import { useContext, useState } from 'react'\nimport { Link, Box, Paper, Button } from '@mui/material'\nimport { useForm } from 'react-hook-form'\nimport { SafeTxContext } from '@/components/tx-flow/SafeTxProvider'\nimport NumberField from '@/components/common/NumberField'\nimport useSafeInfo from '@/hooks/useSafeInfo'\nimport { isLegacyVersion } from '@/hooks/coreSDK/safeCoreSDK'\n\ntype FormFields = {\n safeTxGas: string\n}\n\nconst Form = ({ onSubmit }: { onSubmit: () => void }) => {\n const { safeTxGas = '0', setSafeTxGas } = useContext(SafeTxContext)\n\n const formMethods = useForm({\n defaultValues: {\n safeTxGas,\n },\n mode: 'onChange',\n })\n\n const onFormSubmit = (values: FormFields) => {\n setSafeTxGas(values.safeTxGas || '0')\n onSubmit()\n }\n\n // Close the form w/o submitting if the user clicks outside of it\n const onBlur = () => {\n setTimeout(onSubmit, 100)\n }\n\n return (\n \n
\n \n \n \n
\n )\n}\n\nconst SafeTxGasForm = () => {\n const { safeTx, safeTxGas = 0 } = useContext(SafeTxContext)\n const { safe } = useSafeInfo()\n const isOldSafe = safe.version && isLegacyVersion(safe.version)\n const isEditable = safeTx?.signatures.size === 0 && (safeTxGas > 0 || isOldSafe)\n const [editing, setEditing] = useState(false)\n\n return (\n \n {safeTxGas}\n\n {isEditable && (\n setEditing(true)} fontSize=\"small\">\n Edit\n \n )}\n\n {editing &&
setEditing(false)} />}\n \n )\n}\n\nexport default SafeTxGasForm\n","import type { ReactElement } from 'react'\nimport React, { useState } from 'react'\nimport { Link } from '@mui/material'\nimport { generateDataRowValue, TxDataRow } from '@/components/transactions/TxDetails/Summary/TxDataRow'\nimport { isMultisigDetailedExecutionInfo } from '@/utils/transaction-guards'\nimport type { TransactionDetails } from '@safe-global/safe-gateway-typescript-sdk'\nimport { Operation } from '@safe-global/safe-gateway-typescript-sdk'\nimport { dateString } from '@/utils/formatters'\nimport css from './styles.module.css'\nimport type { SafeTransaction } from '@safe-global/safe-core-sdk-types'\nimport SafeTxGasForm from '../SafeTxGasForm'\n\ninterface Props {\n txDetails: TransactionDetails\n defaultExpanded?: boolean\n}\n\nconst Summary = ({ txDetails, defaultExpanded = false }: Props): ReactElement => {\n const [expanded, setExpanded] = useState(defaultExpanded)\n\n const toggleExpanded = () => {\n setExpanded((val) => !val)\n }\n\n const { txHash, detailedExecutionInfo, executedAt, txData } = txDetails\n\n let confirmations, safeTxHash, baseGas, gasPrice, gasToken, refundReceiver, safeTxGas, submittedAt\n if (isMultisigDetailedExecutionInfo(detailedExecutionInfo)) {\n ;({ confirmations, safeTxHash, baseGas, gasPrice, gasToken, safeTxGas, submittedAt } = detailedExecutionInfo)\n refundReceiver = detailedExecutionInfo.refundReceiver?.value\n }\n\n return (\n <>\n \n {generateDataRowValue(txHash, 'hash', true)}\n \n \n {generateDataRowValue(safeTxHash, 'hash')}\n \n {!!submittedAt && (\n \n {dateString(submittedAt)}\n \n )}\n {!!executedAt && (\n \n {dateString(executedAt)}\n \n )}\n\n {/* Advanced TxData */}\n {txData && (\n <>\n {!defaultExpanded && (\n \n Advanced details\n \n )}\n\n {expanded && (\n
\n \n {`${txData.operation} (${Operation[txData.operation].toLowerCase()})`}\n \n \n {safeTxGas}\n \n \n {baseGas}\n \n \n {gasPrice}\n \n \n {generateDataRowValue(gasToken, 'hash', true)}\n \n \n {generateDataRowValue(refundReceiver, 'hash', true)}\n \n {confirmations?.map(({ signature }, index) => (\n \n {generateDataRowValue(signature, 'rawData')}\n \n ))}\n \n {generateDataRowValue(txData.hexData, 'rawData')}\n \n
\n )}\n \n )}\n \n )\n}\n\nexport default Summary\n\nexport const PartialSummary = ({ safeTx }: { safeTx: SafeTransaction }) => {\n const txData = safeTx.data\n return (\n <>\n \n \n \n \n {txData.baseGas}\n \n \n {generateDataRowValue(txData.refundReceiver, 'hash', true)}\n \n \n {generateDataRowValue(txData.data, 'rawData')}\n \n \n )\n}\n","import { useMemo } from 'react'\nimport type { ReactElement } from 'react'\nimport { Typography } from '@mui/material'\nimport { isAddress, isArrayParameter } from '@/utils/transaction-guards'\nimport EthHashInfo from '@/components/common/EthHashInfo'\nimport { HexEncodedData } from '@/components/transactions/HexEncodedData'\nimport css from './styles.module.css'\n\ntype ValueArrayProps = {\n method: string\n type: string\n value: string | string[]\n key?: string\n}\n\n// Sometime DApps return stringified arrays, e.g. \"[\"hello\",\"world\"]\"\nconst parseValue = (value: ValueArrayProps['value']) => {\n if (Array.isArray(value)) {\n return value\n }\n\n try {\n return JSON.parse(value)\n } catch {\n return value\n }\n}\n\nexport const Value = ({ type, value, ...props }: ValueArrayProps): ReactElement => {\n const parsedValue = useMemo(() => {\n return parseValue(value)\n }, [value])\n\n if (isArrayParameter(type) && isAddress(type) && Array.isArray(parsedValue)) {\n return (\n \n [\n
\n {parsedValue.map((address, index) => {\n const key = `${props.key || props.method}-${index}`\n if (Array.isArray(address)) {\n const newProps = {\n type,\n ...props,\n value: address,\n }\n return \n }\n return (\n
\n \n
\n )\n })}\n
\n ]\n
\n )\n }\n\n return \n}\n\nconst getTextValue = (value: string, key?: string) => {\n return \n}\n\nconst getArrayValue = (parentId: string, value: string[], separator?: boolean) => (\n \n [\n
\n {value.map((currentValue, index, values) => {\n const key = `${parentId}-value-${index}`\n const hasSeparator = index < values.length - 1\n\n return Array.isArray(currentValue) ? (\n
{getArrayValue(key, currentValue, hasSeparator)}
\n ) : (\n getTextValue(currentValue, key)\n )\n })}\n
\n ]{separator ? ',' : null}\n
\n)\n\nconst GenericValue = ({ method, value }: Omit): React.ReactElement => {\n if (Array.isArray(value)) {\n return getArrayValue(method, value)\n }\n\n return getTextValue(value)\n}\n","import type { ReactElement } from 'react'\nimport { generateDataRowValue, TxDataRow } from '@/components/transactions/TxDetails/Summary/TxDataRow'\nimport { isAddress, isArrayParameter, isByte } from '@/utils/transaction-guards'\nimport type { AddressEx, DataDecoded } from '@safe-global/safe-gateway-typescript-sdk'\nimport { Box, Typography } from '@mui/material'\nimport { Value } from '@/components/transactions/TxDetails/TxData/DecodedData/ValueArray'\nimport { camelCaseToSpaces } from '@/utils/formatters'\n\ntype MethodDetailsProps = {\n data: DataDecoded\n addressInfoIndex?: {\n [key: string]: AddressEx\n }\n}\n\nexport const MethodDetails = ({ data, addressInfoIndex }: MethodDetailsProps): ReactElement => {\n return (\n \n \n {camelCaseToSpaces(data.method)}\n \n\n {data.parameters?.map((param, index) => {\n const isArrayValueParam = isArrayParameter(param.type) || Array.isArray(param.value)\n const inlineType = isAddress(param.type) ? 'address' : isByte(param.type) ? 'bytes' : undefined\n const addressEx = typeof param.value === 'string' ? addressInfoIndex?.[param.value] : undefined\n\n return (\n \n {isArrayValueParam ? (\n \n ) : (\n generateDataRowValue(param.value as string, inlineType, true, addressEx)\n )}\n \n )\n })}\n \n )\n}\n","import { type InternalTransaction, Operation, type TransactionData } from '@safe-global/safe-gateway-typescript-sdk'\nimport type { AccordionProps } from '@mui/material/Accordion/Accordion'\nimport { useCurrentChain } from '@/hooks/useChains'\nimport { formatVisualAmount } from '@/utils/formatters'\nimport { MethodDetails } from '@/components/transactions/TxDetails/TxData/DecodedData/MethodDetails'\nimport { HexEncodedData } from '@/components/transactions/HexEncodedData'\nimport { isDeleteAllowance, isSetAllowance } from '@/utils/transaction-guards'\nimport { Accordion, AccordionDetails, AccordionSummary, Typography } from '@mui/material'\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\nimport css from './styles.module.css'\nimport accordionCss from '@/styles/accordion.module.css'\nimport CodeIcon from '@mui/icons-material/Code'\nimport { DelegateCallWarning } from '@/components/transactions/Warning'\nimport { InfoDetails } from '@/components/transactions/InfoDetails'\nimport EthHashInfo from '@/components/common/EthHashInfo'\n\ntype SingleTxDecodedProps = {\n tx: InternalTransaction\n txData: TransactionData\n actionTitle: string\n showDelegateCallWarning: boolean\n variant?: AccordionProps['variant']\n expanded?: boolean\n onChange?: AccordionProps['onChange']\n}\n\nexport const SingleTxDecoded = ({\n tx,\n txData,\n actionTitle,\n showDelegateCallWarning,\n variant,\n expanded,\n onChange,\n}: SingleTxDecodedProps) => {\n const chain = useCurrentChain()\n const method = tx.dataDecoded?.method || ''\n const { decimals, symbol } = chain?.nativeCurrency || {}\n const amount = tx.value ? formatVisualAmount(tx.value, decimals) : 0\n\n let details\n if (tx.dataDecoded) {\n details = \n } else if (tx.data) {\n // If data is not decoded in the backend response\n details = \n }\n\n const addressInfo = txData.addressInfoIndex?.[tx.to]\n const name = addressInfo?.name\n const avatarUrl = addressInfo?.logoUri\n\n const title = `Interact with${Number(amount) !== 0 ? ` (and send ${amount} ${symbol} to)` : ''}:`\n const isDelegateCall = tx.operation === Operation.DELEGATE && showDelegateCallWarning\n const isSpendingLimitMethod = isSetAllowance(tx.dataDecoded?.method) || isDeleteAllowance(tx.dataDecoded?.method)\n\n return (\n \n } className={accordionCss.accordion}>\n
\n \n {actionTitle}\n \n {name ? name + ': ' : ''}\n {method || 'native transfer'}\n \n
\n
\n\n \n {/* We always warn of nested delegate calls */}\n {isDelegateCall && }\n {!isSpendingLimitMethod && (\n \n \n \n )}\n {details}\n \n
\n )\n}\n\nexport default SingleTxDecoded\n","import { HexEncodedData } from '@/components/transactions/HexEncodedData'\nimport { Operation } from '@safe-global/safe-gateway-typescript-sdk'\nimport type { TransactionData } from '@safe-global/safe-gateway-typescript-sdk'\nimport { useState, useEffect } from 'react'\nimport type { Dispatch, ReactElement, SetStateAction } from 'react'\nimport type { AccordionProps } from '@mui/material/Accordion/Accordion'\nimport SingleTxDecoded from '@/components/transactions/TxDetails/TxData/DecodedData/SingleTxDecoded'\nimport { Button, Divider, Stack } from '@mui/material'\nimport css from './styles.module.css'\nimport classnames from 'classnames'\n\ntype MultisendProps = {\n txData?: TransactionData\n showDelegateCallWarning?: boolean\n compact?: boolean\n}\n\nexport const MultisendActionsHeader = ({\n setOpen,\n amount,\n compact = false,\n title = 'All actions',\n}: {\n setOpen: Dispatch | undefined>>\n amount: number\n compact?: boolean\n title?: string\n}) => {\n const onClickAll = (expanded: boolean) => () => {\n setOpen(Array(amount).fill(expanded))\n }\n\n return (\n
\n {title}\n }>\n \n \n \n
\n )\n}\n\nexport const Multisend = ({\n txData,\n showDelegateCallWarning = true,\n compact = false,\n}: MultisendProps): ReactElement | null => {\n const [openMap, setOpenMap] = useState>()\n const isOpenMapUndefined = openMap == null\n\n // multiSend method receives one parameter `transactions`\n const multiSendTransactions = txData?.dataDecoded?.parameters?.[0].valueDecoded\n\n useEffect(() => {\n // Initialise whether each transaction should be expanded or not\n if (isOpenMapUndefined && multiSendTransactions) {\n setOpenMap(\n multiSendTransactions.map(({ operation }) => {\n return showDelegateCallWarning ? operation === Operation.DELEGATE : false\n }),\n )\n }\n }, [multiSendTransactions, isOpenMapUndefined, showDelegateCallWarning])\n\n if (!txData) return null\n\n // ? when can a multiSend call take no parameters?\n if (!txData.dataDecoded?.parameters) {\n if (txData.hexData) {\n return \n }\n return null\n }\n\n if (!multiSendTransactions) {\n return null\n }\n\n return (\n <>\n \n\n
\n {multiSendTransactions.map(({ dataDecoded, data, value, to, operation }, index) => {\n const onChange: AccordionProps['onChange'] = (_, expanded) => {\n setOpenMap((prev) => ({\n ...prev,\n [index]: expanded,\n }))\n }\n\n return (\n \n )\n })}\n
\n \n )\n}\n\nexport default Multisend\n","import type { ReactElement } from 'react'\nimport { Alert, SvgIcon, Tooltip } from '@mui/material'\nimport type { AlertColor } from '@mui/material'\n\nimport InfoOutlinedIcon from '@/public/images/notifications/info.svg'\nimport css from './styles.module.css'\nimport ExternalLink from '@/components/common/ExternalLink'\nimport { HelpCenterArticle } from '@/config/constants'\n\nconst Warning = ({\n datatestid,\n title,\n text,\n severity,\n}: {\n datatestid?: String\n title: string | ReactElement\n text: string\n severity: AlertColor\n}): ReactElement => {\n return (\n \n `3px solid ${palette[severity].main} !important` }}\n severity={severity}\n icon={}\n >\n {text}\n \n \n )\n}\n\nexport const DelegateCallWarning = ({ showWarning }: { showWarning: boolean }): ReactElement => {\n const severity = showWarning ? 'warning' : 'success'\n return (\n \n This transaction calls a smart contract that will be able to modify your Safe Account.\n {showWarning && (\n <>\n
\n Learn more\n \n )}\n \n }\n severity={severity}\n text={showWarning ? 'Unexpected delegate call' : 'Delegate call'}\n />\n )\n}\n\nexport const ApprovalWarning = ({ approvalTxCount }: { approvalTxCount: number }): ReactElement => (\n 1 ? 's' : ''}`} />\n)\n\nexport const ThresholdWarning = (): ReactElement => (\n \n)\n\nexport const UnsignedWarning = (): ReactElement => (\n \n)\n","import { createContext, useState, useEffect } from 'react'\nimport type { Dispatch, ReactNode, SetStateAction, ReactElement } from 'react'\nimport type { SafeTransaction } from '@safe-global/safe-core-sdk-types'\nimport { createTx } from '@/services/tx/tx-sender'\nimport { useRecommendedNonce, useSafeTxGas } from '../tx/SignOrExecuteForm/hooks'\nimport { Errors, logError } from '@/services/exceptions'\nimport type { EIP712TypedData } from '@safe-global/safe-gateway-typescript-sdk'\n\nexport const SafeTxContext = createContext<{\n safeTx?: SafeTransaction\n setSafeTx: Dispatch>\n\n safeMessage?: EIP712TypedData\n setSafeMessage: Dispatch>\n\n safeTxError?: Error\n setSafeTxError: Dispatch>\n\n nonce?: number\n setNonce: Dispatch>\n nonceNeeded?: boolean\n setNonceNeeded: Dispatch>\n\n safeTxGas?: string\n setSafeTxGas: Dispatch>\n\n recommendedNonce?: number\n}>({\n setSafeTx: () => {},\n setSafeMessage: () => {},\n setSafeTxError: () => {},\n setNonce: () => {},\n setNonceNeeded: () => {},\n setSafeTxGas: () => {},\n})\n\nconst SafeTxProvider = ({ children }: { children: ReactNode }): ReactElement => {\n const [safeTx, setSafeTx] = useState()\n const [safeMessage, setSafeMessage] = useState()\n const [safeTxError, setSafeTxError] = useState()\n const [nonce, setNonce] = useState()\n const [nonceNeeded, setNonceNeeded] = useState(true)\n const [safeTxGas, setSafeTxGas] = useState()\n\n // Signed txs cannot be updated\n const isSigned = safeTx && safeTx.signatures.size > 0\n\n // Recommended nonce and safeTxGas\n const recommendedNonce = useRecommendedNonce()\n const recommendedSafeTxGas = useSafeTxGas(safeTx)\n\n // Priority to external nonce, then to the recommended one\n const finalNonce = isSigned ? safeTx?.data.nonce : nonce ?? recommendedNonce ?? safeTx?.data.nonce\n const finalSafeTxGas = isSigned ? safeTx?.data.safeTxGas : safeTxGas ?? recommendedSafeTxGas ?? safeTx?.data.safeTxGas\n\n // Update the tx when the nonce or safeTxGas change\n useEffect(() => {\n if (isSigned || !safeTx?.data) return\n if (safeTx.data.nonce === finalNonce && safeTx.data.safeTxGas === finalSafeTxGas) return\n\n createTx({ ...safeTx.data, safeTxGas: finalSafeTxGas }, finalNonce)\n .then(setSafeTx)\n .catch(setSafeTxError)\n }, [isSigned, finalNonce, finalSafeTxGas, safeTx?.data])\n\n // Log errors\n useEffect(() => {\n safeTxError && logError(Errors._103, safeTxError)\n }, [safeTxError])\n\n return (\n \n {children}\n \n )\n}\n\nexport default SafeTxProvider\n","import { type ReactElement, type ReactNode, type SyntheticEvent, useState } from 'react'\nimport { Link, Typography, SvgIcon } from '@mui/material'\nimport classNames from 'classnames'\nimport WarningIcon from '@/public/images/notifications/warning.svg'\nimport InfoIcon from '@/public/images/notifications/info.svg'\nimport css from './styles.module.css'\n\nconst ErrorMessage = ({\n children,\n error,\n className,\n level = 'error',\n}: {\n children: ReactNode\n error?: Error & { reason?: string }\n className?: string\n level?: 'error' | 'warning' | 'info'\n}): ReactElement => {\n const [showDetails, setShowDetails] = useState(false)\n\n const onDetailsToggle = (e: SyntheticEvent) => {\n e.preventDefault()\n setShowDetails((prev) => !prev)\n }\n\n return (\n
\n
\n `${palette[level].main} !important` }}\n />\n\n
\n \n {children}\n\n {error && (\n \n Details\n \n )}\n \n\n {error && showDetails && (\n \n {error.reason || error.message.slice(0, 300)}\n \n )}\n
\n
\n
\n )\n}\n\nexport default ErrorMessage\n","import {\n Operation,\n postSafeGasEstimation,\n type SafeTransactionEstimation,\n} from '@safe-global/safe-gateway-typescript-sdk'\nimport type { MetaTransactionData, SafeTransactionDataPartial } from '@safe-global/safe-core-sdk-types'\nimport { isLegacyVersion } from '@/hooks/coreSDK/safeCoreSDK'\nimport { Errors, logError } from '@/services/exceptions'\n\nconst fetchRecommendedParams = async (\n chainId: string,\n safeAddress: string,\n txParams: MetaTransactionData,\n): Promise => {\n return postSafeGasEstimation(chainId, safeAddress, {\n to: txParams.to,\n value: txParams.value,\n data: txParams.data,\n operation: (txParams.operation as unknown as Operation) || Operation.CALL,\n })\n}\n\nexport const getSafeTxGas = async (\n chainId: string,\n safeAddress: string,\n safeVersion: string,\n safeTxData: SafeTransactionDataPartial,\n): Promise => {\n const isSafeTxGasRequired = isLegacyVersion(safeVersion)\n\n // For 1.3.0+ Safes safeTxGas is not required\n if (!isSafeTxGasRequired) return '0'\n\n try {\n const estimation = await fetchRecommendedParams(chainId, safeAddress, safeTxData)\n return estimation.safeTxGas\n } catch (e) {\n logError(Errors._616, e)\n }\n}\n","import { useMemo } from 'react'\nimport { type TransactionOptions, type SafeTransaction } from '@safe-global/safe-core-sdk-types'\nimport { sameString } from '@safe-global/protocol-kit/dist/src/utils'\nimport useSafeInfo from '@/hooks/useSafeInfo'\nimport useWallet from '@/hooks/wallets/useWallet'\nimport useOnboard from '@/hooks/wallets/useOnboard'\nimport { isSmartContractWallet } from '@/utils/wallets'\nimport { dispatchOnChainSigning, dispatchTxExecution, dispatchTxSigning } from '@/services/tx/tx-sender'\nimport { useHasPendingTxs } from '@/hooks/usePendingTxs'\nimport type { ConnectedWallet } from '@/hooks/wallets/useOnboard'\nimport type { OnboardAPI } from '@web3-onboard/core'\nimport { getSafeTxGas } from '@/services/tx/tx-sender/recommendedNonce'\nimport useAsync from '@/hooks/useAsync'\nimport { type TransactionDetails } from '@safe-global/safe-gateway-typescript-sdk'\nimport { useAddOrUpdateTx } from '@/hooks/useMagicLink'\nimport { txDispatch, TxEvent } from '@/services/tx/txEvents'\nimport { extractTxDetails } from '@/services/tx/extractTxInfo'\nimport { useSafeSDK } from '@/hooks/coreSDK/safeCoreSDK'\nimport useTxQueue from '@/hooks/useTxQueue'\n\ntype TxActions = {\n signTx: (safeTx?: SafeTransaction, txId?: string, origin?: string) => Promise\n executeTx: (\n txOptions: TransactionOptions,\n safeTx?: SafeTransaction,\n txId?: string,\n origin?: string,\n ) => Promise\n}\n\nfunction assertTx(safeTx: SafeTransaction | undefined): asserts safeTx {\n if (!safeTx) throw new Error('Transaction not provided')\n}\nfunction assertWallet(wallet: ConnectedWallet | null): asserts wallet {\n if (!wallet) throw new Error('Wallet not connected')\n}\nfunction assertOnboard(onboard: OnboardAPI | undefined): asserts onboard {\n if (!onboard) throw new Error('Onboard not connected')\n}\n\nexport const useTxActions = (): TxActions => {\n const { safe } = useSafeInfo()\n const onboard = useOnboard()\n const wallet = useWallet()\n const addOrUpdateTx = useAddOrUpdateTx()\n\n return useMemo(() => {\n const safeAddress = safe.address.value\n const { chainId, version } = safe\n\n /**\n * Propose a transaction\n * If txId is passed, it's an existing tx being signed\n */\n const proposeTx = async (sender: string, safeTx: SafeTransaction, txId?: string): Promise => {\n const txKey = await addOrUpdateTx(safeTx)\n if (!txKey) throw new Error('Failed to propose tx')\n\n const proposedTxId = `multisig_${safe.address.value}_${txKey}`\n\n // Dispatch a success event only if the tx is signed\n // Unsigned txs are proposed only temporarily and won't appear in the queue\n if (safeTx.signatures.size > 0) {\n txDispatch(txId ? TxEvent.SIGNATURE_PROPOSED : TxEvent.PROPOSED, {\n txId: proposedTxId,\n signerAddress: txId ? sender : undefined,\n })\n }\n\n return await extractTxDetails(safeAddress, safeTx, safe, proposedTxId)\n }\n\n const signTx: TxActions['signTx'] = async (safeTx, txId) => {\n assertTx(safeTx)\n assertWallet(wallet)\n assertOnboard(onboard)\n\n // Smart contract wallets must sign via an on-chain tx\n if (await isSmartContractWallet(wallet.chainId, wallet.address)) {\n // If the first signature is a smart contract wallet, we have to propose w/o signatures\n // Otherwise the backend won't pick up the tx\n // The signature will be added once the on-chain signature is indexed\n const id = txId || (await proposeTx(wallet.address, safeTx, txId)).txId\n await dispatchOnChainSigning(safeTx, id, onboard, chainId)\n return id\n }\n\n // Otherwise, sign off-chain\n const signedTx = await dispatchTxSigning(safeTx, version, onboard, chainId, txId)\n const tx = await proposeTx(wallet.address, signedTx, txId)\n return tx.txId\n }\n\n const executeTx: TxActions['executeTx'] = async (txOptions, safeTx, txId) => {\n assertTx(safeTx)\n assertWallet(wallet)\n assertOnboard(onboard)\n\n let tx: TransactionDetails | undefined\n\n // Propose the tx if there's no id yet (\"immediate execution\")\n if (!txId) {\n tx = await proposeTx(wallet.address, safeTx, txId)\n txId = tx.txId\n }\n\n // Execute the tx via connected wallet\n await dispatchTxExecution(safeTx, txOptions, txId, onboard, chainId, safeAddress)\n\n return txId\n }\n\n return { signTx, executeTx }\n }, [safe, onboard, wallet, addOrUpdateTx])\n}\n\nexport const useValidateNonce = (safeTx: SafeTransaction | undefined): boolean => {\n const { safe } = useSafeInfo()\n return !!safeTx && safeTx?.data.nonce === safe.nonce\n}\n\nexport const useImmediatelyExecutable = (): boolean => {\n const { safe } = useSafeInfo()\n const hasPending = useHasPendingTxs()\n return safe.threshold === 1 && !hasPending\n}\n\n// Check if the executor is the safe itself (it won't work)\nexport const useIsExecutionLoop = (): boolean => {\n const wallet = useWallet()\n const { safeAddress } = useSafeInfo()\n return wallet ? sameString(wallet.address, safeAddress) : false\n}\n\nexport const useRecommendedNonce = (): number | undefined => {\n const sdk = useSafeSDK()\n const { data } = useTxQueue()\n\n const lastNonce = useMemo(() => {\n return data.length > 0 ? data[data.length - 1].details.detailedExecutionInfo.nonce : undefined\n }, [data])\n\n const [recommendedNonce] = useAsync(\n async () => {\n if (!sdk) return\n\n let recommendedNonce = await sdk.getNonce()\n\n if (lastNonce === undefined) return recommendedNonce\n\n if (recommendedNonce > lastNonce) return recommendedNonce\n\n return lastNonce + 1\n },\n [sdk, lastNonce],\n false, // keep old recommended nonce while refreshing to avoid skeleton\n )\n\n return recommendedNonce\n}\n\nexport const useSafeTxGas = (safeTx: SafeTransaction | undefined): string | undefined => {\n const { safeAddress, safe } = useSafeInfo()\n\n // Memoize only the necessary params so that the useAsync hook is not called every time safeTx changes\n const safeTxParams = useMemo(() => {\n return !safeTx?.data?.to\n ? undefined\n : {\n to: safeTx?.data.to,\n value: safeTx?.data?.value,\n data: safeTx?.data?.data,\n operation: safeTx?.data?.operation,\n }\n }, [safeTx?.data.to, safeTx?.data.value, safeTx?.data.data, safeTx?.data.operation])\n\n const [safeTxGas] = useAsync(() => {\n if (!safe.chainId || !safeAddress || !safeTxParams || !safe.version) return\n\n return getSafeTxGas(safe.chainId, safeAddress, safe.version, safeTxParams)\n }, [safeAddress, safe.chainId, safe.version, safeTxParams])\n\n return safeTxGas\n}\n\nexport const useAlreadySigned = (safeTx: SafeTransaction | undefined): boolean => {\n const wallet = useWallet()\n const hasSigned =\n safeTx && wallet && (safeTx.signatures.has(wallet.address.toLowerCase()) || safeTx.signatures.has(wallet.address))\n return Boolean(hasSigned)\n}\n","import { type TransactionSummary } from '@safe-global/safe-gateway-typescript-sdk'\nimport { useAppSelector } from '@/store'\nimport { selectPendingTxIdsBySafe } from '@/store/pendingTxsSlice'\nimport useSafeInfo from './useSafeInfo'\n\nconst usePendingTxIds = (): Array => {\n const { safe, safeAddress } = useSafeInfo()\n const { chainId } = safe\n return useAppSelector((state) => selectPendingTxIdsBySafe(state, chainId, safeAddress))\n}\n\nexport const useHasPendingTxs = (): boolean => {\n const pendingIds = usePendingTxIds()\n return pendingIds.length > 0\n}\n","import { useMemo } from 'react'\nimport {\n SettingsInfoType,\n TransactionInfoType,\n type AddressEx,\n type TransactionSummary,\n} from '@safe-global/safe-gateway-typescript-sdk'\n\nimport { isCancellationTxInfo, isModuleExecutionInfo, isOutgoingTransfer, isTxQueued } from '@/utils/transaction-guards'\nimport useAddressBook from './useAddressBook'\nimport type { AddressBook } from '@/store/addressBookSlice'\n\nconst getTxTo = ({ txInfo }: Pick): AddressEx | undefined => {\n switch (txInfo.type) {\n case TransactionInfoType.CREATION: {\n return txInfo.factory\n }\n case TransactionInfoType.TRANSFER: {\n return txInfo.recipient\n }\n case TransactionInfoType.SETTINGS_CHANGE: {\n return undefined\n }\n case TransactionInfoType.CUSTOM: {\n return txInfo.to\n }\n }\n}\n\ntype TxType = {\n icon: string\n text: string\n}\n\nexport const getTransactionType = (tx: TransactionSummary, addressBook: AddressBook): TxType => {\n const toAddress = getTxTo(tx)\n const addressBookName = toAddress?.value ? addressBook[toAddress.value] : undefined\n\n switch (tx.txInfo.type) {\n case TransactionInfoType.CREATION: {\n return {\n icon: toAddress?.logoUri || '/images/transactions/settings.svg',\n text: 'Safe Account created',\n }\n }\n case TransactionInfoType.TRANSFER: {\n const isSendTx = isOutgoingTransfer(tx.txInfo)\n\n return {\n icon: isSendTx ? '/images/transactions/outgoing.svg' : '/images/transactions/incoming.svg',\n text: isSendTx ? (isTxQueued(tx.txStatus) ? 'Send' : 'Sent') : 'Received',\n }\n }\n case TransactionInfoType.SETTINGS_CHANGE: {\n // deleteGuard doesn't exist in Solidity\n // It is decoded as 'setGuard' with a settingsInfo.type of 'DELETE_GUARD'\n const isDeleteGuard = tx.txInfo.settingsInfo?.type === SettingsInfoType.DELETE_GUARD\n\n return {\n icon: '/images/transactions/settings.svg',\n text: isDeleteGuard ? 'deleteGuard' : tx.txInfo.dataDecoded.method,\n }\n }\n case TransactionInfoType.CUSTOM: {\n if (isModuleExecutionInfo(tx.executionInfo)) {\n return {\n icon: toAddress?.logoUri || '/images/transactions/custom.svg',\n text: toAddress?.name || 'Contract interaction',\n }\n }\n\n if (isCancellationTxInfo(tx.txInfo)) {\n return {\n icon: '/images/transactions/circle-cross-red.svg',\n text: 'On-chain rejection',\n }\n }\n\n if (tx.safeAppInfo) {\n return {\n icon: tx.safeAppInfo.logoUri,\n text: tx.safeAppInfo.name,\n }\n }\n\n if (tx.txInfo.to.value === '0x') {\n return {\n icon: toAddress?.logoUri || '/images/transactions/custom.svg',\n text: 'Unknown contract interaction',\n }\n }\n\n return {\n icon: toAddress?.logoUri || '/images/transactions/custom.svg',\n text: addressBookName || toAddress?.name || 'Contract interaction',\n }\n }\n default: {\n return {\n icon: '/images/transactions/custom.svg',\n text: addressBookName || 'Contract interaction',\n }\n }\n }\n}\n\nexport const useTransactionType = (tx: TransactionSummary): TxType => {\n const addressBook = useAddressBook()\n\n return useMemo(() => {\n return getTransactionType(tx, addressBook)\n }, [tx, addressBook])\n}\n","import type { TransactionDetails } from '@/utils/transaction-guards'\nimport type { AddOwnerTxParams, RemoveOwnerTxParams, SwapOwnerTxParams } from '@safe-global/protocol-kit'\nimport type { MetaTransactionData, SafeTransaction, SafeTransactionDataPartial } from '@safe-global/safe-core-sdk-types'\nimport extractTxInfo from '../extractTxInfo'\nimport { getAndValidateSafeSDK } from './sdk'\n\n/**\n * Create a transaction from raw params\n */\nexport const createTx = async (txParams: SafeTransactionDataPartial, nonce?: number): Promise => {\n if (nonce !== undefined) txParams = { ...txParams, nonce }\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createTransaction({ safeTransactionData: txParams })\n}\n\n/**\n * Create a multiSendCallOnly transaction from an array of MetaTransactionData and options\n * If only one tx is passed it will be created without multiSend and without onlyCalls.\n */\nexport const createMultiSendCallOnlyTx = async (txParams: MetaTransactionData[]): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createTransaction({ safeTransactionData: txParams, onlyCalls: true })\n}\n\nexport const createRemoveOwnerTx = async (txParams: RemoveOwnerTxParams): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createRemoveOwnerTx(txParams)\n}\n\nexport const createAddOwnerTx = async (txParams: AddOwnerTxParams): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createAddOwnerTx(txParams)\n}\n\nexport const createSwapOwnerTx = async (txParams: SwapOwnerTxParams): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createSwapOwnerTx(txParams)\n}\n\nexport const createUpdateThresholdTx = async (threshold: number): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createChangeThresholdTx(threshold)\n}\n\nexport const createRemoveModuleTx = async (moduleAddress: string): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createDisableModuleTx(moduleAddress)\n}\n\nexport const createRemoveGuardTx = async (): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createDisableGuardTx()\n}\n\n/**\n * Create a rejection tx\n */\nexport const createRejectTx = async (nonce: number): Promise => {\n const safeSDK = getAndValidateSafeSDK()\n return safeSDK.createRejectionTransaction(nonce)\n}\n\n/**\n * Prepare a SafeTransaction from Client Gateway / Tx Queue\n */\nexport const createExistingTx = async (\n safeAddress: string,\n txDetails: TransactionDetails,\n): Promise => {\n // Convert them to the Core SDK tx params\n const { txParams, signatures } = extractTxInfo(txDetails, safeAddress)\n\n // Create a tx and add pre-approved signatures\n const safeTx = await createTx(txParams, txParams.nonce)\n Object.entries(signatures).forEach(([signer, data]) => {\n safeTx.addSignature({ signer, data, staticPart: () => data, dynamicPart: () => '' })\n })\n\n return safeTx\n}\n","import type { SafeInfo, TransactionDetails } from '@safe-global/safe-gateway-typescript-sdk'\nimport type { SafeTransaction, TransactionOptions, TransactionResult } from '@safe-global/safe-core-sdk-types'\nimport type { EthersError } from '@/utils/ethers-utils'\nimport { didReprice, didRevert } from '@/utils/ethers-utils'\nimport type { MultiSendCallOnlyEthersContract } from '@safe-global/protocol-kit'\n// import type MultiSendCallOnlyEthersContract from '@safe-global/safe-ethers-lib/dist/src/contracts/MultiSendCallOnly/MultiSendCallOnlyEthersContract'\nimport { type SpendingLimitTxParams } from '@/components/tx-flow/flows/TokenTransfer/ReviewSpendingLimitTx'\nimport { getSpendingLimitContract } from '@/services/contracts/spendingLimitContracts'\nimport type { ContractTransaction, PayableOverrides } from 'ethers'\nimport type { RequestId } from '@safe-global/safe-apps-sdk'\nimport { txDispatch, TxEvent } from '../txEvents'\nimport { getSafeSDKWithSigner, getUncheckedSafeSDK, assertWalletChain, tryOffChainTxSigning } from './sdk'\nimport { createWeb3 } from '@/hooks/wallets/web3'\nimport { type OnboardAPI } from '@web3-onboard/core'\nimport { asError } from '@/services/exceptions/utils'\nimport type { EternalSafeTransaction } from '@/store/addedTxsSlice'\n\n/**\n * Sign a transaction\n */\nexport const dispatchTxSigning = async (\n safeTx: SafeTransaction,\n safeVersion: SafeInfo['version'],\n onboard: OnboardAPI,\n chainId: SafeInfo['chainId'],\n txId?: string,\n): Promise => {\n const sdk = await getSafeSDKWithSigner(onboard, chainId)\n\n let signedTx: EternalSafeTransaction | SafeTransaction | undefined\n try {\n signedTx = await tryOffChainTxSigning(safeTx, safeVersion, sdk)\n } catch (error) {\n txDispatch(TxEvent.SIGN_FAILED, {\n txId,\n error: asError(error),\n })\n throw error\n }\n\n txDispatch(TxEvent.SIGNED, { txId })\n\n return signedTx\n}\n\n/**\n * On-Chain sign a transaction\n */\nexport const dispatchOnChainSigning = async (\n safeTx: SafeTransaction,\n txId: string,\n onboard: OnboardAPI,\n chainId: SafeInfo['chainId'],\n) => {\n const sdkUnchecked = await getUncheckedSafeSDK(onboard, chainId)\n const safeTxHash = await sdkUnchecked.getTransactionHash(safeTx)\n const eventParams = { txId }\n\n try {\n // With the unchecked signer, the contract call resolves once the tx\n // has been submitted in the wallet not when it has been executed\n await sdkUnchecked.approveTransactionHash(safeTxHash)\n txDispatch(TxEvent.ONCHAIN_SIGNATURE_REQUESTED, eventParams)\n } catch (err) {\n txDispatch(TxEvent.FAILED, { ...eventParams, error: asError(err) })\n throw err\n }\n\n txDispatch(TxEvent.ONCHAIN_SIGNATURE_SUCCESS, eventParams)\n\n // Until the on-chain signature is/has been executed, the safeTx is not\n // signed so we don't return it\n}\n\n/**\n * Execute a transaction\n */\nexport const dispatchTxExecution = async (\n safeTx: SafeTransaction,\n txOptions: TransactionOptions,\n txId: string,\n onboard: OnboardAPI,\n chainId: SafeInfo['chainId'],\n safeAddress: string,\n): Promise => {\n const sdkUnchecked = await getUncheckedSafeSDK(onboard, chainId)\n const eventParams = { txId }\n\n // Execute the tx\n let result: TransactionResult | undefined\n try {\n result = await sdkUnchecked.executeTransaction(safeTx, txOptions)\n txDispatch(TxEvent.EXECUTING, eventParams)\n } catch (error) {\n txDispatch(TxEvent.FAILED, { ...eventParams, error: asError(error) })\n throw error\n }\n\n txDispatch(TxEvent.PROCESSING, { ...eventParams, txHash: result.hash })\n\n // Asynchronously watch the tx to be mined/validated\n result.transactionResponse\n ?.wait()\n .then((receipt) => {\n if (didRevert(receipt)) {\n txDispatch(TxEvent.REVERTED, { ...eventParams, error: new Error('Transaction reverted by EVM') })\n } else {\n txDispatch(TxEvent.PROCESSED, { ...eventParams, safeAddress })\n }\n })\n .catch((err) => {\n const error = err as EthersError\n\n if (didReprice(error)) {\n txDispatch(TxEvent.PROCESSED, { ...eventParams, safeAddress })\n } else {\n txDispatch(TxEvent.FAILED, { ...eventParams, error: asError(error) })\n }\n })\n\n return result.hash\n}\n\nexport const dispatchBatchExecution = async (\n txs: TransactionDetails[],\n multiSendContract: MultiSendCallOnlyEthersContract,\n multiSendTxData: string,\n onboard: OnboardAPI,\n chainId: SafeInfo['chainId'],\n safeAddress: string,\n overrides?: PayableOverrides,\n) => {\n const groupKey = multiSendTxData\n\n let result: TransactionResult | undefined\n\n try {\n const wallet = await assertWalletChain(onboard, chainId)\n\n const provider = createWeb3(wallet.provider)\n result = await multiSendContract.contract.connect(provider.getSigner()).multiSend(multiSendTxData, overrides)\n\n txs.forEach(({ txId }) => {\n txDispatch(TxEvent.EXECUTING, { txId, groupKey })\n })\n } catch (err) {\n txs.forEach(({ txId }) => {\n txDispatch(TxEvent.FAILED, { txId, error: asError(err), groupKey })\n })\n throw err\n }\n\n txs.forEach(({ txId }) => {\n txDispatch(TxEvent.PROCESSING, { txId, txHash: result!.hash, groupKey })\n })\n\n result!.transactionResponse\n ?.wait()\n .then((receipt) => {\n if (didRevert(receipt)) {\n txs.forEach(({ txId }) => {\n txDispatch(TxEvent.REVERTED, {\n txId,\n error: new Error('Transaction reverted by EVM'),\n groupKey,\n })\n })\n } else {\n txs.forEach(({ txId }) => {\n txDispatch(TxEvent.PROCESSED, {\n txId,\n groupKey,\n safeAddress,\n })\n })\n }\n })\n .catch((err) => {\n const error = err as EthersError\n\n if (didReprice(error)) {\n txs.forEach(({ txId }) => {\n txDispatch(TxEvent.PROCESSED, {\n txId,\n safeAddress,\n })\n })\n } else {\n txs.forEach(({ txId }) => {\n txDispatch(TxEvent.FAILED, {\n txId,\n error: asError(err),\n groupKey,\n })\n })\n }\n })\n\n return result!.hash\n}\n\nexport const dispatchSpendingLimitTxExecution = async (\n txParams: SpendingLimitTxParams,\n txOptions: TransactionOptions,\n onboard: OnboardAPI,\n chainId: SafeInfo['chainId'],\n safeAddress: string,\n) => {\n const id = JSON.stringify(txParams)\n\n let result: ContractTransaction | undefined\n try {\n const wallet = await assertWalletChain(onboard, chainId)\n const provider = createWeb3(wallet.provider)\n const contract = getSpendingLimitContract(chainId, provider.getSigner())\n\n result = await contract.executeAllowanceTransfer(\n txParams.safeAddress,\n txParams.token,\n txParams.to,\n txParams.amount,\n txParams.paymentToken,\n txParams.payment,\n txParams.delegate,\n txParams.signature,\n txOptions,\n )\n txDispatch(TxEvent.EXECUTING, { groupKey: id })\n } catch (error) {\n txDispatch(TxEvent.FAILED, { groupKey: id, error: asError(error) })\n throw error\n }\n\n txDispatch(TxEvent.PROCESSING_MODULE, {\n groupKey: id,\n txHash: result.hash,\n })\n\n result\n ?.wait()\n .then((receipt) => {\n if (didRevert(receipt)) {\n txDispatch(TxEvent.REVERTED, {\n groupKey: id,\n error: new Error('Transaction reverted by EVM'),\n })\n } else {\n txDispatch(TxEvent.PROCESSED, { groupKey: id, safeAddress })\n }\n })\n .catch((error) => {\n txDispatch(TxEvent.FAILED, { groupKey: id, error: asError(error) })\n })\n\n return result?.hash\n}\n\nexport const dispatchSafeAppsTx = async (\n safeTx: SafeTransaction,\n safeAppRequestId: RequestId,\n onboard: OnboardAPI,\n chainId: SafeInfo['chainId'],\n txId?: string,\n): Promise => {\n const sdk = await getSafeSDKWithSigner(onboard, chainId)\n const safeTxHash = await sdk.getTransactionHash(safeTx)\n txDispatch(TxEvent.SAFE_APPS_REQUEST, { safeAppRequestId, safeTxHash, txId })\n return safeTxHash\n}\n","import type { MetaTransactionData } from '@safe-global/safe-core-sdk-types'\nimport { getSpendingLimitInterface } from '@/services/contracts/spendingLimitContracts'\n\nexport const createAddDelegateTx = (delegate: string, spendingLimitAddress: string): MetaTransactionData => {\n const spendingLimitInterface = getSpendingLimitInterface()\n\n const data = spendingLimitInterface.encodeFunctionData('addDelegate', [delegate])\n\n return {\n to: spendingLimitAddress,\n value: '0',\n data,\n }\n}\n\nexport const createResetAllowanceTx = (\n delegate: string,\n tokenAddress: string,\n spendingLimitAddress: string,\n): MetaTransactionData => {\n const spendingLimitInterface = getSpendingLimitInterface()\n\n const data = spendingLimitInterface.encodeFunctionData('resetAllowance', [delegate, tokenAddress])\n\n return {\n to: spendingLimitAddress,\n value: '0',\n data,\n }\n}\n\nexport const createSetAllowanceTx = (\n delegate: string,\n tokenAddress: string,\n amountInWei: string,\n resetTimeMin: number,\n resetBaseMin: number,\n spendingLimitAddress: string,\n) => {\n const spendingLimitInterface = getSpendingLimitInterface()\n\n const data = spendingLimitInterface.encodeFunctionData('setAllowance', [\n delegate,\n tokenAddress,\n amountInWei,\n resetTimeMin,\n resetBaseMin,\n ])\n\n return {\n to: spendingLimitAddress,\n value: '0',\n data,\n }\n}\n","import type { SpendingLimitState } from '@/store/spendingLimitsSlice'\nimport { getSafeSDK } from '@/hooks/coreSDK/safeCoreSDK'\nimport { getSpendingLimitModuleAddress } from '@/services/contracts/spendingLimitContracts'\nimport type { MetaTransactionData } from '@safe-global/safe-core-sdk-types'\nimport { createAddDelegateTx, createResetAllowanceTx, createSetAllowanceTx } from '@/services/tx/spendingLimitParams'\nimport { parseUnits } from '@ethersproject/units'\nimport { currentMinutes } from '@/utils/date'\nimport { createMultiSendCallOnlyTx } from '@/services/tx/tx-sender/create'\n\nexport type NewSpendingLimitData = {\n beneficiary: string\n tokenAddress: string\n amount: string\n resetTime: string\n}\n\nexport const createNewSpendingLimitTx = async (\n data: NewSpendingLimitData,\n spendingLimits: SpendingLimitState[],\n chainId: string,\n tokenDecimals?: number,\n existingSpendingLimit?: SpendingLimitState,\n) => {\n const sdk = getSafeSDK()\n const spendingLimitAddress = getSpendingLimitModuleAddress(chainId)\n if (!spendingLimitAddress || !sdk) return\n\n const txs: MetaTransactionData[] = []\n\n const isSpendingLimitEnabled = await sdk.isModuleEnabled(spendingLimitAddress)\n if (!isSpendingLimitEnabled) {\n const enableModuleTx = await sdk.createEnableModuleTx(spendingLimitAddress)\n\n const tx = {\n to: enableModuleTx.data.to,\n value: '0',\n data: enableModuleTx.data.data,\n }\n txs.push(tx)\n }\n\n const existingDelegate = spendingLimits.find((spendingLimit) => spendingLimit.beneficiary === data.beneficiary)\n if (!existingDelegate) {\n txs.push(createAddDelegateTx(data.beneficiary, spendingLimitAddress))\n }\n\n if (existingSpendingLimit && existingSpendingLimit.spent !== '0') {\n txs.push(createResetAllowanceTx(data.beneficiary, data.tokenAddress, spendingLimitAddress))\n }\n\n const tx = createSetAllowanceTx(\n data.beneficiary,\n data.tokenAddress,\n parseUnits(data.amount, tokenDecimals).toString(),\n parseInt(data.resetTime),\n data.resetTime !== '0' ? currentMinutes() - 30 : 0,\n spendingLimitAddress,\n )\n\n txs.push(tx)\n\n return createMultiSendCallOnlyTx(txs)\n}\n","export * from './create'\nexport * from './dispatch'\nexport * from './spendingLimit'\n","import { format, formatDistanceToNow, formatRelative } from 'date-fns'\n\nexport const currentMinutes = (): number => Math.floor(Date.now() / (1000 * 60))\n\nexport const relativeTime = (baseTimeMin: string, resetTimeMin: string): string => {\n if (resetTimeMin === '0') {\n return 'One-time'\n }\n\n const baseTimeSeconds = +baseTimeMin * 60\n const resetTimeSeconds = +resetTimeMin * 60\n const nextResetTimeMilliseconds = (baseTimeSeconds + resetTimeSeconds) * 1000\n\n return formatRelative(nextResetTimeMilliseconds, Date.now())\n}\n\nexport const formatWithSchema = (timestamp: number, schema: string): string => format(timestamp, schema)\n\nexport const formatTime = (timestamp: number): string => formatWithSchema(timestamp, 'h:mm a')\n\nexport const formatDateTime = (timestamp: number): string => formatWithSchema(timestamp, 'MMM d, yyyy - h:mm:ss a')\n\nexport const formatTimeInWords = (timestamp: number): string => formatDistanceToNow(timestamp, { addSuffix: true })\n\nexport function getCountdown(seconds: number): { days: number; hours: number; minutes: number } {\n const MINUTE_IN_SECONDS = 60\n const HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS\n const DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS\n\n const days = Math.floor(seconds / DAY_IN_SECONDS)\n\n const remainingSeconds = seconds % DAY_IN_SECONDS\n const hours = Math.floor(remainingSeconds / HOUR_IN_SECONDS)\n const minutes = Math.floor((remainingSeconds % HOUR_IN_SECONDS) / MINUTE_IN_SECONDS)\n\n return { days, hours, minutes }\n}\n\nexport function getPeriod(seconds: number): string | undefined {\n const { days, hours, minutes } = getCountdown(seconds)\n\n if (days > 0) {\n return `${days} day${days === 1 ? '' : 's'}`\n }\n\n if (hours > 0) {\n return `${hours} hour${hours === 1 ? '' : 's'}`\n }\n\n if (minutes > 0) {\n return `${minutes} minute${minutes === 1 ? '' : 's'}`\n }\n}\n","import { TransactionInfoType } from '@safe-global/safe-gateway-typescript-sdk'\nimport type { Transaction } from '@safe-global/safe-gateway-typescript-sdk'\n\nimport {\n type DetailedTransaction,\n isConflictHeaderListItem,\n isNoneConflictType,\n isTransactionListItem,\n type TransactionListItem,\n isDetailedTransactionListItem,\n} from '@/utils/transaction-guards'\nimport { sameAddress } from './addresses'\n\ntype GroupedTxs = Array>\n\n/**\n * Group txs by conflict header\n */\nexport const groupConflictingTxs = (list: TransactionListItem[]): GroupedTxs => {\n return list\n .reduce((resultItems, item) => {\n if (isConflictHeaderListItem(item)) {\n return resultItems.concat([[]])\n }\n\n const prevItem = resultItems[resultItems.length - 1]\n if (Array.isArray(prevItem) && isDetailedTransactionListItem(item) && !isNoneConflictType(item)) {\n prevItem.push(item)\n return resultItems\n }\n\n return resultItems.concat(item)\n }, [])\n .map((item) => {\n if (Array.isArray(item)) {\n return item.sort((a, b) => b.transaction.timestamp - a.transaction.timestamp)\n }\n return item\n })\n}\n\nexport function _getRecoveryCancellations(moduleAddress: string, transactions: Array) {\n const CANCELLATION_TX_METHOD_NAME = 'setTxNonce'\n\n return transactions.filter(({ transaction }) => {\n const { txInfo } = transaction\n return (\n txInfo.type === TransactionInfoType.CUSTOM &&\n sameAddress(txInfo.to.value, moduleAddress) &&\n txInfo.methodName === CANCELLATION_TX_METHOD_NAME\n )\n })\n}\n\nexport const getLatestTransactions = (list: TransactionListItem[] = []): Transaction[] => {\n return (\n groupConflictingTxs(list)\n // Get latest transaction if there are conflicting ones\n .map((group) => (Array.isArray(group) ? group[0] : group))\n .filter(isTransactionListItem)\n )\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image\":\"styles_image__bi1_f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"encodedData\":\"styles_encodedData__a0YR1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__6E2fW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"gridRow\":\"styles_gridRow__0mcCd\",\"title\":\"styles_title__laOne\",\"valueWrapper\":\"styles_valueWrapper__2a3II\",\"rawData\":\"styles_rawData__gwKSv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonExpand\":\"styles_buttonExpand__bXWOY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actionsHeader\":\"styles_actionsHeader__23ye8\",\"compactHeader\":\"styles_compactHeader__JJE7a\",\"divider\":\"styles_divider__G8atk\",\"compact\":\"styles_compact__ENEeY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"summary\":\"styles_summary__az4of\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"nestedWrapper\":\"styles_nestedWrapper__HLPd6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alert\":\"styles_alert__Pyfu8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__dNnqe\",\"error\":\"styles_error__s_zwE\",\"warning\":\"styles_warning__YdPx6\",\"info\":\"styles_info__tDwUU\",\"message\":\"styles_message__jVdC3\",\"details\":\"styles_details__CenK1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"accordion\":\"accordion_accordion__NXUGI\"};"],"names":["_formatNumber","value","trim","replace","startsWith","NumberField","forwardRef","param","ref","onChange","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","TextField","autoComplete","event","target","inputProps","displayName","__webpack_exports__","Z","logoUri","tokenSymbol","size","fallbackSrc","ImageFallback","src","alt","height","className","css","HexEncodedData","hexData","title","limit","showTxData","setShowTxData","useState","showExpandBtn","length","jsxs","Box","data-testid","span","b","Fragment","shortenText","Link","component","onClick","val","type","sx","verticalAlign","InfoDetails","datatestid","children","div","Typography","TxDataRow","undefined","generateDataRowValue","hasExplorer","addressInfo","customAvatar","EthHashInfo","address","name","showAvatar","showCopyButton","hexDataLength","CopyButton","text","wordBreak","Form","onSubmit","safeTxGas","setSafeTxGas","useContext","SafeTxContext","formMethods","useForm","defaultValues","mode","jsx_runtime","Paper","position","zIndex","p","ml","elevation","form","handleSubmit","values","style","display","autoFocus","error","formState","errors","width","register","valueAsNumber","min","setValueAs","Math","round","onBlur","setTimeout","Button","variant","TxDetails_SafeTxGasForm","safeTx","safe","useSafeInfo","isOldSafe","version","isLegacyVersion","isEditable","signatures","editing","setEditing","alignItems","gap","fontSize","TxDetails_Summary","confirmations","safeTxHash","baseGas","gasPrice","gasToken","refundReceiver","submittedAt","txDetails","defaultExpanded","expanded","setExpanded","txHash","detailedExecutionInfo","executedAt","txData","isMultisigDetailedExecutionInfo","dateString","Operation","operation","concat","toLowerCase","map","index","signature","PartialSummary","data","SafeTxGasForm","parseValue","Array","isArray","JSON","parse","e","Value","parsedValue","useMemo","isArrayParameter","isAddress","key","method","newProps","shortAddress","GenericValue","getTextValue","getArrayValue","parentId","separator","currentValue","hasSeparator","MethodDetails","addressInfoIndex","fontWeight","color","camelCaseToSpaces","parameters","isArrayValueParam","inlineType","isByte","addressEx","DecodedData_SingleTxDecoded","tx","details","actionTitle","showDelegateCallWarning","chain","useCurrentChain","dataDecoded","decimals","symbol","nativeCurrency","amount","formatVisualAmount","to","avatarUrl","Number","isDelegateCall","DELEGATE","isSpendingLimitMethod","isSetAllowance","isDeleteAllowance","Accordion","AccordionSummary","expandIcon","ExpandMoreIcon","accordionCss","CodeIcon","AccordionDetails","DelegateCallWarning","showWarning","trustedDelegateCallTarget","MultisendActionsHeader","setOpen","compact","onClickAll","fill","classnames","Stack","direction","divider","Divider","DecodedData_Multisend","openMap","setOpenMap","isOpenMapUndefined","multiSendTransactions","valueDecoded","useEffect","SingleTxDecoded","_","prev","Warning","severity","Tooltip","placement","arrow","Alert","borderLeft","palette","main","icon","SvgIcon","InfoOutlinedIcon","inheritViewBox","br","ExternalLink","href","HelpCenterArticle","UNEXPECTED_DELEGATE_CALL","ThresholdWarning","UnsignedWarning","createContext","setSafeTx","setSafeMessage","setSafeTxError","setNonce","setNonceNeeded","nonce","safeMessage","safeTxError","nonceNeeded","isSigned","recommendedNonce","useRecommendedNonce","recommendedSafeTxGas","useSafeTxGas","finalNonce","finalSafeTxGas","createTx","then","catch","logError","Errors","_103","Provider","level","showDetails","setShowDetails","classNames","InfoIcon","WarningIcon","preventDefault","reason","message","slice","fetchRecommendedParams","chainId","safeAddress","txParams","postSafeGasEstimation","CALL","getSafeTxGas","safeVersion","safeTxData","isSafeTxGasRequired","estimation","_616","assertTx","assertWallet","wallet","assertOnboard","onboard","useTxActions","useOnboard","useWallet","addOrUpdateTx","useAddOrUpdateTx","proposeTx","sender","txId","txKey","proposedTxId","txDispatch","TxEvent","SIGNATURE_PROPOSED","PROPOSED","signerAddress","extractTxDetails","signTx","isSmartContractWallet","id","dispatchOnChainSigning","signedTx","dispatchTxSigning","executeTx","txOptions","dispatchTxExecution","useValidateNonce","useImmediatelyExecutable","hasPending","useHasPendingTxs","threshold","useIsExecutionLoop","sameString","sdk","useSafeSDK","useTxQueue","lastNonce","useAsync","getNonce","safeTxParams","useAlreadySigned","hasSigned","has","Boolean","usePendingTxIds","useAppSelector","selectPendingTxIdsBySafe","state","pendingIds","getTxTo","txInfo","TransactionInfoType","CREATION","factory","TRANSFER","recipient","SETTINGS_CHANGE","CUSTOM","getTransactionType","addressBook","toAddress","addressBookName","isSendTx","isOutgoingTransfer","isTxQueued","txStatus","isDeleteGuard","settingsInfo","SettingsInfoType","DELETE_GUARD","isModuleExecutionInfo","executionInfo","isCancellationTxInfo","safeAppInfo","useTransactionType","useAddressBook","safeSDK","getAndValidateSafeSDK","createTransaction","safeTransactionData","createMultiSendCallOnlyTx","onlyCalls","createRemoveOwnerTx","createAddOwnerTx","createSwapOwnerTx","createUpdateThresholdTx","createChangeThresholdTx","createRemoveModuleTx","moduleAddress","createDisableModuleTx","createRemoveGuardTx","createDisableGuardTx","createRejectTx","createRejectionTransaction","createExistingTx","extractTxInfo","Object","entries","forEach","signer","addSignature","staticPart","dynamicPart","getSafeSDKWithSigner","tryOffChainTxSigning","SIGN_FAILED","asError","SIGNED","sdkUnchecked","getUncheckedSafeSDK","getTransactionHash","eventParams","approveTransactionHash","ONCHAIN_SIGNATURE_REQUESTED","err","FAILED","ONCHAIN_SIGNATURE_SUCCESS","result","executeTransaction","EXECUTING","PROCESSING","hash","transactionResponse","wait","didRevert","receipt","REVERTED","PROCESSED","didReprice","dispatchSpendingLimitTxExecution","stringify","assertWalletChain","provider","createWeb3","contract","getSpendingLimitContract","getSigner","executeAllowanceTransfer","token","paymentToken","payment","delegate","groupKey","PROCESSING_MODULE","createAddDelegateTx","spendingLimitAddress","spendingLimitInterface","getSpendingLimitInterface","encodeFunctionData","createResetAllowanceTx","tokenAddress","createSetAllowanceTx","amountInWei","resetTimeMin","resetBaseMin","createNewSpendingLimitTx","spendingLimits","tokenDecimals","existingSpendingLimit","getSafeSDK","getSpendingLimitModuleAddress","txs","isSpendingLimitEnabled","isModuleEnabled","enableModuleTx","createEnableModuleTx","push","existingDelegate","find","spendingLimit","beneficiary","spent","parseUnits","toString","parseInt","resetTime","currentMinutes","floor","Date","now","relativeTime","baseTimeMin","formatRelative","baseTimeSeconds","resetTimeSeconds","formatWithSchema","timestamp","schema","format","groupConflictingTxs","list","reduce","resultItems","item","isConflictHeaderListItem","prevItem","isDetailedTransactionListItem","isNoneConflictType","sort","a","transaction","getLatestTransactions","group","filter","isTransactionListItem","module","exports"],"sourceRoot":""}