diff --git a/package.json b/package.json
index 9e7e5305..3e8d6000 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,9 @@
"@fontsource/inter": "^5.0.18",
"@fontsource/onest": "^5.0.3",
"@fontsource/poppins": "^5.0.8",
+ "@gardenfi/core": "0.3.0-beta.14",
+ "@gardenfi/orderbook": "0.2.0-beta.41",
+ "@gardenfi/react-hooks": "0.0.1-beta.135",
"@gemwallet/api": "^3.8.0",
"@ledgerhq/hw-app-xrp": "^6.29.4",
"@ledgerhq/hw-transport-webusb": "^6.28.6",
@@ -41,12 +44,13 @@
"@types/chrome": "^0.0.248",
"@types/d3": "^7.4.3",
"@types/ramda": "^0.30.1",
+ "@wagmi/core": "^2.16.1",
"apexcharts": "^3.49.1",
"buffer": "^6.0.3",
"concurrently": "^8.2.2",
"d3": "^7.9.0",
"decimal.js": "^10.4.3",
- "dlc-btc-lib": "2.5.1",
+ "dlc-btc-lib": "2.5.3",
"dotenv": "^16.3.1",
"ethers": "5.7.2",
"formik": "^2.4.5",
@@ -66,7 +70,7 @@
"redux-persist-expire": "^1.1.1",
"viem": "2.x",
"vite-plugin-toml": "^0.7.0",
- "wagmi": "^2.12.2",
+ "wagmi": "2.14.4",
"xrpl": "^4.0.0"
},
"devDependencies": {
diff --git a/public/images/gear-icon.svg b/public/images/gear-icon.svg
new file mode 100644
index 00000000..51c3eeb1
--- /dev/null
+++ b/public/images/gear-icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/public/images/swap-arrow.svg b/public/images/swap-arrow.svg
new file mode 100644
index 00000000..799bfe41
--- /dev/null
+++ b/public/images/swap-arrow.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/app/app.tsx b/src/app/app.tsx
index f3cc5404..099cd7e5 100644
--- a/src/app/app.tsx
+++ b/src/app/app.tsx
@@ -2,7 +2,9 @@ import { Route } from 'react-router-dom';
import { AppLayout } from '@components/app.layout';
import { MerchantDetails } from '@components/proof-of-reserve/components/merchant-details/merchant-details';
+import { SwapPage } from '@components/swap/pages/swap-page';
import { getWagmiConfiguration } from '@functions/configuration.functions';
+import { GardenProvider, environment } from '@gardenfi/react-hooks';
import { AttestorDetailsPage } from '@pages/attestor-details/attestor-details-page';
import { AttestorDetailsSelectPage } from '@pages/attestor-details/attestor-details-select-page';
import { MyVaults } from '@pages/my-vaults/my-vaults';
@@ -31,39 +33,50 @@ export function App(): React.JSX.Element {
return (
-
-
-
-
-
-
-
-
-
-
-
- } />
- } />
- {/* } /> */}
- } />
- } />
- }
- />
- } />
- } />
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ } />
+ } />
+ {/* } /> */}
+ } />
+ } />
+ }
+ />
+ }
+ />
+ } />
+ } />
+
+
+
+
+
+
+
+
+
+
+
+
);
diff --git a/src/app/components/header/components/tabs.tsx b/src/app/components/header/components/tabs.tsx
index 8e7ab180..7507add6 100644
--- a/src/app/components/header/components/tabs.tsx
+++ b/src/app/components/header/components/tabs.tsx
@@ -30,6 +30,11 @@ export function NavigationTabs({
isActive={activeTab === '/how-it-works'}
handleClick={() => handleTabClick('/how-it-works')}
/> */}
+ handleTabClick('/swap')}
+ />
{isActiveTabs && (
<>
diff --git a/src/app/components/swap/components/swap-amount-card.tsx b/src/app/components/swap/components/swap-amount-card.tsx
new file mode 100644
index 00000000..c6164fc8
--- /dev/null
+++ b/src/app/components/swap/components/swap-amount-card.tsx
@@ -0,0 +1,96 @@
+import { HStack, Input, Text, VStack } from '@chakra-ui/react';
+import { Asset } from '@gardenfi/orderbook';
+
+import { SwapTokenLabel } from './swap-token-label';
+
+interface SwapAmountCardProps {
+ direction: string;
+ asset: Asset;
+ amount?: string;
+ amountInUSD?: string;
+ setAmount?: (amount: string) => void;
+ balance?: number;
+ transactionGasFee?: number;
+}
+
+const assetDetails = {
+ iBTC: {
+ assetColor: 'purple.01',
+ assetSymbol: 'iBTC',
+ assetLogo: '/images/logos/ibtc-logo.svg',
+ },
+ BTC: {
+ assetColor: 'orange.01',
+ assetSymbol: 'BTC',
+ assetLogo: '/images/logos/bitcoin-logo.svg',
+ },
+};
+
+export function SwapAmountCard({
+ direction,
+ amount,
+ asset,
+ amountInUSD,
+ setAmount,
+}: SwapAmountCardProps): React.JSX.Element | null {
+ const isBTC = asset.symbol === 'BTC';
+ const { assetColor, assetSymbol, assetLogo } = assetDetails[isBTC ? 'BTC' : 'iBTC'];
+
+ return (
+
+
+ {direction}
+
+
+
+ {direction === 'From' ? (
+ setAmount?.(e.target.value)}
+ borderColor={'white.01'}
+ color={'white.01'}
+ focusBorderColor={'rgba(50, 201, 247, 1)'} // accent.lightBlue.01
+ />
+ ) : (
+
+ {amount}
+
+ )}
+
+
+
+
+ {amountInUSD} USD
+
+
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap-button.tsx b/src/app/components/swap/components/swap-button.tsx
new file mode 100644
index 00000000..8a09bda4
--- /dev/null
+++ b/src/app/components/swap/components/swap-button.tsx
@@ -0,0 +1,21 @@
+import React from 'react';
+
+import { Button } from '@chakra-ui/react';
+
+interface SwapButtonProps {
+ isDisabled?: boolean;
+ onClick: () => void;
+}
+
+export function SwapButton({ onClick, isDisabled }: SwapButtonProps): React.JSX.Element {
+ return (
+
+ );
+}
diff --git a/src/app/components/swap/components/swap-extra-details-card.tsx b/src/app/components/swap/components/swap-extra-details-card.tsx
new file mode 100644
index 00000000..03fbd7cd
--- /dev/null
+++ b/src/app/components/swap/components/swap-extra-details-card.tsx
@@ -0,0 +1,47 @@
+// import { HStack, Text, VStack } from '@chakra-ui/react';
+
+// interface SwapExtraDetailsCardProps {
+// gasFee: number;
+// }
+
+// export function SwapExtraDetailsCard({ gasFee }: SwapExtraDetailsCardProps): React.JSX.Element {
+// return (
+//
+//
+//
+// Gas Fee
+//
+//
+// {gasFee}
+//
+//
+//
+//
+// Rate
+//
+//
+// 1 BTC = 1 dlcBTC
+//
+//
+//
+//
+// Slippage Tolerance
+//
+//
+// Auto
+//
+//
+//
+// );
+// }
+
+// TODO: Add back this component
diff --git a/src/app/components/swap/components/swap-header.tsx b/src/app/components/swap/components/swap-header.tsx
new file mode 100644
index 00000000..afa0820d
--- /dev/null
+++ b/src/app/components/swap/components/swap-header.tsx
@@ -0,0 +1,17 @@
+import { HStack, Text } from '@chakra-ui/react';
+
+// import { SwapNetworksMenu } from './swap-networks-menu';
+
+export function SwapHeader(): React.JSX.Element {
+ return (
+
+
+ Swap
+
+
+ {/* {}} /> */}
+ {/* {}} /> */}
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap-networks-menu.tsx b/src/app/components/swap/components/swap-networks-menu.tsx
new file mode 100644
index 00000000..7577473c
--- /dev/null
+++ b/src/app/components/swap/components/swap-networks-menu.tsx
@@ -0,0 +1,77 @@
+// import { Image, Menu, MenuButton, MenuItem, MenuList } from '@chakra-ui/react';
+// import { EthereumNetworkID } from 'dlc-btc-lib/models';
+// import { useAccount, useConfig, useSwitchChain } from 'wagmi';
+
+// interface SwapNetworksMenuProps {
+// isMenuOpen: boolean;
+// setIsMenuOpen: (isMenuOpen: boolean) => void;
+// }
+
+// const getNetworkLogo = (ethereumNetworkId?: EthereumNetworkID) => {
+// switch (ethereumNetworkId) {
+// case EthereumNetworkID.Arbitrum:
+// case EthereumNetworkID.ArbitrumSepolia:
+// return './images/logos/arbitrum-token.svg';
+// case EthereumNetworkID.Sepolia:
+// case EthereumNetworkID.Mainnet:
+// return './images/logos/eth-token.svg';
+// case EthereumNetworkID.BaseSepolia:
+// case EthereumNetworkID.Base:
+// return './images/logos/base-token.svg';
+// default:
+// return './images/logos/arbitrum-token.svg';
+// }
+// };
+
+// export function SwapNetworksMenu({
+// isMenuOpen,
+// setIsMenuOpen,
+// }: SwapNetworksMenuProps): React.JSX.Element | null {
+// const { chains } = useConfig();
+// const { chain, isConnected } = useAccount();
+// const { switchChain } = useSwitchChain();
+// //TODO: maybe add the network logo to the setstate?
+
+// if (!isConnected) {
+// return null;
+// }
+
+// return (
+//
+// );
+// }
+
+// TODO: Add back this component
diff --git a/src/app/components/swap/components/swap-settings-menu.tsx b/src/app/components/swap/components/swap-settings-menu.tsx
new file mode 100644
index 00000000..0ac41e30
--- /dev/null
+++ b/src/app/components/swap/components/swap-settings-menu.tsx
@@ -0,0 +1,31 @@
+// import { Image, Menu, MenuButton, MenuItem, MenuList } from '@chakra-ui/react';
+
+// interface SwapSettingsMenuProps {
+// isMenuOpen: boolean;
+// setIsMenuOpen: (isMenuOpen: boolean) => void;
+// }
+
+// export function SwapSettingsMenu({
+// isMenuOpen,
+// setIsMenuOpen,
+// }: SwapSettingsMenuProps): React.JSX.Element {
+// return (
+//
+// );
+// }
+
+// TODO: Add back this component
diff --git a/src/app/components/swap/components/swap-token-label.tsx b/src/app/components/swap/components/swap-token-label.tsx
new file mode 100644
index 00000000..8fc058ad
--- /dev/null
+++ b/src/app/components/swap/components/swap-token-label.tsx
@@ -0,0 +1,25 @@
+import { HStack, Image, Text } from '@chakra-ui/react';
+
+interface SwapTokenLabelProps {
+ tokenImage: string;
+ tokenDisplay: string;
+}
+
+export function SwapTokenLabel({
+ tokenImage,
+ tokenDisplay,
+}: SwapTokenLabelProps): React.JSX.Element {
+ return (
+
+
+
+ {tokenDisplay}
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.copy-button.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.copy-button.tsx
new file mode 100644
index 00000000..d1ad84c6
--- /dev/null
+++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.copy-button.tsx
@@ -0,0 +1,61 @@
+import { useState } from 'react';
+
+import { CheckCircleIcon, CopyIcon } from '@chakra-ui/icons';
+import { HStack, IconButton, PlacementWithLogical, Tooltip } from '@chakra-ui/react';
+
+interface CopyButtonProps {
+ textToCopy: string;
+ placement?: PlacementWithLogical;
+}
+
+export function CopyButton({ textToCopy, placement = 'left' }: CopyButtonProps): React.JSX.Element {
+ const [copied, setCopied] = useState(false);
+
+ const handleCopy = async () => {
+ try {
+ await navigator.clipboard.writeText(textToCopy);
+ setCopied(true);
+ setTimeout(() => setCopied(false), 2000);
+ } catch (error: any) {
+ // eslint-disable-next-line no-console
+ console.error('Failed to copy to Clipboard', error);
+ }
+ };
+
+ return (
+
+
+
+ ) : (
+
+ )
+ }
+ />
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.asset-value.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.asset-value.tsx
new file mode 100644
index 00000000..8cedca4d
--- /dev/null
+++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.asset-value.tsx
@@ -0,0 +1,20 @@
+import { Text, VStack } from '@chakra-ui/react';
+
+interface AssetValueProps {
+ label: string;
+ amount: string;
+ asset: string;
+}
+
+export function OrderAmount({ label, amount, asset }: AssetValueProps): React.JSX.Element {
+ return (
+
+
+ {label}
+
+
+ {amount} {asset}
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/components/swap.orderbook.order.details.field.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/components/swap.orderbook.order.details.field.tsx
new file mode 100644
index 00000000..77278d28
--- /dev/null
+++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/components/swap.orderbook.order.details.field.tsx
@@ -0,0 +1,33 @@
+// components/TransactionField.tsx
+import { HStack, Text } from '@chakra-ui/react';
+import { truncateAddress } from 'dlc-btc-lib/utilities';
+
+import { CopyButton } from '../../../../../../swap.orderbook.copy-button';
+
+interface DetailsFieldProps {
+ label: string;
+ value: string;
+ shouldTruncate?: boolean;
+ includeCopyButton?: boolean;
+}
+
+export function DetailsField({
+ label,
+ value,
+ shouldTruncate = true,
+ includeCopyButton = true,
+}: DetailsFieldProps): React.JSX.Element {
+ return (
+
+
+ {label}
+
+
+
+ {shouldTruncate ? truncateAddress(value) : value}
+
+ {includeCopyButton && }
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/swap.orderbook.order.details.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/swap.orderbook.order.details.tsx
new file mode 100644
index 00000000..d49f70a8
--- /dev/null
+++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/swap.orderbook.order.details.tsx
@@ -0,0 +1,43 @@
+import { VStack } from '@chakra-ui/react';
+import { MatchedOrder } from '@gardenfi/orderbook';
+
+import { DetailsField } from './components/swap.orderbook.order.details.field';
+
+interface OrderDetailsProps {
+ order: MatchedOrder;
+}
+
+export function OrderDetails({ order }: OrderDetailsProps): React.JSX.Element {
+ const {
+ destination_swap: { redeemer: to, redeem_tx_hash },
+ created_at,
+ source_swap: { initiator: from, initiate_tx_hash, refund_tx_hash },
+ } = order;
+
+ const creationDate = new Date(created_at).toLocaleDateString('en-US');
+
+ return (
+
+
+
+
+ {initiate_tx_hash && }
+ {redeem_tx_hash && }
+ {refund_tx_hash && }
+
+ );
+}
diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/swap.orderbook.order.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/swap.orderbook.order.tsx
new file mode 100644
index 00000000..8c0b5cbc
--- /dev/null
+++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/swap.orderbook.order.tsx
@@ -0,0 +1,170 @@
+import React, { useState } from 'react';
+
+import { Button, Collapse, HStack, Text, VStack } from '@chakra-ui/react';
+import { OrderStatus } from '@gardenfi/core';
+import { MatchedOrder } from '@gardenfi/orderbook';
+import { useGarden } from '@gardenfi/react-hooks';
+import { useOrderStatus } from '@hooks/use-swap-order-status';
+import Decimal from 'decimal.js';
+import { truncateAddress, unshiftValue } from 'dlc-btc-lib/utilities';
+
+import { StatusLabel } from '@shared/constants/swap.constants';
+
+import { CopyButton } from '../../../swap.orderbook.copy-button';
+import { OrderAmount } from './components/swap.orderbook.order.asset-value';
+import { OrderDetails } from './components/swap.orderbook.order.details/swap.orderbook.order.details';
+
+function StatusButton({
+ isInitiating,
+ onInitiate,
+}: {
+ isInitiating: boolean;
+ onInitiate: () => void;
+}): React.JSX.Element {
+ return (
+
+ );
+}
+
+const getStatusLabel = (status: OrderStatus): StatusLabel => {
+ switch (status) {
+ case OrderStatus.Redeemed:
+ case OrderStatus.Refunded:
+ case OrderStatus.CounterPartyRedeemed:
+ case OrderStatus.CounterPartyRedeemDetected:
+ return StatusLabel.Completed;
+ case OrderStatus.Matched:
+ return StatusLabel.Initiate;
+ case OrderStatus.DeadLineExceeded:
+ return StatusLabel.Expired;
+ default:
+ return StatusLabel.Pending;
+ }
+};
+
+interface OrderProps {
+ order: MatchedOrder;
+}
+
+export function Order({ order }: OrderProps): React.JSX.Element {
+ const orderStatus = useOrderStatus(order);
+
+ const [modelIsVisible, setModelIsVisible] = useState(false);
+ const [isInitiating, setIsInitiating] = useState(false);
+ const { evmInitiate } = useGarden();
+
+ const { source_swap, destination_swap } = order;
+ const sourceAmount = unshiftValue(new Decimal(source_swap.amount).toNumber()).toString();
+ const destinationAmount = unshiftValue(
+ new Decimal(destination_swap.amount).toNumber()
+ ).toString();
+ const userFriendlyStatus = orderStatus && getStatusLabel(orderStatus);
+
+ const isFromBTC = order.source_swap.chain.toLowerCase().includes('bitcoin');
+ const fromLabel = isFromBTC ? 'BTC' : 'iBTC';
+ const toLabel = isFromBTC ? 'iBTC' : 'BTC';
+
+ const handleInitiate = async () => {
+ if (!evmInitiate) return;
+ setIsInitiating(true);
+ try {
+ const res = await evmInitiate(order);
+ if (!res.ok) {
+ throw new Error('Failed to initiate');
+ }
+ } catch (error) {
+ alert('Failed to initiate');
+ } finally {
+ setIsInitiating(false);
+ }
+ };
+
+ return (
+
+
+
+ Order ID: {truncateAddress(source_swap.swap_id)}
+
+
+
+
+
+
+
+
+
+ Status
+
+ {userFriendlyStatus === StatusLabel.Initiate && !isFromBTC ? (
+
+ ) : (
+
+ {userFriendlyStatus}
+
+ )}
+
+
+
+
+
+
+
+ Please initiate the swap by sending the BTC to the address below.
+
+
+
+ {truncateAddress(source_swap.swap_id)}
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/swap.orderbook.orderlist.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/swap.orderbook.orderlist.tsx
new file mode 100644
index 00000000..e611fb69
--- /dev/null
+++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/swap.orderbook.orderlist.tsx
@@ -0,0 +1,39 @@
+import { VStack } from '@chakra-ui/react';
+import { FadeLayer } from '@components/fade-layer/fade-layer';
+import { MatchedOrder } from '@gardenfi/orderbook';
+import { scrollBarCSS } from '@styles/css-styles';
+
+import { Order } from './components/swap.orderbook.order/swap.orderbook.order';
+
+interface OrderListProps {
+ orders: MatchedOrder[];
+}
+
+export function OrderList({ orders }: OrderListProps): React.JSX.Element {
+ return (
+
+
+
+ {orders.map(order => (
+
+ ))}
+
+
+
+ );
+}
diff --git a/src/app/components/swap/components/swap.orderbook/swap.orderbook.tsx b/src/app/components/swap/components/swap.orderbook/swap.orderbook.tsx
new file mode 100644
index 00000000..cebbc384
--- /dev/null
+++ b/src/app/components/swap/components/swap.orderbook/swap.orderbook.tsx
@@ -0,0 +1,30 @@
+import { useCallback, useEffect, useState } from 'react';
+
+import { MatchedOrder } from '@gardenfi/orderbook';
+import { useGarden } from '@gardenfi/react-hooks';
+
+import { OrderList } from './components/swap.orderbook.orderlist/swap.orderbook.orderlist';
+
+const POLLING_INTERVAL = 10000;
+const ORDERS_PER_PAGE = 4;
+
+export function Orderbook(): React.JSX.Element {
+ const { orderBook } = useGarden();
+ const [orders, setOrders] = useState([]);
+
+ const fetchOrders = useCallback(async () => {
+ if (!orderBook) return;
+ const res = await orderBook.fetchOrders(true, false, {
+ per_page: ORDERS_PER_PAGE,
+ });
+ setOrders(res.val.data);
+ }, [orderBook]);
+
+ useEffect(() => {
+ void fetchOrders();
+ const intervalId = setInterval(fetchOrders, POLLING_INTERVAL);
+ return () => clearInterval(intervalId);
+ }, [fetchOrders]);
+
+ return ;
+}
diff --git a/src/app/components/swap/pages/swap-page.tsx b/src/app/components/swap/pages/swap-page.tsx
new file mode 100644
index 00000000..c1234356
--- /dev/null
+++ b/src/app/components/swap/pages/swap-page.tsx
@@ -0,0 +1,18 @@
+import { HStack } from '@chakra-ui/react';
+import { PageLayout } from '@pages/components/page.layout';
+
+import { breakpoints } from '@shared/utils';
+
+import { Orderbook } from '../components/swap.orderbook/swap.orderbook';
+import { Swap } from '../swap';
+
+export function SwapPage(): React.JSX.Element {
+ return (
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/components/swap/swap.tsx b/src/app/components/swap/swap.tsx
new file mode 100644
index 00000000..4595ba7f
--- /dev/null
+++ b/src/app/components/swap/swap.tsx
@@ -0,0 +1,181 @@
+import { CheckCircleIcon, ChevronDownIcon, ChevronUpIcon } from '@chakra-ui/icons';
+import { Button, HStack, Input, Spinner, Text, VStack } from '@chakra-ui/react';
+import { useBitcoinPrice } from '@hooks/use-bitcoin-price';
+import { useSwap } from '@hooks/use-swap';
+import Decimal from 'decimal.js';
+import { truncateAddress } from 'dlc-btc-lib/utilities';
+
+import { BITCOIN_NETWORK_MAP } from '@shared/constants/bitcoin.constants';
+
+import { SwapAmountCard } from './components/swap-amount-card';
+import { SwapButton } from './components/swap-button';
+import { SwapHeader } from './components/swap-header';
+
+const assetValueInUSD = (assetAmount: string, currentBitcoinPrice: number): string => {
+ try {
+ return `$ ${new Decimal(assetAmount).mul(currentBitcoinPrice).toNumber().toLocaleString('en-US')}`;
+ } catch (error) {
+ return '0';
+ }
+};
+
+export function Swap(): React.JSX.Element {
+ const {
+ inputToken,
+ setTokens,
+ inputAmount,
+ validateAndSetInputAmount,
+ outputToken,
+ outputAmount,
+ handleSwap,
+ bitcoinAddress,
+ setBitcoinAddress,
+ isQuoteLoading,
+ quoteError,
+ swapError,
+ isProcessing,
+ isCompleted,
+ } = useSwap(BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork]);
+
+ const { bitcoinPrice } = useBitcoinPrice();
+
+ return (
+
+
+
+ {outputToken.symbol === 'BTC' ? (
+ <>
+
+
+
+
+
+ >
+ ) : (
+ <>
+
+
+
+
+
+ >
+ )}
+ {isQuoteLoading ||
+ (isProcessing && (
+
+
+ Loading
+
+ ))}
+ {quoteError ||
+ (swapError && (
+
+ {`Error: ${quoteError ? quoteError : swapError}`}
+
+ ))}
+ {isCompleted && (
+
+ {`Swap Request Sent, Order ID: ${truncateAddress(isCompleted)}`}
+
+
+ )}
+
+
+
+
+ {`${outputToken.symbol === 'BTC' ? 'Receive' : 'Refund'}`} Address
+
+ setBitcoinAddress(e.target.value)}
+ borderColor={'white.03'}
+ color={'white'}
+ focusBorderColor={'rgba(255,255,255,1)'}
+ isInvalid={!bitcoinAddress}
+ placeholder="Enter Bitcoin Address"
+ />
+
+ {/* */}
+ {isQuoteLoading ||
+ isProcessing ||
+ (quoteError === null && (
+ handleSwap()} />
+ ))}
+
+ );
+}
diff --git a/src/app/functions/configuration.functions.ts b/src/app/functions/configuration.functions.ts
index 263dc1f7..a694488a 100644
--- a/src/app/functions/configuration.functions.ts
+++ b/src/app/functions/configuration.functions.ts
@@ -86,13 +86,14 @@ export function getWagmiConfiguration(ethereumNetworkIDs: EthereumNetworkID[]):
function clientToSigner(client: Client): providers.JsonRpcSigner {
const { account, chain, transport } = client;
-
const network = {
chainId: chain.id,
name: chain.name,
ensAddress: chain.contracts?.ensRegistry?.address,
};
- return new providers.Web3Provider(transport, network).getSigner(account.address);
+ const provider = new providers.Web3Provider(transport, network);
+ const signer = provider.getSigner(account.address);
+ return signer;
}
export function useEthersSigner({ chainId }: { chainId?: number } = {}):
diff --git a/src/app/hooks/use-swap-order-status.ts b/src/app/hooks/use-swap-order-status.ts
new file mode 100644
index 00000000..94253c70
--- /dev/null
+++ b/src/app/hooks/use-swap-order-status.ts
@@ -0,0 +1,85 @@
+import { useEffect, useState } from 'react';
+
+import { OrderStatus, ParseOrderStatus } from '@gardenfi/core';
+import { Chain, MatchedOrder } from '@gardenfi/orderbook';
+import { GARDEN_CONFIG } from '@gardenfi/react-hooks';
+
+async function fetchJson(url: string, options?: RequestInit): Promise {
+ const response = await fetch(url, {
+ headers: { 'Content-Type': 'application/json' },
+ ...options,
+ });
+
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+
+ return response.json() as Promise;
+}
+
+const createAPI = (isTestnet: boolean) => {
+ const apiConfiguration = isTestnet ? GARDEN_CONFIG.testnet : GARDEN_CONFIG.mainnet;
+
+ if (!apiConfiguration) {
+ throw new Error('Invalid Configuration');
+ }
+
+ Object.entries(apiConfiguration).forEach(([key, value]) => {
+ if (!value) throw new Error(`Missing ${key} in config`);
+ });
+
+ return {
+ home: 'https://garden.finance',
+ data: {
+ data: apiConfiguration,
+ assets: `${apiConfiguration.blockNumberFetcherUrl}/assets`,
+ blockNumbers: (network: 'mainnet' | 'testnet') =>
+ `${apiConfiguration.blockNumberFetcherUrl}/blocknumber/${network}`,
+ },
+ orderbook: apiConfiguration.orderBookUrl,
+ quote: apiConfiguration.quoteUrl,
+ mempool: {
+ testnet: 'https://mempool.space/testnet4/api',
+ mainnet: 'https://mempool.space/api',
+ },
+ };
+};
+
+export const useOrderStatus = (order: MatchedOrder): OrderStatus | undefined => {
+ const [blockNumbers, setBlockNumbers] = useState | null>(null);
+ const [status, setStatus] = useState();
+
+ const isTestnet = ['testnet', 'devnet', 'localhost'].includes(appConfiguration.appEnvironment);
+
+ useEffect(() => {
+ const fetchBlockNumbers = async () => {
+ try {
+ const data = await fetchJson>(
+ createAPI(isTestnet).data.blockNumbers('testnet')
+ );
+ setBlockNumbers(data);
+ } catch (error) {
+ // eslint-disable-next-line no-console
+ console.error('Failed to fetch Block Numbers:', error);
+ }
+ };
+
+ void fetchBlockNumbers();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
+
+ useEffect(() => {
+ if (!blockNumbers) return;
+
+ const { source_swap, destination_swap } = order;
+ const sourceBlockNumber = blockNumbers[source_swap.chain];
+ const destinationBlockNumber = blockNumbers[destination_swap.chain];
+
+ if (!sourceBlockNumber || !destinationBlockNumber) return;
+
+ const orderStatus = ParseOrderStatus(order, sourceBlockNumber, destinationBlockNumber);
+ setStatus(orderStatus);
+ }, [blockNumbers, order]);
+
+ return status;
+};
diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts
new file mode 100644
index 00000000..b90f3f42
--- /dev/null
+++ b/src/app/hooks/use-swap.ts
@@ -0,0 +1,262 @@
+import { useEffect, useState } from 'react';
+
+import { SwapParams } from '@gardenfi/core';
+import { Asset, SupportedAssets } from '@gardenfi/orderbook';
+import { useGarden } from '@gardenfi/react-hooks';
+import Decimal from 'decimal.js';
+import { isBitcoinAddress } from 'dlc-btc-lib/bitcoin-functions';
+import { shiftValue, unshiftValue } from 'dlc-btc-lib/utilities';
+
+import { BITCOIN_NETWORK_MAP } from '@shared/constants/bitcoin.constants';
+
+interface QuoteParams {
+ fromAsset: Asset;
+ toAsset: Asset;
+ amount: number;
+ isExactOut?: boolean;
+}
+
+enum SupportedEVMNetworks {
+ ArbitrumSepolia = '421614',
+ BaseSepolia = '84532',
+}
+
+const SUPPORTED_ASSETS_BTC_MAP = {
+ mainnet: SupportedAssets.mainnet.bitcoin_primary,
+ testnet: SupportedAssets.testnet.bitcoin_testnet_primary,
+ devnet: SupportedAssets.testnet.bitcoin_testnet_primary,
+ localhost: SupportedAssets.testnet.bitcoin_testnet_primary,
+};
+
+const SUPPORTED_ASSETS_IBTC_MAP = {
+ [SupportedEVMNetworks.ArbitrumSepolia]:
+ SupportedAssets.testnet.arbitrum_sepolia_0xdfe6d9363ee96152d39391009a6723819d9e25eb,
+ [SupportedEVMNetworks.BaseSepolia]:
+ SupportedAssets.testnet.base_sepolia_0xbcdad29ac77e5bb27fd528ab0045af630259fe4f,
+};
+
+function useDebounce(value: T, delay: number): T {
+ const [debouncedValue, setDebouncedValue] = useState(value);
+
+ useEffect(() => {
+ const timer = setTimeout(() => {
+ setDebouncedValue(value);
+ }, delay);
+
+ return () => {
+ clearTimeout(timer);
+ };
+ }, [value, delay]);
+
+ return debouncedValue;
+}
+
+interface UseSwapReturnType {
+ handleSwap: () => void;
+ inputToken: Asset;
+ setTokens: () => void;
+ inputAmount: string;
+ validateAndSetInputAmount: (amount: string) => void;
+ outputToken: Asset;
+ setOutputToken: (token: Asset) => void;
+ outputAmount: string | undefined;
+ bitcoinAddress: string;
+ setBitcoinAddress: (address: string) => void;
+ isQuoteLoading: boolean;
+ quoteError: string | null;
+ swapError: string | null;
+ isProcessing: boolean;
+ isCompleted: string | null;
+}
+
+export function useSwap(): UseSwapReturnType {
+ const { initializeSecretManager, swapAndInitiate, getQuote } = useGarden();
+
+ const [inputToken, setInputToken] = useState(
+ SUPPORTED_ASSETS_IBTC_MAP[SupportedEVMNetworks.ArbitrumSepolia]
+ );
+ const [inputAmount, setInputAmount] = useState('0.01');
+
+ const [outputToken, setOutputToken] = useState(
+ SUPPORTED_ASSETS_BTC_MAP[appConfiguration.appEnvironment]
+ );
+ const [outputAmount, setOutputAmount] = useState();
+
+ const [isQuoteLoading, setIsQuoteLoading] = useState(false);
+ const [quoteError, setQuoteError] = useState(null);
+
+ const debouncedInputAmount = useDebounce(inputAmount, 500);
+
+ const [bitcoinAddress, setBitcoinAddress] = useState('');
+
+ const [isCompleted, setIsCompleted] = useState(null);
+ const [swapError, setSwapError] = useState(null);
+
+ const [isProcessing, setIsProcessing] = useState(false);
+
+ function setTokens() {
+ setInputToken(outputToken);
+ setOutputToken(inputToken);
+ }
+
+ function validateAndSetInputAmount(value: string) {
+ setInputAmount(value);
+ }
+
+ useEffect(() => {
+ let timeoutId: NodeJS.Timeout;
+
+ if (isCompleted || swapError) {
+ timeoutId = setTimeout(() => {
+ setIsCompleted(null);
+ setSwapError(null);
+ }, 5000);
+ }
+
+ return () => {
+ if (timeoutId) {
+ clearTimeout(timeoutId);
+ }
+ };
+ }, [isCompleted, swapError]);
+
+ useEffect(() => {
+ const updateQuote = async () => {
+ if (Number(debouncedInputAmount) <= 0) {
+ setOutputAmount('0');
+ return;
+ }
+
+ setIsQuoteLoading(true);
+ setQuoteError(null);
+
+ try {
+ const sendAmount = shiftValue(Number(debouncedInputAmount));
+
+ const { amount } = await fetchQuote({
+ fromAsset: inputToken,
+ toAsset: outputToken,
+ amount: sendAmount,
+ });
+
+ setOutputAmount(unshiftValue(new Decimal(amount).toNumber()).toString()); // Assuming 8 decimals for BTC
+ } catch (error) {
+ setQuoteError(error instanceof Error ? error.message : 'Failed to fetch quote');
+ setOutputAmount('0');
+ } finally {
+ setIsQuoteLoading(false);
+ }
+ };
+
+ void updateQuote();
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [debouncedInputAmount, inputToken, outputToken, getQuote]);
+
+ const initializeSecret = async () => {
+ if (!initializeSecretManager) {
+ throw new Error('Secret Manager initializer not available');
+ }
+
+ const response = await initializeSecretManager();
+
+ if (!response.ok || !response.val.getMasterPrivKey()) {
+ throw new Error('Failed to initialize Secret Manager');
+ }
+
+ return response;
+ };
+
+ const fetchQuote = async (quoteParams: QuoteParams) => {
+ if (!getQuote) {
+ throw new Error('Quote service not available');
+ }
+
+ const quote = await getQuote(quoteParams);
+
+ if (quote.error) {
+ throw new Error(quote.error);
+ }
+
+ const [strategy, amount] = Object.entries(quote.val.quotes)[0];
+
+ return { strategy, amount };
+ };
+
+ const executeSwap = async (swapParams: SwapParams) => {
+ if (!swapAndInitiate) {
+ throw new Error('Swap service not available');
+ }
+
+ const response = await swapAndInitiate(swapParams);
+
+ if (response.error) {
+ throw new Error(response.error);
+ }
+
+ return response;
+ };
+
+ const handleSwap = async () => {
+ try {
+ setIsProcessing(true);
+
+ if (!isBitcoinAddress(bitcoinAddress, BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork])) {
+ setSwapError('Invalid Bitcoin Address');
+ return;
+ }
+
+ await initializeSecret();
+
+ const sendAmount = shiftValue(new Decimal(inputAmount).toNumber());
+
+ const { strategy, amount } = await fetchQuote({
+ fromAsset: inputToken,
+ toAsset: outputToken,
+ amount: sendAmount,
+ });
+
+ const swapParams = {
+ fromAsset: inputToken,
+ toAsset: outputToken,
+ sendAmount: sendAmount.toString(),
+ receiveAmount: amount.toString(),
+ additionalData: {
+ strategyId: strategy,
+ btcAddress: bitcoinAddress,
+ },
+ };
+
+ const response = await executeSwap(swapParams);
+
+ if (response.error) {
+ throw response.error;
+ }
+
+ setIsCompleted(response.val.source_swap.swap_id);
+
+ return response;
+ } catch (error) {
+ setSwapError(error instanceof Error ? error.message : 'Failed to Swap');
+ } finally {
+ setIsProcessing(false);
+ }
+ };
+
+ return {
+ handleSwap,
+ setTokens,
+ inputToken,
+ inputAmount,
+ validateAndSetInputAmount,
+ setOutputToken,
+ outputToken,
+ outputAmount,
+ bitcoinAddress,
+ setBitcoinAddress,
+ isQuoteLoading,
+ isCompleted,
+ isProcessing,
+ quoteError,
+ swapError,
+ };
+}
diff --git a/src/shared/constants/swap.constants.ts b/src/shared/constants/swap.constants.ts
new file mode 100644
index 00000000..4edec054
--- /dev/null
+++ b/src/shared/constants/swap.constants.ts
@@ -0,0 +1,6 @@
+export enum StatusLabel {
+ Completed = 'Completed',
+ Pending = 'In Progress',
+ Expired = 'Expired',
+ Initiate = 'Awaiting Initiate',
+}
diff --git a/src/styles/app-theme.ts b/src/styles/app-theme.ts
index db734c9d..525c0039 100644
--- a/src/styles/app-theme.ts
+++ b/src/styles/app-theme.ts
@@ -49,6 +49,7 @@ export const appTheme = extendTheme({
'background.website.01': 'rgba(0, 0, 0, 1)',
'background.container.01': 'rgba(23, 24, 29, 1)',
'background.content.01': 'rgba(51, 51, 51, 1)',
+ 'background.content.02': 'rgba(77, 77, 77, 1)',
'grey.01': 'rgba(181, 182, 187, 1)',
'border.lightBlue.01': 'rgba(50, 201, 247,0.75)',
'border.white.01': 'rgba(255,255,255,0.25)',
diff --git a/updates.patch b/updates.patch
new file mode 100644
index 00000000..bb6ac350
--- /dev/null
+++ b/updates.patch
@@ -0,0 +1,3492 @@
+diff --git a/package.json b/package.json
+index 9e7e530..c98aa62 100644
+--- a/package.json
++++ b/package.json
+@@ -31,6 +31,9 @@
+ "@fontsource/onest": "^5.0.3",
+ "@fontsource/poppins": "^5.0.8",
+ "@gemwallet/api": "^3.8.0",
++ "@gardenfi/core": "0.3.0-beta.14",
++ "@gardenfi/orderbook": "0.2.0-beta.41",
++ "@gardenfi/react-hooks": "0.0.1-beta.135",
+ "@ledgerhq/hw-app-xrp": "^6.29.4",
+ "@ledgerhq/hw-transport-webusb": "^6.28.6",
+ "@netlify/functions": "^2.8.1",
+@@ -46,7 +49,7 @@
+ "concurrently": "^8.2.2",
+ "d3": "^7.9.0",
+ "decimal.js": "^10.4.3",
+- "dlc-btc-lib": "2.5.1",
++ "dlc-btc-lib": "2.5.3",
+ "dotenv": "^16.3.1",
+ "ethers": "5.7.2",
+ "formik": "^2.4.5",
+@@ -64,9 +67,9 @@
+ "redux": "^4.2.1",
+ "redux-persist": "^6.0.0",
+ "redux-persist-expire": "^1.1.1",
+- "viem": "2.x",
++ "viem": "^2.20.1",
+ "vite-plugin-toml": "^0.7.0",
+- "wagmi": "^2.12.2",
++ "wagmi": "2.14.3",
+ "xrpl": "^4.0.0"
+ },
+ "devDependencies": {
+diff --git a/public/images/gear-icon.svg b/public/images/gear-icon.svg
+new file mode 100644
+index 0000000..51c3eeb
+--- /dev/null
++++ b/public/images/gear-icon.svg
+@@ -0,0 +1,4 @@
++
+diff --git a/public/images/swap-arrow.svg b/public/images/swap-arrow.svg
+new file mode 100644
+index 0000000..799bfe4
+--- /dev/null
++++ b/public/images/swap-arrow.svg
+@@ -0,0 +1,3 @@
++
+diff --git a/src/app/app.tsx b/src/app/app.tsx
+index f3cc540..099cd7e 100644
+--- a/src/app/app.tsx
++++ b/src/app/app.tsx
+@@ -2,7 +2,9 @@ import { Route } from 'react-router-dom';
+
+ import { AppLayout } from '@components/app.layout';
+ import { MerchantDetails } from '@components/proof-of-reserve/components/merchant-details/merchant-details';
++import { SwapPage } from '@components/swap/pages/swap-page';
+ import { getWagmiConfiguration } from '@functions/configuration.functions';
++import { GardenProvider, environment } from '@gardenfi/react-hooks';
+ import { AttestorDetailsPage } from '@pages/attestor-details/attestor-details-page';
+ import { AttestorDetailsSelectPage } from '@pages/attestor-details/attestor-details-select-page';
+ import { MyVaults } from '@pages/my-vaults/my-vaults';
+@@ -31,39 +33,50 @@ export function App(): React.JSX.Element {
+ return (
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- } />
+- } />
+- {/* } /> */}
+- } />
+- } />
+- }
+- />
+- } />
+- } />
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
++
++
++
++
++
++ } />
++ } />
++ {/* } /> */}
++ } />
++ } />
++ }
++ />
++ }
++ />
++ } />
++ } />
++
++
++
++
++
++
++
++
++
++
++
++
+
+
+ );
+diff --git a/src/app/components/header/components/tabs.tsx b/src/app/components/header/components/tabs.tsx
+index 8e7ab18..7507add 100644
+--- a/src/app/components/header/components/tabs.tsx
++++ b/src/app/components/header/components/tabs.tsx
+@@ -30,6 +30,11 @@ export function NavigationTabs({
+ isActive={activeTab === '/how-it-works'}
+ handleClick={() => handleTabClick('/how-it-works')}
+ /> */}
++ handleTabClick('/swap')}
++ />
+
+ {isActiveTabs && (
+ <>
+diff --git a/src/app/components/mint-unmint/components/burn-transaction-screen/burn-transaction-screen.tsx b/src/app/components/mint-unmint/components/burn-transaction-screen/burn-transaction-screen.tsx
+index 7515979..6dd46ed 100644
+--- a/src/app/components/mint-unmint/components/burn-transaction-screen/burn-transaction-screen.tsx
++++ b/src/app/components/mint-unmint/components/burn-transaction-screen/burn-transaction-screen.tsx
+@@ -42,7 +42,7 @@ export function BurnTokenTransactionForm({
+
+ const { ethereumNetworkConfiguration } = useContext(EthereumNetworkConfigurationContext);
+
+- const signer = useEthersSigner();
++ const { getEthersSigner } = useEthersSigner();
+
+ const { unmintStep } = useSelector((state: RootState) => state.mintunmint);
+ const [isSubmitting, setIsSubmitting] = useState(false);
+@@ -60,8 +60,11 @@ export function BurnTokenTransactionForm({
+ if (currentRisk === 'High') throw new Error('Risk Level is too high');
+ const formattedWithdrawAmount = BigInt(shiftValue(withdrawAmount));
+
++ const signer = await getEthersSigner();
++ if (!signer) throw new Error('No signer available');
++
+ await withdraw(
+- ethereumNetworkConfiguration.dlcManagerContract.connect(signer!),
++ ethereumNetworkConfiguration.dlcManagerContract.connect(signer),
+ currentVault.uuid,
+ formattedWithdrawAmount
+ );
+diff --git a/src/app/components/mint-unmint/components/setup-vault-screen/setup-vault-screen.tsx b/src/app/components/mint-unmint/components/setup-vault-screen/setup-vault-screen.tsx
+index 43121e4..13dc3ce 100644
+--- a/src/app/components/mint-unmint/components/setup-vault-screen/setup-vault-screen.tsx
++++ b/src/app/components/mint-unmint/components/setup-vault-screen/setup-vault-screen.tsx
+@@ -24,7 +24,7 @@ export function SetupVaultScreen(): React.JSX.Element {
+ const { ethereumNetworkConfiguration } = useContext(EthereumNetworkConfigurationContext);
+ const { rippleNetworkConfiguration } = useContext(RippleNetworkConfigurationContext);
+
+- const signer = useEthersSigner();
++ const { getEthersSigner } = useEthersSigner();
+
+ const [isSubmitting, setIsSubmitting] = useState(false);
+
+@@ -40,7 +40,7 @@ export function SetupVaultScreen(): React.JSX.Element {
+ );
+ break;
+ case NetworkType.EVM:
+- await setupVault(ethereumNetworkConfiguration.dlcManagerContract.connect(signer!));
++ await setupVault(ethereumNetworkConfiguration.dlcManagerContract.connect());
+ break;
+ default:
+ throw new Error('Unsupported Network Type');
+diff --git a/src/app/components/swap/components/swap-amount-card.tsx b/src/app/components/swap/components/swap-amount-card.tsx
+new file mode 100644
+index 0000000..c6164fc
+--- /dev/null
++++ b/src/app/components/swap/components/swap-amount-card.tsx
+@@ -0,0 +1,96 @@
++import { HStack, Input, Text, VStack } from '@chakra-ui/react';
++import { Asset } from '@gardenfi/orderbook';
++
++import { SwapTokenLabel } from './swap-token-label';
++
++interface SwapAmountCardProps {
++ direction: string;
++ asset: Asset;
++ amount?: string;
++ amountInUSD?: string;
++ setAmount?: (amount: string) => void;
++ balance?: number;
++ transactionGasFee?: number;
++}
++
++const assetDetails = {
++ iBTC: {
++ assetColor: 'purple.01',
++ assetSymbol: 'iBTC',
++ assetLogo: '/images/logos/ibtc-logo.svg',
++ },
++ BTC: {
++ assetColor: 'orange.01',
++ assetSymbol: 'BTC',
++ assetLogo: '/images/logos/bitcoin-logo.svg',
++ },
++};
++
++export function SwapAmountCard({
++ direction,
++ amount,
++ asset,
++ amountInUSD,
++ setAmount,
++}: SwapAmountCardProps): React.JSX.Element | null {
++ const isBTC = asset.symbol === 'BTC';
++ const { assetColor, assetSymbol, assetLogo } = assetDetails[isBTC ? 'BTC' : 'iBTC'];
++
++ return (
++
++
++ {direction}
++
++
++
++ {direction === 'From' ? (
++ setAmount?.(e.target.value)}
++ borderColor={'white.01'}
++ color={'white.01'}
++ focusBorderColor={'rgba(50, 201, 247, 1)'} // accent.lightBlue.01
++ />
++ ) : (
++
++ {amount}
++
++ )}
++
++
++
++
++ {amountInUSD} USD
++
++
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap-button.tsx b/src/app/components/swap/components/swap-button.tsx
+new file mode 100644
+index 0000000..8a09bda
+--- /dev/null
++++ b/src/app/components/swap/components/swap-button.tsx
+@@ -0,0 +1,21 @@
++import React from 'react';
++
++import { Button } from '@chakra-ui/react';
++
++interface SwapButtonProps {
++ isDisabled?: boolean;
++ onClick: () => void;
++}
++
++export function SwapButton({ onClick, isDisabled }: SwapButtonProps): React.JSX.Element {
++ return (
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap-extra-details-card.tsx b/src/app/components/swap/components/swap-extra-details-card.tsx
+new file mode 100644
+index 0000000..03fbd7c
+--- /dev/null
++++ b/src/app/components/swap/components/swap-extra-details-card.tsx
+@@ -0,0 +1,47 @@
++// import { HStack, Text, VStack } from '@chakra-ui/react';
++
++// interface SwapExtraDetailsCardProps {
++// gasFee: number;
++// }
++
++// export function SwapExtraDetailsCard({ gasFee }: SwapExtraDetailsCardProps): React.JSX.Element {
++// return (
++//
++//
++//
++// Gas Fee
++//
++//
++// {gasFee}
++//
++//
++//
++//
++// Rate
++//
++//
++// 1 BTC = 1 dlcBTC
++//
++//
++//
++//
++// Slippage Tolerance
++//
++//
++// Auto
++//
++//
++//
++// );
++// }
++
++// TODO: Add back this component
+diff --git a/src/app/components/swap/components/swap-header.tsx b/src/app/components/swap/components/swap-header.tsx
+new file mode 100644
+index 0000000..90f91a5
+--- /dev/null
++++ b/src/app/components/swap/components/swap-header.tsx
+@@ -0,0 +1,17 @@
++import { HStack, Text } from '@chakra-ui/react';
++
++import { SwapNetworksMenu } from './swap-networks-menu';
++
++export function SwapHeader(): React.JSX.Element {
++ return (
++
++
++ Swap
++
++
++ {/* {}} /> */}
++ {/* {}} /> */}
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap-networks-menu.tsx b/src/app/components/swap/components/swap-networks-menu.tsx
+new file mode 100644
+index 0000000..1127f28
+--- /dev/null
++++ b/src/app/components/swap/components/swap-networks-menu.tsx
+@@ -0,0 +1,75 @@
++import { Image, Menu, MenuButton, MenuItem, MenuList } from '@chakra-ui/react';
++import { EthereumNetworkID } from 'dlc-btc-lib/models';
++import { useAccount, useConfig, useSwitchChain } from 'wagmi';
++
++interface SwapNetworksMenuProps {
++ isMenuOpen: boolean;
++ setIsMenuOpen: (isMenuOpen: boolean) => void;
++}
++
++const getNetworkLogo = (ethereumNetworkId?: EthereumNetworkID) => {
++ switch (ethereumNetworkId) {
++ case EthereumNetworkID.Arbitrum:
++ case EthereumNetworkID.ArbitrumSepolia:
++ return './images/logos/arbitrum-token.svg';
++ case EthereumNetworkID.Sepolia:
++ case EthereumNetworkID.Mainnet:
++ return './images/logos/eth-token.svg';
++ case EthereumNetworkID.BaseSepolia:
++ case EthereumNetworkID.Base:
++ return './images/logos/base-token.svg';
++ default:
++ return './images/logos/arbitrum-token.svg';
++ }
++};
++
++export function SwapNetworksMenu({
++ isMenuOpen,
++ setIsMenuOpen,
++}: SwapNetworksMenuProps): React.JSX.Element | null {
++ const { chains } = useConfig();
++ const { chain, isConnected } = useAccount();
++ const { switchChain } = useSwitchChain();
++ //TODO: maybe add the network logo to the setstate?
++
++ if (!isConnected) {
++ return null;
++ }
++
++ return (
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap-settings-menu.tsx b/src/app/components/swap/components/swap-settings-menu.tsx
+new file mode 100644
+index 0000000..0ac41e3
+--- /dev/null
++++ b/src/app/components/swap/components/swap-settings-menu.tsx
+@@ -0,0 +1,31 @@
++// import { Image, Menu, MenuButton, MenuItem, MenuList } from '@chakra-ui/react';
++
++// interface SwapSettingsMenuProps {
++// isMenuOpen: boolean;
++// setIsMenuOpen: (isMenuOpen: boolean) => void;
++// }
++
++// export function SwapSettingsMenu({
++// isMenuOpen,
++// setIsMenuOpen,
++// }: SwapSettingsMenuProps): React.JSX.Element {
++// return (
++//
++// );
++// }
++
++// TODO: Add back this component
+diff --git a/src/app/components/swap/components/swap-token-label.tsx b/src/app/components/swap/components/swap-token-label.tsx
+new file mode 100644
+index 0000000..8fc058a
+--- /dev/null
++++ b/src/app/components/swap/components/swap-token-label.tsx
+@@ -0,0 +1,25 @@
++import { HStack, Image, Text } from '@chakra-ui/react';
++
++interface SwapTokenLabelProps {
++ tokenImage: string;
++ tokenDisplay: string;
++}
++
++export function SwapTokenLabel({
++ tokenImage,
++ tokenDisplay,
++}: SwapTokenLabelProps): React.JSX.Element {
++ return (
++
++
++
++ {tokenDisplay}
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.copy-button.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.copy-button.tsx
+new file mode 100644
+index 0000000..d1ad84c
+--- /dev/null
++++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.copy-button.tsx
+@@ -0,0 +1,61 @@
++import { useState } from 'react';
++
++import { CheckCircleIcon, CopyIcon } from '@chakra-ui/icons';
++import { HStack, IconButton, PlacementWithLogical, Tooltip } from '@chakra-ui/react';
++
++interface CopyButtonProps {
++ textToCopy: string;
++ placement?: PlacementWithLogical;
++}
++
++export function CopyButton({ textToCopy, placement = 'left' }: CopyButtonProps): React.JSX.Element {
++ const [copied, setCopied] = useState(false);
++
++ const handleCopy = async () => {
++ try {
++ await navigator.clipboard.writeText(textToCopy);
++ setCopied(true);
++ setTimeout(() => setCopied(false), 2000);
++ } catch (error: any) {
++ // eslint-disable-next-line no-console
++ console.error('Failed to copy to Clipboard', error);
++ }
++ };
++
++ return (
++
++
++
++ ) : (
++
++ )
++ }
++ />
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.asset-value.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.asset-value.tsx
+new file mode 100644
+index 0000000..8cedca4
+--- /dev/null
++++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.asset-value.tsx
+@@ -0,0 +1,20 @@
++import { Text, VStack } from '@chakra-ui/react';
++
++interface AssetValueProps {
++ label: string;
++ amount: string;
++ asset: string;
++}
++
++export function OrderAmount({ label, amount, asset }: AssetValueProps): React.JSX.Element {
++ return (
++
++
++ {label}
++
++
++ {amount} {asset}
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/components/swap.orderbook.order.details.field.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/components/swap.orderbook.order.details.field.tsx
+new file mode 100644
+index 0000000..77278d2
+--- /dev/null
++++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/components/swap.orderbook.order.details.field.tsx
+@@ -0,0 +1,33 @@
++// components/TransactionField.tsx
++import { HStack, Text } from '@chakra-ui/react';
++import { truncateAddress } from 'dlc-btc-lib/utilities';
++
++import { CopyButton } from '../../../../../../swap.orderbook.copy-button';
++
++interface DetailsFieldProps {
++ label: string;
++ value: string;
++ shouldTruncate?: boolean;
++ includeCopyButton?: boolean;
++}
++
++export function DetailsField({
++ label,
++ value,
++ shouldTruncate = true,
++ includeCopyButton = true,
++}: DetailsFieldProps): React.JSX.Element {
++ return (
++
++
++ {label}
++
++
++
++ {shouldTruncate ? truncateAddress(value) : value}
++
++ {includeCopyButton && }
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/swap.orderbook.order.details.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/swap.orderbook.order.details.tsx
+new file mode 100644
+index 0000000..d49f70a
+--- /dev/null
++++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/components/swap.orderbook.order.details/swap.orderbook.order.details.tsx
+@@ -0,0 +1,43 @@
++import { VStack } from '@chakra-ui/react';
++import { MatchedOrder } from '@gardenfi/orderbook';
++
++import { DetailsField } from './components/swap.orderbook.order.details.field';
++
++interface OrderDetailsProps {
++ order: MatchedOrder;
++}
++
++export function OrderDetails({ order }: OrderDetailsProps): React.JSX.Element {
++ const {
++ destination_swap: { redeemer: to, redeem_tx_hash },
++ created_at,
++ source_swap: { initiator: from, initiate_tx_hash, refund_tx_hash },
++ } = order;
++
++ const creationDate = new Date(created_at).toLocaleDateString('en-US');
++
++ return (
++
++
++
++
++ {initiate_tx_hash && }
++ {redeem_tx_hash && }
++ {refund_tx_hash && }
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/swap.orderbook.order.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/swap.orderbook.order.tsx
+new file mode 100644
+index 0000000..8c0b5cb
+--- /dev/null
++++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/components/swap.orderbook.order/swap.orderbook.order.tsx
+@@ -0,0 +1,170 @@
++import React, { useState } from 'react';
++
++import { Button, Collapse, HStack, Text, VStack } from '@chakra-ui/react';
++import { OrderStatus } from '@gardenfi/core';
++import { MatchedOrder } from '@gardenfi/orderbook';
++import { useGarden } from '@gardenfi/react-hooks';
++import { useOrderStatus } from '@hooks/use-swap-order-status';
++import Decimal from 'decimal.js';
++import { truncateAddress, unshiftValue } from 'dlc-btc-lib/utilities';
++
++import { StatusLabel } from '@shared/constants/swap.constants';
++
++import { CopyButton } from '../../../swap.orderbook.copy-button';
++import { OrderAmount } from './components/swap.orderbook.order.asset-value';
++import { OrderDetails } from './components/swap.orderbook.order.details/swap.orderbook.order.details';
++
++function StatusButton({
++ isInitiating,
++ onInitiate,
++}: {
++ isInitiating: boolean;
++ onInitiate: () => void;
++}): React.JSX.Element {
++ return (
++
++ );
++}
++
++const getStatusLabel = (status: OrderStatus): StatusLabel => {
++ switch (status) {
++ case OrderStatus.Redeemed:
++ case OrderStatus.Refunded:
++ case OrderStatus.CounterPartyRedeemed:
++ case OrderStatus.CounterPartyRedeemDetected:
++ return StatusLabel.Completed;
++ case OrderStatus.Matched:
++ return StatusLabel.Initiate;
++ case OrderStatus.DeadLineExceeded:
++ return StatusLabel.Expired;
++ default:
++ return StatusLabel.Pending;
++ }
++};
++
++interface OrderProps {
++ order: MatchedOrder;
++}
++
++export function Order({ order }: OrderProps): React.JSX.Element {
++ const orderStatus = useOrderStatus(order);
++
++ const [modelIsVisible, setModelIsVisible] = useState(false);
++ const [isInitiating, setIsInitiating] = useState(false);
++ const { evmInitiate } = useGarden();
++
++ const { source_swap, destination_swap } = order;
++ const sourceAmount = unshiftValue(new Decimal(source_swap.amount).toNumber()).toString();
++ const destinationAmount = unshiftValue(
++ new Decimal(destination_swap.amount).toNumber()
++ ).toString();
++ const userFriendlyStatus = orderStatus && getStatusLabel(orderStatus);
++
++ const isFromBTC = order.source_swap.chain.toLowerCase().includes('bitcoin');
++ const fromLabel = isFromBTC ? 'BTC' : 'iBTC';
++ const toLabel = isFromBTC ? 'iBTC' : 'BTC';
++
++ const handleInitiate = async () => {
++ if (!evmInitiate) return;
++ setIsInitiating(true);
++ try {
++ const res = await evmInitiate(order);
++ if (!res.ok) {
++ throw new Error('Failed to initiate');
++ }
++ } catch (error) {
++ alert('Failed to initiate');
++ } finally {
++ setIsInitiating(false);
++ }
++ };
++
++ return (
++
++
++
++ Order ID: {truncateAddress(source_swap.swap_id)}
++
++
++
++
++
++
++
++
++
++ Status
++
++ {userFriendlyStatus === StatusLabel.Initiate && !isFromBTC ? (
++
++ ) : (
++
++ {userFriendlyStatus}
++
++ )}
++
++
++
++
++
++
++
++ Please initiate the swap by sending the BTC to the address below.
++
++
++
++ {truncateAddress(source_swap.swap_id)}
++
++
++
++
++
++
++
++
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/swap.orderbook.orderlist.tsx b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/swap.orderbook.orderlist.tsx
+new file mode 100644
+index 0000000..c63dd13
+--- /dev/null
++++ b/src/app/components/swap/components/swap.orderbook/components/swap.orderbook.orderlist/swap.orderbook.orderlist.tsx
+@@ -0,0 +1,40 @@
++import { VStack } from '@chakra-ui/react';
++import { FadeLayer } from '@components/fade-layer/fade-layer';
++import { MatchedOrder } from '@gardenfi/orderbook';
++import { useOrderStatus } from '@hooks/use-swap-order-status';
++import { scrollBarCSS } from '@styles/css-styles';
++
++import { Order } from './components/swap.orderbook.order/swap.orderbook.order';
++
++interface OrderListProps {
++ orders: MatchedOrder[];
++}
++
++export function OrderList({ orders }: OrderListProps): React.JSX.Element {
++ return (
++
++
++
++ {orders.map(order => (
++
++ ))}
++
++
++
++ );
++}
+diff --git a/src/app/components/swap/components/swap.orderbook/swap.orderbook.tsx b/src/app/components/swap/components/swap.orderbook/swap.orderbook.tsx
+new file mode 100644
+index 0000000..cebbc38
+--- /dev/null
++++ b/src/app/components/swap/components/swap.orderbook/swap.orderbook.tsx
+@@ -0,0 +1,30 @@
++import { useCallback, useEffect, useState } from 'react';
++
++import { MatchedOrder } from '@gardenfi/orderbook';
++import { useGarden } from '@gardenfi/react-hooks';
++
++import { OrderList } from './components/swap.orderbook.orderlist/swap.orderbook.orderlist';
++
++const POLLING_INTERVAL = 10000;
++const ORDERS_PER_PAGE = 4;
++
++export function Orderbook(): React.JSX.Element {
++ const { orderBook } = useGarden();
++ const [orders, setOrders] = useState([]);
++
++ const fetchOrders = useCallback(async () => {
++ if (!orderBook) return;
++ const res = await orderBook.fetchOrders(true, false, {
++ per_page: ORDERS_PER_PAGE,
++ });
++ setOrders(res.val.data);
++ }, [orderBook]);
++
++ useEffect(() => {
++ void fetchOrders();
++ const intervalId = setInterval(fetchOrders, POLLING_INTERVAL);
++ return () => clearInterval(intervalId);
++ }, [fetchOrders]);
++
++ return ;
++}
+diff --git a/src/app/components/swap/pages/swap-page.tsx b/src/app/components/swap/pages/swap-page.tsx
+new file mode 100644
+index 0000000..c123435
+--- /dev/null
++++ b/src/app/components/swap/pages/swap-page.tsx
+@@ -0,0 +1,18 @@
++import { HStack } from '@chakra-ui/react';
++import { PageLayout } from '@pages/components/page.layout';
++
++import { breakpoints } from '@shared/utils';
++
++import { Orderbook } from '../components/swap.orderbook/swap.orderbook';
++import { Swap } from '../swap';
++
++export function SwapPage(): React.JSX.Element {
++ return (
++
++
++
++
++
++
++ );
++}
+diff --git a/src/app/components/swap/swap.tsx b/src/app/components/swap/swap.tsx
+new file mode 100644
+index 0000000..baa9a32
+--- /dev/null
++++ b/src/app/components/swap/swap.tsx
+@@ -0,0 +1,177 @@
++import { CheckCircleIcon, ChevronDownIcon, ChevronUpIcon } from '@chakra-ui/icons';
++import { Button, HStack, Input, Spinner, Text, VStack } from '@chakra-ui/react';
++import { useBitcoinPrice } from '@hooks/use-bitcoin-price';
++import { useSwap } from '@hooks/use-swap';
++import Decimal from 'decimal.js';
++import { truncateAddress } from 'dlc-btc-lib/utilities';
++
++import { BITCOIN_NETWORK_MAP } from '@shared/constants/bitcoin.constants';
++
++import { SwapAmountCard } from './components/swap-amount-card';
++import { SwapButton } from './components/swap-button';
++import { SwapHeader } from './components/swap-header';
++
++const assetValueInUSD = (assetAmount: string, currentBitcoinPrice: number): string => {
++ try {
++ return `$ ${new Decimal(assetAmount).mul(currentBitcoinPrice).toNumber().toLocaleString('en-US')}`;
++ } catch (error) {
++ return '0';
++ }
++};
++
++export function Swap(): React.JSX.Element {
++ const {
++ inputToken,
++ setTokens,
++ inputAmount,
++ validateAndSetInputAmount,
++ outputToken,
++ outputAmount,
++ handleSwap,
++ bitcoinAddress,
++ setBitcoinAddress,
++ isQuoteLoading,
++ quoteError,
++ swapError,
++ isCompleted,
++ } = useSwap(BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork]);
++
++ const { bitcoinPrice } = useBitcoinPrice();
++
++ return (
++
++
++
++ {outputToken.symbol === 'BTC' ? (
++ <>
++
++
++
++
++
++ >
++ ) : (
++ <>
++
++
++
++
++
++ >
++ )}
++ {isQuoteLoading && (
++
++
++ Loading Quote
++
++ )}
++ {quoteError ||
++ (swapError && (
++
++ {`Error: ${quoteError ? quoteError : swapError}`}
++
++ ))}
++ {isCompleted && (
++
++ {`Swap Request Sent, Order ID: ${truncateAddress('asds')}`}
++
++
++ )}
++
++
++
++
++ {`${outputToken.symbol === 'BTC' ? 'Receive' : 'Refund'}`} Address
++
++ setBitcoinAddress(e.target.value)}
++ borderColor={'white.03'}
++ color={'white'}
++ focusBorderColor={'rgba(255,255,255,1)'}
++ isInvalid={!bitcoinAddress}
++ placeholder="Enter Bitcoin Address"
++ />
++
++ {/* */}
++ {isQuoteLoading ||
++ (quoteError === null && (
++ handleSwap()} />
++ ))}
++
++ );
++}
+diff --git a/src/app/functions/configuration.functions.ts b/src/app/functions/configuration.functions.ts
+index 263dc1f..1c11b51 100644
+--- a/src/app/functions/configuration.functions.ts
++++ b/src/app/functions/configuration.functions.ts
+@@ -4,7 +4,7 @@ import { RippleNetwork, RippleNetworkID } from '@models/ripple.models';
+ import { supportedEthereumNetworks } from 'dlc-btc-lib/constants';
+ import { getEthereumContract, getProvider } from 'dlc-btc-lib/ethereum-functions';
+ import { EthereumDeploymentPlan, EthereumNetwork, EthereumNetworkID } from 'dlc-btc-lib/models';
+-import { Contract, providers } from 'ethers';
++import { BrowserProvider, Contract, JsonRpcSigner } from 'ethers';
+ import { filter, fromPairs, includes, map, pipe } from 'ramda';
+ import { Account, Chain, Client, HttpTransport, Transport, http } from 'viem';
+ import { Config, createConfig, useConnectorClient } from 'wagmi';
+@@ -84,7 +84,7 @@ export function getWagmiConfiguration(ethereumNetworkIDs: EthereumNetworkID[]):
+ });
+ }
+
+-function clientToSigner(client: Client): providers.JsonRpcSigner {
++async function clientToSigner(client: Client): Promise {
+ const { account, chain, transport } = client;
+
+ const network = {
+@@ -92,12 +92,20 @@ function clientToSigner(client: Client): providers.Js
+ name: chain.name,
+ ensAddress: chain.contracts?.ensRegistry?.address,
+ };
+- return new providers.Web3Provider(transport, network).getSigner(account.address);
++ return await new BrowserProvider(transport, network).getSigner(account.address);
+ }
+
+-export function useEthersSigner({ chainId }: { chainId?: number } = {}):
+- | providers.JsonRpcSigner
+- | undefined {
++export function useEthersSigner({ chainId }: { chainId?: number } = {}): {
++ getEthersSigner: () => Promise;
++} {
+ const { data: client } = useConnectorClient({ chainId });
+- return useMemo(() => (client ? clientToSigner(client) : undefined), [client]);
++
++ async function getEthersSigner() {
++ if (!client) return undefined;
++ return await clientToSigner(client);
++ }
++
++ return {
++ getEthersSigner,
++ };
+ }
+diff --git a/src/app/hooks/use-swap-order-status.ts b/src/app/hooks/use-swap-order-status.ts
+new file mode 100644
+index 0000000..a55775f
+--- /dev/null
++++ b/src/app/hooks/use-swap-order-status.ts
+@@ -0,0 +1,84 @@
++import { useEffect, useState } from 'react';
++
++import { OrderStatus, ParseOrderStatus } from '@gardenfi/core';
++import { Chain, MatchedOrder } from '@gardenfi/orderbook';
++import { GARDEN_CONFIG } from '@gardenfi/react-hooks';
++
++async function fetchJson(url: string, options?: RequestInit): Promise {
++ const response = await fetch(url, {
++ headers: { 'Content-Type': 'application/json' },
++ ...options,
++ });
++
++ if (!response.ok) {
++ throw new Error(`HTTP error! status: ${response.status}`);
++ }
++
++ return response.json() as Promise;
++}
++
++const createAPI = (isTestnet: boolean) => {
++ const apiConfiguration = isTestnet ? GARDEN_CONFIG.testnet : GARDEN_CONFIG.mainnet;
++
++ if (!apiConfiguration) {
++ throw new Error('Invalid Configuration');
++ }
++
++ Object.entries(apiConfiguration).forEach(([key, value]) => {
++ if (!value) throw new Error(`Missing ${key} in config`);
++ });
++
++ return {
++ home: 'https://garden.finance',
++ data: {
++ data: apiConfiguration,
++ assets: `${apiConfiguration.blockNumberFetcherUrl}/assets`,
++ blockNumbers: (network: 'mainnet' | 'testnet') =>
++ `${apiConfiguration.blockNumberFetcherUrl}/blocknumber/${network}`,
++ },
++ orderbook: apiConfiguration.orderBookUrl,
++ quote: apiConfiguration.quoteUrl,
++ mempool: {
++ testnet: 'https://mempool.space/testnet4/api',
++ mainnet: 'https://mempool.space/api',
++ },
++ };
++};
++
++export const useOrderStatus = (order: MatchedOrder) => {
++ const [blockNumbers, setBlockNumbers] = useState | null>(null);
++ const [status, setStatus] = useState();
++
++ const isTestnet = ['testnet', 'devnet', 'localhost'].includes(appConfiguration.appEnvironment);
++
++ useEffect(() => {
++ const fetchBlockNumbers = async () => {
++ try {
++ const data = await fetchJson>(
++ createAPI(isTestnet).data.blockNumbers('testnet')
++ );
++ setBlockNumbers(data);
++ } catch (error) {
++ // eslint-disable-next-line no-console
++ console.error('Failed to fetch Block Numbers:', error);
++ }
++ };
++
++ void fetchBlockNumbers();
++ }, []);
++
++ useEffect(() => {
++ if (!blockNumbers) return;
++
++ const { source_swap, destination_swap } = order;
++ const sourceBlockNumber = blockNumbers[source_swap.chain];
++ const destinationBlockNumber = blockNumbers[destination_swap.chain];
++
++ if (!sourceBlockNumber || !destinationBlockNumber) return;
++
++ const orderStatus = ParseOrderStatus(order, sourceBlockNumber, destinationBlockNumber);
++ setStatus(orderStatus);
++ }, [blockNumbers, order]);
++
++ return status;
++};
+diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts
+new file mode 100644
+index 0000000..2d5d535
+--- /dev/null
++++ b/src/app/hooks/use-swap.ts
+@@ -0,0 +1,256 @@
++import { useEffect, useState } from 'react';
++
++import { SwapParams } from '@gardenfi/core';
++import { Asset, SupportedAssets } from '@gardenfi/orderbook';
++import { useGarden } from '@gardenfi/react-hooks';
++import Decimal from 'decimal.js';
++import { isBitcoinAddress } from 'dlc-btc-lib/bitcoin-functions';
++import { Network } from 'dlc-btc-lib/models';
++import { shiftValue, unshiftValue } from 'dlc-btc-lib/utilities';
++
++import { BITCOIN_NETWORK_MAP } from '@shared/constants/bitcoin.constants';
++
++interface QuoteParams {
++ fromAsset: Asset;
++ toAsset: Asset;
++ amount: number;
++ isExactOut?: boolean;
++}
++
++enum SupportedEVMNetworks {
++ ArbitrumSepolia = '421614',
++ BaseSepolia = '84532',
++}
++
++const SUPPORTED_ASSETS_BTC_MAP = {
++ mainnet: SupportedAssets.mainnet.bitcoin_primary,
++ testnet: SupportedAssets.testnet.bitcoin_testnet_primary,
++ devnet: SupportedAssets.testnet.bitcoin_testnet_primary,
++ localhost: SupportedAssets.testnet.bitcoin_testnet_primary,
++};
++
++const SUPPORTED_ASSETS_IBTC_MAP = {
++ [SupportedEVMNetworks.ArbitrumSepolia]:
++ SupportedAssets.testnet.arbitrum_sepolia_0xdfe6d9363ee96152d39391009a6723819d9e25eb,
++ [SupportedEVMNetworks.BaseSepolia]:
++ SupportedAssets.testnet.base_sepolia_0xbcdad29ac77e5bb27fd528ab0045af630259fe4f,
++};
++
++function useDebounce(value: T, delay: number): T {
++ const [debouncedValue, setDebouncedValue] = useState(value);
++
++ useEffect(() => {
++ const timer = setTimeout(() => {
++ setDebouncedValue(value);
++ }, delay);
++
++ return () => {
++ clearTimeout(timer);
++ };
++ }, [value, delay]);
++
++ return debouncedValue;
++}
++
++interface UseSwapReturnType {
++ handleSwap: () => void;
++ inputToken: Asset;
++ setTokens: () => void;
++ inputAmount: string;
++ validateAndSetInputAmount: (amount: string) => void;
++ outputToken: Asset;
++ setOutputToken: (token: Asset) => void;
++ outputAmount: string | undefined;
++ bitcoinAddress: string;
++ setBitcoinAddress: (address: string) => void;
++ isQuoteLoading: boolean;
++ quoteError: string | null;
++ swapError: string | null;
++ isCompleted: string | null;
++}
++
++export function useSwap(_bitcoinNetwork: Network): UseSwapReturnType {
++ const { initializeSecretManager, swapAndInitiate, getQuote } = useGarden();
++
++ const [inputToken, setInputToken] = useState(
++ SUPPORTED_ASSETS_IBTC_MAP[SupportedEVMNetworks.ArbitrumSepolia]
++ );
++ const [inputAmount, setInputAmount] = useState('0.01');
++
++ const [outputToken, setOutputToken] = useState(
++ SUPPORTED_ASSETS_BTC_MAP[appConfiguration.appEnvironment]
++ );
++ const [outputAmount, setOutputAmount] = useState();
++
++ const [isQuoteLoading, setIsQuoteLoading] = useState(false);
++ const [quoteError, setQuoteError] = useState(null);
++
++ const debouncedInputAmount = useDebounce(inputAmount, 500);
++
++ const [bitcoinAddress, setBitcoinAddress] = useState('');
++
++ const [isCompleted, setIsCompleted] = useState(null);
++ const [swapError, setSwapError] = useState(null);
++
++ function setTokens() {
++ setInputToken(outputToken);
++ setOutputToken(inputToken);
++ }
++
++ function validateAndSetInputAmount(value: string) {
++ setInputAmount(value);
++ }
++
++ useEffect(() => {
++ let timeoutId: NodeJS.Timeout;
++
++ if (isCompleted || swapError) {
++ timeoutId = setTimeout(() => {
++ setIsCompleted(null);
++ setSwapError(null);
++ }, 5000);
++ }
++
++ return () => {
++ if (timeoutId) {
++ clearTimeout(timeoutId);
++ }
++ };
++ }, [isCompleted, swapError]);
++
++ useEffect(() => {
++ const updateQuote = async () => {
++ if (Number(debouncedInputAmount) <= 0) {
++ setOutputAmount('0');
++ return;
++ }
++
++ setIsQuoteLoading(true);
++ setQuoteError(null);
++
++ try {
++ const sendAmount = shiftValue(Number(debouncedInputAmount));
++
++ const { amount } = await fetchQuote({
++ fromAsset: inputToken,
++ toAsset: outputToken,
++ amount: sendAmount,
++ });
++
++ setOutputAmount(unshiftValue(new Decimal(amount).toNumber()).toString()); // Assuming 8 decimals for BTC
++ } catch (error) {
++ setQuoteError(error instanceof Error ? error.message : 'Failed to fetch quote');
++ setOutputAmount('0');
++ } finally {
++ setIsQuoteLoading(false);
++ }
++ };
++
++ void updateQuote();
++ // eslint-disable-next-line react-hooks/exhaustive-deps
++ }, [debouncedInputAmount, inputToken, outputToken, getQuote]);
++
++ const initializeSecret = async () => {
++ if (!initializeSecretManager) {
++ throw new Error('Secret Manager initializer not available');
++ }
++
++ const response = await initializeSecretManager();
++
++ if (!response.ok || !response.val.getMasterPrivKey()) {
++ throw new Error('Failed to initialize Secret Manager');
++ }
++
++ return response;
++ };
++
++ const fetchQuote = async (quoteParams: QuoteParams) => {
++ if (!getQuote) {
++ throw new Error('Quote service not available');
++ }
++
++ const quote = await getQuote(quoteParams);
++
++ if (quote.error) {
++ throw new Error(quote.error);
++ }
++
++ const [strategy, amount] = Object.entries(quote.val.quotes)[0];
++
++ return { strategy, amount };
++ };
++
++ const executeSwap = async (swapParams: SwapParams) => {
++ if (!swapAndInitiate) {
++ throw new Error('Swap service not available');
++ }
++
++ const response = await swapAndInitiate(swapParams);
++
++ if (response.error) {
++ throw new Error(response.error);
++ }
++
++ return response;
++ };
++
++ const handleSwap = async () => {
++ try {
++ if (!isBitcoinAddress(bitcoinAddress, BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork])) {
++ setSwapError('Invalid Bitcoin Address');
++ return;
++ }
++
++ await initializeSecret();
++
++ const sendAmount = shiftValue(new Decimal(inputAmount).toNumber());
++
++ const { strategy, amount } = await fetchQuote({
++ fromAsset: inputToken,
++ toAsset: outputToken,
++ amount: sendAmount,
++ });
++
++ const swapParams = {
++ fromAsset: inputToken,
++ toAsset: outputToken,
++ sendAmount: sendAmount.toString(),
++ receiveAmount: amount.toString(),
++ additionalData: {
++ strategyId: strategy,
++ btcAddress: bitcoinAddress,
++ },
++ };
++
++ const response = await executeSwap(swapParams);
++
++ if (response.error) {
++ setSwapError(response.error);
++ return response;
++ }
++
++ setIsCompleted(response.val.source_swap.swap_id);
++
++ return response;
++ } catch (error) {
++ setSwapError(error instanceof Error ? error.message : 'Failed to Swap');
++ }
++ };
++
++ return {
++ handleSwap,
++ setTokens,
++ inputToken,
++ inputAmount,
++ validateAndSetInputAmount,
++ setOutputToken,
++ outputToken,
++ outputAmount,
++ bitcoinAddress,
++ setBitcoinAddress,
++ isQuoteLoading,
++ isCompleted,
++ quoteError,
++ swapError,
++ };
++}
+diff --git a/src/shared/constants/swap.constants.ts b/src/shared/constants/swap.constants.ts
+new file mode 100644
+index 0000000..4edec05
+--- /dev/null
++++ b/src/shared/constants/swap.constants.ts
+@@ -0,0 +1,6 @@
++export enum StatusLabel {
++ Completed = 'Completed',
++ Pending = 'In Progress',
++ Expired = 'Expired',
++ Initiate = 'Awaiting Initiate',
++}
+diff --git a/src/shared/utils.ts b/src/shared/utils.ts
+index e7f5233..27a72f4 100644
+--- a/src/shared/utils.ts
++++ b/src/shared/utils.ts
+@@ -54,6 +54,8 @@ export function formatEvent(event: DetailedEvent): FormattedEvent {
+ export function parseAssetAmount(assetAmount: string): Decimal {
+ const isValidNumber = /^-?\d*\.?\d*$/.test(assetAmount);
+
++ console.log('isValidNumber', isValidNumber);
++
+ if (isValidNumber) {
+ try {
+ return new Decimal(assetAmount);
+diff --git a/src/styles/app-theme.ts b/src/styles/app-theme.ts
+index db734c9..525c003 100644
+--- a/src/styles/app-theme.ts
++++ b/src/styles/app-theme.ts
+@@ -49,6 +49,7 @@ export const appTheme = extendTheme({
+ 'background.website.01': 'rgba(0, 0, 0, 1)',
+ 'background.container.01': 'rgba(23, 24, 29, 1)',
+ 'background.content.01': 'rgba(51, 51, 51, 1)',
++ 'background.content.02': 'rgba(77, 77, 77, 1)',
+ 'grey.01': 'rgba(181, 182, 187, 1)',
+ 'border.lightBlue.01': 'rgba(50, 201, 247,0.75)',
+ 'border.white.01': 'rgba(255,255,255,0.25)',
+diff --git a/vite.config.ts b/vite.config.ts
+index 4070689..972271f 100644
+--- a/vite.config.ts
++++ b/vite.config.ts
+@@ -80,6 +80,7 @@ export default defineConfig(async ({ mode }) => {
+ target: 'esnext',
+ },
+ define: {
++ global: 'window',
+ appConfiguration,
+ },
+ resolve: {
+diff --git a/yarn.lock b/yarn.lock
+index 135c23f..0f26539 100644
+--- a/yarn.lock
++++ b/yarn.lock
+@@ -12,6 +12,11 @@
+ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7"
+ integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==
+
++"@adraffy/ens-normalize@^1.10.1":
++ version "1.11.0"
++ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33"
++ integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==
++
+ "@ampproject/remapping@^2.2.0":
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz"
+@@ -201,10 +206,10 @@
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+-"@babel/runtime@^7.19.4":
+- version "7.25.0"
+- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb"
+- integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==
++"@babel/runtime@^7.26.0":
++ version "7.26.0"
++ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1"
++ integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+@@ -292,6 +297,37 @@
+ "@noble/hashes" "^1.1.5"
+ "@noble/secp256k1" "^1.7.1"
+
++"@catalogfi/extension@^0.1.1":
++ version "0.1.1"
++ resolved "https://registry.yarnpkg.com/@catalogfi/extension/-/extension-0.1.1.tgz#b07400f2365a32dd13a7cdefe65949e0705a5342"
++ integrity sha512-ny4xiQ95VdjFWDR2T22xLQxUY99yKRD4EOlxZInKCHGB0jnQaUrsj9iKGZ2DRGUGPpH/iDkruoXjibw7s78BIw==
++
++"@catalogfi/utils@^0.1.10", "@catalogfi/utils@^0.1.11", "@catalogfi/utils@^0.1.6":
++ version "0.1.11"
++ resolved "https://registry.yarnpkg.com/@catalogfi/utils/-/utils-0.1.11.tgz#3ccdba102b88cb036ae0b14f7b300e0fc83c93f6"
++ integrity sha512-+rt2I4W5ip6odg8ZSmoTyCY0GllPzSYqWz8xRyvgN58MVJJMAFjsp4XwyWzkIfKCRKOJve/vjYdZQx92CTO2gw==
++
++"@catalogfi/wallets@^0.2.51":
++ version "0.2.54"
++ resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.54.tgz#8d5323b381dd70964e2dac45a2d89015a3e3a743"
++ integrity sha512-ffcvXPx/qklyjR8HLr2ni/hZFA8mL+DgQxMmozTRF2UV0ngLx8aURDHN/FHg2vQ6MU5cYLEl3h+H8frPKRfL4w==
++ dependencies:
++ "@catalogfi/extension" "^0.1.1"
++ "@catalogfi/utils" "^0.1.10"
++ "@noble/hashes" "^1.4.0"
++ bip32 "^4.0.0"
++ bip39 "^3.1.0"
++ bitcoinjs-lib "^6.1.5"
++ bufferutil "^4.0.8"
++ dotenv "^16.3.1"
++ ecpair "^2.1.0"
++ tiny-secp256k1 "^2.2.3"
++ typechain "^8.3.2"
++ utf-8-validate "^6.0.3"
++ uuid "^9.0.1"
++ viem "^2.20.1"
++ yup "^1.4.0"
++
+ "@chakra-ui/accordion@2.3.1":
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.1.tgz"
+@@ -1105,17 +1141,15 @@
+ resolved "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.2.0.tgz"
+ integrity sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==
+
+-"@coinbase/wallet-sdk@4.0.4":
+- version "4.0.4"
+- resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.0.4.tgz#634cd89bac93eeaf381a1f026476794e53431ed6"
+- integrity sha512-74c040CRnGhfRjr3ArnkAgud86erIqdkPHNt5HR1k9u97uTIZCJww9eGYT67Qf7gHPpGS/xW8Be1D4dvRm63FA==
++"@coinbase/wallet-sdk@4.2.3":
++ version "4.2.3"
++ resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.2.3.tgz#a30fa0605b24bc42c37f52a62d2442bcbb7734af"
++ integrity sha512-BcyHZ/Ec84z0emORzqdXDv4P0oV+tV3a0OirfA8Ko1JGBIAVvB+hzLvZzCDvnuZx7MTK+Dd8Y9Tjlo446BpCIg==
+ dependencies:
+- buffer "^6.0.3"
++ "@noble/hashes" "^1.4.0"
+ clsx "^1.2.1"
+ eventemitter3 "^5.0.1"
+- keccak "^3.0.3"
+- preact "^10.16.0"
+- sha.js "^2.4.11"
++ preact "^10.24.2"
+
+ "@dfns/sdk-browser@^0.5.9":
+ version "0.5.9"
+@@ -1135,6 +1169,11 @@
+ cross-fetch "3.1.6"
+ uuid "9.0.0"
+
++"@ecies/ciphers@^0.2.1":
++ version "0.2.2"
++ resolved "https://registry.yarnpkg.com/@ecies/ciphers/-/ciphers-0.2.2.tgz#82a15b10a6e502b63fb30915d944b2eaf3ff17ff"
++ integrity sha512-ylfGR7PyTd+Rm2PqQowG08BCKA22QuX8NzrL+LxAAvazN10DMwdJ2fWwAzRj05FI/M8vNFGm3cv9Wq/GFWCBLg==
++
+ "@emotion/babel-plugin@^11.11.0":
+ version "11.11.0"
+ resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz"
+@@ -1893,6 +1932,58 @@
+ resolved "https://registry.npmjs.org/@fontsource/poppins/-/poppins-5.0.12.tgz"
+ integrity sha512-0qzBxtIJLh82iMJ9pCXKYwGs1zyS+jyUmwVJ59+JdYnEaFVkDsxVOk9yDWfVOs14ALUneodU2m5YSGma6dCYCw==
+
++"@gardenfi/core@0.3.0-beta.14", "@gardenfi/core@^0.3.0-beta.14":
++ version "0.3.0-beta.14"
++ resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.3.0-beta.14.tgz#e66599cff3ddb4584648d628dbae02d4aa3836a6"
++ integrity sha512-V73jDvdchN09UqYdcyOCI4s4ekHY94NLoGnxqp2579y6sSYjqJf+5WXyn89Pb7bjrCOpYOfldivWKXYfwfLkWQ==
++ dependencies:
++ "@catalogfi/utils" "^0.1.6"
++ "@catalogfi/wallets" "^0.2.51"
++ "@gardenfi/orderbook" "^0.2.0-beta.41"
++ "@gardenfi/utils" "^0.0.1-beta.19"
++ bignumber.js "^9.1.2"
++ bitcoinjs-lib "^6.1.6"
++ tiny-secp256k1 "^2.2.3"
++ varuint-bitcoin "^1.1.2"
++ viem "^2.21.15"
++
++"@gardenfi/orderbook@0.2.0-beta.41", "@gardenfi/orderbook@^0.2.0-beta.41":
++ version "0.2.0-beta.41"
++ resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.2.0-beta.41.tgz#a802ddba48023956160fa2d2fda0676c520a5dbb"
++ integrity sha512-I8GisEgUGNX84WKZSKEAqMsSD9wvfY9hzY5iL2V5vc+jqblpc+5Exbk/yVFINI3DoqtuaVb1h/dqTmMFotu0hA==
++ dependencies:
++ "@catalogfi/utils" "^0.1.6"
++ "@gardenfi/utils" "^0.0.1-beta.19"
++ bufferutil "^4.0.8"
++ siwe "^2.1.4"
++ utf-8-validate "^6.0.3"
++ viem "^2.21.15"
++ ws "^8.14.2"
++
++"@gardenfi/react-hooks@0.0.1-beta.135":
++ version "0.0.1-beta.135"
++ resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.135.tgz#a74d538b455b4a2baff1401eb65c4ea42e194c80"
++ integrity sha512-I4R391jusGV30K8s+6cDgc7xwAcwj1rUeg2Uw3a/N96KjO2f0l+cn8NQZsSIcJMzL4GTgICpQv2Ci/JIe0VdbQ==
++ dependencies:
++ "@catalogfi/utils" "^0.1.6"
++ "@catalogfi/wallets" "^0.2.51"
++ "@gardenfi/core" "^0.3.0-beta.14"
++ "@gardenfi/orderbook" "^0.2.0-beta.41"
++ "@gardenfi/utils" "^0.0.1-beta.19"
++ react "^18.3.1"
++ viem "^2.21.15"
++ wagmi "^2.12.16"
++
++"@gardenfi/utils@^0.0.1-beta.19":
++ version "0.0.1-beta.19"
++ resolved "https://registry.yarnpkg.com/@gardenfi/utils/-/utils-0.0.1-beta.19.tgz#e74cdc12ff04bed142ebedc32f063daec145ef06"
++ integrity sha512-hgTc3iy2TM7Rr2J7ApM+yzSOSsisHW3T3+PKMWcBZcc4CIwBAquTCRdQNkMKFbawsvB4LMieIiWYWjm+IQqckQ==
++ dependencies:
++ "@catalogfi/utils" "^0.1.11"
++ axios "^1.7.2"
++ jwt-decode "^4.0.0"
++ viem "^2.21.15"
++
+ "@gemwallet/api@3.8.0", "@gemwallet/api@^3.8.0":
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/@gemwallet/api/-/api-3.8.0.tgz#46bc47789848c7ac9cc620613e0a1757dc8668a1"
+@@ -2152,10 +2243,10 @@
+ resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.1.tgz#e89b840a7af8097a8ed4953d8dc8470d1302d3ef"
+ integrity sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw==
+
+-"@metamask/sdk-communication-layer@0.27.0":
+- version "0.27.0"
+- resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.27.0.tgz#8d618fadd39f11627d5b3ef1bc72867439e33ff4"
+- integrity sha512-G9LCaQzIqp5WmUmvHN6UUdjWrBh67MbRobmbbs5fcc2+9XFhj3vBgtyleUYjun91jSlPHoZeo+f/Pj4/WoPIJg==
++"@metamask/sdk-communication-layer@0.31.0":
++ version "0.31.0"
++ resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.31.0.tgz#0acc063b62aa09d044c7aab65801712d760e53b2"
++ integrity sha512-V9CxdzabDPjQVgmKGHsyU3SYt4Af27g+4DbGCx0fLoHqN/i1RBDZqs/LYbJX3ykJCANzE+llz/MolMCMrzM2RA==
+ dependencies:
+ bufferutil "^4.0.8"
+ date-fns "^2.29.3"
+@@ -2163,38 +2254,35 @@
+ utf-8-validate "^5.0.2"
+ uuid "^8.3.2"
+
+-"@metamask/sdk-install-modal-web@0.26.5":
+- version "0.26.5"
+- resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.26.5.tgz#b696c78818adaff85d01a4f41fecc8fd2c80bc59"
+- integrity sha512-qVA9Nk+NorGx5hXyODy5wskptE8R7RNYTYt49VbQpJogqbbVe1dnJ98+KaA43PBN4XYMCXmcIhULNiEHGsLynA==
++"@metamask/sdk-install-modal-web@0.31.2":
++ version "0.31.2"
++ resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.31.2.tgz#bb8c92a6844a632be8525e7bb5a35924a926d6cd"
++ integrity sha512-KPv36kQjmTwErU8g2neuHHSgkD5+1hp4D6ERfk5Kc2r73aOYNCdG9wDGRUmFmcY2MKkeK1EuDyZfJ4FPU30fxQ==
+ dependencies:
+- qr-code-styling "^1.6.0-rc.1"
++ "@paulmillr/qr" "^0.2.1"
+
+-"@metamask/sdk@0.27.0":
+- version "0.27.0"
+- resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.27.0.tgz#38617985b8305a0f5d482cdd7af8ddec87968bb7"
+- integrity sha512-6sMjr/0qR700X1svPGEQ4rBdtccidBLeTC27fYQc7r9ROgSixB1DUUAyu/LoySVqt3Hu/Zm7NnAHXuT228ht7A==
++"@metamask/sdk@0.31.2":
++ version "0.31.2"
++ resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.31.2.tgz#2ec1c1c7cf6a444e65104862e83814a493047d72"
++ integrity sha512-6MWON2g1j7XwAHWam4trusGxeyhQweNLEHPsfuIxSwcsXoEm08Jj80OglJxQI4KwjcDnjSWBkQGG3mmK6ug/cA==
+ dependencies:
++ "@babel/runtime" "^7.26.0"
+ "@metamask/onboarding" "^1.0.1"
+ "@metamask/providers" "16.1.0"
+- "@metamask/sdk-communication-layer" "0.27.0"
+- "@metamask/sdk-install-modal-web" "0.26.5"
+- "@types/dom-screen-wake-lock" "^1.0.0"
++ "@metamask/sdk-communication-layer" "0.31.0"
++ "@metamask/sdk-install-modal-web" "0.31.2"
++ "@paulmillr/qr" "^0.2.1"
+ bowser "^2.9.0"
+ cross-fetch "^4.0.0"
+ debug "^4.3.4"
+- eciesjs "^0.3.15"
++ eciesjs "^0.4.11"
+ eth-rpc-errors "^4.0.3"
+- eventemitter2 "^6.4.7"
+- i18next "23.11.5"
+- i18next-browser-languagedetector "7.1.0"
++ eventemitter2 "^6.4.9"
+ obj-multiplex "^1.0.0"
+ pump "^3.0.0"
+- qrcode-terminal-nooctal "^0.12.1"
+- react-native-webview "^11.26.0"
+ readable-stream "^3.6.2"
+- rollup-plugin-visualizer "^5.9.2"
+ socket.io-client "^4.5.1"
++ tslib "^2.6.0"
+ util "^0.12.4"
+ uuid "^8.3.2"
+
+@@ -2333,6 +2421,11 @@
+ "@netlify/node-cookies" "^0.1.0"
+ urlpattern-polyfill "8.0.2"
+
++"@noble/ciphers@^1.0.0":
++ version "1.1.3"
++ resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.1.3.tgz#eb27085aa7ce94d8c6eaeb64299bab0589920ec1"
++ integrity sha512-Ygv6WnWJHLLiW4fnNDC1z+i13bud+enXOFRBlpxI+NJliPWx5wdR+oWlTjLuBPTqjUjtHXtjkU6w3kuuH6upZA==
++
+ "@noble/curves@1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6"
+@@ -2347,23 +2440,40 @@
+ dependencies:
+ "@noble/hashes" "1.4.0"
+
+-"@noble/curves@^1.0.0", "@noble/curves@~1.6.0":
++"@noble/curves@1.6.0", "@noble/curves@^1.0.0", "@noble/curves@^1.6.0", "@noble/curves@~1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.6.0.tgz#be5296ebcd5a1730fccea4786d420f87abfeb40b"
+ integrity sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==
+ dependencies:
+ "@noble/hashes" "1.5.0"
+
++"@noble/curves@1.7.0", "@noble/curves@~1.7.0":
++ version "1.7.0"
++ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.7.0.tgz#0512360622439256df892f21d25b388f52505e45"
++ integrity sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==
++ dependencies:
++ "@noble/hashes" "1.6.0"
++
+ "@noble/hashes@1.4.0", "@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@~1.4.0":
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz"
+ integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==
+
+-"@noble/hashes@1.5.0", "@noble/hashes@^1.0.0", "@noble/hashes@~1.5.0":
++"@noble/hashes@1.5.0", "@noble/hashes@^1.0.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.5.0.tgz#abadc5ca20332db2b1b2aa3e496e9af1213570b0"
+ integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==
+
++"@noble/hashes@1.6.0":
++ version "1.6.0"
++ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.0.tgz#d4bfb516ad6e7b5111c216a5cc7075f4cf19e6c5"
++ integrity sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==
++
++"@noble/hashes@1.6.1", "@noble/hashes@^1.1.2", "@noble/hashes@~1.6.0":
++ version "1.6.1"
++ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.1.tgz#df6e5943edcea504bac61395926d6fd67869a0d5"
++ integrity sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==
++
+ "@noble/secp256k1@^1.7.1":
+ version "1.7.1"
+ resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz"
+@@ -2482,6 +2592,11 @@
+ "@parcel/watcher-win32-ia32" "2.4.1"
+ "@parcel/watcher-win32-x64" "2.4.1"
+
++"@paulmillr/qr@^0.2.1":
++ version "0.2.1"
++ resolved "https://registry.yarnpkg.com/@paulmillr/qr/-/qr-0.2.1.tgz#76ade7080be4ac4824f638146fd8b6db1805eeca"
++ integrity sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==
++
+ "@playwright/test@^1.39.0":
+ version "1.42.1"
+ resolved "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz"
+@@ -2667,10 +2782,10 @@
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz#851959c4c1c3c6647aba1f388198c8243aed6917"
+ integrity sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==
+
+-"@safe-global/safe-apps-provider@0.18.3":
+- version "0.18.3"
+- resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.3.tgz#805a42e24f5dde803cb96dac251a3c9e256de45b"
+- integrity sha512-f/0cNv3S4v7p8rowAjj0hDCg8Q8P/wBjp5twkNWeBdvd0RDr7BuRBPPk74LCqmjQ82P+1ltLlkmVFSmxTIT7XQ==
++"@safe-global/safe-apps-provider@0.18.5":
++ version "0.18.5"
++ resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.5.tgz#745a932bda3739a8a298ae44ec6c465f6c4773b7"
++ integrity sha512-9v9wjBi3TwLsEJ3C2ujYoexp3pFJ0omDLH/GX91e2QB+uwCKTBYyhxFSrTQ9qzoyQd+bfsk4gjOGW87QcJhf7g==
+ dependencies:
+ "@safe-global/safe-apps-sdk" "^9.1.0"
+ events "^3.3.0"
+@@ -2708,6 +2823,11 @@
+ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1"
+ integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==
+
++"@scure/base@~1.2.1":
++ version "1.2.1"
++ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.1.tgz#dd0b2a533063ca612c17aa9ad26424a2ff5aa865"
++ integrity sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==
++
+ "@scure/bip32@1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67"
+@@ -2717,7 +2837,7 @@
+ "@noble/hashes" "~1.4.0"
+ "@scure/base" "~1.1.6"
+
+-"@scure/bip32@^1.3.1":
++"@scure/bip32@1.5.0", "@scure/bip32@^1.3.1", "@scure/bip32@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.5.0.tgz#dd4a2e1b8a9da60e012e776d954c4186db6328e6"
+ integrity sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==
+@@ -2726,6 +2846,15 @@
+ "@noble/hashes" "~1.5.0"
+ "@scure/base" "~1.1.7"
+
++"@scure/bip32@1.6.0":
++ version "1.6.0"
++ resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.6.0.tgz#6dbc6b4af7c9101b351f41231a879d8da47e0891"
++ integrity sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==
++ dependencies:
++ "@noble/curves" "~1.7.0"
++ "@noble/hashes" "~1.6.0"
++ "@scure/base" "~1.2.1"
++
+ "@scure/bip39@1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3"
+@@ -2734,7 +2863,7 @@
+ "@noble/hashes" "~1.4.0"
+ "@scure/base" "~1.1.6"
+
+-"@scure/bip39@^1.2.1":
++"@scure/bip39@1.4.0", "@scure/bip39@^1.2.1", "@scure/bip39@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.4.0.tgz#664d4f851564e2e1d4bffa0339f9546ea55960a6"
+ integrity sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==
+@@ -2742,6 +2871,14 @@
+ "@noble/hashes" "~1.5.0"
+ "@scure/base" "~1.1.8"
+
++"@scure/bip39@1.5.0":
++ version "1.5.0"
++ resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.5.0.tgz#c8f9533dbd787641b047984356531d84485f19be"
++ integrity sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==
++ dependencies:
++ "@noble/hashes" "~1.6.0"
++ "@scure/base" "~1.2.1"
++
+ "@scure/btc-signer@1.3.2":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@scure/btc-signer/-/btc-signer-1.3.2.tgz#56cf02a2e318097b1e4f531fac8ef114bdf4ddc8"
+@@ -2762,6 +2899,16 @@
+ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2"
+ integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
+
++"@spruceid/siwe-parser@^2.1.2":
++ version "2.1.2"
++ resolved "https://registry.yarnpkg.com/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz#3e13e7d3ac0bfdaf109a07342590eb21daee2fc3"
++ integrity sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==
++ dependencies:
++ "@noble/hashes" "^1.1.2"
++ apg-js "^4.3.0"
++ uri-js "^4.4.1"
++ valid-url "^1.0.9"
++
+ "@stablelib/aead@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3"
+@@ -3225,11 +3372,6 @@
+ dependencies:
+ "@types/ms" "*"
+
+-"@types/dom-screen-wake-lock@^1.0.0":
+- version "1.0.3"
+- resolved "https://registry.yarnpkg.com/@types/dom-screen-wake-lock/-/dom-screen-wake-lock-1.0.3.tgz#c3588a5f6f40fae957f9ce5be9bc4927a61bb9a0"
+- integrity sha512-3Iten7X3Zgwvk6kh6/NRdwN7WbZ760YgFCsF5AxDifltUQzW1RaW+WRmcVtgwFzLjaNu64H+0MPJ13yRa8g3Dw==
+-
+ "@types/estree@1.0.5", "@types/estree@^1.0.0":
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz"
+@@ -3309,6 +3451,11 @@
+ resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz"
+ integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
+
++"@types/prettier@^2.1.1":
++ version "2.7.3"
++ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f"
++ integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==
++
+ "@types/prop-types@*":
+ version "15.7.12"
+ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz"
+@@ -3362,13 +3509,6 @@
+ resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz"
+ integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==
+
+-"@types/secp256k1@^4.0.6":
+- version "4.0.6"
+- resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf"
+- integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==
+- dependencies:
+- "@types/node" "*"
+-
+ "@types/semver@^7.5.0":
+ version "7.5.8"
+ resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz"
+@@ -3529,32 +3669,31 @@
+ loupe "^2.3.6"
+ pretty-format "^29.5.0"
+
+-"@wagmi/connectors@5.1.2":
+- version "5.1.2"
+- resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.1.2.tgz#f94a030b277c7c2cf00cf67606c4c907b24fcb58"
+- integrity sha512-UX5LqDdGXrTdHBpL9wrJbcjK7/rtpOjx6YSIkO26TdPp6UyxQvEmY2XY6hdgBwHVx9xPaiVNIrWoexa5pRJUNA==
++"@wagmi/connectors@5.7.0":
++ version "5.7.0"
++ resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.7.0.tgz#a5e6c5403009b37f912210fc5d96727b4caa6a2b"
++ integrity sha512-cPMmHBGw28fll7VQJC9iF6ngdQ17STTzspqRIjlTkz44zhjwMTf7shw+JJUmqw+0uK7DqRbf/xUHlZE2IVd2mg==
+ dependencies:
+- "@coinbase/wallet-sdk" "4.0.4"
+- "@metamask/sdk" "0.27.0"
+- "@safe-global/safe-apps-provider" "0.18.3"
++ "@coinbase/wallet-sdk" "4.2.3"
++ "@metamask/sdk" "0.31.2"
++ "@safe-global/safe-apps-provider" "0.18.5"
+ "@safe-global/safe-apps-sdk" "9.1.0"
+- "@walletconnect/ethereum-provider" "2.14.0"
+- "@walletconnect/modal" "2.6.2"
++ "@walletconnect/ethereum-provider" "2.17.0"
+ cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3"
+
+-"@wagmi/core@2.13.1":
+- version "2.13.1"
+- resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.13.1.tgz#d9cf910775eca0e1aeb6fe9ad787264ee32632f3"
+- integrity sha512-6ZdgI6dYfpa+IZPU0DZ3XQEQVzs003tKCERzSUNkxmt5cwSMg0XB1kvF5vU9MuPP96K6IcGkqSwAtgCmM5uy2w==
++"@wagmi/core@2.16.0":
++ version "2.16.0"
++ resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.16.0.tgz#b997b2544cd80b4aac4df25ccb2436bf77f9fbe1"
++ integrity sha512-sy4n7Jv6YCbT2jp4zQ/9H6l0A8StsN7P8mm2BRuODgW2w6Fj4j6h2xgYJD2tIjJHkLU/nvPJ7audZ55X7XQU/g==
+ dependencies:
+ eventemitter3 "5.0.1"
+ mipd "0.0.7"
+- zustand "4.4.1"
++ zustand "5.0.0"
+
+-"@walletconnect/core@2.14.0":
+- version "2.14.0"
+- resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.14.0.tgz#e8afb01455968b02aaf26c74f3bfcc9b82678a39"
+- integrity sha512-E/dgBM9q3judXnTfZQ5ILvDpeSdDpabBLsXtYXa3Nyc26cfNplfLJ2nXm9FgtTdhM1nZ7yx4+zDPiXawBRZl2g==
++"@walletconnect/core@2.17.0":
++ version "2.17.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.17.0.tgz#bf490e85a4702eff0f7cf81ba0d3c1016dffff33"
++ integrity sha512-On+uSaCfWdsMIQsECwWHZBmUXfrnqmv6B8SXRRuTJgd8tUpEvBkLQH4X7XkSm3zW6ozEkQTCagZ2ox2YPn3kbw==
+ dependencies:
+ "@walletconnect/heartbeat" "1.2.2"
+ "@walletconnect/jsonrpc-provider" "1.0.14"
+@@ -3563,14 +3702,13 @@
+ "@walletconnect/jsonrpc-ws-connection" "1.0.14"
+ "@walletconnect/keyvaluestorage" "1.1.1"
+ "@walletconnect/logger" "2.1.2"
+- "@walletconnect/relay-api" "1.0.10"
++ "@walletconnect/relay-api" "1.0.11"
+ "@walletconnect/relay-auth" "1.0.4"
+ "@walletconnect/safe-json" "1.0.2"
+ "@walletconnect/time" "1.0.2"
+- "@walletconnect/types" "2.14.0"
+- "@walletconnect/utils" "2.14.0"
++ "@walletconnect/types" "2.17.0"
++ "@walletconnect/utils" "2.17.0"
+ events "3.3.0"
+- isomorphic-unfetch "3.1.0"
+ lodash.isequal "4.5.0"
+ uint8arrays "3.1.0"
+
+@@ -3581,20 +3719,20 @@
+ dependencies:
+ tslib "1.14.1"
+
+-"@walletconnect/ethereum-provider@2.14.0":
+- version "2.14.0"
+- resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.14.0.tgz#0ed4ba9b383c889b56e0af87181756d900fc504a"
+- integrity sha512-Cc2/DCn85VciA10BrsNWFM//3VC1D8yjwrjfUKjGndLPDz0YIdAxTgYZViIlMjE0lzQC/DMvPYEAnGfW0O1Bwg==
++"@walletconnect/ethereum-provider@2.17.0":
++ version "2.17.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.17.0.tgz#d74feaaed6180a6799e96760d7ee867ff3a083d2"
++ integrity sha512-b+KTAXOb6JjoxkwpgYQQKPUcTwENGmdEdZoIDLeRicUmZTn/IQKfkMoC2frClB4YxkyoVMtj1oMV2JAax+yu9A==
+ dependencies:
+ "@walletconnect/jsonrpc-http-connection" "1.0.8"
+ "@walletconnect/jsonrpc-provider" "1.0.14"
+ "@walletconnect/jsonrpc-types" "1.0.4"
+ "@walletconnect/jsonrpc-utils" "1.0.8"
+- "@walletconnect/modal" "2.6.2"
+- "@walletconnect/sign-client" "2.14.0"
+- "@walletconnect/types" "2.14.0"
+- "@walletconnect/universal-provider" "2.14.0"
+- "@walletconnect/utils" "2.14.0"
++ "@walletconnect/modal" "2.7.0"
++ "@walletconnect/sign-client" "2.17.0"
++ "@walletconnect/types" "2.17.0"
++ "@walletconnect/universal-provider" "2.17.0"
++ "@walletconnect/utils" "2.17.0"
+ events "3.3.0"
+
+ "@walletconnect/events@1.0.1", "@walletconnect/events@^1.0.1":
+@@ -3677,35 +3815,35 @@
+ "@walletconnect/safe-json" "^1.0.2"
+ pino "7.11.0"
+
+-"@walletconnect/modal-core@2.6.2":
+- version "2.6.2"
+- resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9"
+- integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==
++"@walletconnect/modal-core@2.7.0":
++ version "2.7.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.7.0.tgz#73c13c3b7b0abf9ccdbac9b242254a86327ce0a4"
++ integrity sha512-oyMIfdlNdpyKF2kTJowTixZSo0PGlCJRdssUN/EZdA6H6v03hZnf09JnwpljZNfir2M65Dvjm/15nGrDQnlxSA==
+ dependencies:
+ valtio "1.11.2"
+
+-"@walletconnect/modal-ui@2.6.2":
+- version "2.6.2"
+- resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9"
+- integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==
++"@walletconnect/modal-ui@2.7.0":
++ version "2.7.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.7.0.tgz#dbbb7ee46a5a25f7d39db622706f2d197b268cbb"
++ integrity sha512-gERYvU7D7K1ANCN/8vUgsE0d2hnRemfAFZ2novm9aZBg7TEd/4EgB+AqbJ+1dc7GhOL6dazckVq78TgccHb7mQ==
+ dependencies:
+- "@walletconnect/modal-core" "2.6.2"
++ "@walletconnect/modal-core" "2.7.0"
+ lit "2.8.0"
+ motion "10.16.2"
+ qrcode "1.5.3"
+
+-"@walletconnect/modal@2.6.2":
+- version "2.6.2"
+- resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651"
+- integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==
++"@walletconnect/modal@2.7.0":
++ version "2.7.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.7.0.tgz#55f969796d104cce1205f5f844d8f8438b79723a"
++ integrity sha512-RQVt58oJ+rwqnPcIvRFeMGKuXb9qkgSmwz4noF8JZGUym3gUAzVs+uW2NQ1Owm9XOJAV+sANrtJ+VoVq1ftElw==
+ dependencies:
+- "@walletconnect/modal-core" "2.6.2"
+- "@walletconnect/modal-ui" "2.6.2"
++ "@walletconnect/modal-core" "2.7.0"
++ "@walletconnect/modal-ui" "2.7.0"
+
+-"@walletconnect/relay-api@1.0.10":
+- version "1.0.10"
+- resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.10.tgz#5aef3cd07c21582b968136179aa75849dcc65499"
+- integrity sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw==
++"@walletconnect/relay-api@1.0.11":
++ version "1.0.11"
++ resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.11.tgz#80ab7ef2e83c6c173be1a59756f95e515fb63224"
++ integrity sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==
+ dependencies:
+ "@walletconnect/jsonrpc-types" "^1.0.2"
+
+@@ -3728,19 +3866,19 @@
+ dependencies:
+ tslib "1.14.1"
+
+-"@walletconnect/sign-client@2.14.0":
+- version "2.14.0"
+- resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.14.0.tgz#36533ef0976a869d815624217527482c90937fc8"
+- integrity sha512-UrB3S3eLjPYfBLCN3WJ5u7+WcZ8kFMe/QIDqLf76Jk6TaLwkSUy563LvnSw4KW/kA+/cY1KBSdUDfX1tzYJJXg==
++"@walletconnect/sign-client@2.17.0":
++ version "2.17.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.17.0.tgz#efe811b1bb10082d964e2f0378aaa1b40f424503"
++ integrity sha512-sErYwvSSHQolNXni47L3Bm10ptJc1s1YoJvJd34s5E9h9+d3rj7PrhbiW9X82deN+Dm5oA8X9tC4xty1yIBrVg==
+ dependencies:
+- "@walletconnect/core" "2.14.0"
++ "@walletconnect/core" "2.17.0"
+ "@walletconnect/events" "1.0.1"
+ "@walletconnect/heartbeat" "1.2.2"
+ "@walletconnect/jsonrpc-utils" "1.0.8"
+ "@walletconnect/logger" "2.1.2"
+ "@walletconnect/time" "1.0.2"
+- "@walletconnect/types" "2.14.0"
+- "@walletconnect/utils" "2.14.0"
++ "@walletconnect/types" "2.17.0"
++ "@walletconnect/utils" "2.17.0"
+ events "3.3.0"
+
+ "@walletconnect/time@1.0.2", "@walletconnect/time@^1.0.2":
+@@ -3750,10 +3888,10 @@
+ dependencies:
+ tslib "1.14.1"
+
+-"@walletconnect/types@2.14.0":
+- version "2.14.0"
+- resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.14.0.tgz#af3d4799b8ac5d166251af12bc024276f82f9b91"
+- integrity sha512-vevMi4jZLJ55vLuFOicQFmBBbLyb+S0sZS4IsaBdZkQflfGIq34HkN13c/KPl4Ye0aoR4/cUcUSitmGIzEQM5g==
++"@walletconnect/types@2.17.0":
++ version "2.17.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.17.0.tgz#20eda5791e3172f8ab9146caa3f317701d4b3232"
++ integrity sha512-i1pn9URpvt9bcjRDkabuAmpA9K7mzyKoLJlbsAujRVX7pfaG7wur7u9Jz0bk1HxvuABL5LHNncTnVKSXKQ5jZA==
+ dependencies:
+ "@walletconnect/events" "1.0.1"
+ "@walletconnect/heartbeat" "1.2.2"
+@@ -3762,38 +3900,40 @@
+ "@walletconnect/logger" "2.1.2"
+ events "3.3.0"
+
+-"@walletconnect/universal-provider@2.14.0":
+- version "2.14.0"
+- resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.14.0.tgz#39d029be80374894b5f4249b76282dd9211d8b9f"
+- integrity sha512-Mr8uoTmD6H0+Hh+3gxBu4l3T2uP/nNPR02sVtwEujNum++F727mMk+ifPRIpkVo21V/bvXFEy8sHTs5hqyq5iA==
++"@walletconnect/universal-provider@2.17.0":
++ version "2.17.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.17.0.tgz#c9d4bbd9b8f0e41b500b2488ccbc207dc5f7a170"
++ integrity sha512-d3V5Be7AqLrvzcdMZSBS8DmGDRdqnyLk1DWmRKAGgR6ieUWykhhUKlvfeoZtvJrIXrY7rUGYpH1X41UtFkW5Pw==
+ dependencies:
+ "@walletconnect/jsonrpc-http-connection" "1.0.8"
+ "@walletconnect/jsonrpc-provider" "1.0.14"
+ "@walletconnect/jsonrpc-types" "1.0.4"
+ "@walletconnect/jsonrpc-utils" "1.0.8"
+ "@walletconnect/logger" "2.1.2"
+- "@walletconnect/sign-client" "2.14.0"
+- "@walletconnect/types" "2.14.0"
+- "@walletconnect/utils" "2.14.0"
++ "@walletconnect/sign-client" "2.17.0"
++ "@walletconnect/types" "2.17.0"
++ "@walletconnect/utils" "2.17.0"
+ events "3.3.0"
+
+-"@walletconnect/utils@2.14.0":
+- version "2.14.0"
+- resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.14.0.tgz#48493ffe1e902815fda3cbd5cc5409288a066d35"
+- integrity sha512-vRVomYQEtEAyCK2c5bzzEvtgxaGGITF8mWuIL+WYSAMyEJLY97mirP2urDucNwcUczwxUgI+no9RiNFbUHreQQ==
++"@walletconnect/utils@2.17.0":
++ version "2.17.0"
++ resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.17.0.tgz#02b3af0b80d0c1a994d692d829d066271b04d071"
++ integrity sha512-1aeQvjwsXy4Yh9G6g2eGmXrEl+BzkNjHRdCrGdMYqFTFa8ROEJfTGsSH3pLsNDlOY94CoBUvJvM55q/PMoN/FQ==
+ dependencies:
+ "@stablelib/chacha20poly1305" "1.0.1"
+ "@stablelib/hkdf" "1.0.1"
+ "@stablelib/random" "1.0.2"
+ "@stablelib/sha256" "1.0.1"
+ "@stablelib/x25519" "1.0.3"
+- "@walletconnect/relay-api" "1.0.10"
++ "@walletconnect/relay-api" "1.0.11"
++ "@walletconnect/relay-auth" "1.0.4"
+ "@walletconnect/safe-json" "1.0.2"
+ "@walletconnect/time" "1.0.2"
+- "@walletconnect/types" "2.14.0"
++ "@walletconnect/types" "2.17.0"
+ "@walletconnect/window-getters" "1.0.1"
+ "@walletconnect/window-metadata" "1.0.1"
+ detect-browser "5.3.0"
++ elliptic "^6.5.7"
+ query-string "7.1.3"
+ uint8arrays "3.1.0"
+
+@@ -3866,6 +4006,16 @@ abitype@1.0.5:
+ resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.5.tgz#29d0daa3eea867ca90f7e4123144c1d1270774b6"
+ integrity sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==
+
++abitype@1.0.6, abitype@^1.0.6:
++ version "1.0.6"
++ resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.6.tgz#76410903e1d88e34f1362746e2d407513c38565b"
++ integrity sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==
++
++abitype@1.0.7:
++ version "1.0.7"
++ resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.7.tgz#876a0005d211e1c9132825d45bcee7b46416b284"
++ integrity sha512-ZfYYSktDQUwc2eduYu8C4wOs+RDPmnRYMh7zNfzeMtGGgb0U+6tLGjixUic6mXf5xKKCcgT5Qp6cv39tOARVFw==
++
+ abort-controller@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+@@ -3948,6 +4098,11 @@ apexcharts@^3.49.1:
+ svg.resize.js "^1.4.3"
+ svg.select.js "^3.0.1"
+
++apg-js@^4.3.0:
++ version "4.4.0"
++ resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.4.0.tgz#09dcecab0731fbde233b9f2352fdd2d07e56b2cf"
++ integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==
++
+ argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
+@@ -3967,6 +4122,16 @@ aria-query@^5.3.0:
+ dependencies:
+ dequal "^2.0.3"
+
++array-back@^3.0.1, array-back@^3.1.0:
++ version "3.1.0"
++ resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"
++ integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==
++
++array-back@^4.0.1, array-back@^4.0.2:
++ version "4.0.2"
++ resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e"
++ integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==
++
+ array-buffer-byte-length@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz"
+@@ -4088,6 +4253,11 @@ async-mutex@^0.2.6:
+ dependencies:
+ tslib "^2.0.0"
+
++asynckit@^0.4.0:
++ version "0.4.0"
++ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
++ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
++
+ atomic-sleep@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
+@@ -4105,6 +4275,15 @@ axe-core@=4.7.0:
+ resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz"
+ integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==
+
++axios@^1.7.2:
++ version "1.7.9"
++ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a"
++ integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==
++ dependencies:
++ follow-redirects "^1.15.6"
++ form-data "^4.0.0"
++ proxy-from-env "^1.1.0"
++
+ axobject-query@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz"
+@@ -4153,7 +4332,7 @@ bech32@^2.0.0:
+ resolved "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz"
+ integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
+
+-bignumber.js@^9.0.0:
++bignumber.js@^9.0.0, bignumber.js@^9.1.2:
+ version "9.1.2"
+ resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c"
+ integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
+@@ -4203,6 +4382,13 @@ bip32@^2.0.4:
+ typeforce "^1.11.5"
+ wif "^2.0.6"
+
++bip39@^3.1.0:
++ version "3.1.0"
++ resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3"
++ integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==
++ dependencies:
++ "@noble/hashes" "^1.2.0"
++
+ bip66@^1.1.0:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22"
+@@ -4265,6 +4451,18 @@ bitcoinjs-lib@^6.1.3:
+ typeforce "^1.11.3"
+ varuint-bitcoin "^1.1.2"
+
++bitcoinjs-lib@^6.1.5, bitcoinjs-lib@^6.1.6:
++ version "6.1.7"
++ resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.7.tgz#0f98dec1333d658574eefa455295668cfae38bb0"
++ integrity sha512-tlf/r2DGMbF7ky1MgUqXHzypYHakkEnm0SZP23CJKIqNY/5uNAnMbFhMJdhjrL/7anfb/U8+AlpdjPWjPnAalg==
++ dependencies:
++ "@noble/hashes" "^1.2.0"
++ bech32 "^2.0.0"
++ bip174 "^2.1.1"
++ bs58check "^3.0.1"
++ typeforce "^1.11.3"
++ varuint-bitcoin "^1.1.2"
++
+ bn.js@^4.11.8, bn.js@^4.11.9:
+ version "4.12.0"
+ resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz"
+@@ -4448,9 +4646,9 @@ chalk@^2.4.2:
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+-chalk@^4.0.0, chalk@^4.1.2:
++chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+ version "4.1.2"
+- resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
++ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+@@ -4554,6 +4752,33 @@ color2k@^2.0.2:
+ resolved "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz"
+ integrity sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==
+
++combined-stream@^1.0.8:
++ version "1.0.8"
++ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
++ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
++ dependencies:
++ delayed-stream "~1.0.0"
++
++command-line-args@^5.1.1:
++ version "5.2.1"
++ resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e"
++ integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==
++ dependencies:
++ array-back "^3.1.0"
++ find-replace "^3.0.0"
++ lodash.camelcase "^4.3.0"
++ typical "^4.0.0"
++
++command-line-usage@^6.1.0:
++ version "6.1.3"
++ resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957"
++ integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==
++ dependencies:
++ array-back "^4.0.2"
++ chalk "^2.4.2"
++ table-layout "^1.0.2"
++ typical "^5.2.0"
++
+ commander@7:
+ version "7.2.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
+@@ -5128,6 +5353,11 @@ deep-eql@^4.1.3:
+ dependencies:
+ type-detect "^4.0.0"
+
++deep-extend@~0.6.0:
++ version "0.6.0"
++ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
++ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
++
+ deep-is@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
+@@ -5147,11 +5377,6 @@ define-data-property@^1.0.1, define-data-property@^1.1.4:
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
+
+-define-lazy-prop@^2.0.0:
+- version "2.0.0"
+- resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
+- integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+-
+ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz"
+@@ -5178,6 +5403,11 @@ delaunator@5:
+ dependencies:
+ robust-predicates "^3.0.2"
+
++delayed-stream@~1.0.0:
++ version "1.0.0"
++ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
++ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
++
+ dequal@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
+@@ -5220,10 +5450,10 @@ dir-glob@^3.0.1:
+ dependencies:
+ path-type "^4.0.0"
+
+-dlc-btc-lib@2.5.1:
+- version "2.5.1"
+- resolved "https://registry.yarnpkg.com/dlc-btc-lib/-/dlc-btc-lib-2.5.1.tgz#b1eb33c0a56a244fcb109da4704854cf8a585c15"
+- integrity sha512-YRfIsfsgzmUcepowZYaLjY/1E2MJbN5zIhEhS1NgiJsDBjNVAiZTHLY7RiX3eNValgFSnsY3IpUyF6piPap72A==
++dlc-btc-lib@2.5.3:
++ version "2.5.3"
++ resolved "https://registry.yarnpkg.com/dlc-btc-lib/-/dlc-btc-lib-2.5.3.tgz#a7a7df7236ad14877c77d2df172e29627ebb4816"
++ integrity sha512-QFN0nGO9P3zhfydI9j07iUxhxyRrxVRD941WhIXblw/YZDVXT8+PYW4GciSlU8KiydtHtYD+fWkUkSgUeC5kaQ==
+ dependencies:
+ "@dfns/sdk" "^0.5.9"
+ "@dfns/sdk-browser" "^0.5.9"
+@@ -5276,14 +5506,15 @@ duplexify@^4.1.2:
+ readable-stream "^3.1.1"
+ stream-shift "^1.0.2"
+
+-eciesjs@^0.3.15:
+- version "0.3.19"
+- resolved "https://registry.yarnpkg.com/eciesjs/-/eciesjs-0.3.19.tgz#a22e9e1efe3fdedec02c828e2632ae0d4a073676"
+- integrity sha512-b+PkRDZ3ym7HEcnbxc22CMVCpgsnr8+gGgST3U5PtgeX1luvINgfXW7efOyUtmn/jFtA/lg5ywBi/Uazf4oeaA==
++eciesjs@^0.4.11:
++ version "0.4.12"
++ resolved "https://registry.yarnpkg.com/eciesjs/-/eciesjs-0.4.12.tgz#0ce482454953592e07b79b4824751f3b5c508b56"
++ integrity sha512-DGejvMCihsRAmKRFQiL6KZDE34vWVd0gvXlykFq1aEzJy/rD65AVyAIUZKZOvgvaP9ATQRcHGEZV5DfgrgjA4w==
+ dependencies:
+- "@types/secp256k1" "^4.0.6"
+- futoin-hkdf "^1.5.3"
+- secp256k1 "^5.0.0"
++ "@ecies/ciphers" "^0.2.1"
++ "@noble/ciphers" "^1.0.0"
++ "@noble/curves" "^1.6.0"
++ "@noble/hashes" "^1.5.0"
+
+ ecpair@^2.1.0:
+ version "2.1.0"
+@@ -5325,10 +5556,10 @@ elliptic@^6.4.0:
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
+-elliptic@^6.5.4:
+- version "6.5.6"
+- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.6.tgz#ee5f7c3a00b98a2144ac84d67d01f04d438fa53e"
+- integrity sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==
++elliptic@^6.5.7:
++ version "6.6.1"
++ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06"
++ integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+@@ -5561,11 +5792,6 @@ escalade@^3.1.1:
+ resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz"
+ integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
+
+-escape-string-regexp@2.0.0:
+- version "2.0.0"
+- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
+- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
+-
+ escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+@@ -5829,7 +6055,7 @@ ethereum-cryptography@^2.0.0:
+
+ ethers@5.7.2:
+ version "5.7.2"
+- resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz"
++ resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
+ integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
+ dependencies:
+ "@ethersproject/abi" "5.7.0"
+@@ -5868,7 +6094,7 @@ event-target-shim@^5.0.0:
+ 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==
+
+-eventemitter2@^6.4.7:
++eventemitter2@^6.4.9:
+ version "6.4.9"
+ resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125"
+ integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==
+@@ -5980,6 +6206,13 @@ filter-obj@^1.1.0:
+ resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
+ integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
+
++find-replace@^3.0.0:
++ version "3.0.0"
++ resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"
++ integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==
++ dependencies:
++ array-back "^3.0.1"
++
+ find-root@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz"
+@@ -6022,6 +6255,11 @@ focus-lock@^1.3.2:
+ dependencies:
+ tslib "^2.0.3"
+
++follow-redirects@^1.15.6:
++ version "1.15.9"
++ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
++ integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
++
+ for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"
+@@ -6029,6 +6267,15 @@ for-each@^0.3.3:
+ dependencies:
+ is-callable "^1.1.3"
+
++form-data@^4.0.0:
++ version "4.0.1"
++ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
++ integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
++ dependencies:
++ asynckit "^0.4.0"
++ combined-stream "^1.0.8"
++ mime-types "^2.1.12"
++
+ formik@^2.4.5:
+ version "2.4.5"
+ resolved "https://registry.npmjs.org/formik/-/formik-2.4.5.tgz"
+@@ -6057,6 +6304,15 @@ framesync@6.1.2:
+ dependencies:
+ tslib "2.4.0"
+
++fs-extra@^7.0.0:
++ version "7.0.1"
++ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
++ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
++ dependencies:
++ graceful-fs "^4.1.2"
++ jsonfile "^4.0.0"
++ universalify "^0.1.0"
++
+ fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+@@ -6092,11 +6348,6 @@ functions-have-names@^1.2.3:
+ resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
+ integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
+
+-futoin-hkdf@^1.5.3:
+- version "1.5.3"
+- resolved "https://registry.yarnpkg.com/futoin-hkdf/-/futoin-hkdf-1.5.3.tgz#6c8024f2e1429da086d4e18289ef2239ad33ee35"
+- integrity sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==
+-
+ gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
+@@ -6161,6 +6412,18 @@ glob-parent@^6.0.2:
+ dependencies:
+ is-glob "^4.0.3"
+
++glob@7.1.7:
++ version "7.1.7"
++ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
++ integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
++ dependencies:
++ fs.realpath "^1.0.0"
++ inflight "^1.0.4"
++ inherits "2"
++ minimatch "^3.0.4"
++ once "^1.3.0"
++ path-is-absolute "^1.0.0"
++
+ glob@^7.1.3:
+ version "7.2.3"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
+@@ -6211,6 +6474,11 @@ gopd@^1.0.1:
+ dependencies:
+ get-intrinsic "^1.1.3"
+
++graceful-fs@^4.1.2, graceful-fs@^4.1.6:
++ version "4.2.11"
++ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
++ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
++
+ graphemer@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
+@@ -6326,20 +6594,6 @@ human-signals@^5.0.0:
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
+ integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
+
+-i18next-browser-languagedetector@7.1.0:
+- version "7.1.0"
+- resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz#01876fac51f86b78975e79b48ccb62e2313a2d7d"
+- integrity sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA==
+- dependencies:
+- "@babel/runtime" "^7.19.4"
+-
+-i18next@23.11.5:
+- version "23.11.5"
+- resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.11.5.tgz#d71eb717a7e65498d87d0594f2664237f9e361ef"
+- integrity sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==
+- dependencies:
+- "@babel/runtime" "^7.23.2"
+-
+ iconv-lite@0.6:
+ version "0.6.3"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
+@@ -6407,7 +6661,7 @@ internal-slot@^1.0.7:
+ resolved "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz"
+ integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
+
+-invariant@2.2.4, invariant@^2.2.4:
++invariant@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
+@@ -6495,11 +6749,6 @@ is-date-object@^1.0.1, is-date-object@^1.0.5:
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+-is-docker@^2.0.0, is-docker@^2.1.1:
+- version "2.2.1"
+- resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+- integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+-
+ is-docker@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200"
+@@ -6641,13 +6890,6 @@ is-weakset@^2.0.3:
+ call-bind "^1.0.7"
+ get-intrinsic "^1.2.4"
+
+-is-wsl@^2.2.0:
+- version "2.2.0"
+- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+- integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+- dependencies:
+- is-docker "^2.0.0"
+-
+ is-wsl@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2"
+@@ -6677,19 +6919,16 @@ isexe@^2.0.0:
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+-isomorphic-unfetch@3.1.0:
+- version "3.1.0"
+- resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f"
+- integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==
+- dependencies:
+- node-fetch "^2.6.1"
+- unfetch "^4.2.0"
+-
+ isows@1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.4.tgz#810cd0d90cc4995c26395d2aa4cfa4037ebdf061"
+ integrity sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ==
+
++isows@1.0.6:
++ version "1.0.6"
++ resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7"
++ integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==
++
+ iterator.prototype@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz"
+@@ -6711,9 +6950,9 @@ jiti@^1.21.0:
+ resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268"
+ integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
+
+-js-sha3@0.8.0:
++js-sha3@0.8.0, js-sha3@^0.8.0:
+ version "0.8.0"
+- resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz"
++ resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
+ integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
+
+ "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+@@ -6783,6 +7022,13 @@ jsonc-parser@^3.2.0:
+ resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz"
+ integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
+
++jsonfile@^4.0.0:
++ version "4.0.0"
++ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
++ integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
++ optionalDependencies:
++ graceful-fs "^4.1.6"
++
+ "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5:
+ version "3.3.5"
+ resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz"
+@@ -6793,6 +7039,11 @@ jsonc-parser@^3.2.0:
+ object.assign "^4.1.4"
+ object.values "^1.1.6"
+
++jwt-decode@^4.0.0:
++ version "4.0.0"
++ resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-4.0.0.tgz#2270352425fd413785b2faf11f6e755c5151bd4b"
++ integrity sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==
++
+ keccak@^3.0.3:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d"
+@@ -6933,6 +7184,11 @@ lodash-es@^4.17.21:
+ resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
++lodash.camelcase@^4.3.0:
++ version "4.3.0"
++ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
++ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
++
+ lodash.isequal@4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
+@@ -6948,9 +7204,9 @@ lodash.mergewith@4.6.2:
+ resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz"
+ integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==
+
+-lodash@^4.17.21:
++lodash@^4.17.15, lodash@^4.17.21:
+ version "4.17.21"
+- resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
++ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
+@@ -7045,6 +7301,18 @@ micromatch@^4.0.5:
+ braces "^3.0.3"
+ picomatch "^2.3.1"
+
++mime-db@1.52.0:
++ version "1.52.0"
++ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
++ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
++
++mime-types@^2.1.12:
++ version "2.1.35"
++ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
++ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
++ dependencies:
++ mime-db "1.52.0"
++
+ mime@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
+@@ -7072,9 +7340,9 @@ minimatch@9.0.3:
+ dependencies:
+ brace-expansion "^2.0.1"
+
+-minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
++minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+ version "3.1.2"
+- resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
++ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+@@ -7089,6 +7357,11 @@ mipd@0.0.7:
+ resolved "https://registry.yarnpkg.com/mipd/-/mipd-0.0.7.tgz#bb5559e21fa18dc3d9fe1c08902ef14b7ce32fd9"
+ integrity sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==
+
++mkdirp@^1.0.4:
++ version "1.0.4"
++ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
++ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
++
+ mlly@^1.2.0, mlly@^1.4.0:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz"
+@@ -7143,7 +7416,7 @@ ms@2.1.2:
+
+ ms@^2.1.1:
+ version "2.1.3"
+- resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
++ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+ multiformats@^9.4.2:
+@@ -7176,11 +7449,6 @@ node-addon-api@^2.0.0:
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
+ integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
+
+-node-addon-api@^5.0.0:
+- version "5.1.0"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762"
+- integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==
+-
+ node-addon-api@^7.0.0:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
+@@ -7191,7 +7459,7 @@ node-fetch-native@^1.6.2, node-fetch-native@^1.6.3, node-fetch-native@^1.6.4:
+ resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz#679fc8fd8111266d47d7e72c379f1bed9acff06e"
+ integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==
+
+-node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.12:
++node-fetch@^2.6.11, node-fetch@^2.6.12:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+@@ -7338,15 +7606,6 @@ onetime@^6.0.0:
+ dependencies:
+ mimic-fn "^4.0.0"
+
+-open@^8.4.0:
+- version "8.4.2"
+- resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
+- integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
+- dependencies:
+- define-lazy-prop "^2.0.0"
+- is-docker "^2.1.1"
+- is-wsl "^2.2.0"
+-
+ optionator@^0.9.3:
+ version "0.9.3"
+ resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz"
+@@ -7359,6 +7618,19 @@ optionator@^0.9.3:
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+
++ox@0.1.2:
++ version "0.1.2"
++ resolved "https://registry.yarnpkg.com/ox/-/ox-0.1.2.tgz#0f791be2ccabeaf4928e6d423498fe1c8094e560"
++ integrity sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==
++ dependencies:
++ "@adraffy/ens-normalize" "^1.10.1"
++ "@noble/curves" "^1.6.0"
++ "@noble/hashes" "^1.5.0"
++ "@scure/bip32" "^1.5.0"
++ "@scure/bip39" "^1.4.0"
++ abitype "^1.0.6"
++ eventemitter3 "5.0.1"
++
+ p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+@@ -7572,11 +7844,21 @@ preact@^10.16.0:
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.1.tgz#d400107289bc979881c5212cb5f5cd22cd1dc38c"
+ integrity sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A==
+
++preact@^10.24.2:
++ version "10.25.2"
++ resolved "https://registry.yarnpkg.com/preact/-/preact-10.25.2.tgz#e141e18a547ae0082dae48d044e0d8267e2547d2"
++ integrity sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==
++
+ prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
++prettier@^2.3.1:
++ version "2.8.8"
++ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
++ integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
++
+ prettier@^3.0.3:
+ version "3.2.5"
+ resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz"
+@@ -7623,11 +7905,21 @@ prop-types@15.8.1, prop-types@^15.6.2, prop-types@^15.8.1:
+ object-assign "^4.1.1"
+ react-is "^16.13.1"
+
++property-expr@^2.0.5:
++ version "2.0.6"
++ resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8"
++ integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==
++
+ proxy-compare@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600"
+ integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==
+
++proxy-from-env@^1.1.0:
++ version "1.1.0"
++ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
++ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
++
+ pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+@@ -7648,23 +7940,6 @@ pushdata-bitcoin@^1.0.1:
+ dependencies:
+ bitcoin-ops "^1.3.0"
+
+-qr-code-styling@^1.6.0-rc.1:
+- version "1.6.0-rc.1"
+- resolved "https://registry.yarnpkg.com/qr-code-styling/-/qr-code-styling-1.6.0-rc.1.tgz#6c89e185fa50cc9135101085c12ae95b06f1b290"
+- integrity sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q==
+- dependencies:
+- qrcode-generator "^1.4.3"
+-
+-qrcode-generator@^1.4.3:
+- version "1.4.4"
+- resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7"
+- integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==
+-
+-qrcode-terminal-nooctal@^0.12.1:
+- version "0.12.1"
+- resolved "https://registry.yarnpkg.com/qrcode-terminal-nooctal/-/qrcode-terminal-nooctal-0.12.1.tgz#45016aca0d82b2818de7af0a06d072ad671fbe2e"
+- integrity sha512-jy/kkD0iIMDjTucB+5T6KBsnirlhegDH47vHgrj5MejchSQmi/EAMM0xMFeePgV9CJkkAapNakpVUWYgHvtdKg==
+-
+ qrcode@1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170"
+@@ -7791,14 +8066,6 @@ react-is@^18.0.0:
+ resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
+ integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+
+-react-native-webview@^11.26.0:
+- version "11.26.1"
+- resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-11.26.1.tgz#658c09ed5162dc170b361e48c2dd26c9712879da"
+- integrity sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw==
+- dependencies:
+- escape-string-regexp "2.0.0"
+- invariant "2.2.4"
+-
+ react-redux@^8.1.3:
+ version "8.1.3"
+ resolved "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz"
+@@ -7875,6 +8142,13 @@ react@^18.2.0:
+ dependencies:
+ loose-envify "^1.1.0"
+
++react@^18.3.1:
++ version "18.3.1"
++ resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
++ integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
++ dependencies:
++ loose-envify "^1.1.0"
++
+ readable-stream@^2.3.3:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
+@@ -7920,6 +8194,11 @@ real-require@^0.1.0:
+ resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381"
+ integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==
+
++reduce-flatten@^2.0.0:
++ version "2.0.0"
++ resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27"
++ integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==
++
+ redux-persist-expire@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/redux-persist-expire/-/redux-persist-expire-1.1.1.tgz"
+@@ -8062,16 +8341,6 @@ robust-predicates@^3.0.2:
+ resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz"
+ integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==
+
+-rollup-plugin-visualizer@^5.9.2:
+- version "5.12.0"
+- resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz#661542191ce78ee4f378995297260d0c1efb1302"
+- integrity sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==
+- dependencies:
+- open "^8.4.0"
+- picomatch "^2.3.1"
+- source-map "^0.7.4"
+- yargs "^17.5.1"
+-
+ rollup@^3.27.1:
+ version "3.29.4"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz"
+@@ -8180,15 +8449,6 @@ scure@1.6.0:
+ dependencies:
+ pluralize "^7.0.0"
+
+-secp256k1@^5.0.0:
+- version "5.0.0"
+- resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7"
+- integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==
+- dependencies:
+- elliptic "^6.5.4"
+- node-addon-api "^5.0.0"
+- node-gyp-build "^4.2.0"
+-
+ semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
+@@ -8298,6 +8558,16 @@ sisteransi@^1.0.5:
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
++siwe@^2.1.4:
++ version "2.3.2"
++ resolved "https://registry.yarnpkg.com/siwe/-/siwe-2.3.2.tgz#0794ae25f734f3068de0ab093ddd2f7867bc2d67"
++ integrity sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==
++ dependencies:
++ "@spruceid/siwe-parser" "^2.1.2"
++ "@stablelib/random" "^1.0.1"
++ uri-js "^4.4.1"
++ valid-url "^1.0.9"
++
+ slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
+@@ -8351,7 +8621,7 @@ source-map@^0.6.0:
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+-source-map@^0.7.3, source-map@^0.7.4:
++source-map@^0.7.3:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
+ integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
+@@ -8396,6 +8666,11 @@ strict-uri-encode@^2.0.0:
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
+ integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
+
++string-format@^2.0.0:
++ version "2.0.0"
++ resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b"
++ integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==
++
+ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
+@@ -8590,6 +8865,16 @@ system-architecture@^0.1.0:
+ resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d"
+ integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==
+
++table-layout@^1.0.2:
++ version "1.0.2"
++ resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04"
++ integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==
++ dependencies:
++ array-back "^4.0.1"
++ deep-extend "~0.6.0"
++ typical "^5.2.0"
++ wordwrapjs "^4.0.0"
++
+ text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
+@@ -8602,6 +8887,11 @@ thread-stream@^0.15.1:
+ dependencies:
+ real-require "^0.1.0"
+
++tiny-case@^1.0.3:
++ version "1.0.3"
++ resolved "https://registry.yarnpkg.com/tiny-case/-/tiny-case-1.0.3.tgz#d980d66bc72b5d5a9ca86fb7c9ffdb9c898ddd03"
++ integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==
++
+ tiny-invariant@^1.0.6:
+ version "1.3.3"
+ resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz"
+@@ -8618,7 +8908,7 @@ tiny-secp256k1@1.1.6:
+ elliptic "^6.4.0"
+ nan "^2.13.2"
+
+-tiny-secp256k1@2.2.3:
++tiny-secp256k1@2.2.3, tiny-secp256k1@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-2.2.3.tgz#fe1dde11a64fcee2091157d4b78bcb300feb9b65"
+ integrity sha512-SGcL07SxcPN2nGKHTCvRMkQLYPSoeFcvArUSCYtjVARiFAWU44cCIqYS0mYAU6nY7XfvwURuTIGo2Omt3ZQr0Q==
+@@ -8680,6 +8970,11 @@ toml-eslint-parser@^0.9.3:
+ dependencies:
+ eslint-visitor-keys "^3.0.0"
+
++toposort@^2.0.2:
++ version "2.0.2"
++ resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
++ integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==
++
+ tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+@@ -8695,6 +8990,21 @@ ts-api-utils@^1.0.1:
+ resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz"
+ integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
+
++ts-command-line-args@^2.2.0:
++ version "2.5.1"
++ resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0"
++ integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==
++ dependencies:
++ chalk "^4.1.0"
++ command-line-args "^5.1.1"
++ command-line-usage "^6.1.0"
++ string-format "^2.0.0"
++
++ts-essentials@^7.0.1:
++ version "7.0.3"
++ resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38"
++ integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==
++
+ ts-toolbelt@^9.6.0:
+ version "9.6.0"
+ resolved "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz"
+@@ -8733,6 +9043,11 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0:
+ resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+
++tslib@^2.6.0:
++ version "2.8.1"
++ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
++ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
++
+ tsutils@^3.21.0:
+ version "3.21.0"
+ resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
+@@ -8762,6 +9077,27 @@ type-fest@^0.20.2:
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
+ integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
++type-fest@^2.19.0:
++ version "2.19.0"
++ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
++ integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
++
++typechain@^8.3.2:
++ version "8.3.2"
++ resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73"
++ integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==
++ dependencies:
++ "@types/prettier" "^2.1.1"
++ debug "^4.3.1"
++ fs-extra "^7.0.0"
++ glob "7.1.7"
++ js-sha3 "^0.8.0"
++ lodash "^4.17.15"
++ mkdirp "^1.0.4"
++ prettier "^2.3.1"
++ ts-command-line-args "^2.2.0"
++ ts-essentials "^7.0.1"
++
+ typed-array-buffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz"
+@@ -8823,6 +9159,16 @@ typescript@^5.2.2:
+ resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz"
+ integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==
+
++typical@^4.0.0:
++ version "4.0.0"
++ resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"
++ integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==
++
++typical@^5.2.0:
++ version "5.2.0"
++ resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066"
++ integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==
++
+ ufo@^1.3.2:
+ version "1.5.3"
+ resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz"
+@@ -8888,10 +9234,10 @@ unenv@^1.9.0:
+ node-fetch-native "^1.6.4"
+ pathe "^1.1.2"
+
+-unfetch@^4.2.0:
+- version "4.2.0"
+- resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be"
+- integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==
++universalify@^0.1.0:
++ version "0.1.2"
++ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
++ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+ unstorage@^1.9.0:
+ version "1.10.2"
+@@ -8931,9 +9277,9 @@ uqr@^0.1.2:
+ resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d"
+ integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==
+
+-uri-js@^4.2.2:
++uri-js@^4.2.2, uri-js@^4.4.1:
+ version "4.4.1"
+- resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
++ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+@@ -8975,6 +9321,13 @@ utf-8-validate@^5.0.2:
+ dependencies:
+ node-gyp-build "^4.3.0"
+
++utf-8-validate@^6.0.3:
++ version "6.0.5"
++ resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.5.tgz#8087d39902be2cc15bdb21a426697ff256d65aab"
++ integrity sha512-EYZR+OpIXp9Y1eG1iueg8KRsY8TuT8VNgnanZ0uA3STqhHQTLwbl+WX76/9X5OY12yQubymBpaBSmMPkSTQcKA==
++ dependencies:
++ node-gyp-build "^4.3.0"
++
+ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+@@ -9006,6 +9359,11 @@ uuid@^9.0.1:
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
+ integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
+
++valid-url@^1.0.9:
++ version "1.0.9"
++ resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200"
++ integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==
++
+ valtio@1.11.2:
+ version "1.11.2"
+ resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530"
+@@ -9021,7 +9379,7 @@ varuint-bitcoin@1.1.2, varuint-bitcoin@^1.0.4, varuint-bitcoin@^1.1.2:
+ dependencies:
+ safe-buffer "^5.1.1"
+
+-viem@2.x, viem@^2.1.1:
++viem@^2.1.1:
+ version "2.18.6"
+ resolved "https://registry.yarnpkg.com/viem/-/viem-2.18.6.tgz#527c54a032cdd4c1f1795fcb44072e8c3efd16c6"
+ integrity sha512-KughUodIEjzkC+KfQ4+259yRXYfo0VLkZQ7NVC3RGfCMMOiVWaOxHjmcaY0FnZzKX3pwrlMyTAZbwH9tVAN/Yw==
+@@ -9036,6 +9394,36 @@ viem@2.x, viem@^2.1.1:
+ webauthn-p256 "0.0.5"
+ ws "8.17.1"
+
++viem@^2.20.1:
++ version "2.21.49"
++ resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.49.tgz#528d5e54747ba3125041cd753459a4ce673aaaa6"
++ integrity sha512-NNItYfTv4+yGE5DDKc+S/g2S7KeJn047GwgEYG60FAJlK0FzwuP6lQKSeQ8k7Y4VasfuKPqiT+XiilcCtTRiDQ==
++ dependencies:
++ "@noble/curves" "1.6.0"
++ "@noble/hashes" "1.5.0"
++ "@scure/bip32" "1.5.0"
++ "@scure/bip39" "1.4.0"
++ abitype "1.0.6"
++ isows "1.0.6"
++ ox "0.1.2"
++ webauthn-p256 "0.0.10"
++ ws "8.18.0"
++
++viem@^2.21.15:
++ version "2.21.55"
++ resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.55.tgz#a57ad31fcf2a0f6c011b1909f02c94421ec4f781"
++ integrity sha512-PgXew7C11cAuEtOSgRyQx2kJxEOPUwIwZA9dMglRByqJuFVA7wSGZZOOo/93iylAA8E15bEdqy9xulU3oKZ70Q==
++ dependencies:
++ "@noble/curves" "1.7.0"
++ "@noble/hashes" "1.6.1"
++ "@scure/bip32" "1.6.0"
++ "@scure/bip39" "1.5.0"
++ abitype "1.0.7"
++ isows "1.0.6"
++ ox "0.1.2"
++ webauthn-p256 "0.0.10"
++ ws "8.18.0"
++
+ vite-node@0.34.6:
+ version "0.34.6"
+ resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz"
+@@ -9113,13 +9501,13 @@ vitest@^0.34.6:
+ vite-node "0.34.6"
+ why-is-node-running "^2.2.2"
+
+-wagmi@^2.12.2:
+- version "2.12.2"
+- resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.12.2.tgz#1d3b1dea0783c05245aed72a29bce756eb4f0bd8"
+- integrity sha512-gIZdAgmHJjENdOdkD/Zpu85NR16k/uMB3H/yGBz1q9bDAE8oguuBxRUEhuMt6jAC95RB96+7hMVfL9kBtHnu+g==
++wagmi@2.14.3, wagmi@^2.12.16:
++ version "2.14.3"
++ resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.14.3.tgz#3abfe5e9f796890d75d1b7d506e9dccd6b87f254"
++ integrity sha512-sr8o7+EBw22GhieDyXLv8Zr2vgC6xKrYoSuUIpq0xOqEhvMP1q880VtR4lFG1capc2QEWvK72pJ/+jpsEQcMYQ==
+ dependencies:
+- "@wagmi/connectors" "5.1.2"
+- "@wagmi/core" "2.13.1"
++ "@wagmi/connectors" "5.7.0"
++ "@wagmi/core" "2.16.0"
+ use-sync-external-store "1.2.0"
+
+ web-encoding@1.1.5:
+@@ -9136,6 +9524,14 @@ web-streams-polyfill@^3.1.1:
+ resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b"
+ integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==
+
++webauthn-p256@0.0.10:
++ version "0.0.10"
++ resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.10.tgz#877e75abe8348d3e14485932968edf3325fd2fdd"
++ integrity sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==
++ dependencies:
++ "@noble/curves" "^1.4.0"
++ "@noble/hashes" "^1.4.0"
++
+ webauthn-p256@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.5.tgz#0baebd2ba8a414b21cc09c0d40f9dd0be96a06bd"
+@@ -9244,6 +9640,14 @@ wif@^2.0.1, wif@^2.0.6:
+ dependencies:
+ bs58check "<3.0.0"
+
++wordwrapjs@^4.0.0:
++ version "4.0.1"
++ resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f"
++ integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==
++ dependencies:
++ reduce-flatten "^2.0.0"
++ typical "^5.2.0"
++
+ wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+@@ -9277,16 +9681,16 @@ ws@8.17.1, ws@~8.17.1:
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b"
+ integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
+
++ws@8.18.0, ws@^8.13.0, ws@^8.14.2:
++ version "8.18.0"
++ resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
++ integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
++
+ ws@^7.5.1:
+ version "7.5.10"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9"
+ integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
+
+-ws@^8.13.0:
+- version "8.18.0"
+- resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
+- integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
+-
+ xmlhttprequest-ssl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67"
+@@ -9367,7 +9771,7 @@ yargs@^15.3.1:
+ y18n "^4.0.0"
+ yargs-parser "^18.1.2"
+
+-yargs@^17.5.1, yargs@^17.7.2:
++yargs@^17.7.2:
+ version "17.7.2"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+@@ -9399,9 +9803,17 @@ youtube-player@5.5.2:
+ load-script "^1.0.0"
+ sister "^3.0.0"
+
+-zustand@4.4.1:
+- version "4.4.1"
+- resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.1.tgz#0cd3a3e4756f21811bd956418fdc686877e8b3b0"
+- integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==
++yup@^1.4.0:
++ version "1.6.0"
++ resolved "https://registry.yarnpkg.com/yup/-/yup-1.6.0.tgz#70d4e81ed7b73564f86efa25c7c469cadcabf665"
++ integrity sha512-/dny6arMf5CV6ZPAGpXYVw0wR8qcDF15H8zILTQWoRf6jHN1nJNFL1IAlFfUMlO7QGifMVHZle/l8YJdxtWfxg==
+ dependencies:
+- use-sync-external-store "1.2.0"
++ property-expr "^2.0.5"
++ tiny-case "^1.0.3"
++ toposort "^2.0.2"
++ type-fest "^2.19.0"
++
++zustand@5.0.0:
++ version "5.0.0"
++ resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.0.tgz#71f8aaecf185592a3ba2743d7516607361899da9"
++ integrity sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==
diff --git a/vite.config.ts b/vite.config.ts
index 4070689d..972271fb 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -80,6 +80,7 @@ export default defineConfig(async ({ mode }) => {
target: 'esnext',
},
define: {
+ global: 'window',
appConfiguration,
},
resolve: {
diff --git a/yarn.lock b/yarn.lock
index 135c23f8..75703d2a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -12,6 +12,11 @@
resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7"
integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==
+"@adraffy/ens-normalize@^1.10.1":
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz#42cc67c5baa407ac25059fcd7d405cc5ecdb0c33"
+ integrity sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==
+
"@ampproject/remapping@^2.2.0":
version "2.3.0"
resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz"
@@ -201,10 +206,10 @@
dependencies:
regenerator-runtime "^0.14.0"
-"@babel/runtime@^7.19.4":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb"
- integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==
+"@babel/runtime@^7.26.0":
+ version "7.26.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1"
+ integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
dependencies:
regenerator-runtime "^0.14.0"
@@ -292,6 +297,37 @@
"@noble/hashes" "^1.1.5"
"@noble/secp256k1" "^1.7.1"
+"@catalogfi/extension@^0.1.1":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@catalogfi/extension/-/extension-0.1.1.tgz#b07400f2365a32dd13a7cdefe65949e0705a5342"
+ integrity sha512-ny4xiQ95VdjFWDR2T22xLQxUY99yKRD4EOlxZInKCHGB0jnQaUrsj9iKGZ2DRGUGPpH/iDkruoXjibw7s78BIw==
+
+"@catalogfi/utils@^0.1.10", "@catalogfi/utils@^0.1.11", "@catalogfi/utils@^0.1.6":
+ version "0.1.11"
+ resolved "https://registry.yarnpkg.com/@catalogfi/utils/-/utils-0.1.11.tgz#3ccdba102b88cb036ae0b14f7b300e0fc83c93f6"
+ integrity sha512-+rt2I4W5ip6odg8ZSmoTyCY0GllPzSYqWz8xRyvgN58MVJJMAFjsp4XwyWzkIfKCRKOJve/vjYdZQx92CTO2gw==
+
+"@catalogfi/wallets@^0.2.51":
+ version "0.2.54"
+ resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.54.tgz#8d5323b381dd70964e2dac45a2d89015a3e3a743"
+ integrity sha512-ffcvXPx/qklyjR8HLr2ni/hZFA8mL+DgQxMmozTRF2UV0ngLx8aURDHN/FHg2vQ6MU5cYLEl3h+H8frPKRfL4w==
+ dependencies:
+ "@catalogfi/extension" "^0.1.1"
+ "@catalogfi/utils" "^0.1.10"
+ "@noble/hashes" "^1.4.0"
+ bip32 "^4.0.0"
+ bip39 "^3.1.0"
+ bitcoinjs-lib "^6.1.5"
+ bufferutil "^4.0.8"
+ dotenv "^16.3.1"
+ ecpair "^2.1.0"
+ tiny-secp256k1 "^2.2.3"
+ typechain "^8.3.2"
+ utf-8-validate "^6.0.3"
+ uuid "^9.0.1"
+ viem "^2.20.1"
+ yup "^1.4.0"
+
"@chakra-ui/accordion@2.3.1":
version "2.3.1"
resolved "https://registry.npmjs.org/@chakra-ui/accordion/-/accordion-2.3.1.tgz"
@@ -1105,17 +1141,15 @@
resolved "https://registry.npmjs.org/@chakra-ui/visually-hidden/-/visually-hidden-2.2.0.tgz"
integrity sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==
-"@coinbase/wallet-sdk@4.0.4":
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.0.4.tgz#634cd89bac93eeaf381a1f026476794e53431ed6"
- integrity sha512-74c040CRnGhfRjr3ArnkAgud86erIqdkPHNt5HR1k9u97uTIZCJww9eGYT67Qf7gHPpGS/xW8Be1D4dvRm63FA==
+"@coinbase/wallet-sdk@4.2.3":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.2.3.tgz#a30fa0605b24bc42c37f52a62d2442bcbb7734af"
+ integrity sha512-BcyHZ/Ec84z0emORzqdXDv4P0oV+tV3a0OirfA8Ko1JGBIAVvB+hzLvZzCDvnuZx7MTK+Dd8Y9Tjlo446BpCIg==
dependencies:
- buffer "^6.0.3"
+ "@noble/hashes" "^1.4.0"
clsx "^1.2.1"
eventemitter3 "^5.0.1"
- keccak "^3.0.3"
- preact "^10.16.0"
- sha.js "^2.4.11"
+ preact "^10.24.2"
"@dfns/sdk-browser@^0.5.9":
version "0.5.9"
@@ -1135,6 +1169,11 @@
cross-fetch "3.1.6"
uuid "9.0.0"
+"@ecies/ciphers@^0.2.1":
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/@ecies/ciphers/-/ciphers-0.2.2.tgz#82a15b10a6e502b63fb30915d944b2eaf3ff17ff"
+ integrity sha512-ylfGR7PyTd+Rm2PqQowG08BCKA22QuX8NzrL+LxAAvazN10DMwdJ2fWwAzRj05FI/M8vNFGm3cv9Wq/GFWCBLg==
+
"@emotion/babel-plugin@^11.11.0":
version "11.11.0"
resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz"
@@ -1893,6 +1932,58 @@
resolved "https://registry.npmjs.org/@fontsource/poppins/-/poppins-5.0.12.tgz"
integrity sha512-0qzBxtIJLh82iMJ9pCXKYwGs1zyS+jyUmwVJ59+JdYnEaFVkDsxVOk9yDWfVOs14ALUneodU2m5YSGma6dCYCw==
+"@gardenfi/core@0.3.0-beta.14", "@gardenfi/core@^0.3.0-beta.14":
+ version "0.3.0-beta.14"
+ resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.3.0-beta.14.tgz#e66599cff3ddb4584648d628dbae02d4aa3836a6"
+ integrity sha512-V73jDvdchN09UqYdcyOCI4s4ekHY94NLoGnxqp2579y6sSYjqJf+5WXyn89Pb7bjrCOpYOfldivWKXYfwfLkWQ==
+ dependencies:
+ "@catalogfi/utils" "^0.1.6"
+ "@catalogfi/wallets" "^0.2.51"
+ "@gardenfi/orderbook" "^0.2.0-beta.41"
+ "@gardenfi/utils" "^0.0.1-beta.19"
+ bignumber.js "^9.1.2"
+ bitcoinjs-lib "^6.1.6"
+ tiny-secp256k1 "^2.2.3"
+ varuint-bitcoin "^1.1.2"
+ viem "^2.21.15"
+
+"@gardenfi/orderbook@0.2.0-beta.41", "@gardenfi/orderbook@^0.2.0-beta.41":
+ version "0.2.0-beta.41"
+ resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.2.0-beta.41.tgz#a802ddba48023956160fa2d2fda0676c520a5dbb"
+ integrity sha512-I8GisEgUGNX84WKZSKEAqMsSD9wvfY9hzY5iL2V5vc+jqblpc+5Exbk/yVFINI3DoqtuaVb1h/dqTmMFotu0hA==
+ dependencies:
+ "@catalogfi/utils" "^0.1.6"
+ "@gardenfi/utils" "^0.0.1-beta.19"
+ bufferutil "^4.0.8"
+ siwe "^2.1.4"
+ utf-8-validate "^6.0.3"
+ viem "^2.21.15"
+ ws "^8.14.2"
+
+"@gardenfi/react-hooks@0.0.1-beta.135":
+ version "0.0.1-beta.135"
+ resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.135.tgz#a74d538b455b4a2baff1401eb65c4ea42e194c80"
+ integrity sha512-I4R391jusGV30K8s+6cDgc7xwAcwj1rUeg2Uw3a/N96KjO2f0l+cn8NQZsSIcJMzL4GTgICpQv2Ci/JIe0VdbQ==
+ dependencies:
+ "@catalogfi/utils" "^0.1.6"
+ "@catalogfi/wallets" "^0.2.51"
+ "@gardenfi/core" "^0.3.0-beta.14"
+ "@gardenfi/orderbook" "^0.2.0-beta.41"
+ "@gardenfi/utils" "^0.0.1-beta.19"
+ react "^18.3.1"
+ viem "^2.21.15"
+ wagmi "^2.12.16"
+
+"@gardenfi/utils@^0.0.1-beta.19":
+ version "0.0.1-beta.19"
+ resolved "https://registry.yarnpkg.com/@gardenfi/utils/-/utils-0.0.1-beta.19.tgz#e74cdc12ff04bed142ebedc32f063daec145ef06"
+ integrity sha512-hgTc3iy2TM7Rr2J7ApM+yzSOSsisHW3T3+PKMWcBZcc4CIwBAquTCRdQNkMKFbawsvB4LMieIiWYWjm+IQqckQ==
+ dependencies:
+ "@catalogfi/utils" "^0.1.11"
+ axios "^1.7.2"
+ jwt-decode "^4.0.0"
+ viem "^2.21.15"
+
"@gemwallet/api@3.8.0", "@gemwallet/api@^3.8.0":
version "3.8.0"
resolved "https://registry.yarnpkg.com/@gemwallet/api/-/api-3.8.0.tgz#46bc47789848c7ac9cc620613e0a1757dc8668a1"
@@ -2152,10 +2243,10 @@
resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.1.tgz#e89b840a7af8097a8ed4953d8dc8470d1302d3ef"
integrity sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw==
-"@metamask/sdk-communication-layer@0.27.0":
- version "0.27.0"
- resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.27.0.tgz#8d618fadd39f11627d5b3ef1bc72867439e33ff4"
- integrity sha512-G9LCaQzIqp5WmUmvHN6UUdjWrBh67MbRobmbbs5fcc2+9XFhj3vBgtyleUYjun91jSlPHoZeo+f/Pj4/WoPIJg==
+"@metamask/sdk-communication-layer@0.31.0":
+ version "0.31.0"
+ resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.31.0.tgz#0acc063b62aa09d044c7aab65801712d760e53b2"
+ integrity sha512-V9CxdzabDPjQVgmKGHsyU3SYt4Af27g+4DbGCx0fLoHqN/i1RBDZqs/LYbJX3ykJCANzE+llz/MolMCMrzM2RA==
dependencies:
bufferutil "^4.0.8"
date-fns "^2.29.3"
@@ -2163,38 +2254,60 @@
utf-8-validate "^5.0.2"
uuid "^8.3.2"
-"@metamask/sdk-install-modal-web@0.26.5":
- version "0.26.5"
- resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.26.5.tgz#b696c78818adaff85d01a4f41fecc8fd2c80bc59"
- integrity sha512-qVA9Nk+NorGx5hXyODy5wskptE8R7RNYTYt49VbQpJogqbbVe1dnJ98+KaA43PBN4XYMCXmcIhULNiEHGsLynA==
+"@metamask/sdk-install-modal-web@0.31.2":
+ version "0.31.2"
+ resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.31.2.tgz#bb8c92a6844a632be8525e7bb5a35924a926d6cd"
+ integrity sha512-KPv36kQjmTwErU8g2neuHHSgkD5+1hp4D6ERfk5Kc2r73aOYNCdG9wDGRUmFmcY2MKkeK1EuDyZfJ4FPU30fxQ==
+ dependencies:
+ "@paulmillr/qr" "^0.2.1"
+
+"@metamask/sdk@0.31.2":
+ version "0.31.2"
+ resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.31.2.tgz#2ec1c1c7cf6a444e65104862e83814a493047d72"
+ integrity sha512-6MWON2g1j7XwAHWam4trusGxeyhQweNLEHPsfuIxSwcsXoEm08Jj80OglJxQI4KwjcDnjSWBkQGG3mmK6ug/cA==
dependencies:
- qr-code-styling "^1.6.0-rc.1"
+ "@babel/runtime" "^7.26.0"
+ "@metamask/onboarding" "^1.0.1"
+ "@metamask/providers" "16.1.0"
+ "@metamask/sdk-communication-layer" "0.31.0"
+ "@metamask/sdk-install-modal-web" "0.31.2"
+ "@paulmillr/qr" "^0.2.1"
+ bowser "^2.9.0"
+ cross-fetch "^4.0.0"
+ debug "^4.3.4"
+ eciesjs "^0.4.11"
+ eth-rpc-errors "^4.0.3"
+ eventemitter2 "^6.4.9"
+ obj-multiplex "^1.0.0"
+ pump "^3.0.0"
+ readable-stream "^3.6.2"
+ socket.io-client "^4.5.1"
+ tslib "^2.6.0"
+ util "^0.12.4"
+ uuid "^8.3.2"
-"@metamask/sdk@0.27.0":
- version "0.27.0"
- resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.27.0.tgz#38617985b8305a0f5d482cdd7af8ddec87968bb7"
- integrity sha512-6sMjr/0qR700X1svPGEQ4rBdtccidBLeTC27fYQc7r9ROgSixB1DUUAyu/LoySVqt3Hu/Zm7NnAHXuT228ht7A==
+"@metamask/sdk@0.31.4":
+ version "0.31.4"
+ resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.31.4.tgz#2f9266e994ba838652925dc83e3409adfcae75ae"
+ integrity sha512-HLUN4IZGdyiy5YeebXmXi+ndpmrl6zslCQLdR2QHplIy4JmUL/eDyKNFiK7eBLVKXVVIDYFIb6g1iSEb+i8Kew==
dependencies:
+ "@babel/runtime" "^7.26.0"
"@metamask/onboarding" "^1.0.1"
"@metamask/providers" "16.1.0"
- "@metamask/sdk-communication-layer" "0.27.0"
- "@metamask/sdk-install-modal-web" "0.26.5"
- "@types/dom-screen-wake-lock" "^1.0.0"
+ "@metamask/sdk-communication-layer" "0.31.0"
+ "@metamask/sdk-install-modal-web" "0.31.2"
+ "@paulmillr/qr" "^0.2.1"
bowser "^2.9.0"
cross-fetch "^4.0.0"
debug "^4.3.4"
- eciesjs "^0.3.15"
+ eciesjs "^0.4.11"
eth-rpc-errors "^4.0.3"
- eventemitter2 "^6.4.7"
- i18next "23.11.5"
- i18next-browser-languagedetector "7.1.0"
+ eventemitter2 "^6.4.9"
obj-multiplex "^1.0.0"
pump "^3.0.0"
- qrcode-terminal-nooctal "^0.12.1"
- react-native-webview "^11.26.0"
readable-stream "^3.6.2"
- rollup-plugin-visualizer "^5.9.2"
socket.io-client "^4.5.1"
+ tslib "^2.6.0"
util "^0.12.4"
uuid "^8.3.2"
@@ -2333,6 +2446,11 @@
"@netlify/node-cookies" "^0.1.0"
urlpattern-polyfill "8.0.2"
+"@noble/ciphers@^1.0.0":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.1.3.tgz#eb27085aa7ce94d8c6eaeb64299bab0589920ec1"
+ integrity sha512-Ygv6WnWJHLLiW4fnNDC1z+i13bud+enXOFRBlpxI+NJliPWx5wdR+oWlTjLuBPTqjUjtHXtjkU6w3kuuH6upZA==
+
"@noble/curves@1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6"
@@ -2347,23 +2465,40 @@
dependencies:
"@noble/hashes" "1.4.0"
-"@noble/curves@^1.0.0", "@noble/curves@~1.6.0":
+"@noble/curves@1.6.0", "@noble/curves@^1.0.0", "@noble/curves@^1.6.0", "@noble/curves@~1.6.0":
version "1.6.0"
resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.6.0.tgz#be5296ebcd5a1730fccea4786d420f87abfeb40b"
integrity sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==
dependencies:
"@noble/hashes" "1.5.0"
+"@noble/curves@1.7.0", "@noble/curves@~1.7.0":
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.7.0.tgz#0512360622439256df892f21d25b388f52505e45"
+ integrity sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==
+ dependencies:
+ "@noble/hashes" "1.6.0"
+
"@noble/hashes@1.4.0", "@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@~1.4.0":
version "1.4.0"
resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz"
integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==
-"@noble/hashes@1.5.0", "@noble/hashes@^1.0.0", "@noble/hashes@~1.5.0":
+"@noble/hashes@1.5.0", "@noble/hashes@^1.0.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.5.0.tgz#abadc5ca20332db2b1b2aa3e496e9af1213570b0"
integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==
+"@noble/hashes@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.0.tgz#d4bfb516ad6e7b5111c216a5cc7075f4cf19e6c5"
+ integrity sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==
+
+"@noble/hashes@1.6.1", "@noble/hashes@^1.1.2", "@noble/hashes@~1.6.0":
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.6.1.tgz#df6e5943edcea504bac61395926d6fd67869a0d5"
+ integrity sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==
+
"@noble/secp256k1@^1.7.1":
version "1.7.1"
resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz"
@@ -2482,6 +2617,11 @@
"@parcel/watcher-win32-ia32" "2.4.1"
"@parcel/watcher-win32-x64" "2.4.1"
+"@paulmillr/qr@^0.2.1":
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/@paulmillr/qr/-/qr-0.2.1.tgz#76ade7080be4ac4824f638146fd8b6db1805eeca"
+ integrity sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==
+
"@playwright/test@^1.39.0":
version "1.42.1"
resolved "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz"
@@ -2667,10 +2807,10 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.2.tgz#851959c4c1c3c6647aba1f388198c8243aed6917"
integrity sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==
-"@safe-global/safe-apps-provider@0.18.3":
- version "0.18.3"
- resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.3.tgz#805a42e24f5dde803cb96dac251a3c9e256de45b"
- integrity sha512-f/0cNv3S4v7p8rowAjj0hDCg8Q8P/wBjp5twkNWeBdvd0RDr7BuRBPPk74LCqmjQ82P+1ltLlkmVFSmxTIT7XQ==
+"@safe-global/safe-apps-provider@0.18.5":
+ version "0.18.5"
+ resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.5.tgz#745a932bda3739a8a298ae44ec6c465f6c4773b7"
+ integrity sha512-9v9wjBi3TwLsEJ3C2ujYoexp3pFJ0omDLH/GX91e2QB+uwCKTBYyhxFSrTQ9qzoyQd+bfsk4gjOGW87QcJhf7g==
dependencies:
"@safe-global/safe-apps-sdk" "^9.1.0"
events "^3.3.0"
@@ -2708,6 +2848,11 @@
resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1"
integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==
+"@scure/base@~1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.1.tgz#dd0b2a533063ca612c17aa9ad26424a2ff5aa865"
+ integrity sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==
+
"@scure/bip32@1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67"
@@ -2717,7 +2862,7 @@
"@noble/hashes" "~1.4.0"
"@scure/base" "~1.1.6"
-"@scure/bip32@^1.3.1":
+"@scure/bip32@1.5.0", "@scure/bip32@^1.3.1", "@scure/bip32@^1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.5.0.tgz#dd4a2e1b8a9da60e012e776d954c4186db6328e6"
integrity sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==
@@ -2726,6 +2871,15 @@
"@noble/hashes" "~1.5.0"
"@scure/base" "~1.1.7"
+"@scure/bip32@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.6.0.tgz#6dbc6b4af7c9101b351f41231a879d8da47e0891"
+ integrity sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==
+ dependencies:
+ "@noble/curves" "~1.7.0"
+ "@noble/hashes" "~1.6.0"
+ "@scure/base" "~1.2.1"
+
"@scure/bip39@1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3"
@@ -2734,7 +2888,7 @@
"@noble/hashes" "~1.4.0"
"@scure/base" "~1.1.6"
-"@scure/bip39@^1.2.1":
+"@scure/bip39@1.4.0", "@scure/bip39@^1.2.1", "@scure/bip39@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.4.0.tgz#664d4f851564e2e1d4bffa0339f9546ea55960a6"
integrity sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==
@@ -2742,6 +2896,14 @@
"@noble/hashes" "~1.5.0"
"@scure/base" "~1.1.8"
+"@scure/bip39@1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.5.0.tgz#c8f9533dbd787641b047984356531d84485f19be"
+ integrity sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==
+ dependencies:
+ "@noble/hashes" "~1.6.0"
+ "@scure/base" "~1.2.1"
+
"@scure/btc-signer@1.3.2":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@scure/btc-signer/-/btc-signer-1.3.2.tgz#56cf02a2e318097b1e4f531fac8ef114bdf4ddc8"
@@ -2762,6 +2924,16 @@
resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2"
integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
+"@spruceid/siwe-parser@^2.1.2":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz#3e13e7d3ac0bfdaf109a07342590eb21daee2fc3"
+ integrity sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==
+ dependencies:
+ "@noble/hashes" "^1.1.2"
+ apg-js "^4.3.0"
+ uri-js "^4.4.1"
+ valid-url "^1.0.9"
+
"@stablelib/aead@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3"
@@ -3225,11 +3397,6 @@
dependencies:
"@types/ms" "*"
-"@types/dom-screen-wake-lock@^1.0.0":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@types/dom-screen-wake-lock/-/dom-screen-wake-lock-1.0.3.tgz#c3588a5f6f40fae957f9ce5be9bc4927a61bb9a0"
- integrity sha512-3Iten7X3Zgwvk6kh6/NRdwN7WbZ760YgFCsF5AxDifltUQzW1RaW+WRmcVtgwFzLjaNu64H+0MPJ13yRa8g3Dw==
-
"@types/estree@1.0.5", "@types/estree@^1.0.0":
version "1.0.5"
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz"
@@ -3309,6 +3476,11 @@
resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz"
integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
+"@types/prettier@^2.1.1":
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f"
+ integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==
+
"@types/prop-types@*":
version "15.7.12"
resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz"
@@ -3362,13 +3534,6 @@
resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz"
integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==
-"@types/secp256k1@^4.0.6":
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf"
- integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==
- dependencies:
- "@types/node" "*"
-
"@types/semver@^7.5.0":
version "7.5.8"
resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz"
@@ -3529,32 +3694,52 @@
loupe "^2.3.6"
pretty-format "^29.5.0"
-"@wagmi/connectors@5.1.2":
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.1.2.tgz#f94a030b277c7c2cf00cf67606c4c907b24fcb58"
- integrity sha512-UX5LqDdGXrTdHBpL9wrJbcjK7/rtpOjx6YSIkO26TdPp6UyxQvEmY2XY6hdgBwHVx9xPaiVNIrWoexa5pRJUNA==
+"@wagmi/connectors@5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.7.0.tgz#a5e6c5403009b37f912210fc5d96727b4caa6a2b"
+ integrity sha512-cPMmHBGw28fll7VQJC9iF6ngdQ17STTzspqRIjlTkz44zhjwMTf7shw+JJUmqw+0uK7DqRbf/xUHlZE2IVd2mg==
dependencies:
- "@coinbase/wallet-sdk" "4.0.4"
- "@metamask/sdk" "0.27.0"
- "@safe-global/safe-apps-provider" "0.18.3"
+ "@coinbase/wallet-sdk" "4.2.3"
+ "@metamask/sdk" "0.31.2"
+ "@safe-global/safe-apps-provider" "0.18.5"
"@safe-global/safe-apps-sdk" "9.1.0"
- "@walletconnect/ethereum-provider" "2.14.0"
- "@walletconnect/modal" "2.6.2"
+ "@walletconnect/ethereum-provider" "2.17.0"
cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3"
-"@wagmi/core@2.13.1":
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.13.1.tgz#d9cf910775eca0e1aeb6fe9ad787264ee32632f3"
- integrity sha512-6ZdgI6dYfpa+IZPU0DZ3XQEQVzs003tKCERzSUNkxmt5cwSMg0XB1kvF5vU9MuPP96K6IcGkqSwAtgCmM5uy2w==
+"@wagmi/connectors@5.7.1":
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.7.1.tgz#31e38ef08fe27c5374b20534759936d8bbc19927"
+ integrity sha512-7K8zKzxKrZRFbJL8vG9qGhYGQ/2Ce534j8ByOABeXWQmXaVSf862v8KiLUUwDlUMktGW9EAjCTrv1ceUWdwgpg==
+ dependencies:
+ "@coinbase/wallet-sdk" "4.2.3"
+ "@metamask/sdk" "0.31.4"
+ "@safe-global/safe-apps-provider" "0.18.5"
+ "@safe-global/safe-apps-sdk" "9.1.0"
+ "@walletconnect/ethereum-provider" "2.17.0"
+ cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3"
+
+"@wagmi/core@2.16.0":
+ version "2.16.0"
+ resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.16.0.tgz#b997b2544cd80b4aac4df25ccb2436bf77f9fbe1"
+ integrity sha512-sy4n7Jv6YCbT2jp4zQ/9H6l0A8StsN7P8mm2BRuODgW2w6Fj4j6h2xgYJD2tIjJHkLU/nvPJ7audZ55X7XQU/g==
+ dependencies:
+ eventemitter3 "5.0.1"
+ mipd "0.0.7"
+ zustand "5.0.0"
+
+"@wagmi/core@2.16.1", "@wagmi/core@^2.16.1":
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.16.1.tgz#fb4ccd2be30d550b051f7e1833c5597acd6bef38"
+ integrity sha512-PFP43jEeyzCp9ZKM+G/H50Gb68XT9J9xLIHvznTvPZOphlnVOVMpZTUARukOQZvmZXZoD2CUTJxT820YrZfjcw==
dependencies:
eventemitter3 "5.0.1"
mipd "0.0.7"
- zustand "4.4.1"
+ zustand "5.0.0"
-"@walletconnect/core@2.14.0":
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.14.0.tgz#e8afb01455968b02aaf26c74f3bfcc9b82678a39"
- integrity sha512-E/dgBM9q3judXnTfZQ5ILvDpeSdDpabBLsXtYXa3Nyc26cfNplfLJ2nXm9FgtTdhM1nZ7yx4+zDPiXawBRZl2g==
+"@walletconnect/core@2.17.0":
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.17.0.tgz#bf490e85a4702eff0f7cf81ba0d3c1016dffff33"
+ integrity sha512-On+uSaCfWdsMIQsECwWHZBmUXfrnqmv6B8SXRRuTJgd8tUpEvBkLQH4X7XkSm3zW6ozEkQTCagZ2ox2YPn3kbw==
dependencies:
"@walletconnect/heartbeat" "1.2.2"
"@walletconnect/jsonrpc-provider" "1.0.14"
@@ -3563,14 +3748,13 @@
"@walletconnect/jsonrpc-ws-connection" "1.0.14"
"@walletconnect/keyvaluestorage" "1.1.1"
"@walletconnect/logger" "2.1.2"
- "@walletconnect/relay-api" "1.0.10"
+ "@walletconnect/relay-api" "1.0.11"
"@walletconnect/relay-auth" "1.0.4"
"@walletconnect/safe-json" "1.0.2"
"@walletconnect/time" "1.0.2"
- "@walletconnect/types" "2.14.0"
- "@walletconnect/utils" "2.14.0"
+ "@walletconnect/types" "2.17.0"
+ "@walletconnect/utils" "2.17.0"
events "3.3.0"
- isomorphic-unfetch "3.1.0"
lodash.isequal "4.5.0"
uint8arrays "3.1.0"
@@ -3581,20 +3765,20 @@
dependencies:
tslib "1.14.1"
-"@walletconnect/ethereum-provider@2.14.0":
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.14.0.tgz#0ed4ba9b383c889b56e0af87181756d900fc504a"
- integrity sha512-Cc2/DCn85VciA10BrsNWFM//3VC1D8yjwrjfUKjGndLPDz0YIdAxTgYZViIlMjE0lzQC/DMvPYEAnGfW0O1Bwg==
+"@walletconnect/ethereum-provider@2.17.0":
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.17.0.tgz#d74feaaed6180a6799e96760d7ee867ff3a083d2"
+ integrity sha512-b+KTAXOb6JjoxkwpgYQQKPUcTwENGmdEdZoIDLeRicUmZTn/IQKfkMoC2frClB4YxkyoVMtj1oMV2JAax+yu9A==
dependencies:
"@walletconnect/jsonrpc-http-connection" "1.0.8"
"@walletconnect/jsonrpc-provider" "1.0.14"
"@walletconnect/jsonrpc-types" "1.0.4"
"@walletconnect/jsonrpc-utils" "1.0.8"
- "@walletconnect/modal" "2.6.2"
- "@walletconnect/sign-client" "2.14.0"
- "@walletconnect/types" "2.14.0"
- "@walletconnect/universal-provider" "2.14.0"
- "@walletconnect/utils" "2.14.0"
+ "@walletconnect/modal" "2.7.0"
+ "@walletconnect/sign-client" "2.17.0"
+ "@walletconnect/types" "2.17.0"
+ "@walletconnect/universal-provider" "2.17.0"
+ "@walletconnect/utils" "2.17.0"
events "3.3.0"
"@walletconnect/events@1.0.1", "@walletconnect/events@^1.0.1":
@@ -3677,35 +3861,35 @@
"@walletconnect/safe-json" "^1.0.2"
pino "7.11.0"
-"@walletconnect/modal-core@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.6.2.tgz#d73e45d96668764e0c8668ea07a45bb8b81119e9"
- integrity sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==
+"@walletconnect/modal-core@2.7.0":
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/modal-core/-/modal-core-2.7.0.tgz#73c13c3b7b0abf9ccdbac9b242254a86327ce0a4"
+ integrity sha512-oyMIfdlNdpyKF2kTJowTixZSo0PGlCJRdssUN/EZdA6H6v03hZnf09JnwpljZNfir2M65Dvjm/15nGrDQnlxSA==
dependencies:
valtio "1.11.2"
-"@walletconnect/modal-ui@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.6.2.tgz#fa57c087c57b7f76aaae93deab0f84bb68b59cf9"
- integrity sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==
+"@walletconnect/modal-ui@2.7.0":
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/modal-ui/-/modal-ui-2.7.0.tgz#dbbb7ee46a5a25f7d39db622706f2d197b268cbb"
+ integrity sha512-gERYvU7D7K1ANCN/8vUgsE0d2hnRemfAFZ2novm9aZBg7TEd/4EgB+AqbJ+1dc7GhOL6dazckVq78TgccHb7mQ==
dependencies:
- "@walletconnect/modal-core" "2.6.2"
+ "@walletconnect/modal-core" "2.7.0"
lit "2.8.0"
motion "10.16.2"
qrcode "1.5.3"
-"@walletconnect/modal@2.6.2":
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651"
- integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==
+"@walletconnect/modal@2.7.0":
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/modal/-/modal-2.7.0.tgz#55f969796d104cce1205f5f844d8f8438b79723a"
+ integrity sha512-RQVt58oJ+rwqnPcIvRFeMGKuXb9qkgSmwz4noF8JZGUym3gUAzVs+uW2NQ1Owm9XOJAV+sANrtJ+VoVq1ftElw==
dependencies:
- "@walletconnect/modal-core" "2.6.2"
- "@walletconnect/modal-ui" "2.6.2"
+ "@walletconnect/modal-core" "2.7.0"
+ "@walletconnect/modal-ui" "2.7.0"
-"@walletconnect/relay-api@1.0.10":
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.10.tgz#5aef3cd07c21582b968136179aa75849dcc65499"
- integrity sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw==
+"@walletconnect/relay-api@1.0.11":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.11.tgz#80ab7ef2e83c6c173be1a59756f95e515fb63224"
+ integrity sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==
dependencies:
"@walletconnect/jsonrpc-types" "^1.0.2"
@@ -3728,19 +3912,19 @@
dependencies:
tslib "1.14.1"
-"@walletconnect/sign-client@2.14.0":
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.14.0.tgz#36533ef0976a869d815624217527482c90937fc8"
- integrity sha512-UrB3S3eLjPYfBLCN3WJ5u7+WcZ8kFMe/QIDqLf76Jk6TaLwkSUy563LvnSw4KW/kA+/cY1KBSdUDfX1tzYJJXg==
+"@walletconnect/sign-client@2.17.0":
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.17.0.tgz#efe811b1bb10082d964e2f0378aaa1b40f424503"
+ integrity sha512-sErYwvSSHQolNXni47L3Bm10ptJc1s1YoJvJd34s5E9h9+d3rj7PrhbiW9X82deN+Dm5oA8X9tC4xty1yIBrVg==
dependencies:
- "@walletconnect/core" "2.14.0"
+ "@walletconnect/core" "2.17.0"
"@walletconnect/events" "1.0.1"
"@walletconnect/heartbeat" "1.2.2"
"@walletconnect/jsonrpc-utils" "1.0.8"
"@walletconnect/logger" "2.1.2"
"@walletconnect/time" "1.0.2"
- "@walletconnect/types" "2.14.0"
- "@walletconnect/utils" "2.14.0"
+ "@walletconnect/types" "2.17.0"
+ "@walletconnect/utils" "2.17.0"
events "3.3.0"
"@walletconnect/time@1.0.2", "@walletconnect/time@^1.0.2":
@@ -3750,10 +3934,10 @@
dependencies:
tslib "1.14.1"
-"@walletconnect/types@2.14.0":
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.14.0.tgz#af3d4799b8ac5d166251af12bc024276f82f9b91"
- integrity sha512-vevMi4jZLJ55vLuFOicQFmBBbLyb+S0sZS4IsaBdZkQflfGIq34HkN13c/KPl4Ye0aoR4/cUcUSitmGIzEQM5g==
+"@walletconnect/types@2.17.0":
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.17.0.tgz#20eda5791e3172f8ab9146caa3f317701d4b3232"
+ integrity sha512-i1pn9URpvt9bcjRDkabuAmpA9K7mzyKoLJlbsAujRVX7pfaG7wur7u9Jz0bk1HxvuABL5LHNncTnVKSXKQ5jZA==
dependencies:
"@walletconnect/events" "1.0.1"
"@walletconnect/heartbeat" "1.2.2"
@@ -3762,38 +3946,40 @@
"@walletconnect/logger" "2.1.2"
events "3.3.0"
-"@walletconnect/universal-provider@2.14.0":
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.14.0.tgz#39d029be80374894b5f4249b76282dd9211d8b9f"
- integrity sha512-Mr8uoTmD6H0+Hh+3gxBu4l3T2uP/nNPR02sVtwEujNum++F727mMk+ifPRIpkVo21V/bvXFEy8sHTs5hqyq5iA==
+"@walletconnect/universal-provider@2.17.0":
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/universal-provider/-/universal-provider-2.17.0.tgz#c9d4bbd9b8f0e41b500b2488ccbc207dc5f7a170"
+ integrity sha512-d3V5Be7AqLrvzcdMZSBS8DmGDRdqnyLk1DWmRKAGgR6ieUWykhhUKlvfeoZtvJrIXrY7rUGYpH1X41UtFkW5Pw==
dependencies:
"@walletconnect/jsonrpc-http-connection" "1.0.8"
"@walletconnect/jsonrpc-provider" "1.0.14"
"@walletconnect/jsonrpc-types" "1.0.4"
"@walletconnect/jsonrpc-utils" "1.0.8"
"@walletconnect/logger" "2.1.2"
- "@walletconnect/sign-client" "2.14.0"
- "@walletconnect/types" "2.14.0"
- "@walletconnect/utils" "2.14.0"
+ "@walletconnect/sign-client" "2.17.0"
+ "@walletconnect/types" "2.17.0"
+ "@walletconnect/utils" "2.17.0"
events "3.3.0"
-"@walletconnect/utils@2.14.0":
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.14.0.tgz#48493ffe1e902815fda3cbd5cc5409288a066d35"
- integrity sha512-vRVomYQEtEAyCK2c5bzzEvtgxaGGITF8mWuIL+WYSAMyEJLY97mirP2urDucNwcUczwxUgI+no9RiNFbUHreQQ==
+"@walletconnect/utils@2.17.0":
+ version "2.17.0"
+ resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.17.0.tgz#02b3af0b80d0c1a994d692d829d066271b04d071"
+ integrity sha512-1aeQvjwsXy4Yh9G6g2eGmXrEl+BzkNjHRdCrGdMYqFTFa8ROEJfTGsSH3pLsNDlOY94CoBUvJvM55q/PMoN/FQ==
dependencies:
"@stablelib/chacha20poly1305" "1.0.1"
"@stablelib/hkdf" "1.0.1"
"@stablelib/random" "1.0.2"
"@stablelib/sha256" "1.0.1"
"@stablelib/x25519" "1.0.3"
- "@walletconnect/relay-api" "1.0.10"
+ "@walletconnect/relay-api" "1.0.11"
+ "@walletconnect/relay-auth" "1.0.4"
"@walletconnect/safe-json" "1.0.2"
"@walletconnect/time" "1.0.2"
- "@walletconnect/types" "2.14.0"
+ "@walletconnect/types" "2.17.0"
"@walletconnect/window-getters" "1.0.1"
"@walletconnect/window-metadata" "1.0.1"
detect-browser "5.3.0"
+ elliptic "^6.5.7"
query-string "7.1.3"
uint8arrays "3.1.0"
@@ -3866,6 +4052,16 @@ abitype@1.0.5:
resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.5.tgz#29d0daa3eea867ca90f7e4123144c1d1270774b6"
integrity sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==
+abitype@1.0.6, abitype@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.6.tgz#76410903e1d88e34f1362746e2d407513c38565b"
+ integrity sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==
+
+abitype@1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/abitype/-/abitype-1.0.7.tgz#876a0005d211e1c9132825d45bcee7b46416b284"
+ integrity sha512-ZfYYSktDQUwc2eduYu8C4wOs+RDPmnRYMh7zNfzeMtGGgb0U+6tLGjixUic6mXf5xKKCcgT5Qp6cv39tOARVFw==
+
abort-controller@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
@@ -3948,6 +4144,11 @@ apexcharts@^3.49.1:
svg.resize.js "^1.4.3"
svg.select.js "^3.0.1"
+apg-js@^4.3.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.4.0.tgz#09dcecab0731fbde233b9f2352fdd2d07e56b2cf"
+ integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==
+
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
@@ -3967,6 +4168,16 @@ aria-query@^5.3.0:
dependencies:
dequal "^2.0.3"
+array-back@^3.0.1, array-back@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"
+ integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==
+
+array-back@^4.0.1, array-back@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e"
+ integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==
+
array-buffer-byte-length@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz"
@@ -4088,6 +4299,11 @@ async-mutex@^0.2.6:
dependencies:
tslib "^2.0.0"
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
atomic-sleep@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
@@ -4105,6 +4321,15 @@ axe-core@=4.7.0:
resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz"
integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==
+axios@^1.7.2:
+ version "1.7.9"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a"
+ integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==
+ dependencies:
+ follow-redirects "^1.15.6"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
axobject-query@^3.2.1:
version "3.2.1"
resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz"
@@ -4153,7 +4378,7 @@ bech32@^2.0.0:
resolved "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz"
integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
-bignumber.js@^9.0.0:
+bignumber.js@^9.0.0, bignumber.js@^9.1.2:
version "9.1.2"
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c"
integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
@@ -4203,6 +4428,13 @@ bip32@^2.0.4:
typeforce "^1.11.5"
wif "^2.0.6"
+bip39@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3"
+ integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==
+ dependencies:
+ "@noble/hashes" "^1.2.0"
+
bip66@^1.1.0:
version "1.1.5"
resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22"
@@ -4265,6 +4497,18 @@ bitcoinjs-lib@^6.1.3:
typeforce "^1.11.3"
varuint-bitcoin "^1.1.2"
+bitcoinjs-lib@^6.1.5, bitcoinjs-lib@^6.1.6:
+ version "6.1.7"
+ resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.7.tgz#0f98dec1333d658574eefa455295668cfae38bb0"
+ integrity sha512-tlf/r2DGMbF7ky1MgUqXHzypYHakkEnm0SZP23CJKIqNY/5uNAnMbFhMJdhjrL/7anfb/U8+AlpdjPWjPnAalg==
+ dependencies:
+ "@noble/hashes" "^1.2.0"
+ bech32 "^2.0.0"
+ bip174 "^2.1.1"
+ bs58check "^3.0.1"
+ typeforce "^1.11.3"
+ varuint-bitcoin "^1.1.2"
+
bn.js@^4.11.8, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz"
@@ -4448,9 +4692,9 @@ chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.0, chalk@^4.1.2:
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
version "4.1.2"
- resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
@@ -4554,6 +4798,33 @@ color2k@^2.0.2:
resolved "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz"
integrity sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+command-line-args@^5.1.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e"
+ integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==
+ dependencies:
+ array-back "^3.1.0"
+ find-replace "^3.0.0"
+ lodash.camelcase "^4.3.0"
+ typical "^4.0.0"
+
+command-line-usage@^6.1.0:
+ version "6.1.3"
+ resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957"
+ integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==
+ dependencies:
+ array-back "^4.0.2"
+ chalk "^2.4.2"
+ table-layout "^1.0.2"
+ typical "^5.2.0"
+
commander@7:
version "7.2.0"
resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz"
@@ -5128,6 +5399,11 @@ deep-eql@^4.1.3:
dependencies:
type-detect "^4.0.0"
+deep-extend@~0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
@@ -5147,11 +5423,6 @@ define-data-property@^1.0.1, define-data-property@^1.1.4:
es-errors "^1.3.0"
gopd "^1.0.1"
-define-lazy-prop@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
- integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
-
define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz"
@@ -5178,6 +5449,11 @@ delaunator@5:
dependencies:
robust-predicates "^3.0.2"
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
@@ -5220,10 +5496,10 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
-dlc-btc-lib@2.5.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/dlc-btc-lib/-/dlc-btc-lib-2.5.1.tgz#b1eb33c0a56a244fcb109da4704854cf8a585c15"
- integrity sha512-YRfIsfsgzmUcepowZYaLjY/1E2MJbN5zIhEhS1NgiJsDBjNVAiZTHLY7RiX3eNValgFSnsY3IpUyF6piPap72A==
+dlc-btc-lib@2.5.3:
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/dlc-btc-lib/-/dlc-btc-lib-2.5.3.tgz#a7a7df7236ad14877c77d2df172e29627ebb4816"
+ integrity sha512-QFN0nGO9P3zhfydI9j07iUxhxyRrxVRD941WhIXblw/YZDVXT8+PYW4GciSlU8KiydtHtYD+fWkUkSgUeC5kaQ==
dependencies:
"@dfns/sdk" "^0.5.9"
"@dfns/sdk-browser" "^0.5.9"
@@ -5276,14 +5552,15 @@ duplexify@^4.1.2:
readable-stream "^3.1.1"
stream-shift "^1.0.2"
-eciesjs@^0.3.15:
- version "0.3.19"
- resolved "https://registry.yarnpkg.com/eciesjs/-/eciesjs-0.3.19.tgz#a22e9e1efe3fdedec02c828e2632ae0d4a073676"
- integrity sha512-b+PkRDZ3ym7HEcnbxc22CMVCpgsnr8+gGgST3U5PtgeX1luvINgfXW7efOyUtmn/jFtA/lg5ywBi/Uazf4oeaA==
+eciesjs@^0.4.11:
+ version "0.4.12"
+ resolved "https://registry.yarnpkg.com/eciesjs/-/eciesjs-0.4.12.tgz#0ce482454953592e07b79b4824751f3b5c508b56"
+ integrity sha512-DGejvMCihsRAmKRFQiL6KZDE34vWVd0gvXlykFq1aEzJy/rD65AVyAIUZKZOvgvaP9ATQRcHGEZV5DfgrgjA4w==
dependencies:
- "@types/secp256k1" "^4.0.6"
- futoin-hkdf "^1.5.3"
- secp256k1 "^5.0.0"
+ "@ecies/ciphers" "^0.2.1"
+ "@noble/ciphers" "^1.0.0"
+ "@noble/curves" "^1.6.0"
+ "@noble/hashes" "^1.5.0"
ecpair@^2.1.0:
version "2.1.0"
@@ -5325,10 +5602,10 @@ elliptic@^6.4.0:
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
-elliptic@^6.5.4:
- version "6.5.6"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.6.tgz#ee5f7c3a00b98a2144ac84d67d01f04d438fa53e"
- integrity sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==
+elliptic@^6.5.7:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06"
+ integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==
dependencies:
bn.js "^4.11.9"
brorand "^1.1.0"
@@ -5561,11 +5838,6 @@ escalade@^3.1.1:
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz"
integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
-escape-string-regexp@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
@@ -5829,7 +6101,7 @@ ethereum-cryptography@^2.0.0:
ethers@5.7.2:
version "5.7.2"
- resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz"
+ resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
dependencies:
"@ethersproject/abi" "5.7.0"
@@ -5868,7 +6140,7 @@ event-target-shim@^5.0.0:
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==
-eventemitter2@^6.4.7:
+eventemitter2@^6.4.9:
version "6.4.9"
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125"
integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==
@@ -5980,6 +6252,13 @@ filter-obj@^1.1.0:
resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
+find-replace@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"
+ integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==
+ dependencies:
+ array-back "^3.0.1"
+
find-root@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz"
@@ -6022,6 +6301,11 @@ focus-lock@^1.3.2:
dependencies:
tslib "^2.0.3"
+follow-redirects@^1.15.6:
+ version "1.15.9"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
+ integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
+
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"
@@ -6029,6 +6313,15 @@ for-each@^0.3.3:
dependencies:
is-callable "^1.1.3"
+form-data@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
+ integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
formik@^2.4.5:
version "2.4.5"
resolved "https://registry.npmjs.org/formik/-/formik-2.4.5.tgz"
@@ -6057,6 +6350,15 @@ framesync@6.1.2:
dependencies:
tslib "2.4.0"
+fs-extra@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
@@ -6092,11 +6394,6 @@ functions-have-names@^1.2.3:
resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
-futoin-hkdf@^1.5.3:
- version "1.5.3"
- resolved "https://registry.yarnpkg.com/futoin-hkdf/-/futoin-hkdf-1.5.3.tgz#6c8024f2e1429da086d4e18289ef2239ad33ee35"
- integrity sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==
-
gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
@@ -6161,6 +6458,18 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
+glob@7.1.7:
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+ integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
glob@^7.1.3:
version "7.2.3"
resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
@@ -6211,6 +6520,11 @@ gopd@^1.0.1:
dependencies:
get-intrinsic "^1.1.3"
+graceful-fs@^4.1.2, graceful-fs@^4.1.6:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
graphemer@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
@@ -6326,20 +6640,6 @@ human-signals@^5.0.0:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
-i18next-browser-languagedetector@7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.1.0.tgz#01876fac51f86b78975e79b48ccb62e2313a2d7d"
- integrity sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA==
- dependencies:
- "@babel/runtime" "^7.19.4"
-
-i18next@23.11.5:
- version "23.11.5"
- resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.11.5.tgz#d71eb717a7e65498d87d0594f2664237f9e361ef"
- integrity sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==
- dependencies:
- "@babel/runtime" "^7.23.2"
-
iconv-lite@0.6:
version "0.6.3"
resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz"
@@ -6407,7 +6707,7 @@ internal-slot@^1.0.7:
resolved "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz"
integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
-invariant@2.2.4, invariant@^2.2.4:
+invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -6495,11 +6795,6 @@ is-date-object@^1.0.1, is-date-object@^1.0.5:
dependencies:
has-tostringtag "^1.0.0"
-is-docker@^2.0.0, is-docker@^2.1.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
- integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
-
is-docker@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200"
@@ -6641,13 +6936,6 @@ is-weakset@^2.0.3:
call-bind "^1.0.7"
get-intrinsic "^1.2.4"
-is-wsl@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
- integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
- dependencies:
- is-docker "^2.0.0"
-
is-wsl@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2"
@@ -6677,19 +6965,16 @@ isexe@^2.0.0:
resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-isomorphic-unfetch@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f"
- integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==
- dependencies:
- node-fetch "^2.6.1"
- unfetch "^4.2.0"
-
isows@1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.4.tgz#810cd0d90cc4995c26395d2aa4cfa4037ebdf061"
integrity sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ==
+isows@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.6.tgz#0da29d706fa51551c663c627ace42769850f86e7"
+ integrity sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==
+
iterator.prototype@^1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz"
@@ -6711,9 +6996,9 @@ jiti@^1.21.0:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268"
integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
-js-sha3@0.8.0:
+js-sha3@0.8.0, js-sha3@^0.8.0:
version "0.8.0"
- resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz"
+ resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
@@ -6783,6 +7068,13 @@ jsonc-parser@^3.2.0:
resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz"
integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5:
version "3.3.5"
resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz"
@@ -6793,6 +7085,11 @@ jsonc-parser@^3.2.0:
object.assign "^4.1.4"
object.values "^1.1.6"
+jwt-decode@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-4.0.0.tgz#2270352425fd413785b2faf11f6e755c5151bd4b"
+ integrity sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==
+
keccak@^3.0.3:
version "3.0.4"
resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d"
@@ -6933,6 +7230,11 @@ lodash-es@^4.17.21:
resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+
lodash.isequal@4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
@@ -6948,9 +7250,9 @@ lodash.mergewith@4.6.2:
resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz"
integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==
-lodash@^4.17.21:
+lodash@^4.17.15, lodash@^4.17.21:
version "4.17.21"
- resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
@@ -7045,6 +7347,18 @@ micromatch@^4.0.5:
braces "^3.0.3"
picomatch "^2.3.1"
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
mime@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
@@ -7072,9 +7386,9 @@ minimatch@9.0.3:
dependencies:
brace-expansion "^2.0.1"
-minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
@@ -7089,6 +7403,11 @@ mipd@0.0.7:
resolved "https://registry.yarnpkg.com/mipd/-/mipd-0.0.7.tgz#bb5559e21fa18dc3d9fe1c08902ef14b7ce32fd9"
integrity sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==
+mkdirp@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
mlly@^1.2.0, mlly@^1.4.0:
version "1.6.1"
resolved "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz"
@@ -7143,7 +7462,7 @@ ms@2.1.2:
ms@^2.1.1:
version "2.1.3"
- resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
multiformats@^9.4.2:
@@ -7176,11 +7495,6 @@ node-addon-api@^2.0.0:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
-node-addon-api@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762"
- integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==
-
node-addon-api@^7.0.0:
version "7.1.1"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
@@ -7191,7 +7505,7 @@ node-fetch-native@^1.6.2, node-fetch-native@^1.6.3, node-fetch-native@^1.6.4:
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz#679fc8fd8111266d47d7e72c379f1bed9acff06e"
integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==
-node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.12:
+node-fetch@^2.6.11, node-fetch@^2.6.12:
version "2.7.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
@@ -7338,15 +7652,6 @@ onetime@^6.0.0:
dependencies:
mimic-fn "^4.0.0"
-open@^8.4.0:
- version "8.4.2"
- resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
- integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
- dependencies:
- define-lazy-prop "^2.0.0"
- is-docker "^2.1.1"
- is-wsl "^2.2.0"
-
optionator@^0.9.3:
version "0.9.3"
resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz"
@@ -7359,6 +7664,19 @@ optionator@^0.9.3:
prelude-ls "^1.2.1"
type-check "^0.4.0"
+ox@0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ox/-/ox-0.1.2.tgz#0f791be2ccabeaf4928e6d423498fe1c8094e560"
+ integrity sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==
+ dependencies:
+ "@adraffy/ens-normalize" "^1.10.1"
+ "@noble/curves" "^1.6.0"
+ "@noble/hashes" "^1.5.0"
+ "@scure/bip32" "^1.5.0"
+ "@scure/bip39" "^1.4.0"
+ abitype "^1.0.6"
+ eventemitter3 "5.0.1"
+
p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -7572,11 +7890,21 @@ preact@^10.16.0:
resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.1.tgz#d400107289bc979881c5212cb5f5cd22cd1dc38c"
integrity sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A==
+preact@^10.24.2:
+ version "10.25.2"
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.25.2.tgz#e141e18a547ae0082dae48d044e0d8267e2547d2"
+ integrity sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+prettier@^2.3.1:
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
+ integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
+
prettier@^3.0.3:
version "3.2.5"
resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz"
@@ -7623,11 +7951,21 @@ prop-types@15.8.1, prop-types@^15.6.2, prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
+property-expr@^2.0.5:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8"
+ integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==
+
proxy-compare@2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600"
integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -7648,23 +7986,6 @@ pushdata-bitcoin@^1.0.1:
dependencies:
bitcoin-ops "^1.3.0"
-qr-code-styling@^1.6.0-rc.1:
- version "1.6.0-rc.1"
- resolved "https://registry.yarnpkg.com/qr-code-styling/-/qr-code-styling-1.6.0-rc.1.tgz#6c89e185fa50cc9135101085c12ae95b06f1b290"
- integrity sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q==
- dependencies:
- qrcode-generator "^1.4.3"
-
-qrcode-generator@^1.4.3:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7"
- integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==
-
-qrcode-terminal-nooctal@^0.12.1:
- version "0.12.1"
- resolved "https://registry.yarnpkg.com/qrcode-terminal-nooctal/-/qrcode-terminal-nooctal-0.12.1.tgz#45016aca0d82b2818de7af0a06d072ad671fbe2e"
- integrity sha512-jy/kkD0iIMDjTucB+5T6KBsnirlhegDH47vHgrj5MejchSQmi/EAMM0xMFeePgV9CJkkAapNakpVUWYgHvtdKg==
-
qrcode@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170"
@@ -7791,14 +8112,6 @@ react-is@^18.0.0:
resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
-react-native-webview@^11.26.0:
- version "11.26.1"
- resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-11.26.1.tgz#658c09ed5162dc170b361e48c2dd26c9712879da"
- integrity sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw==
- dependencies:
- escape-string-regexp "2.0.0"
- invariant "2.2.4"
-
react-redux@^8.1.3:
version "8.1.3"
resolved "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz"
@@ -7875,6 +8188,13 @@ react@^18.2.0:
dependencies:
loose-envify "^1.1.0"
+react@^18.3.1:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
+ integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
readable-stream@^2.3.3:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
@@ -7920,6 +8240,11 @@ real-require@^0.1.0:
resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381"
integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==
+reduce-flatten@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27"
+ integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==
+
redux-persist-expire@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/redux-persist-expire/-/redux-persist-expire-1.1.1.tgz"
@@ -8062,16 +8387,6 @@ robust-predicates@^3.0.2:
resolved "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz"
integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==
-rollup-plugin-visualizer@^5.9.2:
- version "5.12.0"
- resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz#661542191ce78ee4f378995297260d0c1efb1302"
- integrity sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==
- dependencies:
- open "^8.4.0"
- picomatch "^2.3.1"
- source-map "^0.7.4"
- yargs "^17.5.1"
-
rollup@^3.27.1:
version "3.29.4"
resolved "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz"
@@ -8180,15 +8495,6 @@ scure@1.6.0:
dependencies:
pluralize "^7.0.0"
-secp256k1@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7"
- integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==
- dependencies:
- elliptic "^6.5.4"
- node-addon-api "^5.0.0"
- node-gyp-build "^4.2.0"
-
semver@^6.3.1:
version "6.3.1"
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
@@ -8298,6 +8604,16 @@ sisteransi@^1.0.5:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+siwe@^2.1.4:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/siwe/-/siwe-2.3.2.tgz#0794ae25f734f3068de0ab093ddd2f7867bc2d67"
+ integrity sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==
+ dependencies:
+ "@spruceid/siwe-parser" "^2.1.2"
+ "@stablelib/random" "^1.0.1"
+ uri-js "^4.4.1"
+ valid-url "^1.0.9"
+
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
@@ -8351,7 +8667,7 @@ source-map@^0.6.0:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@^0.7.3, source-map@^0.7.4:
+source-map@^0.7.3:
version "0.7.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
@@ -8396,6 +8712,11 @@ strict-uri-encode@^2.0.0:
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
+string-format@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b"
+ integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==
+
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
@@ -8590,6 +8911,16 @@ system-architecture@^0.1.0:
resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d"
integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==
+table-layout@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04"
+ integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==
+ dependencies:
+ array-back "^4.0.1"
+ deep-extend "~0.6.0"
+ typical "^5.2.0"
+ wordwrapjs "^4.0.0"
+
text-table@^0.2.0:
version "0.2.0"
resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
@@ -8602,6 +8933,11 @@ thread-stream@^0.15.1:
dependencies:
real-require "^0.1.0"
+tiny-case@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/tiny-case/-/tiny-case-1.0.3.tgz#d980d66bc72b5d5a9ca86fb7c9ffdb9c898ddd03"
+ integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==
+
tiny-invariant@^1.0.6:
version "1.3.3"
resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz"
@@ -8618,7 +8954,7 @@ tiny-secp256k1@1.1.6:
elliptic "^6.4.0"
nan "^2.13.2"
-tiny-secp256k1@2.2.3:
+tiny-secp256k1@2.2.3, tiny-secp256k1@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-2.2.3.tgz#fe1dde11a64fcee2091157d4b78bcb300feb9b65"
integrity sha512-SGcL07SxcPN2nGKHTCvRMkQLYPSoeFcvArUSCYtjVARiFAWU44cCIqYS0mYAU6nY7XfvwURuTIGo2Omt3ZQr0Q==
@@ -8680,6 +9016,11 @@ toml-eslint-parser@^0.9.3:
dependencies:
eslint-visitor-keys "^3.0.0"
+toposort@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
+ integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -8695,6 +9036,21 @@ ts-api-utils@^1.0.1:
resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz"
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
+ts-command-line-args@^2.2.0:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0"
+ integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==
+ dependencies:
+ chalk "^4.1.0"
+ command-line-args "^5.1.1"
+ command-line-usage "^6.1.0"
+ string-format "^2.0.0"
+
+ts-essentials@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38"
+ integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==
+
ts-toolbelt@^9.6.0:
version "9.6.0"
resolved "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz"
@@ -8733,6 +9089,11 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0:
resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+tslib@^2.6.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
+ integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
+
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
@@ -8762,6 +9123,27 @@ type-fest@^0.20.2:
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+type-fest@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
+ integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
+
+typechain@^8.3.2:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73"
+ integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==
+ dependencies:
+ "@types/prettier" "^2.1.1"
+ debug "^4.3.1"
+ fs-extra "^7.0.0"
+ glob "7.1.7"
+ js-sha3 "^0.8.0"
+ lodash "^4.17.15"
+ mkdirp "^1.0.4"
+ prettier "^2.3.1"
+ ts-command-line-args "^2.2.0"
+ ts-essentials "^7.0.1"
+
typed-array-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz"
@@ -8823,6 +9205,16 @@ typescript@^5.2.2:
resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz"
integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==
+typical@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"
+ integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==
+
+typical@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066"
+ integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==
+
ufo@^1.3.2:
version "1.5.3"
resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz"
@@ -8888,10 +9280,10 @@ unenv@^1.9.0:
node-fetch-native "^1.6.4"
pathe "^1.1.2"
-unfetch@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be"
- integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
unstorage@^1.9.0:
version "1.10.2"
@@ -8931,9 +9323,9 @@ uqr@^0.1.2:
resolved "https://registry.yarnpkg.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d"
integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==
-uri-js@^4.2.2:
+uri-js@^4.2.2, uri-js@^4.4.1:
version "4.4.1"
- resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
@@ -8975,6 +9367,13 @@ utf-8-validate@^5.0.2:
dependencies:
node-gyp-build "^4.3.0"
+utf-8-validate@^6.0.3:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.5.tgz#8087d39902be2cc15bdb21a426697ff256d65aab"
+ integrity sha512-EYZR+OpIXp9Y1eG1iueg8KRsY8TuT8VNgnanZ0uA3STqhHQTLwbl+WX76/9X5OY12yQubymBpaBSmMPkSTQcKA==
+ dependencies:
+ node-gyp-build "^4.3.0"
+
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
@@ -9006,6 +9405,11 @@ uuid@^9.0.1:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
+valid-url@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200"
+ integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==
+
valtio@1.11.2:
version "1.11.2"
resolved "https://registry.yarnpkg.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530"
@@ -9021,7 +9425,22 @@ varuint-bitcoin@1.1.2, varuint-bitcoin@^1.0.4, varuint-bitcoin@^1.1.2:
dependencies:
safe-buffer "^5.1.1"
-viem@2.x, viem@^2.1.1:
+viem@2.x:
+ version "2.21.57"
+ resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.57.tgz#bedbb444bb42e07ccc2264a9a0441903a113aab8"
+ integrity sha512-Mw4f4Dw0+Y/wSHdynVmP4uh+Cw15HEoj8BOKvKH5nGA6oFZYRxSy9Ruu7ZG8jexeAVCZ57aIuXb0gNg6Vb1x0g==
+ dependencies:
+ "@noble/curves" "1.7.0"
+ "@noble/hashes" "1.6.1"
+ "@scure/bip32" "1.6.0"
+ "@scure/bip39" "1.5.0"
+ abitype "1.0.7"
+ isows "1.0.6"
+ ox "0.1.2"
+ webauthn-p256 "0.0.10"
+ ws "8.18.0"
+
+viem@^2.1.1:
version "2.18.6"
resolved "https://registry.yarnpkg.com/viem/-/viem-2.18.6.tgz#527c54a032cdd4c1f1795fcb44072e8c3efd16c6"
integrity sha512-KughUodIEjzkC+KfQ4+259yRXYfo0VLkZQ7NVC3RGfCMMOiVWaOxHjmcaY0FnZzKX3pwrlMyTAZbwH9tVAN/Yw==
@@ -9036,6 +9455,36 @@ viem@2.x, viem@^2.1.1:
webauthn-p256 "0.0.5"
ws "8.17.1"
+viem@^2.20.1:
+ version "2.21.49"
+ resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.49.tgz#528d5e54747ba3125041cd753459a4ce673aaaa6"
+ integrity sha512-NNItYfTv4+yGE5DDKc+S/g2S7KeJn047GwgEYG60FAJlK0FzwuP6lQKSeQ8k7Y4VasfuKPqiT+XiilcCtTRiDQ==
+ dependencies:
+ "@noble/curves" "1.6.0"
+ "@noble/hashes" "1.5.0"
+ "@scure/bip32" "1.5.0"
+ "@scure/bip39" "1.4.0"
+ abitype "1.0.6"
+ isows "1.0.6"
+ ox "0.1.2"
+ webauthn-p256 "0.0.10"
+ ws "8.18.0"
+
+viem@^2.21.15:
+ version "2.21.55"
+ resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.55.tgz#a57ad31fcf2a0f6c011b1909f02c94421ec4f781"
+ integrity sha512-PgXew7C11cAuEtOSgRyQx2kJxEOPUwIwZA9dMglRByqJuFVA7wSGZZOOo/93iylAA8E15bEdqy9xulU3oKZ70Q==
+ dependencies:
+ "@noble/curves" "1.7.0"
+ "@noble/hashes" "1.6.1"
+ "@scure/bip32" "1.6.0"
+ "@scure/bip39" "1.5.0"
+ abitype "1.0.7"
+ isows "1.0.6"
+ ox "0.1.2"
+ webauthn-p256 "0.0.10"
+ ws "8.18.0"
+
vite-node@0.34.6:
version "0.34.6"
resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz"
@@ -9113,13 +9562,22 @@ vitest@^0.34.6:
vite-node "0.34.6"
why-is-node-running "^2.2.2"
-wagmi@^2.12.2:
- version "2.12.2"
- resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.12.2.tgz#1d3b1dea0783c05245aed72a29bce756eb4f0bd8"
- integrity sha512-gIZdAgmHJjENdOdkD/Zpu85NR16k/uMB3H/yGBz1q9bDAE8oguuBxRUEhuMt6jAC95RB96+7hMVfL9kBtHnu+g==
+wagmi@2.14.4:
+ version "2.14.4"
+ resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.14.4.tgz#ec617c0358fbc502ca603739ecd115ed146d69f8"
+ integrity sha512-Yg5Vic+k0Y2Dt1GdLTUi/Gmw3afRer1o+p0bqvn1kpjWVJZd2+YfHQLY54yeKdDw6uFaWGYxp3JWKz6iILYfuw==
+ dependencies:
+ "@wagmi/connectors" "5.7.1"
+ "@wagmi/core" "2.16.1"
+ use-sync-external-store "1.2.0"
+
+wagmi@^2.12.16:
+ version "2.14.3"
+ resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.14.3.tgz#3abfe5e9f796890d75d1b7d506e9dccd6b87f254"
+ integrity sha512-sr8o7+EBw22GhieDyXLv8Zr2vgC6xKrYoSuUIpq0xOqEhvMP1q880VtR4lFG1capc2QEWvK72pJ/+jpsEQcMYQ==
dependencies:
- "@wagmi/connectors" "5.1.2"
- "@wagmi/core" "2.13.1"
+ "@wagmi/connectors" "5.7.0"
+ "@wagmi/core" "2.16.0"
use-sync-external-store "1.2.0"
web-encoding@1.1.5:
@@ -9136,6 +9594,14 @@ web-streams-polyfill@^3.1.1:
resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b"
integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==
+webauthn-p256@0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.10.tgz#877e75abe8348d3e14485932968edf3325fd2fdd"
+ integrity sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==
+ dependencies:
+ "@noble/curves" "^1.4.0"
+ "@noble/hashes" "^1.4.0"
+
webauthn-p256@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/webauthn-p256/-/webauthn-p256-0.0.5.tgz#0baebd2ba8a414b21cc09c0d40f9dd0be96a06bd"
@@ -9244,6 +9710,14 @@ wif@^2.0.1, wif@^2.0.6:
dependencies:
bs58check "<3.0.0"
+wordwrapjs@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f"
+ integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==
+ dependencies:
+ reduce-flatten "^2.0.0"
+ typical "^5.2.0"
+
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
@@ -9277,16 +9751,16 @@ ws@8.17.1, ws@~8.17.1:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b"
integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
+ws@8.18.0, ws@^8.13.0, ws@^8.14.2:
+ version "8.18.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
+ integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
+
ws@^7.5.1:
version "7.5.10"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9"
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
-ws@^8.13.0:
- version "8.18.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc"
- integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
-
xmlhttprequest-ssl@~2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67"
@@ -9367,7 +9841,7 @@ yargs@^15.3.1:
y18n "^4.0.0"
yargs-parser "^18.1.2"
-yargs@^17.5.1, yargs@^17.7.2:
+yargs@^17.7.2:
version "17.7.2"
resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
@@ -9399,9 +9873,17 @@ youtube-player@5.5.2:
load-script "^1.0.0"
sister "^3.0.0"
-zustand@4.4.1:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.1.tgz#0cd3a3e4756f21811bd956418fdc686877e8b3b0"
- integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==
+yup@^1.4.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/yup/-/yup-1.6.0.tgz#70d4e81ed7b73564f86efa25c7c469cadcabf665"
+ integrity sha512-/dny6arMf5CV6ZPAGpXYVw0wR8qcDF15H8zILTQWoRf6jHN1nJNFL1IAlFfUMlO7QGifMVHZle/l8YJdxtWfxg==
dependencies:
- use-sync-external-store "1.2.0"
+ property-expr "^2.0.5"
+ tiny-case "^1.0.3"
+ toposort "^2.0.2"
+ type-fest "^2.19.0"
+
+zustand@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.0.tgz#71f8aaecf185592a3ba2743d7516607361899da9"
+ integrity sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==