diff --git a/components/BorrowForm.tsx b/components/BorrowForm.tsx index 3e28d47f..903f67ea 100644 --- a/components/BorrowForm.tsx +++ b/components/BorrowForm.tsx @@ -118,7 +118,7 @@ function BorrowForm({ onSuccess, token }: BorrowFormProps) { if (!mangoAccount || !group || !publicKey) return setSubmitting(true) try { - const tx = await client.tokenWithdraw( + const { signature: tx, slot } = await client.tokenWithdraw( group, mangoAccount, bank!.mint, @@ -130,7 +130,7 @@ function BorrowForm({ onSuccess, token }: BorrowFormProps) { type: 'success', txid: tx, }) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) actions.fetchWalletTokens(publicKey) setSubmitting(false) onSuccess() diff --git a/components/DepositForm.tsx b/components/DepositForm.tsx index ad5bf77e..a9897926 100644 --- a/components/DepositForm.tsx +++ b/components/DepositForm.tsx @@ -130,7 +130,7 @@ function DepositForm({ onSuccess, token }: DepositFormProps) { setSubmitting(true) try { - const tx = await client.tokenDeposit( + const { signature: tx, slot } = await client.tokenDeposit( group, mangoAccount, bank.mint, @@ -142,7 +142,7 @@ function DepositForm({ onSuccess, token }: DepositFormProps) { txid: tx, }) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) actions.fetchWalletTokens(publicKey) setSubmitting(false) onSuccess() diff --git a/components/Layout.tsx b/components/Layout.tsx index 84486086..490d6874 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -30,6 +30,7 @@ import TermsOfUseModal from './modals/TermsOfUseModal' import { useTheme } from 'next-themes' import PromoBanner from './rewards/PromoBanner' import { useRouter } from 'next/router' +import StatusBar from './StatusBar' export const sideBarAnimationDuration = 300 const termsLastUpdated = 1679441610978 @@ -135,6 +136,7 @@ const Layout = ({ children }: { children: ReactNode }) => { {asPath !== '/rewards' ? : null} {children} + diff --git a/components/MangoProvider.tsx b/components/MangoProvider.tsx index 9a93f7d0..2bde3e2b 100644 --- a/components/MangoProvider.tsx +++ b/components/MangoProvider.tsx @@ -93,22 +93,24 @@ const HydrateStore = () => { async (info, context) => { if (info?.lamports === 0) return - const lastSeenSlot = mangoStore.getState().mangoAccount.lastSlot const mangoAccount = mangoStore.getState().mangoAccount.current if (!mangoAccount) return - - if (context.slot > lastSeenSlot) { - const newMangoAccount = await client.getMangoAccountFromAi( - mangoAccount.publicKey, - info, - ) + const newMangoAccount = client.getMangoAccountFromAi( + mangoAccount.publicKey, + info, + ) + // don't fetch serum3OpenOrders if the slot is old + if (context.slot > mangoStore.getState().mangoAccount.lastSlot) { if (newMangoAccount.serum3Active().length > 0) { await newMangoAccount.reloadSerum3OpenOrders(client) + // check again that the slot is still the most recent after the reloading open orders + if (context.slot > mangoStore.getState().mangoAccount.lastSlot) { + set((s) => { + s.mangoAccount.current = newMangoAccount + s.mangoAccount.lastSlot = context.slot + }) + } } - set((s) => { - s.mangoAccount.current = newMangoAccount - s.mangoAccount.lastSlot = context.slot - }) actions.fetchOpenOrders() } }, diff --git a/components/RepayForm.tsx b/components/RepayForm.tsx index 29ef4688..c195e945 100644 --- a/components/RepayForm.tsx +++ b/components/RepayForm.tsx @@ -125,7 +125,7 @@ function RepayForm({ onSuccess, token }: RepayFormProps) { setSubmitting(true) try { - const tx = await client.tokenDeposit( + const { signature: tx, slot } = await client.tokenDeposit( group, mangoAccount, bank.mint, @@ -138,7 +138,7 @@ function RepayForm({ onSuccess, token }: RepayFormProps) { txid: tx, }) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) actions.fetchWalletTokens(publicKey) setSubmitting(false) onSuccess() diff --git a/components/RpcPing.tsx b/components/RpcPing.tsx new file mode 100644 index 00000000..ccc1ad65 --- /dev/null +++ b/components/RpcPing.tsx @@ -0,0 +1,62 @@ +import { Connection } from '@solana/web3.js' +import mangoStore from '@store/mangoStore' +import { useEffect, useState } from 'react' +import useInterval from './shared/useInterval' +import { formatNumericValue } from 'utils/numbers' +import Tooltip from './shared/Tooltip' +import { useTranslation } from 'react-i18next' +import { StatusDot } from './Tps' + +const rpcAlertThreshold = 250 +const rpcWarningThreshold = 500 + +const getPingTime = async ( + connection: Connection, + setRpcPing: (x: number) => void, +) => { + const startTime = Date.now() + try { + await connection.getSlot() + + const endTime = Date.now() + const pingTime = endTime - startTime + setRpcPing(pingTime) + } catch (error) { + console.error('Error pinging the RPC:', error) + return null + } +} + +const RpcPing = () => { + const { t } = useTranslation('common') + const connection = mangoStore((s) => s.connection) + const [rpcPing, setRpcPing] = useState(0) + + useEffect(() => { + getPingTime(connection, setRpcPing) + }, []) + + useInterval(() => { + getPingTime(connection, setRpcPing) + }, 30 * 1000) + + return ( +
+
+ + + + {formatNumericValue(rpcPing, 0)} + MS + + +
+
+ ) +} + +export default RpcPing diff --git a/components/SideNav.tsx b/components/SideNav.tsx index 7b4ce4c1..cb92405e 100644 --- a/components/SideNav.tsx +++ b/components/SideNav.tsx @@ -2,7 +2,6 @@ import Link from 'next/link' import { EllipsisHorizontalIcon, BuildingLibraryIcon, - LightBulbIcon, ArrowTopRightOnSquareIcon, ChevronDownIcon, CurrencyDollarIcon, @@ -16,6 +15,7 @@ import { PlusCircleIcon, ArchiveBoxArrowDownIcon, ExclamationTriangleIcon, + DocumentTextIcon, // ClipboardDocumentIcon, } from '@heroicons/react/20/solid' import { useRouter } from 'next/router' @@ -94,8 +94,12 @@ const SideNav = ({ collapsed }: { collapsed: boolean }) => {
{sidebarImageUrl && !collapsed ? ( { alt="next" /> ) : null} -
+
{ /> } + icon={} title={t('documentation')} pagePath="https://docs.mango.markets" hideIconBg diff --git a/components/StatusBar.tsx b/components/StatusBar.tsx new file mode 100644 index 00000000..ee9668af --- /dev/null +++ b/components/StatusBar.tsx @@ -0,0 +1,114 @@ +import { useTranslation } from 'react-i18next' +import Tps from './Tps' +import DiscordIcon from './icons/DiscordIcon' +import { TwitterIcon } from './icons/TwitterIcon' +import { DocumentTextIcon } from '@heroicons/react/20/solid' +import { useEffect, useState } from 'react' +import { IDL } from '@blockworks-foundation/mango-v4' +import RpcPing from './RpcPing' +import Tooltip from './shared/Tooltip' + +const DEFAULT_LATEST_COMMIT = { sha: '', url: '' } + +const getLatestCommit = async () => { + try { + const response = await fetch( + `https://api.github.com/repos/blockworks-foundation/mango-v4-ui/commits`, + ) + const data = await response.json() + + if (data && data.length) { + const { sha, html_url } = data[0] + return { + sha: sha.slice(0, 7), + url: html_url, + } + } + return DEFAULT_LATEST_COMMIT + } catch (error) { + console.error('Error fetching latest commit:', error) + return DEFAULT_LATEST_COMMIT + } +} + +const StatusBar = ({ collapsed }: { collapsed: boolean }) => { + const { t } = useTranslation('common') + const [latestCommit, setLatestCommit] = useState(DEFAULT_LATEST_COMMIT) + + useEffect(() => { + const { sha } = latestCommit + if (!sha) { + getLatestCommit().then((commit) => setLatestCommit(commit)) + } + }, [latestCommit]) + + return ( +
+
+ + | + +
+
+ + + v{IDL.version} + + + {latestCommit.sha && latestCommit.url ? ( + + | + + {latestCommit.sha} + + + ) : null} +
+ +
+ ) +} + +export default StatusBar diff --git a/components/TopBar.tsx b/components/TopBar.tsx index 94a295ff..29470648 100644 --- a/components/TopBar.tsx +++ b/components/TopBar.tsx @@ -15,7 +15,7 @@ import ConnectedMenu from './wallet/ConnectedMenu' import ConnectWalletButton from './wallet/ConnectWalletButton' import CreateAccountModal from './modals/CreateAccountModal' import { useRouter } from 'next/router' -import SolanaTps from './SolanaTps' +// import SolanaTps from './SolanaTps' import useMangoAccount from 'hooks/useMangoAccount' import useOnlineStatus from 'hooks/useOnlineStatus' import { abbreviateAddress } from 'utils/formatting' @@ -90,7 +90,7 @@ const TopBar = () => { return (
@@ -103,16 +103,18 @@ const TopBar = () => { ) : null} - {connected ? ( + {/* {connected ? (
- ) : null} - logo + ) : null} */} +
+ logo +
{!connected ? ( mangoAccount ? ( @@ -189,7 +191,7 @@ const TopBar = () => { {isUnownedAccount || (!connected && isMobile) ? null : isMobile ? ( ) : ( +
+ )} +
+ + ) +} + +export default DashboardSuggestedValues + +const getNullOrVal = (val: number | undefined) => { + if (val !== undefined) { + return val + } + + return null +} + +const KeyValuePair = ({ + label, + value, + proposedValue, +}: { + label: string + value: number | ReactNode | string + proposedValue?: number | ReactNode | string +}) => { + return ( +
+ + {label} + + +
+ {proposedValue && Current: } + + {value} + +
+
+ {proposedValue && Suggested: } + + {proposedValue && ( + {proposedValue} + )} + +
+
+
+ ) +} diff --git a/components/modals/DelegateModal.tsx b/components/modals/DelegateModal.tsx index b09a6f4c..6baae9d9 100644 --- a/components/modals/DelegateModal.tsx +++ b/components/modals/DelegateModal.tsx @@ -40,7 +40,7 @@ const DelegateModal = ({ isOpen, onClose }: ModalProps) => { } try { - const tx = await client.editMangoAccount( + const { signature: tx, slot } = await client.editMangoAccount( group, mangoAccount, undefined, @@ -57,7 +57,7 @@ const DelegateModal = ({ isOpen, onClose }: ModalProps) => { type: 'success', txid: tx, }) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) } catch (e) { console.error(e) if (!isMangoError(e)) return diff --git a/components/modals/MangoAccountSizeModal.tsx b/components/modals/MangoAccountSizeModal.tsx index f5c635e8..02443633 100644 --- a/components/modals/MangoAccountSizeModal.tsx +++ b/components/modals/MangoAccountSizeModal.tsx @@ -23,7 +23,7 @@ import { const MIN_ACCOUNTS = 8 export const MAX_ACCOUNTS: AccountSizeForm = { - tokenAccounts: '16', + tokenAccounts: '10', spotOpenOrders: '8', perpAccounts: '8', perpOpenOrders: '64', @@ -87,12 +87,12 @@ const MangoAccountSizeModal = ({ isOpen, onClose }: ModalProps) => { }, [mangoAccountAddress]) useEffect(() => { - if (mangoAccountAddress) { + if (mangoAccount) { setAccountSizeForm({ - tokenAccounts: mangoAccount?.tokens.length.toString(), - spotOpenOrders: mangoAccount?.serum3.length.toString(), - perpAccounts: mangoAccount?.perps.length.toString(), - perpOpenOrders: mangoAccount?.perpOpenOrders.length.toString(), + tokenAccounts: mangoAccount.tokens.length.toString(), + spotOpenOrders: mangoAccount.serum3.length.toString(), + perpAccounts: mangoAccount.perps.length.toString(), + perpOpenOrders: mangoAccount.perpOpenOrders.length.toString(), }) } }, [mangoAccountAddress]) @@ -203,7 +203,7 @@ const MangoAccountSizeModal = ({ isOpen, onClose }: ModalProps) => { return setSubmitting(true) try { - const tx = await client.accountExpandV2( + const { signature: tx, slot } = await client.accountExpandV2( group, mangoAccount, parseInt(tokenAccounts), @@ -217,7 +217,7 @@ const MangoAccountSizeModal = ({ isOpen, onClose }: ModalProps) => { type: 'success', txid: tx, }) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) setSubmitting(false) } catch (e) { console.error(e) @@ -246,6 +246,12 @@ const MangoAccountSizeModal = ({ isOpen, onClose }: ModalProps) => {
= + Number(MAX_ACCOUNTS.tokenAccounts) + : false + } error={formErrors?.tokenAccounts} label={t('tokens')} handleMax={() => handleMax('tokenAccounts')} @@ -290,6 +296,12 @@ const MangoAccountSizeModal = ({ isOpen, onClose }: ModalProps) => {
= + Number(MAX_ACCOUNTS.perpOpenOrders) + : false + } error={formErrors?.perpOpenOrders} label={t('settings:perp-open-orders')} handleMax={() => handleMax('perpOpenOrders')} diff --git a/components/modals/ModifyTvOrderModal.tsx b/components/modals/ModifyTvOrderModal.tsx index 2d435765..19aa084a 100644 --- a/components/modals/ModifyTvOrderModal.tsx +++ b/components/modals/ModifyTvOrderModal.tsx @@ -85,7 +85,7 @@ const ModifyTvOrderModal = ({ : o.price if (!group || !mangoAccount) return try { - let tx = '' + let tx if (o instanceof PerpOrder) { tx = await client.modifyPerpOrder( group, @@ -125,7 +125,7 @@ const ModifyTvOrderModal = ({ notify({ type: 'success', title: 'Transaction successful', - txid: tx, + txid: tx.signature, }) onClose() } catch (e) { @@ -139,7 +139,12 @@ const ModifyTvOrderModal = ({ }) } }, - [findSerum3MarketPkInOpenOrders, modifiedOrderPrice, modifiedOrderSize], + [ + findSerum3MarketPkInOpenOrders, + modifiedOrderPrice, + modifiedOrderSize, + tickDecimals, + ], ) return selectedMarket ? ( diff --git a/components/modals/UserSetupModal.tsx b/components/modals/UserSetupModal.tsx index ff5e81a8..d96364dc 100644 --- a/components/modals/UserSetupModal.tsx +++ b/components/modals/UserSetupModal.tsx @@ -103,7 +103,7 @@ const UserSetupModal = ({ if (!group || !publicKey) return setLoadingAccount(true) try { - const tx = await client.createMangoAccount( + const { signature: tx } = await client.createMangoAccount( group, 0, accountName || 'Account 1', @@ -143,7 +143,7 @@ const UserSetupModal = ({ if (!mangoAccount || !group || !bank) return try { setSubmitDeposit(true) - const tx = await client.tokenDeposit( + const { signature: tx, slot } = await client.tokenDeposit( group, mangoAccount, bank.mint, @@ -155,7 +155,7 @@ const UserSetupModal = ({ txid: tx, }) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) setSubmitDeposit(false) onClose() // setShowSetupStep(4) diff --git a/components/nftMarket/ListingsView.tsx b/components/nftMarket/ListingsView.tsx index 8a1a2f0e..f6c221ef 100644 --- a/components/nftMarket/ListingsView.tsx +++ b/components/nftMarket/ListingsView.tsx @@ -15,7 +15,6 @@ import { import { useState } from 'react' import { MANGO_MINT_DECIMALS } from 'utils/governance/constants' // import { useTranslation } from 'next-i18next' -// import ResponsivePagination from 'react-responsive-pagination' import { ImgWithLoader } from '@components/ImgWithLoader' import NftMarketButton from './NftMarketButton' diff --git a/components/rewards/PromoBanner.tsx b/components/rewards/PromoBanner.tsx index 80637a3a..527c44cd 100644 --- a/components/rewards/PromoBanner.tsx +++ b/components/rewards/PromoBanner.tsx @@ -10,7 +10,7 @@ const PromoBanner = () => { return isWhiteListed && showBanner ? (
-

+

Season 1 of Mango Mints is starting soon.

{ : 'text-th-down' } +const isAccountSlotFull = (slots: number, max: string) => { + const numberMax = Number(max) + return slots >= numberMax +} + +export const getIsAccountSizeFull = () => { + const mangoAccount = mangoStore.getState().mangoAccount.current + if (!mangoAccount) return true + return ( + isAccountSlotFull( + mangoAccount.tokens.length, + MAX_ACCOUNTS.tokenAccounts!, + ) && + isAccountSlotFull( + mangoAccount.serum3.length, + MAX_ACCOUNTS.spotOpenOrders!, + ) && + isAccountSlotFull(mangoAccount.perps.length, MAX_ACCOUNTS.perpAccounts!) && + isAccountSlotFull( + mangoAccount.perpOpenOrders.length, + MAX_ACCOUNTS.perpOpenOrders!, + ) + ) +} + const AccountSettings = () => { const { t } = useTranslation(['common', 'settings']) const { mangoAccountAddress } = useMangoAccount() @@ -81,17 +109,31 @@ const AccountSettings = () => { ] }, [mangoAccountAddress]) + const isAccountFull = useMemo(() => { + if (!mangoAccountAddress) return true + return getIsAccountSizeFull() + }, [mangoAccountAddress]) + return ( <>

{t('account')}

- setShowAccountSizeModal(true)} - > - - {t('settings:increase-account-size')} - + {!isAccountFull ? ( + setShowAccountSizeModal(true)} + > + + {t('settings:increase-account-size')} + + ) : ( +
+ +

+ {t('settings:error-account-size-full')} +

+
+ )}
{ const { width } = useViewport() + const { mangoAccountAddress } = useMangoAccount() + const { isUnownedAccount } = useUnownedAccount() const isMobile = width ? width < breakpoints.lg : false return (
-
- -
+ {mangoAccountAddress && !isUnownedAccount ? ( +
+ +
+ ) : null}
diff --git a/components/shared/PnlTooltipContent.tsx b/components/shared/PnlTooltipContent.tsx index 3eae7d0d..021afd08 100644 --- a/components/shared/PnlTooltipContent.tsx +++ b/components/shared/PnlTooltipContent.tsx @@ -1,47 +1,61 @@ import { useTranslation } from 'next-i18next' import { formatCurrencyValue } from 'utils/numbers' +import FormatNumericValue from './FormatNumericValue' + +const getPnlColor = (pnl: number) => { + return pnl < 0 ? 'text-th-down' : pnl > 0 ? 'text-th-up' : 'text-th-fgd-3' +} const PnlTooltipContent = ({ unrealizedPnl, realizedPnl, totalPnl, unsettledPnl, + roe, }: { unrealizedPnl: number realizedPnl: number totalPnl: number unsettledPnl: number + roe: number }) => { const { t } = useTranslation(['common', 'trade']) return ( - <> -
-

- {t('trade:unsettled')} {t('pnl')} -

- - {formatCurrencyValue(unsettledPnl, 2)} - -
-
+
+

{t('trade:unrealized-pnl')}

- + {formatCurrencyValue(unrealizedPnl, 2)}
-
+

{t('trade:realized-pnl')}

- + {formatCurrencyValue(realizedPnl, 2)}
-
+

{t('trade:total-pnl')}

- + {formatCurrencyValue(totalPnl, 2)}
+
+

{t('trade:return-on-equity')}

+ + + % + +
+
+

+ {t('trade:unsettled')} {t('pnl')} +

+ + {formatCurrencyValue(unsettledPnl, 2)} + +
{t('learn-more')} - +
) } diff --git a/components/stats/PerpPositionsStatsTable.tsx b/components/stats/PerpPositionsStatsTable.tsx index 86fff1b3..7fa11da7 100644 --- a/components/stats/PerpPositionsStatsTable.tsx +++ b/components/stats/PerpPositionsStatsTable.tsx @@ -125,6 +125,7 @@ const PerpPositionsStatsTable = ({ realizedPnl={realizedPnl} totalPnl={totalPnl} unsettledPnl={unsettledPnl} + roe={roe} /> } delay={100} @@ -315,6 +316,7 @@ const PerpPositionsStatsTable = ({ realizedPnl={realizedPnl} totalPnl={totalPnl} unsettledPnl={unsettledPnl} + roe={roe} /> } delay={100} diff --git a/components/stats/StatsPage.tsx b/components/stats/StatsPage.tsx index 114445e4..2a6b8836 100644 --- a/components/stats/StatsPage.tsx +++ b/components/stats/StatsPage.tsx @@ -44,7 +44,7 @@ const StatsPage = () => { return TABS.map((t) => [t, 0]) }, []) return ( -
+
{market ? ( ) : token ? ( diff --git a/components/stats/TokenDetailsTable.tsx b/components/stats/TokenDetailsTable.tsx index c9e635f4..6798a399 100644 --- a/components/stats/TokenDetailsTable.tsx +++ b/components/stats/TokenDetailsTable.tsx @@ -10,7 +10,14 @@ import { breakpoints } from '../../utils/theme' import ContentBox from '../shared/ContentBox' import Tooltip from '@components/shared/Tooltip' import { Bank } from '@blockworks-foundation/mango-v4' -import { Table, Td, Th, TrBody, TrHead } from '@components/shared/TableElements' +import { + SortableColumnHeader, + Table, + Td, + Th, + TrBody, + TrHead, +} from '@components/shared/TableElements' import useMangoGroup from 'hooks/useMangoGroup' import useBanksWithBalances from 'hooks/useBanksWithBalances' import { getOracleProvider } from 'hooks/useOracleProvider' @@ -18,6 +25,8 @@ import { useRouter } from 'next/router' import { goToTokenPage } from './TokenOverviewTable' import { LinkButton } from '@components/shared/Button' import TokenLogo from '@components/shared/TokenLogo' +import { useCallback } from 'react' +import { useSortableData } from 'hooks/useSortableData' const TokenDetailsTable = () => { const { t } = useTranslation(['common', 'activity', 'token', 'trade']) @@ -27,6 +36,45 @@ const TokenDetailsTable = () => { const banks = useBanksWithBalances() const router = useRouter() + const formattedTableData = useCallback(() => { + const formatted = [] + for (const b of banks) { + const bank: Bank = b.bank + const mintInfo = group?.mintInfosMapByMint.get(bank.mint.toString()) + const deposits = bank.uiDeposits() + const initAssetWeight = bank.scaledInitAssetWeight(bank.price) + const initLiabWeight = bank.scaledInitLiabWeight(bank.price) + const isInsured = mintInfo?.groupInsuranceFund ? t('yes') : t('no') + const liquidationFee = bank.liquidationFee.toNumber() * 100 + const loanOriginationFee = 100 * bank.loanOriginationFeeRate.toNumber() + const [oracleProvider, oracleLinkPath] = getOracleProvider(bank) + const symbol = bank.name + + const data = { + bank, + deposits, + initAssetWeight, + initLiabWeight, + isInsured, + liquidationFee, + loanOriginationFee, + oracleLinkPath, + oracleProvider, + symbol, + } + formatted.push(data) + } + return formatted.sort( + (a, b) => b.deposits * b.bank.uiPrice - a.deposits * a.bank.uiPrice, + ) + }, [banks, group]) + + const { + items: tableData, + requestSort, + sortConfig, + } = useSortableData(formattedTableData()) + return group ? ( {showTableView ? ( @@ -34,117 +82,138 @@ const TokenDetailsTable = () => { - + - + - - {banks.map((b) => { - const bank: Bank = b.bank - - const [oracleProvider, oracleLinkPath] = getOracleProvider(bank) - - const mintInfo = group.mintInfosMapByMint.get( - bank.mint.toString(), - ) + {tableData.map((data) => { + const { + bank, + initAssetWeight, + initLiabWeight, + isInsured, + liquidationFee, + loanOriginationFee, + oracleLinkPath, + oracleProvider, + symbol, + } = data return ( - goToTokenPage(bank.name.split(' ')[0], router) - } + key={symbol} + onClick={() => goToTokenPage(symbol.split(' ')[0], router)} > {!isUnownedAccount ? ( @@ -288,6 +312,65 @@ const PerpPositions = () => { ) })} + {openPerpPositions.length > 1 ? ( + + + + + + + {!isUnownedAccount ? ( + + ) : null} + + ) : null}
{t('token')} + requestSort('symbol')} + sortConfig={sortConfig} + title={t('token')} + /> + -
+
- - {t('asset-liability-weight')} - + requestSort('initAssetWeight')} + sortConfig={sortConfig} + title={t('asset-liability-weight')} + />
-
+
- - {t('borrow-fee')} - + requestSort('loanOriginationFee')} + sortConfig={sortConfig} + title={t('borrow-fee')} + />
-
+
- - {t('activity:liquidation-fee')} - + requestSort('liquidationFee')} + sortConfig={sortConfig} + title={t('activity:liquidation-fee')} + />
- - {t('trade:tooltip-insured', { tokenOrMarket: '' })} - - Learn more - - - } - > - - {t('trade:insured', { token: '' })} - - + +
+ + {t('trade:tooltip-insured', { tokenOrMarket: '' })} + + Learn more + +
+ } + > + requestSort('isInsured')} + sortConfig={sortConfig} + title={t('trade:insured', { token: '' })} + /> + + +
+
+ requestSort('oracleProvider')} + sortConfig={sortConfig} + title={t('trade:oracle')} + /> +
{t('trade:oracle')}
-

{bank.name}

+

{symbol}

-

- {bank.scaledInitAssetWeight(bank.price).toFixed(2)} -

+

{initAssetWeight.toFixed(2)}

| -

- {bank.scaledInitLiabWeight(bank.price).toFixed(2)} -

+

{initLiabWeight.toFixed(2)}

- {(100 * bank.loanOriginationFeeRate.toNumber()).toFixed( - 2, - )} - % + {loanOriginationFee.toFixed(2)}%

-

- {(bank.liquidationFee.toNumber() * 100).toFixed(2)}% -

+

{liquidationFee.toFixed(2)}%

-

- {mintInfo?.groupInsuranceFund ? t('yes') : t('no')} -

+

{isInsured}

{oracleLinkPath ? ( diff --git a/components/stats/TokenOverviewTable.tsx b/components/stats/TokenOverviewTable.tsx index f645f271..9264b68f 100644 --- a/components/stats/TokenOverviewTable.tsx +++ b/components/stats/TokenOverviewTable.tsx @@ -84,7 +84,9 @@ const TokenOverviewTable = () => { } formatted.push(data) } - return formatted + return formatted.sort( + (a, b) => b.deposits * b.bank.uiPrice - a.deposits * a.bank.uiPrice, + ) }, [banks, group]) const { diff --git a/components/swap/SwapReviewRouteInfo.tsx b/components/swap/SwapReviewRouteInfo.tsx index ea6ca4c6..c2e37888 100644 --- a/components/swap/SwapReviewRouteInfo.tsx +++ b/components/swap/SwapReviewRouteInfo.tsx @@ -287,7 +287,7 @@ const SwapReviewRouteInfo = ({ ) try { - const tx = await client.marginTrade({ + const { signature: tx, slot } = await client.marginTrade({ group, mangoAccount, inputMintPk: inputBank.mint, @@ -311,7 +311,7 @@ const SwapReviewRouteInfo = ({ }) actions.fetchGroup() actions.fetchSwapHistory(mangoAccount.publicKey.toString(), 30000) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) } catch (e) { console.error('onSwap error: ', e) sentry.captureException(e) diff --git a/components/swap/useQuoteRoutes.ts b/components/swap/useQuoteRoutes.ts index 290daa99..de94dbdf 100644 --- a/components/swap/useQuoteRoutes.ts +++ b/components/swap/useQuoteRoutes.ts @@ -16,7 +16,7 @@ type useQuoteRoutesPropTypes = { amount: string slippage: number swapMode: string - wallet: string | undefined | null + wallet: string | undefined mode?: SwapModes enabled?: () => boolean } @@ -117,41 +117,38 @@ export const handleGetRoutes = async ( slippage = 50, swapMode = 'ExactIn', feeBps = 0, - wallet: string | undefined | null, + wallet: string | undefined, mode: SwapModes = 'ALL', jupiterOnlyDirectRoutes = false, ) => { try { wallet ||= PublicKey.default.toBase58() - const mangoRoute = fetchMangoRoutes( - inputMint, - outputMint, - amount, - slippage, - swapMode, - feeBps, - wallet, - ) - const jupiterRoute = fetchJupiterRoutes( - inputMint, - outputMint, - amount, - slippage, - swapMode, - feeBps, - jupiterOnlyDirectRoutes, - ) const routes = [] - if (mode == 'ALL') { + + if (mode === 'ALL' || mode === 'MANGO') { + const mangoRoute = fetchMangoRoutes( + inputMint, + outputMint, + amount, + slippage, + swapMode, + feeBps, + wallet, + ) routes.push(mangoRoute) - routes.push(jupiterRoute) } - if (mode === 'MANGO') { - routes.push(mangoRoute) - } - if (mode === 'JUPITER') { + if (mode === 'ALL' || mode === 'JUPITER') { + const jupiterRoute = fetchJupiterRoutes( + inputMint, + outputMint, + amount, + slippage, + swapMode, + feeBps, + jupiterOnlyDirectRoutes, + ) routes.push(jupiterRoute) } @@ -234,7 +231,7 @@ const useQuoteRoutes = ({ { cacheTime: 1000 * 60, staleTime: 1000 * 3, - enabled: enabled ? enabled() : amount ? true : false, + enabled: enabled ? enabled() : nativeAmount.toNumber() ? true : false, refetchInterval: 20000, retry: 3, }, diff --git a/components/trade/AdvancedTradeForm.tsx b/components/trade/AdvancedTradeForm.tsx index 46047cfc..1f0fa970 100644 --- a/components/trade/AdvancedTradeForm.tsx +++ b/components/trade/AdvancedTradeForm.tsx @@ -392,7 +392,7 @@ const AdvancedTradeForm = () => { : tradeForm.postOnly && tradeForm.tradeType !== 'Market' ? Serum3OrderType.postOnly : Serum3OrderType.limit - const tx = await client.serum3PlaceOrder( + const { signature: tx } = await client.serum3PlaceOrder( group, mangoAccount, selectedMarket.serumMarketExternal, @@ -427,7 +427,7 @@ const AdvancedTradeForm = () => { : PerpOrderType.limit console.log('perpOrderType', perpOrderType) - const tx = await client.perpPlaceOrder( + const { signature: tx } = await client.perpPlaceOrder( group, mangoAccount, selectedMarket.perpMarketIndex, @@ -753,10 +753,10 @@ const AdvancedTradeForm = () => { ? 'raised-buy-button' : 'text-white md:hover:brightness-90' }` - : `bg-th-down-dark text-white ${ + : `bg-th-down-dark md:hover:bg-th-down-dark ${ themeData.buttonStyle === 'raised' - ? '' - : 'md:hover:bg-th-down-dark md:hover:brightness-90' + ? 'raised-sell-button' + : 'text-white md:hover:brightness-90' }` }`} disabled={disabled} diff --git a/components/trade/MarketCloseModal.tsx b/components/trade/MarketCloseModal.tsx index 9c1016ff..a15c140e 100644 --- a/components/trade/MarketCloseModal.tsx +++ b/components/trade/MarketCloseModal.tsx @@ -163,7 +163,7 @@ const MarketCloseModal: FunctionComponent = ({ ) const maxSlippage = 0.025 - const tx = await client.perpPlaceOrder( + const { signature: tx } = await client.perpPlaceOrder( group, mangoAccount, perpMarket.perpMarketIndex, diff --git a/components/trade/OpenOrders.tsx b/components/trade/OpenOrders.tsx index dc4c8941..f0648a5f 100644 --- a/components/trade/OpenOrders.tsx +++ b/components/trade/OpenOrders.tsx @@ -93,7 +93,7 @@ const OpenOrders = () => { setCancelId(o.orderId.toString()) try { - const tx = await client.serum3CancelOrder( + const { signature: tx } = await client.serum3CancelOrder( group, mangoAccount, market!.serumMarketExternal, @@ -135,7 +135,7 @@ const OpenOrders = () => { if (!group || !mangoAccount) return setLoadingModifyOrder(true) try { - let tx = '' + let tx if (o instanceof PerpOrder) { tx = await client.modifyPerpOrder( group, @@ -175,7 +175,7 @@ const OpenOrders = () => { notify({ type: 'success', title: 'Transaction successful', - txid: tx, + txid: tx.signature, }) } catch (e) { console.error('Error canceling', e) @@ -203,7 +203,7 @@ const OpenOrders = () => { if (!group || !mangoAccount) return setCancelId(o.orderId.toString()) try { - const tx = await client.perpCancelOrder( + const { signature: tx } = await client.perpCancelOrder( group, mangoAccount, o.perpMarketIndex, diff --git a/components/trade/Orderbook.tsx b/components/trade/Orderbook.tsx index c8919c83..75a7cad0 100644 --- a/components/trade/Orderbook.tsx +++ b/components/trade/Orderbook.tsx @@ -31,7 +31,7 @@ import { updatePerpMarketOnGroup, } from 'utils/orderbook' import { OrderbookData, OrderbookL2 } from 'types' -import { isEqual } from 'lodash' +import isEqual from 'lodash/isEqual' const sizeCompacter = Intl.NumberFormat('en', { maximumFractionDigits: 6, diff --git a/components/trade/PerpPositions.tsx b/components/trade/PerpPositions.tsx index e0e89f62..9f30c2ac 100644 --- a/components/trade/PerpPositions.tsx +++ b/components/trade/PerpPositions.tsx @@ -14,7 +14,7 @@ import useSelectedMarket from 'hooks/useSelectedMarket' import useUnownedAccount from 'hooks/useUnownedAccount' import { useViewport } from 'hooks/useViewport' import { useTranslation } from 'next-i18next' -import { useCallback, useState } from 'react' +import { useCallback, useMemo, useState } from 'react' import { floorToDecimal, getDecimalCount } from 'utils/numbers' import { breakpoints } from 'utils/theme' import { calculateLimitPriceForMarketOrder } from 'utils/tradeForm' @@ -46,6 +46,42 @@ const PerpPositions = () => { const { width } = useViewport() const showTableView = width ? width > breakpoints.md : false + const totalPnlStats = useMemo(() => { + if (openPerpPositions.length && group !== undefined) { + const pnlByMarket = openPerpPositions.map((position) => { + const market = group.getPerpMarketByMarketIndex(position.marketIndex) + const basePosition = position.getBasePositionUi(market) + const avgEntryPrice = position.getAverageEntryPriceUi(market) + return { + unrealized: position.getUnRealizedPnlUi(market), + realized: position.getRealizedPnlUi(), + total: position.cumulativePnlOverPositionLifetimeUi(market), + unsettled: position.getUnsettledPnlUi(market), + averageEntryValue: Math.abs(basePosition) * avgEntryPrice, + } + }) + + const p = pnlByMarket.reduce((a, b) => { + return { + unrealized: a.unrealized + b.unrealized, + realized: a.realized + b.realized, + total: a.total + b.total, + unsettled: a.unsettled + b.unsettled, + averageEntryValue: a.averageEntryValue + b.averageEntryValue, + } + }) + + return { + unrealized: p.unrealized, + realized: p.realized, + total: p.total, + unsettled: p.unsettled, + roe: (p.unrealized / p.averageEntryValue) * 100, + } + } + return { unrealized: 0, realized: 0, total: 0, unsettled: 0, roe: 0 } + }, [openPerpPositions, group]) + const handlePositionClick = (positionSize: number, market: PerpMarket) => { const tradeForm = mangoStore.getState().tradeForm const set = mangoStore.getState().set @@ -229,6 +265,7 @@ const PerpPositions = () => { realizedPnl={realizedPnl} totalPnl={totalPnl} unsettledPnl={unsettledPnl} + roe={roe} /> } delay={100} @@ -247,19 +284,6 @@ const PerpPositions = () => { /> - = 0 ? 'text-th-up' : 'text-th-down'} - > - - %{' '} - - (ROE) - -
+ <> + + <> + + <> + + <> + +
+ + Total: + + + } + delay={100} + > +
+ + = 0 + ? 'text-th-up' + : 'text-th-down' + }`} + value={totalPnlStats.unrealized} + isUsd + decimals={2} + /> + +
+
+
+
+ {' '} + <> +
@@ -493,6 +576,7 @@ const PerpPositions = () => { realizedPnl={realizedPnl} totalPnl={totalPnl} unsettledPnl={unsettledPnl} + roe={roe} /> } delay={100} @@ -552,6 +636,72 @@ const PerpPositions = () => { ) })} + {openPerpPositions.length > 0 ? ( + <> + + {({ open }) => ( + <> + +
+
+ + Total Unrealized PnL: + + 0 + ? 'text-th-up' + : 'text-th-down' + }`} + > + + +
+ +
+ + + + Total ROE: + + = 0 + ? 'text-th-up' + : 'text-th-down' + }`} + > + + %{' '} + + + +
+
+ +
+ + )} +
+ + ) : null}
) ) : mangoAccount || connected ? ( diff --git a/components/trade/SpotMarketOrderSwapForm.tsx b/components/trade/SpotMarketOrderSwapForm.tsx index 58e8253c..fbc2334c 100644 --- a/components/trade/SpotMarketOrderSwapForm.tsx +++ b/components/trade/SpotMarketOrderSwapForm.tsx @@ -14,16 +14,12 @@ import useSelectedMarket from 'hooks/useSelectedMarket' import { useWallet } from '@solana/wallet-adapter-react' import useIpAddress from 'hooks/useIpAddress' import { useTranslation } from 'next-i18next' -import { FormEvent, useCallback, useMemo, useState } from 'react' +import { FormEvent, useCallback, useEffect, useMemo, useState } from 'react' import Loading from '@components/shared/Loading' import Button from '@components/shared/Button' import Image from 'next/image' import useQuoteRoutes from '@components/swap/useQuoteRoutes' -import { - HealthType, - Serum3Market, - fetchJupiterTransaction, -} from '@blockworks-foundation/mango-v4' +import { HealthType, Serum3Market } from '@blockworks-foundation/mango-v4' import Decimal from 'decimal.js' import { notify } from 'utils/notifications' import * as sentry from '@sentry/nextjs' @@ -42,6 +38,11 @@ import { formatTokenSymbol } from 'utils/tokens' import FormatNumericValue from '@components/shared/FormatNumericValue' import { useTokenMax } from '@components/swap/useTokenMax' import SheenLoader from '@components/shared/SheenLoader' +import { fetchJupiterTransaction } from '@components/swap/SwapReviewRouteInfo' +import { + AddressLookupTableAccount, + TransactionInstruction, +} from '@solana/web3.js' const set = mangoStore.getState().set const slippage = 100 @@ -54,6 +55,11 @@ function stringToNumberOrZero(s: string): number { return n } +type PreloadedTransaction = { + data: [TransactionInstruction[], AddressLookupTableAccount[]] + timestamp: number +} + export default function SpotMarketOrderSwapForm() { const { t } = useTranslation() const { baseSize, quoteSize, side } = mangoStore((s) => s.tradeForm) @@ -64,6 +70,7 @@ export default function SpotMarketOrderSwapForm() { const [swapFormSizeUi] = useLocalStorageState(SIZE_INPUT_UI_KEY, 'slider') const [savedCheckboxSettings, setSavedCheckboxSettings] = useLocalStorageState(TRADE_CHECKBOXES_KEY, DEFAULT_CHECKBOX_SETTINGS) + const [swapTx, setSwapTx] = useState() const { selectedMarket, price: oraclePrice, @@ -167,14 +174,12 @@ export default function SpotMarketOrderSwapForm() { slippage, swapMode: 'ExactIn', wallet: publicKey?.toBase58(), + mode: 'JUPITER', }) - const handlePlaceOrder = useCallback(async () => { - const client = mangoStore.getState().client + const fetchTransaction = useCallback(async () => { const group = mangoStore.getState().group const mangoAccount = mangoStore.getState().mangoAccount.current - const { baseSize, quoteSize, side } = mangoStore.getState().tradeForm - const actions = mangoStore.getState().actions const connection = mangoStore.getState().connection if (!group || !mangoAccount) return @@ -189,7 +194,6 @@ export default function SpotMarketOrderSwapForm() { ) return - setPlacingOrder(true) const [ixs, alts] = await fetchJupiterTransaction( connection, selectedRoute, @@ -199,8 +203,38 @@ export default function SpotMarketOrderSwapForm() { outputBank.mint, ) + setSwapTx({ data: [ixs, alts], timestamp: Date.now() }) + + return [ixs, alts] + }, [selectedRoute, inputBank, outputBank, publicKey]) + + useEffect(() => { + if (selectedRoute) fetchTransaction() + }, [selectedRoute, fetchTransaction]) + + const handlePlaceOrder = useCallback(async () => { + const client = mangoStore.getState().client + const group = mangoStore.getState().group + const mangoAccount = mangoStore.getState().mangoAccount.current + const { baseSize, quoteSize, side } = mangoStore.getState().tradeForm + const actions = mangoStore.getState().actions + + if ( + !mangoAccount || + !group || + !inputBank || + !outputBank || + !publicKey || + !selectedRoute || + !swapTx + ) + return + + setPlacingOrder(true) + try { - const tx = await client.marginTrade({ + const [ixs, alts] = swapTx.data + const { signature: tx, slot } = await client.marginTrade({ group, mangoAccount, inputMintPk: inputBank.mint, @@ -227,7 +261,7 @@ export default function SpotMarketOrderSwapForm() { }) actions.fetchGroup() actions.fetchSwapHistory(mangoAccount.publicKey.toString(), 30000) - await actions.reloadMangoAccount() + await actions.reloadMangoAccount(slot) set((s) => { s.tradeForm.baseSize = '' s.tradeForm.quoteSize = '' @@ -246,7 +280,7 @@ export default function SpotMarketOrderSwapForm() { } finally { setPlacingOrder(false) } - }, [inputBank, outputBank, publicKey, selectedRoute]) + }, [inputBank, outputBank, publicKey, selectedRoute, swapTx]) const handleSubmit = (e: FormEvent) => { e.preventDefault() @@ -342,7 +376,6 @@ export default function SpotMarketOrderSwapForm() { const disabled = (connected && (!baseSize || !oraclePrice)) || !serumOrPerpMarket || - parseFloat(baseSize) < serumOrPerpMarket.minOrderSize || isLoading || tooMuchSize @@ -464,7 +497,7 @@ export default function SpotMarketOrderSwapForm() {
-
+
{ipAllowed ? ( -
- )} + > + +
)} @@ -1102,11 +739,9 @@ const Dashboard: NextPage = () => { const KeyValuePair = ({ label, value, - proposedValue, }: { label: string value: number | ReactNode | string - proposedValue?: number | ReactNode | string }) => { return (
@@ -1115,18 +750,7 @@ const KeyValuePair = ({
- {proposedValue && Current: } - - {value} - -
-
- {proposedValue && Suggested: } - - {proposedValue && ( - {proposedValue} - )} - + {value}
@@ -1213,12 +837,4 @@ export const DashboardNavbar = () => { ) } -const getNullOrVal = (val: number | undefined) => { - if (val !== undefined) { - return val - } - - return null -} - export default Dashboard diff --git a/pages/index.tsx b/pages/index.tsx index 49228143..95deae8b 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -27,7 +27,7 @@ export async function getStaticProps({ locale }: { locale: string }) { const Index: NextPage = () => { return ( -
+
) diff --git a/pages/leaderboard.tsx b/pages/leaderboard.tsx index 9aa46b92..e01a89fe 100644 --- a/pages/leaderboard.tsx +++ b/pages/leaderboard.tsx @@ -18,7 +18,7 @@ export async function getStaticProps({ locale }: { locale: string }) { const Leaderboard: NextPage = () => { return ( -
+
) diff --git a/pages/settings.tsx b/pages/settings.tsx index 13a3524f..608201e0 100644 --- a/pages/settings.tsx +++ b/pages/settings.tsx @@ -25,7 +25,7 @@ export async function getStaticProps({ locale }: { locale: string }) { const Settings: NextPage = () => { return ( -
+
) diff --git a/pages/swap.tsx b/pages/swap.tsx index 6a6f5bde..9a73d5ba 100644 --- a/pages/swap.tsx +++ b/pages/swap.tsx @@ -25,7 +25,7 @@ export async function getStaticProps({ locale }: { locale: string }) { const Swap: NextPage = () => { return ( -
+
) diff --git a/public/images/themes/bonk/bonk-tile-expanded.png b/public/images/themes/bonk/bonk-tile-expanded.png new file mode 100644 index 00000000..1fdbd5d4 Binary files /dev/null and b/public/images/themes/bonk/bonk-tile-expanded.png differ diff --git a/public/images/themes/bonk/bonk-tile.png b/public/images/themes/bonk/bonk-tile.png index 276732c2..8f0a410c 100644 Binary files a/public/images/themes/bonk/bonk-tile.png and b/public/images/themes/bonk/bonk-tile.png differ diff --git a/public/images/themes/pepe/pepe-hori-tile.png b/public/images/themes/pepe/pepe-hori-tile.png new file mode 100644 index 00000000..78cc3bb2 Binary files /dev/null and b/public/images/themes/pepe/pepe-hori-tile.png differ diff --git a/public/images/themes/pepe/pepe-logo.png b/public/images/themes/pepe/pepe-logo.png new file mode 100644 index 00000000..f2572617 Binary files /dev/null and b/public/images/themes/pepe/pepe-logo.png differ diff --git a/public/images/themes/pepe/pepe-vert-tile-expanded.png b/public/images/themes/pepe/pepe-vert-tile-expanded.png new file mode 100644 index 00000000..69cab9da Binary files /dev/null and b/public/images/themes/pepe/pepe-vert-tile-expanded.png differ diff --git a/public/images/themes/pepe/pepe-vert-tile.png b/public/images/themes/pepe/pepe-vert-tile.png new file mode 100644 index 00000000..4fed4571 Binary files /dev/null and b/public/images/themes/pepe/pepe-vert-tile.png differ diff --git a/public/images/themes/pepe/sidenav-image.png b/public/images/themes/pepe/sidenav-image.png new file mode 100644 index 00000000..b21b9e3b Binary files /dev/null and b/public/images/themes/pepe/sidenav-image.png differ diff --git a/public/images/themes/pepe/tv-chart-image.png b/public/images/themes/pepe/tv-chart-image.png new file mode 100644 index 00000000..0d945f4f Binary files /dev/null and b/public/images/themes/pepe/tv-chart-image.png differ diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 63e60f25..2451b306 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -69,6 +69,8 @@ "deposit-rate": "Deposit APR", "details": "Details", "disconnect": "Disconnect", + "discord": "Discord", + "docs": "Docs", "documentation": "Documentation", "edit": "Edit", "edit-account": "Edit Account Name", @@ -89,6 +91,7 @@ "insufficient-sol": "Solana requires 0.0695 SOL rent to create a Mango Account. This will be returned if you close your account.", "interest-earned": "Interest Earned", "interest-earned-paid": "Interest Earned", + "latest-ui-commit": "Latest UI Commit", "leaderboard": "Leaderboard", "learn": "Learn", "learn-more": "Learn More", @@ -119,6 +122,7 @@ "perp-markets": "Perp Markets", "pnl": "PnL", "price": "Price", + "program-version": "Program Version", "quantity": "Quantity", "rate": "Rate (APR)", "rates": "Rates (APR)", @@ -132,6 +136,7 @@ "risks": "Risks", "rolling-change": "24h Change", "route": "Route", + "rpc-ping": "Ping time with the RPC node", "save": "Save", "select": "Select", "select-borrow-token": "Select Borrow Token", @@ -143,6 +148,7 @@ "settings": "Settings", "show-more": "Show More", "solana-tps": "Solana TPS", + "solana-tps-desc": "Solana Network – transactions per second", "soon": "Soon", "spot": "Spot", "spot-markets": "Spot Markets", @@ -167,6 +173,7 @@ "trade": "Trade", "trade-history": "Trade History", "transaction": "Transaction", + "twitter": "Twitter", "unavailable": "Unavailable", "unowned-helper": "Currently viewing account {{accountPk}}", "update": "Update", diff --git a/public/locales/en/governance.json b/public/locales/en/governance.json index dc833087..82c71546 100644 --- a/public/locales/en/governance.json +++ b/public/locales/en/governance.json @@ -105,7 +105,7 @@ "yes-votes": "Yes Votes", "your-votes": "Your Votes:", "create-switch-oracle": "Create switchboard oracle for", - "estimated-oracle-cost": "Estimated cost with funding oracle for ~6 months 2.8 SOL", + "estimated-oracle-cost": "Estimated cost with funding oracle for ~12 months", "create-oracle": "Create oracle", "tier": "Tier", "on-boarding-description-1": "If you want to use delegated tokens go to vote view and select wallet in top right corner." diff --git a/public/locales/en/settings.json b/public/locales/en/settings.json index 3194ee19..4108d933 100644 --- a/public/locales/en/settings.json +++ b/public/locales/en/settings.json @@ -23,6 +23,7 @@ "custom": "Custom", "dark": "Dark", "display": "Display", + "error-account-size-full": "Account size is full", "error-alphanumeric-only": "Alphanumeric characters only", "error-amount": "{{type}} must be greater than {{greaterThan}} and less than {{lessThan}}", "error-key-in-use": "Hot key already in use. Choose a unique key", @@ -60,6 +61,7 @@ "orderbook-flash": "Orderbook Flash", "order-side": "Order Side", "order-size-type": "Order Size Type", + "pepe": "Pepe", "percentage": "Percentage", "percentage-of-max": "{{size}}% of Max", "perp-open-orders": "Perp Open Orders", diff --git a/public/locales/en/trade.json b/public/locales/en/trade.json index 29ffef05..3c3aead4 100644 --- a/public/locales/en/trade.json +++ b/public/locales/en/trade.json @@ -72,6 +72,7 @@ "realized-pnl": "Realized PnL", "reduce": "Reduce", "reduce-only": "Reduce Only", + "return-on-equity": "Return on Equity", "sells": "Sells", "settle-funds": "Settle Funds", "settle-funds-error": "Failed to settle funds", diff --git a/public/locales/es/common.json b/public/locales/es/common.json index 96f00a91..2451b306 100644 --- a/public/locales/es/common.json +++ b/public/locales/es/common.json @@ -69,6 +69,8 @@ "deposit-rate": "Deposit APR", "details": "Details", "disconnect": "Disconnect", + "discord": "Discord", + "docs": "Docs", "documentation": "Documentation", "edit": "Edit", "edit-account": "Edit Account Name", @@ -77,6 +79,7 @@ "fee": "Fee", "feedback-survey": "Feedback Survey", "fees": "Fees", + "fetching-route": "Finding Route", "free-collateral": "Free Collateral", "get-started": "Get Started", "governance": "Governance", @@ -88,6 +91,7 @@ "insufficient-sol": "Solana requires 0.0695 SOL rent to create a Mango Account. This will be returned if you close your account.", "interest-earned": "Interest Earned", "interest-earned-paid": "Interest Earned", + "latest-ui-commit": "Latest UI Commit", "leaderboard": "Leaderboard", "learn": "Learn", "learn-more": "Learn More", @@ -118,6 +122,7 @@ "perp-markets": "Perp Markets", "pnl": "PnL", "price": "Price", + "program-version": "Program Version", "quantity": "Quantity", "rate": "Rate (APR)", "rates": "Rates (APR)", @@ -131,6 +136,7 @@ "risks": "Risks", "rolling-change": "24h Change", "route": "Route", + "rpc-ping": "Ping time with the RPC node", "save": "Save", "select": "Select", "select-borrow-token": "Select Borrow Token", @@ -142,6 +148,7 @@ "settings": "Settings", "show-more": "Show More", "solana-tps": "Solana TPS", + "solana-tps-desc": "Solana Network – transactions per second", "soon": "Soon", "spot": "Spot", "spot-markets": "Spot Markets", @@ -166,6 +173,7 @@ "trade": "Trade", "trade-history": "Trade History", "transaction": "Transaction", + "twitter": "Twitter", "unavailable": "Unavailable", "unowned-helper": "Currently viewing account {{accountPk}}", "update": "Update", diff --git a/public/locales/es/governance.json b/public/locales/es/governance.json index dc833087..82c71546 100644 --- a/public/locales/es/governance.json +++ b/public/locales/es/governance.json @@ -105,7 +105,7 @@ "yes-votes": "Yes Votes", "your-votes": "Your Votes:", "create-switch-oracle": "Create switchboard oracle for", - "estimated-oracle-cost": "Estimated cost with funding oracle for ~6 months 2.8 SOL", + "estimated-oracle-cost": "Estimated cost with funding oracle for ~12 months", "create-oracle": "Create oracle", "tier": "Tier", "on-boarding-description-1": "If you want to use delegated tokens go to vote view and select wallet in top right corner." diff --git a/public/locales/es/settings.json b/public/locales/es/settings.json index 3194ee19..4108d933 100644 --- a/public/locales/es/settings.json +++ b/public/locales/es/settings.json @@ -23,6 +23,7 @@ "custom": "Custom", "dark": "Dark", "display": "Display", + "error-account-size-full": "Account size is full", "error-alphanumeric-only": "Alphanumeric characters only", "error-amount": "{{type}} must be greater than {{greaterThan}} and less than {{lessThan}}", "error-key-in-use": "Hot key already in use. Choose a unique key", @@ -60,6 +61,7 @@ "orderbook-flash": "Orderbook Flash", "order-side": "Order Side", "order-size-type": "Order Size Type", + "pepe": "Pepe", "percentage": "Percentage", "percentage-of-max": "{{size}}% of Max", "perp-open-orders": "Perp Open Orders", diff --git a/public/locales/es/trade.json b/public/locales/es/trade.json index 29ffef05..3c3aead4 100644 --- a/public/locales/es/trade.json +++ b/public/locales/es/trade.json @@ -72,6 +72,7 @@ "realized-pnl": "Realized PnL", "reduce": "Reduce", "reduce-only": "Reduce Only", + "return-on-equity": "Return on Equity", "sells": "Sells", "settle-funds": "Settle Funds", "settle-funds-error": "Failed to settle funds", diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 96f00a91..2451b306 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -69,6 +69,8 @@ "deposit-rate": "Deposit APR", "details": "Details", "disconnect": "Disconnect", + "discord": "Discord", + "docs": "Docs", "documentation": "Documentation", "edit": "Edit", "edit-account": "Edit Account Name", @@ -77,6 +79,7 @@ "fee": "Fee", "feedback-survey": "Feedback Survey", "fees": "Fees", + "fetching-route": "Finding Route", "free-collateral": "Free Collateral", "get-started": "Get Started", "governance": "Governance", @@ -88,6 +91,7 @@ "insufficient-sol": "Solana requires 0.0695 SOL rent to create a Mango Account. This will be returned if you close your account.", "interest-earned": "Interest Earned", "interest-earned-paid": "Interest Earned", + "latest-ui-commit": "Latest UI Commit", "leaderboard": "Leaderboard", "learn": "Learn", "learn-more": "Learn More", @@ -118,6 +122,7 @@ "perp-markets": "Perp Markets", "pnl": "PnL", "price": "Price", + "program-version": "Program Version", "quantity": "Quantity", "rate": "Rate (APR)", "rates": "Rates (APR)", @@ -131,6 +136,7 @@ "risks": "Risks", "rolling-change": "24h Change", "route": "Route", + "rpc-ping": "Ping time with the RPC node", "save": "Save", "select": "Select", "select-borrow-token": "Select Borrow Token", @@ -142,6 +148,7 @@ "settings": "Settings", "show-more": "Show More", "solana-tps": "Solana TPS", + "solana-tps-desc": "Solana Network – transactions per second", "soon": "Soon", "spot": "Spot", "spot-markets": "Spot Markets", @@ -166,6 +173,7 @@ "trade": "Trade", "trade-history": "Trade History", "transaction": "Transaction", + "twitter": "Twitter", "unavailable": "Unavailable", "unowned-helper": "Currently viewing account {{accountPk}}", "update": "Update", diff --git a/public/locales/ru/governance.json b/public/locales/ru/governance.json index dc833087..82c71546 100644 --- a/public/locales/ru/governance.json +++ b/public/locales/ru/governance.json @@ -105,7 +105,7 @@ "yes-votes": "Yes Votes", "your-votes": "Your Votes:", "create-switch-oracle": "Create switchboard oracle for", - "estimated-oracle-cost": "Estimated cost with funding oracle for ~6 months 2.8 SOL", + "estimated-oracle-cost": "Estimated cost with funding oracle for ~12 months", "create-oracle": "Create oracle", "tier": "Tier", "on-boarding-description-1": "If you want to use delegated tokens go to vote view and select wallet in top right corner." diff --git a/public/locales/ru/settings.json b/public/locales/ru/settings.json index 3194ee19..4108d933 100644 --- a/public/locales/ru/settings.json +++ b/public/locales/ru/settings.json @@ -23,6 +23,7 @@ "custom": "Custom", "dark": "Dark", "display": "Display", + "error-account-size-full": "Account size is full", "error-alphanumeric-only": "Alphanumeric characters only", "error-amount": "{{type}} must be greater than {{greaterThan}} and less than {{lessThan}}", "error-key-in-use": "Hot key already in use. Choose a unique key", @@ -60,6 +61,7 @@ "orderbook-flash": "Orderbook Flash", "order-side": "Order Side", "order-size-type": "Order Size Type", + "pepe": "Pepe", "percentage": "Percentage", "percentage-of-max": "{{size}}% of Max", "perp-open-orders": "Perp Open Orders", diff --git a/public/locales/ru/trade.json b/public/locales/ru/trade.json index 29ffef05..3c3aead4 100644 --- a/public/locales/ru/trade.json +++ b/public/locales/ru/trade.json @@ -72,6 +72,7 @@ "realized-pnl": "Realized PnL", "reduce": "Reduce", "reduce-only": "Reduce Only", + "return-on-equity": "Return on Equity", "sells": "Sells", "settle-funds": "Settle Funds", "settle-funds-error": "Failed to settle funds", diff --git a/public/locales/zh/common.json b/public/locales/zh/common.json index de46da28..e55c8d2b 100644 --- a/public/locales/zh/common.json +++ b/public/locales/zh/common.json @@ -69,6 +69,8 @@ "deposit-rate": "存款APR", "details": "细节", "disconnect": "断开连接", + "discord": "Discord", + "docs": "Docs", "documentation": "文档", "edit": "编辑", "edit-account": "编辑帐户标签", @@ -88,6 +90,7 @@ "insufficient-sol": "Solana需要0.0695 SOL租金才能创建Mango账户。您关闭帐户时租金将被退还。", "interest-earned": "获取利息", "interest-earned-paid": "获取利息", + "latest-ui-commit": "Latest UI Commit", "leaderboard": "排行榜", "learn": "学", "learn-more": "Learn More", @@ -118,6 +121,7 @@ "perp-markets": "合约市场", "pnl": "盈亏", "price": "价格", + "program-version": "Program Version", "quantity": "数量", "rate": "利率(APR)", "rates": "利率(APR)", @@ -130,6 +134,7 @@ "repayment-amount": "还贷额", "risks": "Risks", "rolling-change": "24小时变化", + "rpc-ping": "Ping time with the RPC node", "route": "Route", "save": "存", "select": "选择", @@ -142,6 +147,7 @@ "settings": "设置", "show-more": "显示更多", "solana-tps": "Solana TPS", + "solana-tps-desc": "Solana Network – transactions per second", "soon": "Soon", "spot": "现货", "spot-markets": "现货市场", @@ -166,6 +172,7 @@ "trade": "交易", "trade-history": "交易纪录", "transaction": "交易", + "twitter": "Twitter", "unavailable": "不可用", "unowned-helper": "目前查看帐户 {{accountPk}}", "update": "更新", diff --git a/public/locales/zh/governance.json b/public/locales/zh/governance.json index dc833087..82c71546 100644 --- a/public/locales/zh/governance.json +++ b/public/locales/zh/governance.json @@ -105,7 +105,7 @@ "yes-votes": "Yes Votes", "your-votes": "Your Votes:", "create-switch-oracle": "Create switchboard oracle for", - "estimated-oracle-cost": "Estimated cost with funding oracle for ~6 months 2.8 SOL", + "estimated-oracle-cost": "Estimated cost with funding oracle for ~12 months", "create-oracle": "Create oracle", "tier": "Tier", "on-boarding-description-1": "If you want to use delegated tokens go to vote view and select wallet in top right corner." diff --git a/public/locales/zh/settings.json b/public/locales/zh/settings.json index 5240dfb1..8c8590c9 100644 --- a/public/locales/zh/settings.json +++ b/public/locales/zh/settings.json @@ -23,6 +23,7 @@ "custom": "自定", "dark": "暗", "display": "显示", + "error-account-size-full": "Account size is full", "error-alphanumeric-only": "Alphanumeric characters only", "error-amount": "{{type}} must be greater than {{greaterThan}} and less than {{lessThan}}", "error-key-in-use": "Hot key already in use. Choose a unique key", @@ -59,6 +60,7 @@ "orderbook-flash": "挂单薄闪光", "order-side": "Order Side", "order-size-type": "Order Size Type", + "pepe": "Pepe", "percentage": "Percentage", "percentage-of-max": "{{size}}% of Max", "perp-open-orders": "Perp Open Orders", diff --git a/public/locales/zh/trade.json b/public/locales/zh/trade.json index 0232f535..48050bc9 100644 --- a/public/locales/zh/trade.json +++ b/public/locales/zh/trade.json @@ -72,6 +72,7 @@ "realized-pnl": "已实现的盈亏", "reduce": "Reduce", "reduce-only": "限减少", + "return-on-equity": "Return on Equity", "sells": "卖单", "settle-funds": "借清资金", "settle-funds-error": "借清出错", diff --git a/public/locales/zh_tw/common.json b/public/locales/zh_tw/common.json index 235ea30b..736048bd 100644 --- a/public/locales/zh_tw/common.json +++ b/public/locales/zh_tw/common.json @@ -69,6 +69,8 @@ "deposit-rate": "存款APR", "details": "細節", "disconnect": "斷開連接", + "discord": "Discord", + "docs": "Docs", "documentation": "文檔", "edit": "編輯", "edit-account": "編輯帳戶標籤", @@ -88,6 +90,7 @@ "insufficient-sol": "Solana需要0.0695 SOL租金才能創建Mango賬戶。您關閉帳戶時租金將被退還。", "interest-earned": "獲取利息", "interest-earned-paid": "獲取利息", + "latest-ui-commit": "Latest UI Commit", "leaderboard": "排行榜", "learn": "學", "learn-more": "Learn More", @@ -118,6 +121,7 @@ "perp-markets": "合約市場", "pnl": "盈虧", "price": "價格", + "program-version": "Program Version", "quantity": "數量", "rate": "利率(APR)", "rates": "利率(APR)", @@ -130,6 +134,7 @@ "repayment-amount": "還貸額", "risks": "Risks", "rolling-change": "24小時變化", + "rpc-ping": "Ping time with the RPC node", "route": "Route", "save": "存", "select": "選擇", @@ -142,6 +147,7 @@ "settings": "設置", "show-more": "顯示更多", "solana-tps": "Solana TPS", + "solana-tps-desc": "Solana Network – transactions per second", "soon": "Soon", "spot": "現貨", "spot-markets": "現貨市場", @@ -166,6 +172,7 @@ "trade": "交易", "trade-history": "交易紀錄", "transaction": "交易", + "twitter": "Twitter", "unavailable": "不可用", "unowned-helper": "目前查看帳戶 {{accountPk}}", "update": "更新", diff --git a/public/locales/zh_tw/governance.json b/public/locales/zh_tw/governance.json index 5307c3d7..d0c65314 100644 --- a/public/locales/zh_tw/governance.json +++ b/public/locales/zh_tw/governance.json @@ -106,7 +106,7 @@ "yes-votes": "贊成票", "your-votes": "你的票:", "create-switch-oracle": "Create switchboard oracle for", - "estimated-oracle-cost": "Estimated cost with funding oracle for ~6 months 2.8 SOL", + "estimated-oracle-cost": "Estimated cost with funding oracle for ~12 months", "create-oracle": "Create oracle", "tier": "Tier", "on-boarding-description-1": "If you want to use delegated tokens go to vote view and select wallet in top right corner." diff --git a/public/locales/zh_tw/settings.json b/public/locales/zh_tw/settings.json index ef89dbd9..da8be697 100644 --- a/public/locales/zh_tw/settings.json +++ b/public/locales/zh_tw/settings.json @@ -23,6 +23,7 @@ "custom": "自定", "dark": "暗", "display": "顯示", + "error-account-size-full": "Account size is full", "error-alphanumeric-only": "Alphanumeric characters only", "error-amount": "{{type}} must be greater than {{greaterThan}} and less than {{lessThan}}", "error-key-in-use": "Hot key already in use. Choose a unique key", @@ -59,6 +60,7 @@ "orderbook-flash": "掛單薄閃光", "order-side": "Order Side", "order-size-type": "Order Size Type", + "pepe": "Pepe", "percentage": "Percentage", "percentage-of-max": "{{size}}% of Max", "perp-open-orders": "Perp Open Orders", diff --git a/public/locales/zh_tw/trade.json b/public/locales/zh_tw/trade.json index 712236a3..266f82d6 100644 --- a/public/locales/zh_tw/trade.json +++ b/public/locales/zh_tw/trade.json @@ -72,6 +72,7 @@ "realized-pnl": "已實現的盈虧", "reduce": "Reduce", "reduce-only": "限減少", + "return-on-equity": "Return on Equity", "sells": "賣單", "settle-funds": "借清資金", "settle-funds-error": "借清出錯", diff --git a/store/mangoStore.ts b/store/mangoStore.ts index 00732709..3397ffbe 100644 --- a/store/mangoStore.ts +++ b/store/mangoStore.ts @@ -248,7 +248,7 @@ export type MangoStore = { limit?: number, ) => Promise fetchGroup: () => Promise - reloadMangoAccount: () => Promise + reloadMangoAccount: (slot?: number) => Promise fetchMangoAccounts: (ownerPk: PublicKey) => Promise fetchNfts: (connection: Connection, walletPk: PublicKey) => void fetchOpenOrders: (refetchMangoAccount?: boolean) => Promise @@ -568,31 +568,38 @@ const mangoStore = create()( } } }, - reloadMangoAccount: async () => { + reloadMangoAccount: async (confirmationSlot) => { const set = get().set const actions = get().actions try { const group = get().group const client = get().client const mangoAccount = get().mangoAccount.current - const lastSlot = get().mangoAccount.lastSlot if (!group) throw new Error('Group not loaded') if (!mangoAccount) throw new Error('No mango account exists for reload') const { value: reloadedMangoAccount, slot } = await mangoAccount.reloadWithSlot(client) - if (slot > lastSlot) { - const ma = get().mangoAccounts.find((ma) => - ma.publicKey.equals(reloadedMangoAccount.publicKey), - ) - if (ma) { - Object.assign(ma, reloadedMangoAccount) + const lastSlot = get().mangoAccount.lastSlot + if ( + !confirmationSlot || + (confirmationSlot && slot > confirmationSlot) + ) { + if (slot > lastSlot) { + const ma = get().mangoAccounts.find((ma) => + ma.publicKey.equals(reloadedMangoAccount.publicKey), + ) + if (ma) { + Object.assign(ma, reloadedMangoAccount) + } + set((state) => { + state.mangoAccount.current = reloadedMangoAccount + state.mangoAccount.lastSlot = slot + }) } - set((state) => { - state.mangoAccount.current = reloadedMangoAccount - state.mangoAccount.lastSlot = slot - }) + } else if (confirmationSlot && slot < confirmationSlot) { + actions.reloadMangoAccount(confirmationSlot) } } catch (e) { console.error('Error reloading mango acct', e) diff --git a/styles/colors.ts b/styles/colors.ts index 9c8be330..584de6da 100644 --- a/styles/colors.ts +++ b/styles/colors.ts @@ -11,6 +11,7 @@ export const COLORS: Record> = { Lychee: '#faebec', Olive: '#383629', Bonk: '#EE7C2F', + Pepe: '#2B4521', }, BKG2: { 'Mango Classic': '#282433', @@ -24,6 +25,7 @@ export const COLORS: Record> = { Lychee: '#f4d7d9', Olive: '#474433', Bonk: '#DD7813', + Pepe: '#375A2B', }, BKG3: { 'Mango Classic': '#332e42', @@ -37,6 +39,7 @@ export const COLORS: Record> = { Lychee: '#efc3c6', Olive: '#56523e', Bonk: '#E5B55D', + Pepe: '#446E35', }, BKG4: { 'Mango Classic': '#3f3851', @@ -50,6 +53,7 @@ export const COLORS: Record> = { Lychee: '#eaaeb2', Olive: '#656049', Bonk: '#DDA131', + Pepe: '#51833F', }, FGD4: { 'Mango Classic': '#9189ae', @@ -63,6 +67,7 @@ export const COLORS: Record> = { Lychee: '#b7343a', Olive: '#acaa8b', Bonk: '#F3E9AA', + Pepe: '#88BD75', }, UP: { 'Mango Classic': '#89B92A', @@ -76,6 +81,7 @@ export const COLORS: Record> = { Lychee: '#2d805e', Olive: '#4eaa27', Bonk: '#FAE34C', + Pepe: '#50C11F', }, ACTIVE: { 'Mango Classic': '#f1c84b', @@ -89,6 +95,7 @@ export const COLORS: Record> = { Lychee: '#040e9f', Olive: '#e7dc83', Bonk: '#332910', + Pepe: '#FAE34C', }, DOWN: { 'Mango Classic': '#F84638', @@ -102,5 +109,6 @@ export const COLORS: Record> = { Lychee: '#c5303a', Olive: '#ee392f', Bonk: '#C22E30', + Pepe: '#DD6040', }, } diff --git a/styles/globals.css b/styles/globals.css index e33b5de5..dafcee81 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -393,6 +393,35 @@ th { --warning: theme('colors.bonk-theme.warning'); } +[data-theme='Pepe'] { + --active: theme('colors.pepe-theme.active.DEFAULT'); + --active-dark: theme('colors.pepe-theme.active.dark'); + --down: theme('colors.pepe-theme.down.DEFAULT'); + --down-dark: theme('colors.pepe-theme.down.dark'); + --down-muted: theme('colors.pepe-theme.down.muted'); + --up: theme('colors.pepe-theme.up.DEFAULT'); + --up-dark: theme('colors.pepe-theme.up.dark'); + --up-muted: theme('colors.pepe-theme.up.muted'); + --link: theme('colors.pepe-theme.link.DEFAULT'); + --link-hover: theme('colors.pepe-theme.link.hover'); + --bkg-1: theme('colors.pepe-theme.bkg-1'); + --bkg-2: theme('colors.pepe-theme.bkg-2'); + --bkg-3: theme('colors.pepe-theme.bkg-3'); + --bkg-4: theme('colors.pepe-theme.bkg-4'); + --fgd-1: theme('colors.pepe-theme.fgd-1'); + --fgd-2: theme('colors.pepe-theme.fgd-2'); + --fgd-3: theme('colors.pepe-theme.fgd-3'); + --fgd-4: theme('colors.pepe-theme.fgd-4'); + --button: theme('colors.pepe-theme.button.DEFAULT'); + --button-hover: theme('colors.pepe-theme.button.hover'); + --input-bkg: theme('colors.pepe-theme.input.bkg'); + --input-border: theme('colors.pepe-theme.input.border'); + --input-border-hover: theme('colors.pepe-theme.input.borderDark'); + --error: theme('colors.pepe-theme.error'); + --success: theme('colors.pepe-theme.success'); + --warning: theme('colors.pepe-theme.warning'); +} + /* Base */ body { @@ -676,7 +705,7 @@ input[type='range']::-webkit-slider-runnable-track { /* raised buy button */ .raised-buy-button { - @apply relative flex items-center justify-center bg-th-up text-th-active transition-none; + @apply relative flex items-center justify-center bg-th-up text-black transition-none; box-shadow: 0 6px var(--up-dark); } @@ -691,6 +720,24 @@ input[type='range']::-webkit-slider-runnable-track { top: 6px; } +/* raised sell button */ + +.raised-sell-button { + @apply relative flex items-center justify-center bg-th-down text-white transition-none; + box-shadow: 0 6px var(--down-dark); +} + +.raised-sell-button:hover { + background-color: var(--down) !important; + box-shadow: 0 4px var(--down-dark); + top: 2px; +} + +.raised-sell-button:active { + box-shadow: 0 0 var(--down-dark); + top: 6px; +} + .pagination { margin-top: 15px; margin-bottom: 15px; diff --git a/tailwind.config.js b/tailwind.config.js index 43b76f83..5a23e293 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -429,6 +429,43 @@ module.exports = { 'fgd-3': 'hsl(52, 80%, 87%)', 'fgd-4': 'hsl(52, 75%, 81%)', }, + 'pepe-theme': { + active: { + DEFAULT: 'hsl(52, 95%, 64%)', + dark: 'hsl(52, 95%, 54%)', + }, + button: { + DEFAULT: 'hsl(104, 72%, 30%)', + hover: 'hsl(104, 72%, 24%)', + }, + input: { + bkg: 'hsl(104, 31%, 15%)', + border: 'hsl(104, 41%, 60%)', + borderDark: 'hsl(104, 41%, 50%)', + }, + link: { DEFAULT: 'hsl(45, 86%, 62%)', hover: 'hsl(45, 86%, 57%)' }, + down: { + DEFAULT: 'hsl(12, 70%, 56%)', + dark: 'hsl(12, 70%, 46%)', + muted: 'hsl(12, 40%, 46%)', + }, + up: { + DEFAULT: 'hsl(102, 72%, 44%)', + dark: 'hsl(102, 72%, 34%)', + muted: 'hsl(102, 32%, 34%)', + }, + error: 'hsl(12, 70%, 56%)', + success: 'hsl(102, 72%, 44%)', + warning: 'hsl(24, 100%, 43%)', + 'bkg-1': 'hsl(104, 35%, 20%)', + 'bkg-2': 'hsl(104, 35%, 26%)', + 'bkg-3': 'hsl(104, 35%, 32%)', + 'bkg-4': 'hsl(104, 35%, 38%)', + 'fgd-1': 'hsl(104, 35%, 90%)', + 'fgd-2': 'hsl(104, 35%, 80%)', + 'fgd-3': 'hsl(104, 35%, 70%)', + 'fgd-4': 'hsl(104, 35%, 60%)', + }, 'th-bkg-1': 'var(--bkg-1)', 'th-bkg-2': 'var(--bkg-2)', 'th-bkg-3': 'var(--bkg-3)', diff --git a/types/index.ts b/types/index.ts index ebdd6860..d611b8ea 100644 --- a/types/index.ts +++ b/types/index.ts @@ -404,6 +404,7 @@ export interface ThemeData { rainAnimationImagePath: string sideImagePath: string sideTilePath: string + sideTilePathExpanded: string topTilePath: string tvChartTheme: 'Light' | 'Dark' tvImagePath: string diff --git a/utils/fonts.ts b/utils/fonts.ts index c8eb83da..56857269 100644 --- a/utils/fonts.ts +++ b/utils/fonts.ts @@ -1,5 +1,5 @@ import localFont from 'next/font/local' -import { Nunito } from 'next/font/google' +import { Nunito, Short_Stack } from 'next/font/google' // this font should be used as the mono variant for all themes @@ -46,3 +46,17 @@ export const nunitoBody = Nunito({ subsets: ['latin'], variable: '--font-body', }) + +// pepe theme + +export const shortStackDisplay = Short_Stack({ + weight: '400', + subsets: ['latin'], + variable: '--font-display', +}) + +export const shortStackBody = Short_Stack({ + weight: '400', + subsets: ['latin'], + variable: '--font-body', +}) diff --git a/utils/governance/instructions/castVote.ts b/utils/governance/instructions/castVote.ts index 2c9cad3b..ba50477b 100644 --- a/utils/governance/instructions/castVote.ts +++ b/utils/governance/instructions/castVote.ts @@ -127,7 +127,7 @@ export async function castVote( notify({ title: 'Transaction confirmed', type: 'success', - txid: tx, + txid: tx.signature, noSound: true, }) } diff --git a/utils/governance/instructions/relinquishVote.ts b/utils/governance/instructions/relinquishVote.ts index 2fe94157..e5951682 100644 --- a/utils/governance/instructions/relinquishVote.ts +++ b/utils/governance/instructions/relinquishVote.ts @@ -46,7 +46,7 @@ export async function relinquishVote( notify({ title: 'Transaction confirmed', type: 'success', - txid: tx, + txid: tx.signature, noSound: true, }) } diff --git a/utils/governance/listingTools.ts b/utils/governance/listingTools.ts index 76876b6c..d28bf4c4 100644 --- a/utils/governance/listingTools.ts +++ b/utils/governance/listingTools.ts @@ -7,24 +7,28 @@ import { Group, I80F48, OPENBOOK_PROGRAM_ID, - toNative, toUiDecimals, toUiDecimalsForQuote, } from '@blockworks-foundation/mango-v4' import { Market } from '@project-serum/serum' import { Connection, Keypair, PublicKey } from '@solana/web3.js' import EmptyWallet from 'utils/wallet' +import dayjs from 'dayjs' +import { + LISTING_PRESETS_KEYS, + ListingPreset, +} from '@blockworks-foundation/mango-v4-settings/lib/helpers/listingTools' export const getOracle = async ({ baseSymbol, quoteSymbol, connection, - pythOnly = false, + tier, }: { baseSymbol: string quoteSymbol: string connection: Connection - pythOnly?: boolean + tier: LISTING_PRESETS_KEYS }) => { try { let oraclePk = '' @@ -35,22 +39,24 @@ export const getOracle = async ({ }) if (pythOracle) { oraclePk = pythOracle - } else if (!pythOnly) { + } else { const switchBoardOracle = await getSwitchBoardOracle({ baseSymbol, quoteSymbol, connection, + noLock: tier === 'UNTRUSTED', }) oraclePk = switchBoardOracle } - return oraclePk + return { oraclePk, isPyth: !!pythOracle } } catch (e) { notify({ title: 'Oracle not found', description: `${e}`, type: 'error', }) + return { oraclePk: '', isPyth: false } } } @@ -90,10 +96,12 @@ export const getSwitchBoardOracle = async ({ baseSymbol, quoteSymbol, connection, + noLock, }: { baseSymbol: string quoteSymbol: string connection: Connection + noLock: boolean }) => { try { const SWITCHBOARD_PROGRAM_ID = 'SW1TCH7qEPTdLsDHRgPuMQjbQxKdH2aBStViMFnt64f' @@ -114,28 +122,82 @@ export const getSwitchBoardOracle = async ({ provider, ) - const allFeeds = + //get all feeds check if they are tried to fetch in last 24h + const allFeeds = ( await switchboardProgram.account.aggregatorAccountData.all() + ).filter( + (x) => + isWithinLastXHours( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (x as any).account.currentRound.roundOpenTimestamp.toNumber(), + 24, + ) || + // eslint-disable-next-line @typescript-eslint/no-explicit-any + isWithinLastXHours((x as any).account.creationTimestamp.toNumber(), 2), + ) + //parse names of feeds const feedNames = allFeeds.map((x) => String.fromCharCode( ...[...(x.account.name as number[])].filter((x) => x), ), ) + //find feeds that match base + quote + //base is checked to include followed by non alphabetic character e.g + //if base is kin it will match kin_usd, kin/USD, kin usd, but not king/usd + //looks like most feeds are using space, _ or / const possibleFeedIndexes = feedNames.reduce(function (r, v, i) { - return r.concat( + const isBaseMatch = v.toLowerCase().includes(baseSymbol.toLowerCase()) && - v.toLowerCase().includes(quoteSymbol.toLowerCase()) - ? i - : [], - ) + (() => { + const match = v.toLowerCase().match(baseSymbol.toLowerCase()) + if (!match) return false + + const idx = match!.index! + baseSymbol.length + const nextChar = v[idx] + return !nextChar || [' ', '/', '_'].includes(nextChar) + })() + + const isQuoteMatch = v.toLowerCase().includes(quoteSymbol.toLowerCase()) + + return r.concat(isBaseMatch && isQuoteMatch ? i : []) }, [] as number[]) - const possibleFeeds = allFeeds.filter( - (x, i) => possibleFeedIndexes.includes(i) && x.account.isLocked, + //feeds sponsored by switchboard or solend + const trustedQuesKeys = [ + //switchboard sponsored que + new PublicKey('3HBb2DQqDfuMdzWxNk1Eo9RTMkFYmuEAd32RiLKn9pAn'), + ] + const sponsoredAuthKeys = [ + //solend + new PublicKey('A4PzGUimdCMv8xvT5gK2fxonXqMMayDm3eSXRvXZhjzU'), + //switchboard + new PublicKey('31Sof5r1xi7dfcaz4x9Kuwm8J9ueAdDduMcme59sP8gc'), + ] + + const possibleFeeds = allFeeds + .filter((x, i) => possibleFeedIndexes.includes(i)) + //unlocked feeds can be used only when noLock is true + //atm only for untrusted use + .filter((x) => (noLock ? true : x.account.isLocked)) + .sort((x) => (x.account.isLocked ? -1 : 1)) + + const sponsoredFeeds = possibleFeeds.filter( + (x) => + sponsoredAuthKeys.find((s) => + s.equals(x.account.authority as PublicKey), + ) || + trustedQuesKeys.find((s) => + s.equals(x.account.queuePubkey as PublicKey), + ), ) - return possibleFeeds.length ? possibleFeeds[0].publicKey.toBase58() : '' + + return sponsoredFeeds.length + ? sponsoredFeeds[0].publicKey.toBase58() + : possibleFeeds.length + ? possibleFeeds[0].publicKey.toBase58() + : '' } catch (e) { notify({ title: 'Switchboard oracle fetch error', @@ -194,101 +256,6 @@ export const getBestMarket = async ({ } } -// definitions: -// baseLots = 10 ^ baseLotExponent -// quoteLots = 10 ^ quoteLotExponent -// minOrderSize = 10^(baseLotExponent - baseDecimals) -// minOrderValue = basePrice * minOrderSize -// priceIncrement = 10^(quoteLotExponent + baseDecimals - baseLotExponent - quoteDecimals) -// priceIncrementRelative = priceIncrement * quotePrice / basePrice - -// derive: baseLotExponent <= min[ basePrice * minOrderSize > 0.05] -// baseLotExponent = 10 -// While (baseLotExponent < 10): -// minOrderSize = 10^(baseLotExponent - baseDecimals) -// minOrderValue = basePrice * minOrderSize -// if minOrderValue > 0.05: -// break; - -// Derive: quoteLotExponent <= min[ priceIncrement * quotePrice / basePrice > 0.000025 ] -// quoteLotExponent = 0 -// While (quoteLotExponent < 10): -// priceIncrement = 10^(quoteLotExponent + baseDecimals - baseLotExponent - quoteDecimals) -// priceIncrementRelative = priceIncrement * quotePrice / basePrice -// if priceIncrementRelative > 0.000025: -// break; - -export function calculateTradingParameters( - basePrice: number, - quotePrice: number, - baseDecimals: number, - quoteDecimals: number, -) { - const MAX_MIN_ORDER_VALUE = 0.05 - const MIN_PRICE_INCREMENT_RELATIVE = 0.000025 - const EXPONENT_THRESHOLD = 10 - - let minOrderSize = 0 - let priceIncrement = 0 - let baseLotExponent = 0 - let quoteLotExponent = 0 - let minOrderValue = 0 - let priceIncrementRelative = 0 - - // Calculate minimum order size - do { - minOrderSize = Math.pow(10, baseLotExponent - baseDecimals) - minOrderValue = basePrice * minOrderSize - - if (minOrderValue > MAX_MIN_ORDER_VALUE) { - break - } - - baseLotExponent++ - } while (baseLotExponent < EXPONENT_THRESHOLD) - - // Calculate price increment - do { - priceIncrement = Math.pow( - 10, - quoteLotExponent + baseDecimals - baseLotExponent - quoteDecimals, - ) - priceIncrementRelative = (priceIncrement * quotePrice) / basePrice - if (priceIncrementRelative > MIN_PRICE_INCREMENT_RELATIVE) { - break - } - - quoteLotExponent++ - } while (quoteLotExponent < EXPONENT_THRESHOLD) - - //exception override values in that case example eth/btc market - if ( - quoteLotExponent === 0 && - priceIncrementRelative > 0.001 && - minOrderSize < 1 - ) { - baseLotExponent = baseLotExponent + 1 - minOrderSize = Math.pow(10, baseLotExponent - baseDecimals) - minOrderValue = basePrice * minOrderSize - priceIncrement = Math.pow( - 10, - quoteLotExponent + baseDecimals - baseLotExponent - quoteDecimals, - ) - priceIncrementRelative = (priceIncrement * quotePrice) / basePrice - } - - return { - baseLots: Math.pow(10, baseLotExponent), - quoteLots: Math.pow(10, quoteLotExponent), - minOrderValue: minOrderValue, - baseLotExponent: baseLotExponent, - quoteLotExponent: quoteLotExponent, - minOrderSize: minOrderSize, - priceIncrement: priceIncrement, - priceIncrementRelative: priceIncrementRelative, - } -} - export const getQuoteSymbol = (quoteTokenSymbol: string) => { if ( quoteTokenSymbol.toLowerCase() === 'usdc' || @@ -299,119 +266,11 @@ export const getQuoteSymbol = (quoteTokenSymbol: string) => { return quoteTokenSymbol } -const listingBase = { - maxStalenessSlots: 120 as number | null, - oracleConfFilter: 0.1, - adjustmentFactor: 0.004, - util0: 0.5, - rate0: 0.052, - util1: 0.8, - rate1: 0.1446, - maxRate: 1.4456, - loanFeeRate: 0.005, - loanOriginationFeeRate: 0.001, - maintAssetWeight: 0.9, - initAssetWeight: 0.8, - maintLiabWeight: 1.1, - initLiabWeight: 1.2, - liquidationFee: 0.05, - minVaultToDepositsRatio: 0.2, - netBorrowLimitWindowSizeTs: 24 * 60 * 60, - netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), - insuranceFound: true, - borrowWeightScale: toNative(250000, 6).toNumber(), - depositWeightScale: toNative(250000, 6).toNumber(), - preset_key: 'PREMIUM', - preset_name: 'Blue chip', - target_amount: 100000, -} - -export type ListingPreset = typeof listingBase - -export type LISTING_PRESETS_KEYS = - | 'PREMIUM' - | 'MID' - | 'MEME' - | 'SHIT' - | 'UNTRUSTED' - -export const LISTING_PRESETS: { - [key in LISTING_PRESETS_KEYS]: ListingPreset | Record -} = { - //Price impact $100,000 < 1% - PREMIUM: { - ...listingBase, - }, - //Price impact $20,000 < 1% - MID: { - ...listingBase, - maintAssetWeight: 0.75, - initAssetWeight: 0.5, - maintLiabWeight: 1.2, - initLiabWeight: 1.4, - liquidationFee: 0.1, - netBorrowLimitPerWindowQuote: toNative(20000, 6).toNumber(), - borrowWeightScale: toNative(50000, 6).toNumber(), - depositWeightScale: toNative(50000, 6).toNumber(), - insuranceFound: false, - preset_key: 'MID', - preset_name: 'Midwit', - target_amount: 20000, - }, - //Price impact $5,000 < 1% - MEME: { - ...listingBase, - maxStalenessSlots: 800, - loanOriginationFeeRate: 0.002, - maintAssetWeight: 0, - initAssetWeight: 0, - maintLiabWeight: 1.25, - initLiabWeight: 1.5, - liquidationFee: 0.125, - netBorrowLimitPerWindowQuote: toNative(5000, 6).toNumber(), - borrowWeightScale: toNative(20000, 6).toNumber(), - depositWeightScale: toNative(20000, 6).toNumber(), - insuranceFound: false, - preset_key: 'MEME', - preset_name: 'Meme Coin', - target_amount: 5000, - }, - //Price impact $1,000 < 1% - SHIT: { - ...listingBase, - maxStalenessSlots: 800, - loanOriginationFeeRate: 0.002, - maintAssetWeight: 0, - initAssetWeight: 0, - maintLiabWeight: 1.4, - initLiabWeight: 1.8, - liquidationFee: 0.2, - netBorrowLimitPerWindowQuote: toNative(1000, 6).toNumber(), - borrowWeightScale: toNative(5000, 6).toNumber(), - depositWeightScale: toNative(5000, 6).toNumber(), - insuranceFound: false, - preset_key: 'SHIT', - preset_name: 'Shit Coin', - target_amount: 1000, - }, - UNTRUSTED: {}, -} - -export const coinTiersToNames: { - [key in LISTING_PRESETS_KEYS]: string -} = { - PREMIUM: 'Blue Chip', - MID: 'Mid-wit', - MEME: 'Meme', - SHIT: 'Shit Coin', - UNTRUSTED: 'Untrusted', -} - export const formatSuggestedValues = ( suggestedParams: | Record | Omit< - typeof listingBase, + ListingPreset, 'name' | 'netBorrowLimitWindowSizeTs' | 'insuranceFound' >, ) => { @@ -533,3 +392,12 @@ export const getFormattedBankValues = (group: Group, bank: Bank) => { liquidationFee: (bank.liquidationFee.toNumber() * 100).toFixed(2), } } + +function isWithinLastXHours(timestampInSeconds: number, hoursNumber: number) { + const now = dayjs() + const inputDate = dayjs.unix(timestampInSeconds) // Convert seconds to dayjs object + + const differenceInHours = now.diff(inputDate, 'hour') + + return differenceInHours < hoursNumber +} diff --git a/utils/theme.ts b/utils/theme.ts index 5cbc66f2..f11379a9 100644 --- a/utils/theme.ts +++ b/utils/theme.ts @@ -2,6 +2,8 @@ import { ThemeData } from 'types' import { nunitoBody, nunitoDisplay, + shortStackBody, + shortStackDisplay, ttCommons, ttCommonsExpanded, ttCommonsMono, @@ -40,6 +42,7 @@ export const nftThemeMeta: NftThemeMeta = { rainAnimationImagePath: '', sideImagePath: '', sideTilePath: '', + sideTilePathExpanded: '', topTilePath: '', tvChartTheme: 'Dark', tvImagePath: '', @@ -53,13 +56,33 @@ export const nftThemeMeta: NftThemeMeta = { rainAnimationImagePath: '/images/themes/bonk/bonk-animation-logo.png', sideImagePath: '/images/themes/bonk/sidenav-image.png', sideTilePath: '/images/themes/bonk/bonk-tile.png', + sideTilePathExpanded: '/images/themes/bonk/bonk-tile-expanded.png', topTilePath: '/images/themes/bonk/bonk-tile.png', tvChartTheme: 'Light', tvImagePath: '/images/themes/bonk/tv-chart-image.png', useGradientBg: true, }, + Pepe: { + buttonStyle: 'raised', + fonts: { + body: shortStackBody, + display: shortStackDisplay, + mono: ttCommonsMono, + }, + logoPath: '/images/themes/pepe/pepe-logo.png', + platformName: 'Pepe', + rainAnimationImagePath: '/images/themes/pepe/pepe-logo.png', + sideImagePath: '/images/themes/pepe/sidenav-image.png', + sideTilePath: '/images/themes/pepe/pepe-vert-tile.png', + sideTilePathExpanded: '/images/themes/pepe/pepe-vert-tile-expanded.png', + topTilePath: '/images/themes/pepe/pepe-hori-tile.png', + tvChartTheme: 'Dark', + tvImagePath: '/images/themes/pepe/tv-chart-image.png', + useGradientBg: false, + }, } export const CUSTOM_SKINS: { [key: string]: string } = { bonk: '6FUYsgvSPiLsMpKZqLWswkw7j4juudZyVopU6RYKLkQ3', + pepe: '6FUYsgvSPiLsMpKZqLWswkw7j4juudZyVopU6RYKLkQ3', } diff --git a/yarn.lock b/yarn.lock index 3624763e..71f82988 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,13 +12,20 @@ resolved "https://registry.yarnpkg.com/@apocentre/alias-sampling/-/alias-sampling-0.5.3.tgz#897ff181b48ad7b2bcb4ecf29400214888244f08" integrity sha512-7UDWIIF9hIeJqfKXkNIzkVandlwLf1FWTSdrb9iXvOP8oF544JRXQjCbiTmCv2c9n44n/FIWtehhBfNuAx2CZA== -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.5", "@babel/runtime@^7.22.6": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.5", "@babel/runtime@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.21.0": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== + dependencies: + regenerator-runtime "^0.14.0" + "@blockworks-foundation/mango-feeds@0.1.7": version "0.1.7" resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-feeds/-/mango-feeds-0.1.7.tgz#07283e4f6b52ce2e631b866f7675b395dcc15f9e" @@ -26,10 +33,18 @@ dependencies: ws "^8.13.0" -"@blockworks-foundation/mango-v4@^0.18.11": - version "0.18.11" - resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.18.11.tgz#3c78a6e073be8eb551d6aa5d32406ba7570bcd6d" - integrity sha512-khWsbsZxBeVQ6Fa3NDoFSaLe/tMcPLyAVl1l9alZyrOmzCb14rCnZz2Bsrhi3amuw0ZYN0aYMUtSpLavpoatQg== +"@blockworks-foundation/mango-v4-settings@0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4-settings/-/mango-v4-settings-0.2.6.tgz#725a8cf669e164cd7694d97989472f7852afad68" + integrity sha512-RK8O8lbflIN9IgNE1uUkjrtlv/7f0BjIqTwcuLNFos6/e/Q2/AnlXRlD5Y9WnO6xS7mXNsw9kr05xCxeYZzM1Q== + dependencies: + bn.js "^5.2.1" + eslint-config-prettier "^9.0.0" + +"@blockworks-foundation/mango-v4@^0.19.2": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.19.2.tgz#2047fdffd43b326ce48f7a774077f89c27906618" + integrity sha512-mEKzpr1IIjb7AO3JKuIK6kvLDAQW/qenDW+Pdr+OCvnlADdHWDR0CJ8MByDVatnlGHw4jJi/eqn8gBYll+8/LQ== dependencies: "@coral-xyz/anchor" "^0.27.0" "@project-serum/serum" "0.13.65" @@ -141,6 +156,38 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@ethereumjs/common@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-3.2.0.tgz#b71df25845caf5456449163012074a55f048e0a0" + integrity sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA== + dependencies: + "@ethereumjs/util" "^8.1.0" + crc-32 "^1.2.0" + +"@ethereumjs/rlp@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== + +"@ethereumjs/tx@^4.1.2": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-4.2.0.tgz#5988ae15daf5a3b3c815493bc6b495e76009e853" + integrity sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw== + dependencies: + "@ethereumjs/common" "^3.2.0" + "@ethereumjs/rlp" "^4.0.1" + "@ethereumjs/util" "^8.1.0" + ethereum-cryptography "^2.0.0" + +"@ethereumjs/util@^8.0.6", "@ethereumjs/util@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" + "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" @@ -718,6 +765,25 @@ resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" integrity sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w== +"@metamask/rpc-errors@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@metamask/rpc-errors/-/rpc-errors-5.1.1.tgz#f82732ad0952d34d219eca42699c0c74bee95a9e" + integrity sha512-JjZnDi2y2CfvbohhBl+FOQRzmFlJpybcQlIk37zEX8B96eVSPbH/T8S0p7cSF8IE33IWx6JkD8Ycsd+2TXFxCw== + dependencies: + "@metamask/utils" "^5.0.0" + fast-safe-stringify "^2.0.6" + +"@metamask/utils@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-5.0.2.tgz#140ba5061d90d9dac0280c19cab101bc18c8857c" + integrity sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g== + dependencies: + "@ethereumjs/tx" "^4.1.2" + "@types/debug" "^4.1.7" + debug "^4.3.4" + semver "^7.3.8" + superstruct "^1.0.3" + "@metaplex-foundation/beet-solana@0.4.0", "@metaplex-foundation/beet-solana@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@metaplex-foundation/beet-solana/-/beet-solana-0.4.0.tgz#52891e78674aaa54e0031f1bca5bfbc40de12e8d" @@ -860,23 +926,6 @@ "@solana/spl-token" "^0.3.6" "@solana/web3.js" "^1.66.2" -"@metaplex-foundation/mpl-core@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-core/-/mpl-core-0.0.2.tgz#17ee2cc216e17629d6df1dbba75964625ebbd603" - integrity sha512-UUJ4BlYiWdDegAWmjsNQiNehwYU3QfSFWs3sv4VX0J6/ZrQ28zqosGhQ+I2ZCTEy216finJ82sZWNjuwSWCYyQ== - dependencies: - "@solana/web3.js" "^1.31.0" - bs58 "^4.0.1" - -"@metaplex-foundation/mpl-token-metadata@0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-0.0.2.tgz#02058970320459e2550e90caf54c58bcacbe6bb2" - integrity sha512-yKJPhFlX8MkNbSCi1iwHn4xKmguLK/xFhYa+RuYdL2seuT4CKXHj2CnR2AkcdQj46Za4/nR3jZcRFKq7QlnvBw== - dependencies: - "@metaplex-foundation/mpl-core" "^0.0.2" - "@solana/spl-token" "^0.1.8" - "@solana/web3.js" "^1.31.0" - "@metaplex-foundation/mpl-token-metadata@^2.11.0", "@metaplex-foundation/mpl-token-metadata@^2.5.2": version "2.12.0" resolved "https://registry.yarnpkg.com/@metaplex-foundation/mpl-token-metadata/-/mpl-token-metadata-2.12.0.tgz#9817b2d133c5af46c28ab284316b6985ef62b331" @@ -902,11 +951,6 @@ dependencies: glob "7.1.7" -"@next/font@13.4.4": - version "13.4.4" - resolved "https://registry.yarnpkg.com/@next/font/-/font-13.4.4.tgz#513632591a1041e39c1020022c0995ca78dde4fc" - integrity sha512-iYmL/O0rV9NS8a2UXuRoZOzImz8Q0mM8bAmxtj8nccrpwZ6iOOZlbf2d0Genczl4wtuXRXVPR8goGjJM4C2SDg== - "@next/swc-darwin-arm64@13.4.4": version "13.4.4" resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.4.tgz#8c14083c2478e2a9a8d140cce5900f76b75667ff" @@ -965,6 +1009,13 @@ jsbi "^3.1.5" sha.js "^2.4.11" +"@noble/curves@1.1.0", "@noble/curves@^1.1.0", "@noble/curves@~1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" + integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA== + dependencies: + "@noble/hashes" "1.3.1" + "@noble/curves@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.0.0.tgz#e40be8c7daf088aaf291887cbc73f43464a92932" @@ -982,6 +1033,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== +"@noble/hashes@1.3.1", "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1111,7 +1167,7 @@ snake-case "^3.0.4" toml "^3.0.0" -"@project-serum/borsh@^0.2.2", "@project-serum/borsh@^0.2.3", "@project-serum/borsh@^0.2.5": +"@project-serum/borsh@^0.2.2", "@project-serum/borsh@^0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.2.5.tgz#6059287aa624ecebbfc0edd35e4c28ff987d8663" integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q== @@ -1130,14 +1186,6 @@ bn.js "^5.1.2" buffer-layout "^1.2.0" -"@project-serum/sol-wallet-adapter@0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.2.0.tgz#e1fa5508bf13110429bf26e10b818182015f2161" - integrity sha512-ed7wZwlDqjF88VCq7eHVO8njHqdUkBxBL8WEVOnB47ooLO4btOJt6GBdkKpKqKX86c86LiEROJclcdW8e7kIjg== - dependencies: - bs58 "^4.0.1" - eventemitter3 "^4.0.4" - "@project-serum/sol-wallet-adapter@^0.2.6": version "0.2.6" resolved "https://registry.yarnpkg.com/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.2.6.tgz#b4cd25a566294354427c97c26d716112b91a0107" @@ -1260,6 +1308,28 @@ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== +"@scure/base@~1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" + integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + +"@scure/bip32@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" + integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A== + dependencies: + "@noble/curves" "~1.1.0" + "@noble/hashes" "~1.3.1" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" + integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== + dependencies: + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + "@sentry-internal/tracing@7.58.0": version "7.58.0" resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.58.0.tgz#f6494ae212644b6d268decee6b660d9789b8db9a" @@ -1487,28 +1557,38 @@ "@solana/buffer-layout-utils" "^0.2.0" buffer "^6.0.3" -"@solana/wallet-adapter-alpha@^0.1.9": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-alpha/-/wallet-adapter-alpha-0.1.9.tgz#863ae3f7108046c9e022c80023bb1b0877a6dec5" - integrity sha512-GruswNb+4ft/OaqEvFsSJkA6UDOAtyMazgcqHZycWm3axd215KdBB0Jyx3lpOIafU+3IRqbUc773LUzqrYG6VA== +"@solana/wallet-adapter-alpha@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-alpha/-/wallet-adapter-alpha-0.1.10.tgz#497ac17634dac4de17eba643768df9b30a13129a" + integrity sha512-TOUhDyUNSmp8bqeUueN0LPmurTAEmYm3PTrPGSnsq6JFeTzwTv5xZRygtCvULpBzCPZu/7AfIqh/TSoz4P92aw== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-avana@^0.1.12": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-avana/-/wallet-adapter-avana-0.1.12.tgz#1e10429a22cf92f1310f48f41c3432c5025e72f5" - integrity sha512-BIvddokNhRx+NKfIx+Y8tqiAzI4xloY6bGcrBVNUJF9gcMOX2sDaF6Q1iFxFuxja9ZfIabdb6lyzcjf1bYlzqg== - dependencies: - "@solana/wallet-adapter-base" "^0.9.22" - -"@solana/wallet-adapter-backpack@^0.1.13": +"@solana/wallet-adapter-avana@^0.1.13": version "0.1.13" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-backpack/-/wallet-adapter-backpack-0.1.13.tgz#36a816bc6d620cde3ab9cb161194ecd201fb21a4" - integrity sha512-vt2OcV39uvuS2bBJU4xFwZkWwjRci6TsnQDs6pGQcbrryt8ahICxyCybhRKY3Y58uRnaejW0EDc7P3tBSsDmig== + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-avana/-/wallet-adapter-avana-0.1.13.tgz#dfa5385edcc24557fa6962ade55915a696abc74a" + integrity sha512-dvKDzaFo9KgfNh0ohI6qOBTnOU2f6cHKPiDxdtLfXVubdic1mUYzuA2PcrBZQuRc5EBcvHbGCpr3Ds90cGB+xQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-base@0.9.22", "@solana/wallet-adapter-base@^0.9.17", "@solana/wallet-adapter-base@^0.9.2", "@solana/wallet-adapter-base@^0.9.21", "@solana/wallet-adapter-base@^0.9.22": +"@solana/wallet-adapter-backpack@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-backpack/-/wallet-adapter-backpack-0.1.14.tgz#153d819e27b9457705d41e74306c30b64a565f5c" + integrity sha512-DfNLd5S1P7rmrgqMp+jRd21ryuXUxia1mu4qmZ+cau1NGFO2v5ep14LhzYXmqPde6kgbzPLPkLdRnkffLdI4TA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-base@0.9.23", "@solana/wallet-adapter-base@^0.9.22", "@solana/wallet-adapter-base@^0.9.23": + version "0.9.23" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.23.tgz#3b17c28afd44e173f44f658bf9700fd637e12a11" + integrity sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw== + dependencies: + "@solana/wallet-standard-features" "^1.1.0" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" + eventemitter3 "^4.0.7" + +"@solana/wallet-adapter-base@^0.9.17", "@solana/wallet-adapter-base@^0.9.2": version "0.9.22" resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.22.tgz#97812eaf6aebe01e5fe714326b3c9a0614ae6112" integrity sha512-xbLEZPGSJFvgTeldG9D55evhl7QK/3e/F7vhvcA97mEt1eieTgeKMnGlmmjs3yivI3/gtZNZeSk1XZLnhKcQvw== @@ -1518,190 +1598,190 @@ "@wallet-standard/features" "^1.0.3" eventemitter3 "^4.0.7" -"@solana/wallet-adapter-bitkeep@^0.3.18": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-0.3.18.tgz#00e500d216b9d363bdb024aeb7eb8d7e33f584af" - integrity sha512-RtF0utV6y7Otmquh/Pc8MxfzGGOejrNRlsV6gbK7+vzmLueNgRWi2m++pqpEDUvaSWMU/s+Cd9cgkKHyVju7nw== +"@solana/wallet-adapter-bitkeep@^0.3.19": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-0.3.19.tgz#7d6a467fae791c5486b325473ed6b494958e3b5e" + integrity sha512-C/WUaUqRaJ81yBXv/EhhE0Zb+J6WEqtI+cjyCRvlt4h3Udqj82L/5XMMNJ2APCkuJoI2YwOF0cAO921saczguA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-bitpie@^0.5.17": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-bitpie/-/wallet-adapter-bitpie-0.5.17.tgz#f1eebce0c0cefdf19f21b639d7eca4b8987eaca5" - integrity sha512-fYcNz3Sn44217olI6qWiOaozpwpQIIntgVUwr0pnmxJuLanaxE/CO+mnw2UAps68k7p5/CXBY1VqFmWZwExEUg== +"@solana/wallet-adapter-bitpie@^0.5.18": + version "0.5.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-bitpie/-/wallet-adapter-bitpie-0.5.18.tgz#c77e6d3a43811ed133cf9a92e344aed8ddef15f5" + integrity sha512-gEflEwAyUbfmU4NEmsoDYt1JNFyoBQGm99BBvrvXdJsDdExvT6PwHNi5YlQKp1A4EAqjqaEj+nQzr6ygUpmCBQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-blocto@^0.5.21": - version "0.5.21" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-blocto/-/wallet-adapter-blocto-0.5.21.tgz#c0c554861f64efad75bfd600dd21c80d98e56f00" - integrity sha512-USspnk+qQiGrt+cGfhtkIXyV+WW8NW9z4ni+AniVEgqSlooV2ByF1KSCx/K9pwrXHQEFkqVBmSpn632M49IoKw== +"@solana/wallet-adapter-blocto@^0.5.22": + version "0.5.22" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-blocto/-/wallet-adapter-blocto-0.5.22.tgz#caf5794d52f1751c8da0fc9c6208b6261828da48" + integrity sha512-e98VaErdaVJE14WovTaw6Fpu1F1BP7DbzOdwIR/cAKXkss+Lh4dxZPwT8UVOMwBb2/CZYbuJtEvJuzIzlch0gQ== dependencies: "@blocto/sdk" "^0.2.22" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-brave@^0.1.16": - version "0.1.16" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-brave/-/wallet-adapter-brave-0.1.16.tgz#54bd17028eae9f37a9371205a291ecb3d48faacc" - integrity sha512-ypdweCoRzL8l0aT1Zp7Lbfu9oht2ucYLpqd17DCEBUFtCv4yMZ/dOoW06pV3u8ykdhFz7M8aVsXI2TXvVzwqDQ== +"@solana/wallet-adapter-brave@^0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-brave/-/wallet-adapter-brave-0.1.17.tgz#7c82ffb67378e3f15973de7c22afa9cc2269e665" + integrity sha512-E+TxSpW7+tqR6EFbQ7GMm+92KklEcwsySDWq7RPifet7nmrqKuxbfAHk+OgmwCePxXIH7DsMHV4rmkcT4UZPOw== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-censo@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-censo/-/wallet-adapter-censo-0.1.3.tgz#c948df54d8cb5569dea8a350bf01f08eb1d8cb20" - integrity sha512-+eUF2VfOc04uc/qZIR3Y4UcM4tFLfN46myk1tCd1r3g7iZSeDa7mo5vD1WZXAyjcG756WPpiR08nVim5DHDeJw== +"@solana/wallet-adapter-censo@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-censo/-/wallet-adapter-censo-0.1.4.tgz#912b92d08a8440c1d3751f8b4ddaf618a457d046" + integrity sha512-T0p416xmTTlelhCt755KT/lkaN8uS/QO5NvnOatCx0ZRD41ra9Sqxksbr/G2cIjP2dy7WcXVFO0wLI7moUkqfQ== dependencies: "@censo-custody/solana-wallet-adapter" "^0.1.0" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-clover@^0.4.18": - version "0.4.18" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-clover/-/wallet-adapter-clover-0.4.18.tgz#6592db21bc26e489b311330dee3847fc2a55ff27" - integrity sha512-n2MtGi81+KeWxy6sd3zkTylZ1yRD7Hcpg1WYZURwa1H7nZ808HSoU5aSzwpRUQ75VWyi5Ks2l28sP3oLOugmsQ== +"@solana/wallet-adapter-clover@^0.4.19": + version "0.4.19" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-clover/-/wallet-adapter-clover-0.4.19.tgz#76e63d52d5596f34eb48c1a216f81e9600fa320b" + integrity sha512-48PoaPte/SRYeU25bvOSmSEqoKCcyOBH9CXebsDcXkrgf+g46KRlAlsY605q1ebzr+iaFEONtTdxW8LthvJtbA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-coin98@^0.5.19": - version "0.5.19" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coin98/-/wallet-adapter-coin98-0.5.19.tgz#40f704b0b6f327f98c1dd89a5c0b6e0bd8db4179" - integrity sha512-as32x9i8OEjHHSXSeBWEnIKBqCDvmFVHpRoCWuJUtiogE4OHwhmnF9wRPk1ljmce/FGTFwdkTksxNYRI69qOfw== +"@solana/wallet-adapter-coin98@^0.5.20": + version "0.5.20" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coin98/-/wallet-adapter-coin98-0.5.20.tgz#7ad234b4715cadda80bc09e2ccd9e960ceba1e77" + integrity sha512-gnDFNsFq4IeB6jtQj6fZOUthuuQpvtomCkwkwsOWARNhl8nhnsfbuNs3r4XaT4Q79my07ogNQUBPGKY/8CqjiA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" bs58 "^4.0.1" -"@solana/wallet-adapter-coinbase@^0.1.17": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coinbase/-/wallet-adapter-coinbase-0.1.17.tgz#0685fd9ac68b21b8d30eea5c41f7f77ddafea23f" - integrity sha512-3Le+FlLUwdhCGsOGwcy3b7U1268+xEfjY5/IYQE6Ez9DJNDB2ymZkuF7kpJnJMJEvXR94jSAnJvlTMzANAVtIQ== +"@solana/wallet-adapter-coinbase@^0.1.18": + version "0.1.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coinbase/-/wallet-adapter-coinbase-0.1.18.tgz#f45254ad67479d6f9f95cd7bbd4f4e2db54abaa0" + integrity sha512-63dFQCAaUgcJBA4XxIZLMzyluMPTZKzz1D9yT5lb60WgcIcsQjL7HKIqUCA4j5kT5BkbJIqaNAxhwcq7OlE+4A== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-coinhub@^0.3.17": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coinhub/-/wallet-adapter-coinhub-0.3.17.tgz#ddd4406852617abfe3479b8621124290f75c4070" - integrity sha512-bdniCFBh//ubx+cQVc6p4zNWpiTkF97yalckeTW2PSN5a76jHQeZPzDDsNk8Bvzo08gO2JuK+B+eCvhWK13QJg== +"@solana/wallet-adapter-coinhub@^0.3.18": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coinhub/-/wallet-adapter-coinhub-0.3.18.tgz#3f23b32a88328ae0ba66fc25b15d65e4b13979eb" + integrity sha512-yeJo+cHVlUBlH16Q+knnFDJrH9wzEB3zvSq57PXfqvlWSjySm4PkkK7srRoAwfNOxL/eArSJWfBwRprsymttJQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-exodus@^0.1.17": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-exodus/-/wallet-adapter-exodus-0.1.17.tgz#16d8ba4c4b851dd76a86d2ffa2b5dee1a7431ecc" - integrity sha512-oGP8Z8Irjdk7ofiqR/Vy4MRMOb5nm69IyI/rsI5MBfEOBzxK15Tmh21yQagneVkl7OSVZMjuXu2ImJQLpZtZJw== +"@solana/wallet-adapter-exodus@^0.1.18": + version "0.1.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-exodus/-/wallet-adapter-exodus-0.1.18.tgz#62eed733aea9e188e5f554bc220f51993513fc30" + integrity sha512-mkHLWQWLFtfEm2p4+S/kZM269VaQ8LrABT0ra4359sii4MMMPD5HDLfMzax0RmfEA3PjSHpj6PdBsqw7DNK+og== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-fractal@^0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-fractal/-/wallet-adapter-fractal-0.1.7.tgz#8ed049f62b5b3957336ad50ee8d1df7bf51467e0" - integrity sha512-lhIo8hFbRSOsOxKgBB+t78ymM0pqj2PZG0myMeMqgNP4O6mpvaVcqZ9/tEVoEK+ceraRMuHMLoOfDZhg4coYTw== +"@solana/wallet-adapter-fractal@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-fractal/-/wallet-adapter-fractal-0.1.8.tgz#27c6a33c6d56ffb74bab157f2cc6cde7d03d1e54" + integrity sha512-lV/rXOMQSR7sBIEDx8g0jwvXP/fT2Vw/47CSj9BaVYC5LGphhuoYbcI4ko1y0Zv+dJu8JVRTeKbnaiRBjht5DA== dependencies: "@fractalwagmi/solana-wallet-adapter" "^0.1.1" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-glow@^0.1.17": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-glow/-/wallet-adapter-glow-0.1.17.tgz#f99751ed32b780146258b92fde7982ed176a3e40" - integrity sha512-DcRMKUQSVenPDOjs+O2ouNk9F5YlzKZ+uG2KMTAE9hzBS6CQoQkb+4skLVrs16l+RhU5HTQV+EOw2tFkkW/Teg== +"@solana/wallet-adapter-glow@^0.1.18": + version "0.1.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-glow/-/wallet-adapter-glow-0.1.18.tgz#654abb7a65273c8b5122e02ebaccc38c9121253f" + integrity sha512-5e4WKZ4cgN/dlhBJoHKn/+6z68mRl1A5yf3KBYl1+RgO7ixTN/JncY+ckpdsWUi08hL1Xv8swhyec30JACH/mw== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-huobi@^0.1.14": +"@solana/wallet-adapter-huobi@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-huobi/-/wallet-adapter-huobi-0.1.15.tgz#a9e7eaf26fbef743f0b47572ddc46e92e6a62f44" + integrity sha512-VKwlK0fE7v97NEWwP86iBY/xgnB3fQJv2/RYaw8ODAcfJqVQZAV6EhDR8fo6++jdS1KkcWc2GcHdBMrqPli3yQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-hyperpay@^0.1.14": version "0.1.14" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-huobi/-/wallet-adapter-huobi-0.1.14.tgz#a2ec07662daaa2f2e2c7752a44bf9371951bd8d6" - integrity sha512-1XdAL9nwI1hamMLzN60tSVu1UUcWCK9k4RvnEJPRyjCB1kHoW0AddLs+hZ8DNpiDjfRXNcmuTjXdIGWHjxvqvw== + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-hyperpay/-/wallet-adapter-hyperpay-0.1.14.tgz#1dcf15366165cc4e742346eb42b353c8c67f44f4" + integrity sha512-K0qMVpPHbeIVAvhwnn+2GR8jjBe/a5EP514TL/10SQQ8vTLd7ggNWZdTRCjUkHRlsbTOK7yYWAOHu3gx7429rw== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-hyperpay@^0.1.13": - version "0.1.13" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-hyperpay/-/wallet-adapter-hyperpay-0.1.13.tgz#ee7eda55be3010812053b4e38799b742d6849abd" - integrity sha512-2xUSZsfR76/TEmxMha+mwUvo3HhYY/IKTsC7aU7/ay0A0DlIQstZUwNxGLpCqr9n37/pIXBjl2dGSQ5DxnUONg== - dependencies: - "@solana/wallet-adapter-base" "^0.9.22" - -"@solana/wallet-adapter-keystone@^0.1.11": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-keystone/-/wallet-adapter-keystone-0.1.11.tgz#d3d321462d2c36b4d7a0d74d5f2275ca49da7eaa" - integrity sha512-DChjMuj5l0Mp8CryD6VscfctxSdScVPsuO5kopBTxCFyQJI41ut0WTPrKH5badLUd+xC4arLFZ8x/U8jiRoqNQ== +"@solana/wallet-adapter-keystone@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-keystone/-/wallet-adapter-keystone-0.1.12.tgz#c15491b26d4c77ff149b16a186cacc77c36952ba" + integrity sha512-5B5/3LdsZs6CaUoe9GGuInknFJad1wQgbG0dJPKIYISGT73ijq1/IK7ejs4mWRclDh+9KzQjaY3fU9XSgvzIQQ== dependencies: "@keystonehq/sol-keyring" "^0.3.1" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-krystal@^0.1.11": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-krystal/-/wallet-adapter-krystal-0.1.11.tgz#f729015749fed59f3b4e818acd49dbf5b34eaaa4" - integrity sha512-Jz1HdEohjzUCBK/mQCBtXf3Z1R/rifc1OIt46InKX/b4WCdRMwU2UDhKWwzeNiqFPbI2BaIBKctoKCPKq0uq+w== +"@solana/wallet-adapter-krystal@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-krystal/-/wallet-adapter-krystal-0.1.12.tgz#bcb6cdf6a553dde575042353fdd155a890478fdd" + integrity sha512-umQV9cbLZcqJFkcjpdOgPvTeDvUjcivRSzWgbx27drmeQ9bi4w9bYH5XkFmbj9iD98q+fjrYQUOK772IHZqrkQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-ledger@^0.9.24": - version "0.9.24" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-ledger/-/wallet-adapter-ledger-0.9.24.tgz#4f3882e4b908b100236bf2c8d0fd5ea248df4da3" - integrity sha512-TjrAu6hUdictAZU8wYO6MUzvx8+ZDEBIGnFpjrq+sXlo0NK84WFh8UykFfOtdBaUhwkUkYTgLo+2lMV0OhtT2A== +"@solana/wallet-adapter-ledger@^0.9.25": + version "0.9.25" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-ledger/-/wallet-adapter-ledger-0.9.25.tgz#c9243b47d94469788e8090fbe8a136867e944bd9" + integrity sha512-59yD3aveLwlzXqk4zBCaPLobeqAhmtMxPizfUBOjzwRKyepi1Nnnt9AC9Af3JrweU2x4qySRxAaZfU/iNqJ3rQ== dependencies: "@ledgerhq/devices" "6.27.1" "@ledgerhq/hw-transport" "6.27.1" "@ledgerhq/hw-transport-webhid" "6.27.1" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" buffer "^6.0.3" -"@solana/wallet-adapter-magiceden@^0.1.12": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-magiceden/-/wallet-adapter-magiceden-0.1.12.tgz#819fda35df3c2cd9a9b558589b5369f8143e7046" - integrity sha512-0w53joZfoA4IZSTRuw5jDnkhihqfxZ3INr5yaAq4Bzu13E7UwZYZhqBjnOc+bHorrsbcTUuZk3IgVmoFgzZpHA== +"@solana/wallet-adapter-magiceden@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-magiceden/-/wallet-adapter-magiceden-0.1.13.tgz#4686f6f1d000db9ef60359d1a8556395f9f3c6fd" + integrity sha512-3jaUBTBmRNLK94ednqUgeszFR2L6nlttVZquJP4z12qSFinwXsdAqAvbxV3NbEY/JHm62EoFj+o4U+mVxaL5fw== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-mathwallet@^0.9.17": - version "0.9.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-mathwallet/-/wallet-adapter-mathwallet-0.9.17.tgz#74a36585edaa965622cd2b72bf4580bb32008fb3" - integrity sha512-gyXCZoltA1sbXczVFUbUdxDdey+HawRDoW2bwHHIDWRi26JPAnij671zQkwB5hTIgDRTRDmURSjVvzB9OGNMyw== +"@solana/wallet-adapter-mathwallet@^0.9.18": + version "0.9.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-mathwallet/-/wallet-adapter-mathwallet-0.9.18.tgz#23172fef715a7dc8b600887c5d0fb996eb6c6cf0" + integrity sha512-sleBX+wB8Wahu2lLBCWihkFtnl64DMJgla/kgsf75PCNmNA93+WLA4gYOK+fFKeBkU12a/Hp5oZKEQsQGFPSOA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-neko@^0.2.11": - version "0.2.11" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-neko/-/wallet-adapter-neko-0.2.11.tgz#caeaca7bdd86790e51196968bb14f34c56e20a1c" - integrity sha512-r9koZ1s6t9cvcg0PxZnyG3arh4gQdTjm2nOMiZK1cJKpVpve/p/xMnfrl6xb6FM2KMVDx4qhrkigqSUMplIf7g== +"@solana/wallet-adapter-neko@^0.2.12": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-neko/-/wallet-adapter-neko-0.2.12.tgz#aeacd2ca856692fd41e1c5c86bc986349df42db1" + integrity sha512-ei1QoQZhiYMuH/qm3bnXlueT0jQmH4tZfQvEwudFB8+a0fLtSA8lZU+CYI1jd1YLDjkUEIiXV6R/u32nlCuYDA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-nightly@^0.1.15": - version "0.1.15" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-nightly/-/wallet-adapter-nightly-0.1.15.tgz#8aa20eb207c36e37640e4210773e20d24d8b2e90" - integrity sha512-WbaZGETPZup2q/PXK6lXDlLPOiRbhrb7zqK1WJKpb5Lj/Ik2CoKb+nddAEBgc9EmHVzUMfvHjpop76qU78X0ug== - dependencies: - "@solana/wallet-adapter-base" "^0.9.22" - -"@solana/wallet-adapter-nufi@^0.1.16": +"@solana/wallet-adapter-nightly@^0.1.16": version "0.1.16" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-nufi/-/wallet-adapter-nufi-0.1.16.tgz#0db352238edffd6cc845e8b11f18d5bb32980107" - integrity sha512-6dykeYFPrIE/O7snc8pbERDzyoN7wDIuN70s/LfftZxab6oIo1UdR0pUi1BmB8c4E1Is/w+aIl9Bvv/2O8094w== + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-nightly/-/wallet-adapter-nightly-0.1.16.tgz#51be8f39d8ccac609c59c96ea1f5df95d71274ca" + integrity sha512-JaPzT8R4HHUqGn/QdElx9iRW98h0NaANBt0j3CZZYWlqsdG0f8fFfy2xofILA+qnDL6NaRI9AzQ4NcQGuVZsVQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-onto@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-onto/-/wallet-adapter-onto-0.1.6.tgz#305512820ae30ab23616df11d106680a0e41409d" - integrity sha512-/JQ1dOvvFCViHLRRUTxcmMQhgC40WF3zKkL3SoQUjWD4MFxdGC8C4J+hndSA3rwUoI23fTGDFDhZc5/Elg72xw== +"@solana/wallet-adapter-nufi@^0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-nufi/-/wallet-adapter-nufi-0.1.17.tgz#131a02453905aafdecaef12d251b0b0aaab08a44" + integrity sha512-ggTZKvYPJS3m/9hsMaGSH0F8kqumPqP0WdY7WNihWR6O4Pr401kDBdgXPXNSGorIahdPrRBzp5UrahnrlodvTQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-particle@^0.1.9": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-particle/-/wallet-adapter-particle-0.1.9.tgz#f3f24f216d8a1457643b9e9b251c7b2f373c19a7" - integrity sha512-S4A/D7305JQSd9SZh9C9Yhgtm4KaOCZDwoR2OVxtYJs8ZFr2p+/XO+nDpAAf68cNiqGW8ZQKRc9s/cmELd63sg== +"@solana/wallet-adapter-onto@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-onto/-/wallet-adapter-onto-0.1.7.tgz#f1a9b0aa8205f7bc7c552139ff9a7699e9bf753d" + integrity sha512-WS4LY0Z0J+NcyEkjdjkD11uKURkRQ/RHMYSFE59U+MuBHggEpXJFZuJzUE9SZbG1ltlLTh13hS5ZuiEz7F+faA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-particle@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-particle/-/wallet-adapter-particle-0.1.10.tgz#47f5d5d697f82e601a9a80640a1f954be90c619a" + integrity sha512-5EAzJKUsT4tDAd8slcQKUXLByYIzaXIJj3sSp1BhGuGWAkiOlE4qYfWxjQ6U+vODaWE5mQmGWMPFx94IjLOdAg== dependencies: "@particle-network/solana-wallet" "^0.5.6" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-phantom@^0.9.23": - version "0.9.23" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-phantom/-/wallet-adapter-phantom-0.9.23.tgz#90ab8c8d777ae7a0ebfc3387322dc0b1df3e06ae" - integrity sha512-tkokOc39FJkMVTFR/wLseLY6g7i6cmVvYRcbW7HHABHAfJ4MPPMNjotF/LcNBu8MFcJiE/4qoO2iEwXiQO+ViQ== +"@solana/wallet-adapter-phantom@^0.9.24": + version "0.9.24" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-phantom/-/wallet-adapter-phantom-0.9.24.tgz#9cc0c55d784f99f81a711bae895c38819960b2fc" + integrity sha512-D24AxRHmRJ4AYoRvijbiuUb9LmC4xLGKLMSJS2ly+zGxVmaPASPM/ThaY/DlYTDL31QvkYtl8RzSR4yIU1gpLg== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" "@solana/wallet-adapter-react@0.15.32": version "0.15.32" @@ -1712,195 +1792,198 @@ "@solana/wallet-adapter-base" "^0.9.22" "@solana/wallet-standard-wallet-adapter-react" "^1.0.1" -"@solana/wallet-adapter-safepal@^0.5.17": - version "0.5.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-safepal/-/wallet-adapter-safepal-0.5.17.tgz#0155dd8041a056c9f6527c73a479fd766395ec39" - integrity sha512-Hp14EZ7UvNSiTfuCrvLRY4hqT40gSmRL+z5K7XpOW+oJgIpjhRfvv2o34rKL+qX1QoJUlUN3N6pRu570oytaGQ== +"@solana/wallet-adapter-safepal@^0.5.18": + version "0.5.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-safepal/-/wallet-adapter-safepal-0.5.18.tgz#7eaaeaf6cb162beaed74a61b5beb6b95a67c63ea" + integrity sha512-E/EIO5j+f0FS9Yj5o5JLJ/qHh3Se/9jP2KdHKhooWTlXWbQDzrxMjV88qIKKl5sgWEndqRYDuDbAdW+2dhw6hw== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-saifu@^0.1.14": +"@solana/wallet-adapter-saifu@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-saifu/-/wallet-adapter-saifu-0.1.15.tgz#f02df273b3829486b4d26dd265a80f8af1de1960" + integrity sha512-4nrziKQ+4QInh+COsICpNNUlUt456EJ60SZLxvG/z1AOGpatuzT0gN1+RdMcwHGUtiPBPCkEneUVhFZhhbMJlg== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-salmon@^0.1.14": version "0.1.14" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-saifu/-/wallet-adapter-saifu-0.1.14.tgz#887e7743e6bc10aa371fd9edbe857570b8ef7c53" - integrity sha512-3T9p/IszI6J7BJ94hl2vjMytKZr4YY5vv26pBdmth6AK3Vep0Z381cC/+M/6RyJUOYxiyQKDmi9ZpMZUDraCwQ== + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-salmon/-/wallet-adapter-salmon-0.1.14.tgz#4a6c6d570600e07af731d4ba2565f22a23211d85" + integrity sha512-CMXdbhaj3prloCJwvxO7e1wfAyRd58QiPB8pjvB4GBbznyoSnHbFXmpxZrKX1Dk6FoJOGBgjB71xnreGcc6oMw== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" - -"@solana/wallet-adapter-salmon@^0.1.13": - version "0.1.13" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-salmon/-/wallet-adapter-salmon-0.1.13.tgz#27166a2f36b5fcfcf3059bf32b5e1f87a9aaf3e5" - integrity sha512-NZsoqiFTlmxVWvJC9XNxyEYL9Q9ODJoHRcLqRW91VwnnWaEhjKLppWd6y/HjajewbMzWFH9Yqs34/SYsGypQBw== - dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" salmon-adapter-sdk "^1.1.1" -"@solana/wallet-adapter-sky@^0.1.14": - version "0.1.14" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-sky/-/wallet-adapter-sky-0.1.14.tgz#f76d2f079bf0f72a366da888231a81a41fa46182" - integrity sha512-qQmb1eXPE4W3ECIEexfd07BjXDEdvxKD00BObZXAHYhe06G9I2h083IUNe0ZULfuZq54M/Ebo937P5bUSttoKw== +"@solana/wallet-adapter-sky@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-sky/-/wallet-adapter-sky-0.1.15.tgz#43ea9e2f1505b4ab163b276ac8bd9a6a6467d105" + integrity sha512-1vlk1/jnlOC/WfDDgDoUk3XtEhB3hq1fKtUb+xj0pVuSOg2Db+8ka9vPPYlVaKHoGvjm30iGGfr3ZrCxVfG6OQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-slope@^0.5.20": - version "0.5.20" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-slope/-/wallet-adapter-slope-0.5.20.tgz#0a0dab0e4506c94de752d61946865ad835910fbd" - integrity sha512-KeC9wkptJ8qAD4vysB/lWUKmvnLdFHmaINidQzIq5xKI7ca9uXJtf6mdxdvC58nWpFehKgqUqHnFUkMlkSbcYA== +"@solana/wallet-adapter-slope@^0.5.21": + version "0.5.21" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-slope/-/wallet-adapter-slope-0.5.21.tgz#db08cbc730714f2888b0542e91744836a44c54c1" + integrity sha512-4byuSwqkt8L3w7VzFvVPBN+lNkx7CmEc+FMFZUuo9pBDwwi6sDYZK/+wBBep7L7+xW81XKN9K4MsMOQAD2snSg== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" bs58 "^4.0.1" -"@solana/wallet-adapter-solflare@^0.6.24": - version "0.6.24" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-solflare/-/wallet-adapter-solflare-0.6.24.tgz#f9bf980bda02eb82e58f40a030ffe44cbf791bf2" - integrity sha512-SQl5h6PgDQAgZxxItFcJ5jQApWbjXajSvZttN4uf23VlJg3vi4iu0JEUhVMkTr02zCR2q27xazDMOziJDS4EWw== +"@solana/wallet-adapter-solflare@^0.6.26": + version "0.6.26" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-solflare/-/wallet-adapter-solflare-0.6.26.tgz#d5ee8b03a8265a8246c16453e4578084c5886826" + integrity sha512-QRp89hbByx3Ntj34l8q+N1usdVAbcdcX8GAkW0aYNlIIL1BzkK0zYYOY7rM6j1vIH/6+grXtiizjZ81V0jJhqA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" - "@solflare-wallet/sdk" "^1.2.0" + "@solana/wallet-adapter-base" "^0.9.23" + "@solflare-wallet/sdk" "^1.3.0" -"@solana/wallet-adapter-sollet@^0.11.16": - version "0.11.16" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-sollet/-/wallet-adapter-sollet-0.11.16.tgz#02462f27f29d17e2f869e344ab9f729d5dfa4105" - integrity sha512-QokMgSSTNbPvF78pn2Vx3xW5Ds4i2KRG6Dr6PpRvUw0t1eZ+Agh+GiQZ74Xb/pPCMDwFxhfeyebH0llJNa98/w== +"@solana/wallet-adapter-sollet@^0.11.17": + version "0.11.17" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-sollet/-/wallet-adapter-sollet-0.11.17.tgz#9d8f41cd1a4aa7ac54bba8fda2db6aaf688d93f4" + integrity sha512-jT5kan3FJ6cWfuyFxvDhO9aXyYO8nNAjhJEZWIAPH3to4yrQRCsW/7SJ2M6pTkI9rp7dMX8u5Lm7lWxyPEecBA== dependencies: "@project-serum/sol-wallet-adapter" "^0.2.6" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-solong@^0.9.17": - version "0.9.17" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-solong/-/wallet-adapter-solong-0.9.17.tgz#ea68415688fec5e51a49ffe2d6249d60cc7487b4" - integrity sha512-Dye8MohD2FYDly2I7dqwcMEotLqjVvri+FLuTSy7qu9jEPAXlwd23+SszLajQv8eK8OkPwAIErU11naZBJj9Lg== +"@solana/wallet-adapter-solong@^0.9.18": + version "0.9.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-solong/-/wallet-adapter-solong-0.9.18.tgz#c7b2f043c2142d40cda7537ad028f31bd5b95815" + integrity sha512-n40eemFUbJlOP+FKvn8rgq+YAOW51lEsn7uVz5ZjmiaW6MnRQniId9KkGYPPOUjytFyM+6/4x6IXI+QJknlSqA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-spot@^0.1.14": - version "0.1.14" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-spot/-/wallet-adapter-spot-0.1.14.tgz#16f216b1e98c2a41a43bf1eee8c6ff756be6d1dc" - integrity sha512-e7X2GFHUSBwfcmIwU1VaI2OZaaXNNmbtLFykl422hn+35TQiFG8Vb/1UZAxbED8U5kQ7LQCG6n3PLinfdbtqhA== +"@solana/wallet-adapter-spot@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-spot/-/wallet-adapter-spot-0.1.15.tgz#f442a2f5560ed3abc0fefa5984aaa0af695f3b28" + integrity sha512-daU2iBTSJp1RGfQrB2uV06+2WHfeyW0uhjoJ3zTkz24kXqv5/ycoPHr8Gi2jkDSGMFkewnjWF8g0KMEzq2VYug== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-strike@^0.1.12": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-strike/-/wallet-adapter-strike-0.1.12.tgz#f72d987f403261f90e7039b8a37921980ba473f0" - integrity sha512-3BFGG5qQxbxGdwAjLj+j18jbDqXodua3fv1ltX8qXkBtlxu2vJjeG6Iiem0/Ab0OGHtQrE2mve6vmf4iiYkT5g== +"@solana/wallet-adapter-strike@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-strike/-/wallet-adapter-strike-0.1.13.tgz#5d55530ea526518acd3f4134026524cd3e81b032" + integrity sha512-SwM6oRiTZm75t6ACJZsbouJ21Ftvsxg6OYkyhCvsdi1KOv60/i4CHDTfFEvEYe+C2GR2p8W7RxyOuxp74pueZA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" "@strike-protocols/solana-wallet-adapter" "^0.1.8" -"@solana/wallet-adapter-tokenary@^0.1.11": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-tokenary/-/wallet-adapter-tokenary-0.1.11.tgz#259ff5966d983628d30789b902795e2c63992dd9" - integrity sha512-rfb9k0wBD62Nm+fI80E/v2pWEbsytiR0K1dHrD/WWXmkHS4rDELRtxJ23wLYUx3Rbc3BGIEZWNJRH+JycD3s1w== +"@solana/wallet-adapter-tokenary@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-tokenary/-/wallet-adapter-tokenary-0.1.12.tgz#83d99309528794fb2380354c164729e68abe1440" + integrity sha512-iIsOzzEHfRfDUiwYy2BAVGeMl+xBUu92qYK1yAKeKxQPF5McJrnjS3FXwT/onBU5WMdxI6dWm0HKZUiDwefN6A== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-tokenpocket@^0.4.18": - version "0.4.18" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-tokenpocket/-/wallet-adapter-tokenpocket-0.4.18.tgz#0f35f323f81050f40886a4728e39e4350323206a" - integrity sha512-+xxAdRYp5Bw1zp/N3Wk3gy6iCA31aKZgQo/MSCedli+lihdx1eFLA/+o5pnM8AcYwn2IwAtSloMBg8VlVn8LBQ== +"@solana/wallet-adapter-tokenpocket@^0.4.19": + version "0.4.19" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-tokenpocket/-/wallet-adapter-tokenpocket-0.4.19.tgz#a380eb15270d1d209d4d7b4e961270b977e4070e" + integrity sha512-zKXTN+tuKIr/stSxUeG9XPBks9iqeliBWS9JF8eq+8u/Qb/bIDbNSQmd8Z5u1x2lf0puiStc9/iUu/+MLaOSVg== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-torus@^0.11.27": - version "0.11.27" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-torus/-/wallet-adapter-torus-0.11.27.tgz#4725187f381b69940d9d21043e4e807693a1dfc1" - integrity sha512-0Fadxkvxq1fHtpK5p/0j5YvwzckqurCwcmKVcEuX62QL5ly+EzrojOi4vwrQXQshArCXExf8y4laAgmt5yc+DQ== +"@solana/wallet-adapter-torus@^0.11.28": + version "0.11.28" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-torus/-/wallet-adapter-torus-0.11.28.tgz#b857eeab77ff16a0e2400bc841e261ce58fb9da3" + integrity sha512-bu1oJQ+AoIZICxz8J1lVcdL+iBBrdbynnEs5N6dxwoM/cMGLbX7PGYqaH0J1dEXisA+1H5AzGAnW4UU05VBmLA== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" - "@toruslabs/solana-embed" "^0.3.3" + "@solana/wallet-adapter-base" "^0.9.23" + "@toruslabs/solana-embed" "^0.3.4" assert "^2.0.0" crypto-browserify "^3.12.0" process "^0.11.10" stream-browserify "^3.0.0" -"@solana/wallet-adapter-trust@^0.1.12": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-trust/-/wallet-adapter-trust-0.1.12.tgz#e5aceed172951ccbdd7cc8ae1da758c053d50ef8" - integrity sha512-asFldlDEkmXiSihlccMjJvQsyXthr3Lcq5ExhSWlPu+q4acoXaYM4AL5kQOxLhJ74NrsTSSM1LVCwne0CQ4uew== +"@solana/wallet-adapter-trust@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-trust/-/wallet-adapter-trust-0.1.13.tgz#7c67b76d1977f9e2e45a8b6f5e4c470b29c1d33e" + integrity sha512-lkmPfNdyRgx+z0K7i2cDa3a6SOKXpi3FiaYSo8Zozoxkp+Ga/NXVWxlXtMca4GAc/MnJMVp7yF/31kyFIee+3A== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-unsafe-burner@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-unsafe-burner/-/wallet-adapter-unsafe-burner-0.1.6.tgz#70f2e9328ceea26cd6d640e1a41ed0f5b65e2734" - integrity sha512-uDPsYkrDbPFuLZpMPiaDk3OjiimMby+TywRoGrNMs80Ij/mPQIN9mJRFaI1pNumzav3LF1bPGjzJ/LVDB814qQ== +"@solana/wallet-adapter-unsafe-burner@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-unsafe-burner/-/wallet-adapter-unsafe-burner-0.1.7.tgz#11e734988af382f2eeb533d0eacca297de4bf190" + integrity sha512-SuBVqQxA1NNUwP4Lo70rLPaM8aWkV1EFAlxkRoRLtwyw/gM8bxTO6+9EVyKCv+ix3yw1rCGIF3B0idXx0i37eQ== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@noble/curves" "^1.1.0" + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-standard-features" "^1.1.0" + "@solana/wallet-standard-util" "^1.1.0" -"@solana/wallet-adapter-walletconnect@^0.1.15": - version "0.1.15" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-walletconnect/-/wallet-adapter-walletconnect-0.1.15.tgz#dbed605cc9b97d42f352be107728819613365a4d" - integrity sha512-0JhCNO9SHwbIpana0istDWH3IJbdwPy2d1tjkcvL/X7wj0/DZbMDOkcLESOIEn63EV7knqRPc8CNmxkYl/O4Jw== +"@solana/wallet-adapter-walletconnect@^0.1.16": + version "0.1.16" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-walletconnect/-/wallet-adapter-walletconnect-0.1.16.tgz#c335970ddec1247e546a4811fceb4f5edf9487de" + integrity sha512-jNaQwSho8hT7gF1ifePE8TJc1FULx8jCF16KX3fZPtzXDxKrj0R4VUpHMGcw4MlDknrnZNLOJAVvyiawAkPCRQ== dependencies: "@jnwng/walletconnect-solana" "^0.2.0" - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-adapter-wallets@0.19.18": - version "0.19.18" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-wallets/-/wallet-adapter-wallets-0.19.18.tgz#f74392b8ccd63fc2c0aa8e4f37b5a53b1a59d60c" - integrity sha512-+5CPvNfmdIEk62Eg7GGueNhEPB1SI0SOPfhwoxA3t5CRzOGKRLLFdt7aqa+umg1QetOGzVRCeyFbEMnFLF22pA== +"@solana/wallet-adapter-wallets@0.19.20": + version "0.19.20" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-wallets/-/wallet-adapter-wallets-0.19.20.tgz#25bbbbf2349f9c8ee169de1db34c74900f0e8a35" + integrity sha512-bE7tS6UykCSiWmudo8DYe/mZV0HoyqI+XifIjPaY/BNSgXQ3u1cwbqvqcLURuixBRnOka7FE6VuT90PhRsosqA== dependencies: - "@solana/wallet-adapter-alpha" "^0.1.9" - "@solana/wallet-adapter-avana" "^0.1.12" - "@solana/wallet-adapter-backpack" "^0.1.13" - "@solana/wallet-adapter-bitkeep" "^0.3.18" - "@solana/wallet-adapter-bitpie" "^0.5.17" - "@solana/wallet-adapter-blocto" "^0.5.21" - "@solana/wallet-adapter-brave" "^0.1.16" - "@solana/wallet-adapter-censo" "^0.1.3" - "@solana/wallet-adapter-clover" "^0.4.18" - "@solana/wallet-adapter-coin98" "^0.5.19" - "@solana/wallet-adapter-coinbase" "^0.1.17" - "@solana/wallet-adapter-coinhub" "^0.3.17" - "@solana/wallet-adapter-exodus" "^0.1.17" - "@solana/wallet-adapter-fractal" "^0.1.7" - "@solana/wallet-adapter-glow" "^0.1.17" - "@solana/wallet-adapter-huobi" "^0.1.14" - "@solana/wallet-adapter-hyperpay" "^0.1.13" - "@solana/wallet-adapter-keystone" "^0.1.11" - "@solana/wallet-adapter-krystal" "^0.1.11" - "@solana/wallet-adapter-ledger" "^0.9.24" - "@solana/wallet-adapter-magiceden" "^0.1.12" - "@solana/wallet-adapter-mathwallet" "^0.9.17" - "@solana/wallet-adapter-neko" "^0.2.11" - "@solana/wallet-adapter-nightly" "^0.1.15" - "@solana/wallet-adapter-nufi" "^0.1.16" - "@solana/wallet-adapter-onto" "^0.1.6" - "@solana/wallet-adapter-particle" "^0.1.9" - "@solana/wallet-adapter-phantom" "^0.9.23" - "@solana/wallet-adapter-safepal" "^0.5.17" - "@solana/wallet-adapter-saifu" "^0.1.14" - "@solana/wallet-adapter-salmon" "^0.1.13" - "@solana/wallet-adapter-sky" "^0.1.14" - "@solana/wallet-adapter-slope" "^0.5.20" - "@solana/wallet-adapter-solflare" "^0.6.24" - "@solana/wallet-adapter-sollet" "^0.11.16" - "@solana/wallet-adapter-solong" "^0.9.17" - "@solana/wallet-adapter-spot" "^0.1.14" - "@solana/wallet-adapter-strike" "^0.1.12" - "@solana/wallet-adapter-tokenary" "^0.1.11" - "@solana/wallet-adapter-tokenpocket" "^0.4.18" - "@solana/wallet-adapter-torus" "^0.11.27" - "@solana/wallet-adapter-trust" "^0.1.12" - "@solana/wallet-adapter-unsafe-burner" "^0.1.6" - "@solana/wallet-adapter-walletconnect" "^0.1.15" - "@solana/wallet-adapter-xdefi" "^0.1.6" + "@solana/wallet-adapter-alpha" "^0.1.10" + "@solana/wallet-adapter-avana" "^0.1.13" + "@solana/wallet-adapter-backpack" "^0.1.14" + "@solana/wallet-adapter-bitkeep" "^0.3.19" + "@solana/wallet-adapter-bitpie" "^0.5.18" + "@solana/wallet-adapter-blocto" "^0.5.22" + "@solana/wallet-adapter-brave" "^0.1.17" + "@solana/wallet-adapter-censo" "^0.1.4" + "@solana/wallet-adapter-clover" "^0.4.19" + "@solana/wallet-adapter-coin98" "^0.5.20" + "@solana/wallet-adapter-coinbase" "^0.1.18" + "@solana/wallet-adapter-coinhub" "^0.3.18" + "@solana/wallet-adapter-exodus" "^0.1.18" + "@solana/wallet-adapter-fractal" "^0.1.8" + "@solana/wallet-adapter-glow" "^0.1.18" + "@solana/wallet-adapter-huobi" "^0.1.15" + "@solana/wallet-adapter-hyperpay" "^0.1.14" + "@solana/wallet-adapter-keystone" "^0.1.12" + "@solana/wallet-adapter-krystal" "^0.1.12" + "@solana/wallet-adapter-ledger" "^0.9.25" + "@solana/wallet-adapter-magiceden" "^0.1.13" + "@solana/wallet-adapter-mathwallet" "^0.9.18" + "@solana/wallet-adapter-neko" "^0.2.12" + "@solana/wallet-adapter-nightly" "^0.1.16" + "@solana/wallet-adapter-nufi" "^0.1.17" + "@solana/wallet-adapter-onto" "^0.1.7" + "@solana/wallet-adapter-particle" "^0.1.10" + "@solana/wallet-adapter-phantom" "^0.9.24" + "@solana/wallet-adapter-safepal" "^0.5.18" + "@solana/wallet-adapter-saifu" "^0.1.15" + "@solana/wallet-adapter-salmon" "^0.1.14" + "@solana/wallet-adapter-sky" "^0.1.15" + "@solana/wallet-adapter-slope" "^0.5.21" + "@solana/wallet-adapter-solflare" "^0.6.26" + "@solana/wallet-adapter-sollet" "^0.11.17" + "@solana/wallet-adapter-solong" "^0.9.18" + "@solana/wallet-adapter-spot" "^0.1.15" + "@solana/wallet-adapter-strike" "^0.1.13" + "@solana/wallet-adapter-tokenary" "^0.1.12" + "@solana/wallet-adapter-tokenpocket" "^0.4.19" + "@solana/wallet-adapter-torus" "^0.11.28" + "@solana/wallet-adapter-trust" "^0.1.13" + "@solana/wallet-adapter-unsafe-burner" "^0.1.7" + "@solana/wallet-adapter-walletconnect" "^0.1.16" + "@solana/wallet-adapter-xdefi" "^0.1.7" -"@solana/wallet-adapter-xdefi@^0.1.6": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-xdefi/-/wallet-adapter-xdefi-0.1.6.tgz#8e94c360c2d53084573375fcaaefb745d8192f3f" - integrity sha512-Fj1LLsqmxqPU8/DwOMzdl4HVi7sM8xgkzS1+iNaB1McNXf1HjJ0iQr6BWmkm/7aBdNFo4GrVYa1nYz1NIp/3+Q== +"@solana/wallet-adapter-xdefi@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-xdefi/-/wallet-adapter-xdefi-0.1.7.tgz#caa3c134148a4b9867a474ec3d139b4d7326d522" + integrity sha512-d0icfBOQyaY8kpsdU/wQwaBIahZZPzkXkXfBjpMGwjixD8oeZUFfsg8LC7T1rOIUObeczlocaR/lwtEqWpnaeg== dependencies: - "@solana/wallet-adapter-base" "^0.9.22" + "@solana/wallet-adapter-base" "^0.9.23" -"@solana/wallet-standard-chains@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-chains/-/wallet-standard-chains-1.0.0.tgz#4c291a2f79f0e105ce0a47b30d98dbd7f8ba69be" - integrity sha512-kr3+JAo7mEBhVCH9cYzjn/vXeUiZeYfB4BF6E8u3U2jq3KlZA/KB+YM976+zGumTfN0NmMXUm066pTTG9kJsNQ== +"@solana/wallet-standard-chains@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-chains/-/wallet-standard-chains-1.1.0.tgz#459b297e71b0d9c1196c11a0578b38c85998be7d" + integrity sha512-IRJHf94UZM8AaRRmY18d34xCJiVPJej1XVwXiTjihHnmwD0cxdQbc/CKjrawyqFyQAKJx7raE5g9mnJsAdspTg== dependencies: - "@wallet-standard/base" "^1.0.0" + "@wallet-standard/base" "^1.0.1" -"@solana/wallet-standard-features@^1.0.0", "@solana/wallet-standard-features@^1.0.1": +"@solana/wallet-standard-features@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@solana/wallet-standard-features/-/wallet-standard-features-1.0.1.tgz#36270a646f74a80e51b9e21fb360edb64f840c68" integrity sha512-SUfx7KtBJ55XIj0qAhhVcC1I6MklAXqWFEz9hDHW+6YcJIyvfix/EilBhaBik1FJ2JT0zukpOfFv8zpuAbFRbw== @@ -1908,38 +1991,47 @@ "@wallet-standard/base" "^1.0.1" "@wallet-standard/features" "^1.0.3" -"@solana/wallet-standard-util@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-util/-/wallet-standard-util-1.0.0.tgz#597b3a240f1855d25d93c2cd7efe8631a1a241ac" - integrity sha512-qRAOBXnN7dwvtgzTtxIHsSeJAMbGNZdSWs57TT8pCyBrKL5dVxaK2u95Dm17SRSzwfKl/EByV1lTjOxXyKWS+g== +"@solana/wallet-standard-features@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-features/-/wallet-standard-features-1.1.0.tgz#516d78626dd0802d299db49298e4ebbec3433940" + integrity sha512-oVyygxfYkkF5INYL0GuD8GFmNO/wd45zNesIqGCFE6X66BYxmI6HmyzQJCcZTZ0BNsezlVg4t+3MCL5AhfFoGA== dependencies: - "@solana/wallet-standard-chains" "^1.0.0" - "@solana/wallet-standard-features" "^1.0.0" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" -"@solana/wallet-standard-wallet-adapter-base@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-base/-/wallet-standard-wallet-adapter-base-1.0.2.tgz#d6028c27381fe384a34a7426b3eb828a1da6bff0" - integrity sha512-QqkupdWvWuihX87W6ijt174u6ZdP5OSFlNhZhuhoMlIdyI/sj7MhGsdppuRlMh65oVO2WNWTL9y2bO5Pbx+dfg== +"@solana/wallet-standard-util@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-util/-/wallet-standard-util-1.1.0.tgz#e19d91dae0e84b56724bd132abf1cef4a1824324" + integrity sha512-vssoCIx43sY5EMrT1pVltsZZKPAQfKpPG3ib2fuqRqpTRGkeRFCPDf4lrVFAYYp238tFr3Xrr/3JLcGvPP7uYw== dependencies: - "@solana/wallet-adapter-base" "^0.9.21" - "@solana/wallet-standard-chains" "^1.0.0" - "@solana/wallet-standard-features" "^1.0.1" - "@solana/wallet-standard-util" "^1.0.0" + "@noble/curves" "^1.1.0" + "@solana/wallet-standard-chains" "^1.1.0" + "@solana/wallet-standard-features" "^1.1.0" + +"@solana/wallet-standard-wallet-adapter-base@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-base/-/wallet-standard-wallet-adapter-base-1.1.1.tgz#a93a6121f06b1021bf9a50cb5803e7a2ebc3ce0c" + integrity sha512-+CPKbUZgiy0VpOWvy7sTpZYf04bB4eapslZNBg085zVLzNaFjrU9CYwudMLWbjlmZ4Wz0cE3DNtNwDtY0cj01A== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-standard-chains" "^1.1.0" + "@solana/wallet-standard-features" "^1.1.0" + "@solana/wallet-standard-util" "^1.1.0" "@wallet-standard/app" "^1.0.1" "@wallet-standard/base" "^1.0.1" "@wallet-standard/features" "^1.0.3" "@wallet-standard/wallet" "^1.0.1" "@solana/wallet-standard-wallet-adapter-react@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-react/-/wallet-standard-wallet-adapter-react-1.0.2.tgz#8359900de37b05f921eb2318162a4dc179ce9864" - integrity sha512-0YTPUnjiSG5ajDP2hK8EipxkeHhO3+nCtXeF1eS/ZP2QcFAgS/4luywrn/6CdfzQ2cQYPCFdnG/QculpUp6bBg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-react/-/wallet-standard-wallet-adapter-react-1.1.1.tgz#d6106e436b8846a7627114667cd9c0afb5508c96" + integrity sha512-uioyIU6huyTVHu8eF/hgbW+IbeY4qzoJRCO1UddMl84l8Y1WGkSPCsGliAGc0NNMwHCBi+icP+DjhGc9JdwEMA== dependencies: - "@solana/wallet-standard-wallet-adapter-base" "^1.0.2" + "@solana/wallet-standard-wallet-adapter-base" "^1.1.1" "@wallet-standard/app" "^1.0.1" "@wallet-standard/base" "^1.0.1" -"@solana/web3.js@^1.17.0", "@solana/web3.js@^1.21.0", "@solana/web3.js@^1.22.0", "@solana/web3.js@^1.31.0", "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.3", "@solana/web3.js@^1.50.1", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2", "@solana/web3.js@^1.68.0", "@solana/web3.js@^1.73.2", "@solana/web3.js@^1.78.0": +"@solana/web3.js@^1.17.0", "@solana/web3.js@^1.21.0", "@solana/web3.js@^1.22.0", "@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.44.3", "@solana/web3.js@^1.50.1", "@solana/web3.js@^1.56.2", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.66.2", "@solana/web3.js@^1.68.0", "@solana/web3.js@^1.73.2", "@solana/web3.js@^1.78.0": version "1.78.1" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.78.1.tgz#1b1023f81aa98f53ef45eaec642be11c0a0877f3" integrity sha512-r0WZAYwCfVElfONP/dmWkEfw6wufL+u7lWojEsNecn9PyIIYq+r4eb0h2MRiJ3xkctvTN76G0T6FTGcTJhXh3Q== @@ -1960,28 +2052,14 @@ rpc-websockets "^7.5.1" superstruct "^0.14.2" -"@solflare-wallet/pfp@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@solflare-wallet/pfp/-/pfp-0.0.6.tgz#0dc360e7ebb11029977f5cd5593b5dc5e6074bab" - integrity sha512-XZxgD2VvCFweaPHzWpbKcp+wJvpOYihBBj+kCEJr9gDGdEEJNpBAiJAr5QO2L85Zg0IIXdMD+wi7m5K0m/2/wg== +"@solflare-wallet/sdk@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@solflare-wallet/sdk/-/sdk-1.3.0.tgz#9d4de45d1856c4ce624631c8d2e27fbf9722f813" + integrity sha512-wzHJTATtsrvPzhZJG58TkcJmsMZl6yTULnWsw1txuUOWJzol916jUndcvPSlVM3zA/WU/AUk96UCVeFUOq27Nw== dependencies: - "@metaplex-foundation/mpl-token-metadata" "0.0.2" - "@project-serum/borsh" "^0.2.3" - "@solana/web3.js" "^1.31.0" - btoa "^1.2.1" - buffer "^6.0.3" - cross-fetch "^3.1.4" - jdenticon "^3.1.1" - -"@solflare-wallet/sdk@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@solflare-wallet/sdk/-/sdk-1.2.0.tgz#3ba412f316cc6ea324679cd6233d363296770ead" - integrity sha512-J3KZJdeYJ2R7jPHa0F53iCtkQEdcD1j7yeFQ4oa6Kk6gU1MOqSEWZxrr56sVDKWuPT/gunzEXGrgcwjd7nxwjg== - dependencies: - "@project-serum/sol-wallet-adapter" "0.2.0" - bs58 "^4.0.1" - eventemitter3 "^4.0.7" - uuid "^8.3.2" + bs58 "^5.0.0" + eventemitter3 "^5.0.1" + uuid "^9.0.0" "@stablelib/aead@^1.0.1": version "1.0.1" @@ -2197,87 +2275,67 @@ dependencies: tippy.js "^6.3.1" -"@toruslabs/base-controllers@^2.2.6": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@toruslabs/base-controllers/-/base-controllers-2.7.0.tgz#fe19bcf548d11d6266da56f56a84b2f7b5ed27b4" - integrity sha512-K/cw34TZdKX6vfWcRJaka/IyucOuVLc5LcJubRLGCsO/yk86hnMUG1fYlVfQyy8fVXWERZe0d9yyyVAsnxDAww== +"@toruslabs/base-controllers@^2.8.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@toruslabs/base-controllers/-/base-controllers-2.9.0.tgz#e23f4228b5a90bf94ba9b0b27451f3024bd1acc4" + integrity sha512-rKc+bR4QB/wdbH0CxLZC5e2PUZcIgkr9yY7TMd3oIffDklaYBnsuC5ES2/rgK1aRUDRWz+qWbTwLqsY6PlT37Q== dependencies: - "@toruslabs/broadcast-channel" "^6.1.1" - "@toruslabs/http-helpers" "^3.2.0" - "@toruslabs/openlogin-jrpc" "^3.0.0" + "@ethereumjs/util" "^8.0.6" + "@toruslabs/broadcast-channel" "^6.2.0" + "@toruslabs/http-helpers" "^3.3.0" + "@toruslabs/openlogin-jrpc" "^4.0.0" async-mutex "^0.4.0" bignumber.js "^9.1.1" bowser "^2.11.0" eth-rpc-errors "^4.0.3" - ethereumjs-util "^7.1.5" json-rpc-random-id "^1.0.1" lodash "^4.17.21" loglevel "^1.8.1" -"@toruslabs/broadcast-channel@^6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@toruslabs/broadcast-channel/-/broadcast-channel-6.1.1.tgz#119ac53aed467f505dff7f085b2043d42d28f6f4" - integrity sha512-FapnmyPLpqfrdbfyawlReRpluEKQ2riqCNOOZQz9KHPF8a/XsgYi/UAdrR02k6BHaZYyV6D52Oji1gM6CPj6EQ== +"@toruslabs/broadcast-channel@^6.2.0": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@toruslabs/broadcast-channel/-/broadcast-channel-6.3.1.tgz#d4b0a08c3a0fa88d42d7f33387ce9be928c2d4b2" + integrity sha512-BEtJQ+9bMfFoGuCsp5NmxyY+C980Ho+3BZIKSiYwRtl5qymJ+jMX5lsoCppoQblcb34dP6FwEjeFw80Y9QC/rw== dependencies: - "@babel/runtime" "^7.19.4" - "@toruslabs/eccrypto" "^1.1.8" - "@toruslabs/metadata-helpers" "^3.0.0" + "@babel/runtime" "^7.21.0" + "@toruslabs/eccrypto" "^2.1.1" + "@toruslabs/metadata-helpers" "^3.2.0" bowser "^2.11.0" - keccak "^3.0.2" - loglevel "^1.8.0" + loglevel "^1.8.1" oblivious-set "1.1.1" - socket.io-client "^4.5.3" - unload "^2.3.1" + socket.io-client "^4.6.1" + unload "^2.4.1" -"@toruslabs/eccrypto@^1.1.8": - version "1.1.8" - resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-1.1.8.tgz#ce1eac9c3964a091cdc74956a62036b5719a41eb" - integrity sha512-5dIrO2KVqvnAPOPfJ2m6bnjp9vav9GIcCZXiXRW/bJuIDRLVxJhVvRlleF4oaEZPq5yX5piHq5jVHagNNS0jOQ== +"@toruslabs/eccrypto@^2.1.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-2.2.1.tgz#19012cc4e774e8c3df7ceebb2c1a07ecfd784917" + integrity sha512-7sviL0wLYsfA5ogEAOIdb0tu/QAOFXfHc9B8ONYtF04x4Mg3Nr89LL35FhjaEm055q8Ru7cUQhEFSiqJqm9GCw== dependencies: - acorn "^8.4.1" elliptic "^6.5.4" - es6-promise "^4.2.8" - nan "^2.14.2" - optionalDependencies: - secp256k1 "^3.8.0" -"@toruslabs/http-helpers@^3.0.0", "@toruslabs/http-helpers@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-3.2.0.tgz#9e33dd23936ef90852133372c831f03b7a8badc5" - integrity sha512-fCfvBHfYzd7AyOYlBo7wihh5nj6+4Ik6V5+nI7H63oiKICjMlByTXSauTUa/qm2mjZJn/OmVYeV5guPIgxoW1w== +"@toruslabs/http-helpers@^3.3.0", "@toruslabs/http-helpers@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-3.4.0.tgz#6d1da9e6aba094af62e73cf639a69844c82202f3" + integrity sha512-CoeJSL32mpp0gmYjxv48odu6pfjHk/rbJHDwCtYPcMHAl+qUQ/DTpVOOn9U0fGkD+fYZrQmZbRkXFgLhiT0ajQ== dependencies: lodash.merge "^4.6.2" - loglevel "^1.8.0" + loglevel "^1.8.1" -"@toruslabs/metadata-helpers@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@toruslabs/metadata-helpers/-/metadata-helpers-3.0.0.tgz#ebc613bcd05ed7cfcf4ac1eb01e9558500a2e590" - integrity sha512-0eWCIbKpaBx3/z3BDyWebxUisCS37Uxb0zxOEWizSXjGH/T6TJCrBeZFPmANN3hq47GoNCsRiku9cgfij1UMTQ== +"@toruslabs/metadata-helpers@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@toruslabs/metadata-helpers/-/metadata-helpers-3.2.0.tgz#b297933ac37481a9c86a125ac6a4e5c2f109fb78" + integrity sha512-2bCc6PNKd9y+aWfZQ1FXd47QmfyT4NmmqPGfsqk+sQS2o+MlxIyLuh9uh7deMgXo4b4qBDX+RQGbIKM1zVk56w== dependencies: - "@toruslabs/eccrypto" "^1.1.8" - "@toruslabs/http-helpers" "^3.0.0" + "@toruslabs/eccrypto" "^2.1.1" + "@toruslabs/http-helpers" "^3.4.0" elliptic "^6.5.4" - json-stable-stringify "^1.0.1" - keccak "^3.0.2" + ethereum-cryptography "^2.0.0" + json-stable-stringify "^1.0.2" -"@toruslabs/openlogin-jrpc@^2.6.0": - version "2.13.0" - resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-jrpc/-/openlogin-jrpc-2.13.0.tgz#aae71e7c9b0161bc14baf3fc696605d74e0b99f4" - integrity sha512-TEg50/84xSocHLb3MEtw0DaIa+bXU66TJJjjDrqGPjoRo97fn8F8jDW2AcVV+eug39xpfxPIw1FFdCtgunmz7w== - dependencies: - "@toruslabs/openlogin-utils" "^2.13.0" - end-of-stream "^1.4.4" - eth-rpc-errors "^4.0.3" - events "^3.3.0" - fast-safe-stringify "^2.1.1" - once "^1.4.0" - pump "^3.0.0" - readable-stream "^3.6.0" - -"@toruslabs/openlogin-jrpc@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-jrpc/-/openlogin-jrpc-3.0.0.tgz#dc972a0310853b424a790ce9ed8eb0e1f5242c32" - integrity sha512-EbrPxx9JJDzTGPRGhpnoqngrwVRgNxwY86f6Vp4hCJnZNn/IgNz39KGROEi8SDNWADYuT29d8gyZ5Y0o79TOMA== +"@toruslabs/openlogin-jrpc@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-jrpc/-/openlogin-jrpc-3.2.0.tgz#fff051d05b6c01b6329e2da9b134fae99305d1e0" + integrity sha512-G+K0EHyVUaAEyeD4xGsnAZRpn/ner8lQ2HC2+pGKg6oGmzKI2wGMDcw2KMH6+HKlfBGVJ5/VR9AQfC/tZlLDmQ== dependencies: "@toruslabs/openlogin-utils" "^3.0.0" end-of-stream "^1.4.4" @@ -2286,16 +2344,21 @@ fast-safe-stringify "^2.1.1" once "^1.4.0" pump "^3.0.0" - readable-stream "^3.6.0" + readable-stream "^3.6.2" -"@toruslabs/openlogin-utils@^2.13.0": - version "2.13.0" - resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-utils/-/openlogin-utils-2.13.0.tgz#e339f9d638b1e3a8ecca7b8c973d6060a19afda5" - integrity sha512-g4pj6hIdKcuyetVsUWqiAJmCooTS9hOADL31m7LTqgdXzX9oR437A+c8Dw8gzFVcHmkK16Yt2//GvlKnSsGILg== +"@toruslabs/openlogin-jrpc@^4.0.0": + version "4.7.2" + resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-jrpc/-/openlogin-jrpc-4.7.2.tgz#e04dd6945da92d790f713a58aaa1657c57b330c8" + integrity sha512-9Eb0cPc0lPuS6v2YkQlgzfbRnZ6fLez9Ike5wznoHSFA2/JVu1onwuI56EV1HwswdDrOWPPQEyzI1j9NriZ0ew== dependencies: - base64url "^3.0.1" - keccak "^3.0.3" - randombytes "^2.1.0" + "@metamask/rpc-errors" "^5.1.1" + "@toruslabs/openlogin-utils" "^4.7.0" + end-of-stream "^1.4.4" + events "^3.3.0" + fast-safe-stringify "^2.1.1" + once "^1.4.0" + pump "^3.0.0" + readable-stream "^4.4.2" "@toruslabs/openlogin-utils@^3.0.0": version "3.0.0" @@ -2306,20 +2369,27 @@ keccak "^3.0.3" randombytes "^2.1.0" -"@toruslabs/solana-embed@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@toruslabs/solana-embed/-/solana-embed-0.3.3.tgz#8a04c672386163f516de182ce64e34743b21363e" - integrity sha512-Edw0p1oNNG+fk+3XIZZiIiwdi75lgtOpCjIK7G7PbR3ygJPVgM7e6L0MCOVNkX0LSJTc5HJFi9E0MiAf4cG7UQ== +"@toruslabs/openlogin-utils@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-utils/-/openlogin-utils-4.7.0.tgz#741d6ba1c0754b59a182b1c6dd8d0263695ed980" + integrity sha512-w6XkHs4WKuufsf/zzteBzs4EJuOknrUmJ+iv5FZ8HzIpMQeL/984CP8HYaFSEYkbGCP4ydAnhY4Uh0QAhpDbPg== + dependencies: + base64url "^3.0.1" + +"@toruslabs/solana-embed@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@toruslabs/solana-embed/-/solana-embed-0.3.4.tgz#547727e6d202f734d1e97a6658bdb3cf54599938" + integrity sha512-yj+aBJoBAneap7Jlu9/OOp7irWNuC5CqAhyhVcmb0IjWrCUFnioLdL0U7UfGaqVm/5O0leJh7/Z5Ll+3toWJBg== dependencies: "@solana/web3.js" "^1.63.1" - "@toruslabs/base-controllers" "^2.2.6" - "@toruslabs/http-helpers" "^3.2.0" - "@toruslabs/openlogin-jrpc" "^2.6.0" + "@toruslabs/base-controllers" "^2.8.0" + "@toruslabs/http-helpers" "^3.3.0" + "@toruslabs/openlogin-jrpc" "^3.2.0" eth-rpc-errors "^4.0.3" fast-deep-equal "^3.1.3" is-stream "^2.0.1" lodash-es "^4.17.21" - loglevel "^1.8.0" + loglevel "^1.8.1" pump "^3.0.0" "@types/big.js@6.1.6", "@types/big.js@^6.1.6": @@ -2411,6 +2481,13 @@ resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.0.tgz#e2505f1c21ec08bda8915238e397fb71d2fc54ce" integrity sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g== +"@types/debug@^4.1.7": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" + integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== + dependencies: + "@types/ms" "*" + "@types/estree@*", "@types/estree@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" @@ -2456,6 +2533,11 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.185.tgz#c9843f5a40703a8f5edfd53358a58ae729816908" integrity sha512-evMDG1bC4rgQg4ku9tKpuMh5iBNEwNa3tf9zRHdP1qlv+1WUg44xat4IxCE14gIpZRGUUWAx2VhItCZc25NfMA== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/node@*", "@types/node@>=13.7.0": version "20.2.5" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb" @@ -2683,7 +2765,7 @@ dependencies: "@wallet-standard/base" "^1.0.1" -"@wallet-standard/base@^1.0.0", "@wallet-standard/base@^1.0.1": +"@wallet-standard/base@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@wallet-standard/base/-/base-1.0.1.tgz#860dd94d47c9e3c5c43b79d91c6afdbd7a36264e" integrity sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w== @@ -2970,12 +3052,19 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.4.1, acorn@^8.8.0: +acorn@^8.8.0: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -3231,7 +3320,7 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== -assert@2.0.0, assert@^2.0.0: +assert@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== @@ -3425,7 +3514,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.3.0, bindings@^1.5.0: +bindings@^1.3.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -3450,13 +3539,6 @@ bip39@3.0.2: pbkdf2 "^3.0.9" randombytes "^2.0.1" -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== - dependencies: - safe-buffer "^5.0.1" - bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -3481,7 +3563,7 @@ bn.js@5.2.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -3551,7 +3633,7 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-aes@^1.2.0: +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -3638,11 +3720,6 @@ bs58check@^2.1.2: create-hash "^1.1.0" safe-buffer "^5.1.2" -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - buffer-alloc-unsafe@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" @@ -3744,13 +3821,6 @@ caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.300014 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz#31d2e26f0a2309860ed3eff154e03890d9d851a7" integrity sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ== -canvas-renderer@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" - integrity sha512-RrBgVL5qCEDIXpJ6NrzyRNoTnXxYarqm/cS/W6ERhUJts5UQtt/XPEosGN3rqUkZ4fjBArlnCbsISJ+KCFnIAg== - dependencies: - "@types/node" "*" - capability@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/capability/-/capability-0.2.5.tgz#51ad87353f1936ffd77f2f21c74633a4dea88801" @@ -3968,6 +4038,11 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + crc@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" @@ -4016,7 +4091,7 @@ cron-validator@^1.3.1: resolved "https://registry.yarnpkg.com/cron-validator/-/cron-validator-1.3.1.tgz#8f2fe430f92140df77f91178ae31fc1e3a48a20e" integrity sha512-C1HsxuPCY/5opR55G5/WNzyEGDWFVG+6GLrA+fW/sCTcP6A6NTjUP2AK7B8n2PyFs90kDG2qzwm8LMheADku6A== -cross-fetch@^3.1.4, cross-fetch@^3.1.5: +cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -4429,15 +4504,6 @@ dotenv@^16.0.3, dotenv@^16.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - integrity sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g== - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - duplexify@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0" @@ -4468,7 +4534,7 @@ electron-to-chromium@^1.4.284: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz#4d83a90ff74f93939c5413c2ac5a16c696600632" integrity sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q== -elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@6.5.4, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -4503,21 +4569,21 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@^1.4.4: dependencies: once "^1.4.0" -engine.io-client@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.4.0.tgz#88cd3082609ca86d7d3c12f0e746d12db4f47c91" - integrity sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g== +engine.io-client@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.5.2.tgz#8709e22c291d4297ae80318d3c8baeae71f0e002" + integrity sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" - engine.io-parser "~5.0.3" + engine.io-parser "~5.2.1" ws "~8.11.0" xmlhttprequest-ssl "~2.0.0" -engine.io-parser@~5.0.3: - version "5.0.6" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.6.tgz#7811244af173e157295dec9b2718dfe42a64ef45" - integrity sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw== +engine.io-parser@~5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" + integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== entities@^4.2.0, entities@^4.3.0: version "4.4.0" @@ -4622,7 +4688,7 @@ es6-object-assign@^1.1.0: resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== -es6-promise@^4.0.3, es6-promise@^4.2.8: +es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== @@ -4669,6 +4735,11 @@ eslint-config-prettier@8.5.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== +eslint-config-prettier@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== + eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" @@ -4942,7 +5013,17 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.5: +ethereum-cryptography@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67" + integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== + dependencies: + "@noble/curves" "1.1.0" + "@noble/hashes" "1.3.1" + "@scure/bip32" "1.3.1" + "@scure/bip39" "1.2.1" + +ethereumjs-util@^7.1.0: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -4997,11 +5078,21 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" -eventemitter3@^4.0.0, eventemitter3@^4.0.1, eventemitter3@^4.0.4, eventemitter3@^4.0.7: +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^4.0.0, eventemitter3@^4.0.1, eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -5991,13 +6082,6 @@ jayson@^4.1.0: uuid "^8.3.2" ws "^7.4.5" -jdenticon@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" - integrity sha512-z6Iq3fTODUMSOiR2nNYrqigS6Y0GvdXfyQWrUby7htDHvX7GNEwaWR4hcaL+FmhEgBe08Xkup/BKxXQhDJByPA== - dependencies: - canvas-renderer "~2.2.0" - jiti@^1.18.2: version "1.19.1" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1" @@ -6082,7 +6166,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stable-stringify@^1.0.1: +json-stable-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== @@ -6243,7 +6327,7 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -loglevel@^1.8.0, loglevel@^1.8.1: +loglevel@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== @@ -6323,6 +6407,11 @@ merkletreejs@^0.2.32: treeify "^1.1.0" web3-utils "^1.3.4" +micro-ftch@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== + micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -6464,11 +6553,6 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.14.0, nan@^2.14.2: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - nanoid@^3.3.1, nanoid@^3.3.4, nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" @@ -7059,7 +7143,7 @@ process-warning@^1.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== -process@0.11.10, process@^0.11.10: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -7321,13 +7405,6 @@ react-resize-detector@^8.0.4: dependencies: lodash "^4.17.21" -react-responsive-pagination@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/react-responsive-pagination/-/react-responsive-pagination-2.2.0.tgz#9987225e22a6c2d6e707a6977a2ba511b31c7159" - integrity sha512-lqpYdrKTO7d9gLroDFeLeEubrwnqvQcyq1y4HdYC5/if4kmxb695I47LHgFbAwuK5C6Z8JS2lgoVDNdNRPhO7w== - dependencies: - prop-types "^15.8.1" - react-simple-animate@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/react-simple-animate/-/react-simple-animate-3.0.2.tgz#67f29b0c64155d2dfd540c1c74f634ef521536a8" @@ -7416,7 +7493,7 @@ readable-stream@^2.0.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -7425,6 +7502,17 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" + integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -7477,6 +7565,11 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" @@ -7715,20 +7808,6 @@ sdp@^2.12.0, sdp@^2.6.0: resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" integrity sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw== -secp256k1@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - integrity sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw== - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - secp256k1@^4.0.1, secp256k1@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" @@ -7750,6 +7829,13 @@ semver@^7.3.2, semver@^7.3.5, semver@^7.3.7: dependencies: lru-cache "^6.0.0" +semver@^7.3.8: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -7812,20 +7898,20 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" -socket.io-client@^4.5.3: - version "4.6.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.6.1.tgz#80d97d5eb0feca448a0fb6d69a7b222d3d547eab" - integrity sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ== +socket.io-client@^4.6.1: + version "4.7.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.2.tgz#f2f13f68058bd4e40f94f2a1541f275157ff2c08" + integrity sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" - engine.io-client "~6.4.0" - socket.io-parser "~4.2.1" + engine.io-client "~6.5.2" + socket.io-parser "~4.2.4" -socket.io-parser@~4.2.1: - version "4.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.2.tgz#1dd384019e25b7a3d374877f492ab34f2ad0d206" - integrity sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" @@ -7973,7 +8059,7 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -string_decoder@^1.1.1: +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -8069,6 +8155,11 @@ superstruct@^0.15.2, superstruct@^0.15.4: resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== +superstruct@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.3.tgz#de626a5b49c6641ff4d37da3c7598e7a87697046" + integrity sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg== + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -8686,7 +8777,7 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unload@^2.3.1: +unload@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/unload/-/unload-2.4.1.tgz#b0c5b7fb44e17fcbf50dcb8fb53929c59dd226a5" integrity sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw== @@ -8756,6 +8847,11 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -8842,11 +8938,6 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -webpack-node-externals@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz#1a3407c158d547a9feb4229a9e3385b7b60c9917" - integrity sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ== - "webpack-sources@^2.0.0 || ^3.0.0": version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"