From 36cc5b094851d37c85507c23086bbb4081740ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B3za=20Nagy?= Date: Tue, 12 Nov 2024 15:21:33 +0100 Subject: [PATCH 01/10] feat: creat swap page ui --- public/images/gear-icon.svg | 4 + public/images/swap-arrow.svg | 3 + src/app/app.tsx | 2 + .../swap/components/swap-amount-card.tsx | 128 ++++++++++++++++++ .../swap/components/swap-button.tsx | 15 ++ .../swap/components/swap-networks-menu.tsx | 75 ++++++++++ .../swap/components/swap-settings-menu.tsx | 29 ++++ src/app/components/swap/pages/swap-page.tsx | 11 ++ src/app/components/swap/swap.tsx | 49 +++++++ src/styles/app-theme.ts | 1 + 10 files changed, 317 insertions(+) create mode 100644 public/images/gear-icon.svg create mode 100644 public/images/swap-arrow.svg create mode 100644 src/app/components/swap/components/swap-amount-card.tsx create mode 100644 src/app/components/swap/components/swap-button.tsx create mode 100644 src/app/components/swap/components/swap-networks-menu.tsx create mode 100644 src/app/components/swap/components/swap-settings-menu.tsx create mode 100644 src/app/components/swap/pages/swap-page.tsx create mode 100644 src/app/components/swap/swap.tsx 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 d2f0d892..893a06c6 100644 --- a/src/app/app.tsx +++ b/src/app/app.tsx @@ -2,6 +2,7 @@ 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 { Swap } from '@components/swap/swap'; import { getWagmiConfiguration } from '@functions/configuration.functions'; import { AttestorDetailsPage } from '@pages/attestor-details/attestor-details-page'; import { AttestorDetailsSelectPage } from '@pages/attestor-details/attestor-details-select-page'; @@ -47,6 +48,7 @@ export function App(): React.JSX.Element { /> } /> } /> + } /> 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..5df5605d --- /dev/null +++ b/src/app/components/swap/components/swap-amount-card.tsx @@ -0,0 +1,128 @@ +import { ChevronDownIcon } from '@chakra-ui/icons'; +import { HStack, Image, Text, VStack } from '@chakra-ui/react'; + +interface SwapAmountCardProps { + direction: string; + amount: number; + token: string; + inUSD: number; + balance: number; + gasFee?: number; +} + +export function SwapAmountCard({ + direction, + amount, + token, + inUSD, + balance, + gasFee, +}: SwapAmountCardProps): React.JSX.Element | null { + const isBTC = token === 'BTC'; + const borderColor = isBTC ? 'white.01' : 'rgb(188, 143, 249)'; + const tokenDisplay = isBTC ? 'BTC' : 'dlcBTC'; + const tokenImage = isBTC ? '/images/logos/bitcoin-logo.svg' : '/images/logos/dlc-btc-logo.svg'; + + return ( + + + {direction} + + + + + {amount} + + + {tokenDisplay} + + {tokenDisplay} + + {isBTC && } + + + + + {inUSD} + + + Bal. {balance} + + + + {!isBTC && ( + + + + Gas Fee + + + {gasFee} + + + + + Rate + + + 1 BTC = 1 dlcBTC + + + + + Slippage Tolerance + + + Auto + + + + )} + + ); +} 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..4e50cbdf --- /dev/null +++ b/src/app/components/swap/components/swap-button.tsx @@ -0,0 +1,15 @@ +import React from 'react'; + +import { Button } from '@chakra-ui/react'; + +interface SwapButtonProps { + onClick: () => void; +} + +export function SwapButton({ onClick }: SwapButtonProps): React.JSX.Element { + return ( + + ); +} 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..1127f280 --- /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 ( + + setIsMenuOpen(!isMenuOpen)} + h={'50px'} + w={'50px'} + bg={'background.content.02'} + border={'none'} + boxShadow={'2px 2px 4px rgba(0, 0, 0, 0.5)'} + > + {'Selected + + + {chains.map(ethereumNetwork => { + return ( + { + switchChain({ chainId: ethereumNetwork.id }); + setIsMenuOpen(!isMenuOpen); + getNetworkLogo(chain?.id.toString() as EthereumNetworkID); + }} + > + {ethereumNetwork.name} + + ); + })} + + + ); +} 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..565af0a0 --- /dev/null +++ b/src/app/components/swap/components/swap-settings-menu.tsx @@ -0,0 +1,29 @@ +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 ( + + setIsMenuOpen(!isMenuOpen)} + h={'50px'} + w={'50px'} + bg={'background.content.02'} + border={'none'} + boxShadow={'2px 2px 4px rgba(0, 0, 0, 0.5)'} + > + {'Gear + + + Profile Settings + + + ); +} 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..ebf334e3 --- /dev/null +++ b/src/app/components/swap/pages/swap-page.tsx @@ -0,0 +1,11 @@ +import { PageLayout } from '@pages/components/page.layout'; + +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..9b11a36f --- /dev/null +++ b/src/app/components/swap/swap.tsx @@ -0,0 +1,49 @@ +import { HStack, Text, VStack } from '@chakra-ui/react'; + +import { SwapAmountCard } from './components/swap-amount-card'; +import { SwapButton } from './components/swap-button'; +import { SwapNetworksMenu } from './components/swap-networks-menu'; +import { SwapSettingsMenu } from './components/swap-settings-menu'; + +export function Swap(): React.JSX.Element { + return ( + + + + Swap + + + {}} /> + {}} /> + + + + + + {}} /> + + ); +} 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)', From 580a2fb289c371f5ece88a807025ae80dca0b991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B3za=20Nagy?= Date: Wed, 13 Nov 2024 13:58:34 +0100 Subject: [PATCH 02/10] feat: clean up code and export components --- .../swap/components/swap-amount-card.tsx | 71 ++++--------------- .../components/swap-extra-details-card.tsx | 45 ++++++++++++ .../swap/components/swap-header.tsx | 18 +++++ .../swap/components/swap-token-button.tsx | 38 ++++++++++ .../swap/components/swap-token-label.tsx | 25 +++++++ src/app/components/swap/swap.tsx | 18 ++--- 6 files changed, 144 insertions(+), 71 deletions(-) create mode 100644 src/app/components/swap/components/swap-extra-details-card.tsx create mode 100644 src/app/components/swap/components/swap-header.tsx create mode 100644 src/app/components/swap/components/swap-token-button.tsx create mode 100644 src/app/components/swap/components/swap-token-label.tsx diff --git a/src/app/components/swap/components/swap-amount-card.tsx b/src/app/components/swap/components/swap-amount-card.tsx index 5df5605d..2281e61c 100644 --- a/src/app/components/swap/components/swap-amount-card.tsx +++ b/src/app/components/swap/components/swap-amount-card.tsx @@ -1,5 +1,7 @@ -import { ChevronDownIcon } from '@chakra-ui/icons'; -import { HStack, Image, Text, VStack } from '@chakra-ui/react'; +import { HStack, Text, VStack } from '@chakra-ui/react'; + +import { SwapTokenButton } from './swap-token-button'; +import { SwapTokenLabel } from './swap-token-label'; interface SwapAmountCardProps { direction: string; @@ -16,7 +18,6 @@ export function SwapAmountCard({ token, inUSD, balance, - gasFee, }: SwapAmountCardProps): React.JSX.Element | null { const isBTC = token === 'BTC'; const borderColor = isBTC ? 'white.01' : 'rgb(188, 143, 249)'; @@ -58,24 +59,15 @@ export function SwapAmountCard({ > {amount} - - {tokenDisplay} - - {tokenDisplay} - - {isBTC && } - + {isBTC ? ( + {}} + /> + ) : ( + + )} @@ -86,43 +78,6 @@ export function SwapAmountCard({ - {!isBTC && ( - - - - Gas Fee - - - {gasFee} - - - - - Rate - - - 1 BTC = 1 dlcBTC - - - - - Slippage Tolerance - - - Auto - - - - )} ); } 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..18e0bedf --- /dev/null +++ b/src/app/components/swap/components/swap-extra-details-card.tsx @@ -0,0 +1,45 @@ +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 + + + + ); +} 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..77dec0b8 --- /dev/null +++ b/src/app/components/swap/components/swap-header.tsx @@ -0,0 +1,18 @@ +import { HStack, Text } from '@chakra-ui/react'; + +import { SwapNetworksMenu } from './swap-networks-menu'; +import { SwapSettingsMenu } from './swap-settings-menu'; + +export function SwapHeader(): React.JSX.Element { + return ( + + + Swap + + + {}} /> + {}} /> + + + ); +} diff --git a/src/app/components/swap/components/swap-token-button.tsx b/src/app/components/swap/components/swap-token-button.tsx new file mode 100644 index 00000000..1cb5ef29 --- /dev/null +++ b/src/app/components/swap/components/swap-token-button.tsx @@ -0,0 +1,38 @@ +import { ChevronDownIcon } from '@chakra-ui/icons'; +import { Button, HStack, Image, Text } from '@chakra-ui/react'; + +interface SwapTokenButtonProps { + tokenImage: string; + tokenDisplay: string; + onClick: () => void; +} + +export function SwapTokenButton({ + tokenImage, + tokenDisplay, + onClick, +}: SwapTokenButtonProps): React.JSX.Element { + return ( + + ); +} 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} + + {tokenDisplay} + + + ); +} diff --git a/src/app/components/swap/swap.tsx b/src/app/components/swap/swap.tsx index 9b11a36f..58aee8c0 100644 --- a/src/app/components/swap/swap.tsx +++ b/src/app/components/swap/swap.tsx @@ -1,9 +1,9 @@ -import { HStack, Text, VStack } from '@chakra-ui/react'; +import { VStack } from '@chakra-ui/react'; import { SwapAmountCard } from './components/swap-amount-card'; import { SwapButton } from './components/swap-button'; -import { SwapNetworksMenu } from './components/swap-networks-menu'; -import { SwapSettingsMenu } from './components/swap-settings-menu'; +import { SwapExtraDetailsCard } from './components/swap-extra-details-card'; +import { SwapHeader } from './components/swap-header'; export function Swap(): React.JSX.Element { return ( @@ -18,16 +18,7 @@ export function Swap(): React.JSX.Element { borderColor={'white.03'} spacing={'24px'} > - - - Swap - - - {}} /> - {}} /> - - - + + {}} /> ); From 7b6889108a4140ed1ffe2c6a5031dd58afb7b689 Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Mon, 25 Nov 2024 10:31:02 +0100 Subject: [PATCH 03/10] wip: add garden swap initial code --- package.json | 7 +- .../burn-transaction-screen.tsx | 7 +- .../setup-vault-screen/setup-vault-screen.tsx | 4 +- src/app/functions/configuration.functions.ts | 22 +- src/app/hooks/use-swap.ts | 49 ++ yarn.lock | 566 ++++++++++++++++-- 6 files changed, 588 insertions(+), 67 deletions(-) create mode 100644 src/app/hooks/use-swap.ts diff --git a/package.json b/package.json index 0e30fd93..87d6b66d 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "preview": "vite preview" }, "dependencies": { + "@catalogfi/wallets": "^0.2.51", "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.8.2", "@emotion/react": "^11.11.4", @@ -30,6 +31,8 @@ "@fontsource/inter": "^5.0.18", "@fontsource/onest": "^5.0.3", "@fontsource/poppins": "^5.0.8", + "@gardenfi/core": "^0.1.15", + "@gardenfi/orderbook": "^0.1.11", "@gemwallet/api": "^3.8.0", "@ledgerhq/hw-app-xrp": "^6.29.4", "@ledgerhq/hw-transport-webusb": "^6.28.6", @@ -46,9 +49,9 @@ "concurrently": "^8.2.2", "d3": "^7.9.0", "decimal.js": "^10.4.3", - "dlc-btc-lib": "2.4.17", + "dlc-btc-lib": "file:../dlc-btc-lib", "dotenv": "^16.3.1", - "ethers": "5.7.2", + "ethers": "^6.0.0", "formik": "^2.4.5", "framer-motion": "^11.2.10", "ledger-bitcoin": "^0.2.3", 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 75159791..6dd46eda 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 43121e47..13dc3ce7 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/functions/configuration.functions.ts b/src/app/functions/configuration.functions.ts index 263dc1f7..1c11b519 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.ts b/src/app/hooks/use-swap.ts new file mode 100644 index 00000000..6a2c30c3 --- /dev/null +++ b/src/app/hooks/use-swap.ts @@ -0,0 +1,49 @@ +import { BitcoinNetwork, BitcoinOTA, BitcoinProvider } from '@catalogfi/wallets'; +import { useEthersSigner } from '@functions/configuration.functions'; +import { Chains, JsonRp, Orderbook } from '@gardenfi/orderbook'; + +const CATALOGFI_BITCOIN_NETWORK_MAP = { + regtest: BitcoinNetwork.Regtest, + testnet: BitcoinNetwork.Testnet, + mainnet: BitcoinNetwork.Mainnet, +}; + +interface UseSwapReturnType {} + +export function useSwap(): UseSwapReturnType { + const { getEthersSigner } = useEthersSigner(); + const bitcoinProvider = new BitcoinProvider( + CATALOGFI_BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork], + appConfiguration.bitcoinBlockchainURL + ); + + async function signSwapRequest() { + const ethersSigner = await getEthersSigner(); + if (!ethersSigner) { + throw new Error('Ethers Signer is not available'); + } + + const orderbook = await Orderbook.init({ + url: 'http://localhost:8080', + signer: ethersSigner as JsonRpcSigner, + opts: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + domain: (window as any).location.host, + store: localStorage, + }, + }); + + const wallets = { + [Chains.bitcoin_regtest]: new BitcoinOTA(bitcoinProvider, signer), + [Chains.ethereum_localnet]: new EVMWallet(signer), + }; + + const garden = new GardenJS(orderbook, wallets); + } + + setGarden(garden, wallets[Chains.bitcoin_regtest]); + + return { + swap, + }; +} diff --git a/yarn.lock b/yarn.lock index a5f40f86..2e4bfd66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,16 @@ 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.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@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" @@ -292,6 +302,65 @@ "@noble/hashes" "^1.1.5" "@noble/secp256k1" "^1.7.1" +"@catalogfi/encrypto@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@catalogfi/encrypto/-/encrypto-0.1.5.tgz#1f81d25522b3790b50fc5b027e0716799b7370a0" + integrity sha512-iYoC8ppi9xelKfsnbTHJY2Z6J3mVwTeTnKtM3DdyW1i8mrYbFE5vdQWbX+MeFflyOWEYcsOtJXw36/D2m+7zWQ== + +"@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.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.43": + version "0.2.43" + resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.43.tgz#da348b0bcf9eb70a84e5c1d459f8e4d77803276e" + integrity sha512-i3JhEgFX5a+hsHPxa+5sMRL1kMX/bcZ2XUfdy9QxOfLPzIaS6Zp+SW1s+3J4WhCqNJCGruCarniykmXOh/8JHQ== + dependencies: + "@catalogfi/encrypto" "^0.1.5" + "@catalogfi/extension" "^0.1.1" + "@catalogfi/utils" "^0.1.6" + "@noble/hashes" "^1.4.0" + "@typechain/ethers-v6" "^0.5.1" + 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" + ethers "6.8.0" + tiny-secp256k1 "^2.2.3" + typechain "^8.3.2" + utf-8-validate "^6.0.3" + uuid "^9.0.1" + yup "^1.4.0" + +"@catalogfi/wallets@^0.2.45", "@catalogfi/wallets@^0.2.51": + version "0.2.51" + resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.51.tgz#d734639827457773d9b8a60732eabb286f51934b" + integrity sha512-bLLW0+uCxtF1DgX58ykBPr3XhQJ4xLOLK30ZKx4fA1izmawfxxZtlrQypCZNxiFOEP5Ux8fkT617O8uRTOx53w== + 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" @@ -1513,6 +1582,42 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" +"@ethers/v5@npm:ethers@5": + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" @@ -1875,6 +1980,29 @@ resolved "https://registry.npmjs.org/@fontsource/poppins/-/poppins-5.0.12.tgz" integrity sha512-0qzBxtIJLh82iMJ9pCXKYwGs1zyS+jyUmwVJ59+JdYnEaFVkDsxVOk9yDWfVOs14ALUneodU2m5YSGma6dCYCw== +"@gardenfi/core@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.1.15.tgz#34b6346307bcde9d9af28888e0b8b32c16b9cc8a" + integrity sha512-5NAKRz8K/l6M0ecQ7/vpFK4z3FvzO6wx84afZvja36AE5ClGHDDZGkWlzJvYuADuaHnatdi6C9xUbw6bE+Ey5A== + dependencies: + "@catalogfi/utils" "^0.1.6" + "@catalogfi/wallets" "^0.2.45" + "@gardenfi/orderbook" "^0.1.10" + ethers "6.8.0" + +"@gardenfi/orderbook@^0.1.10", "@gardenfi/orderbook@^0.1.11": + version "0.1.11" + resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.1.11.tgz#52d9f22835f124ea9df71d38a0c37b95693a555a" + integrity sha512-hM/fDjxKVOE8gob2bB+IhxggoZrtVKKIbTbqOg6yXZ2GA+83Kb6A/qQSenYFke/ZPF3FFYP9XuVjcaz63fykJg== + dependencies: + "@catalogfi/utils" "^0.1.6" + "@catalogfi/wallets" "0.2.43" + bufferutil "^4.0.8" + ethers "6.8.0" + siwe "^2.1.4" + utf-8-validate "^6.0.3" + ws "^8.14.2" + "@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" @@ -2315,6 +2443,13 @@ "@netlify/node-cookies" "^0.1.0" urlpattern-polyfill "8.0.2" +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + "@noble/curves@1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" @@ -2329,19 +2464,24 @@ 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/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + "@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.1.2", "@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== @@ -2699,7 +2839,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== @@ -2716,7 +2856,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== @@ -2744,6 +2884,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" @@ -2932,6 +3082,14 @@ javascript-natural-sort "0.7.1" lodash "^4.17.21" +"@typechain/ethers-v6@^0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz#42fe214a19a8b687086c93189b301e2b878797ea" + integrity sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA== + dependencies: + lodash "^4.17.15" + ts-essentials "^7.0.1" + "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" @@ -3286,11 +3444,28 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + +"@types/node@22.7.5": + version "22.7.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.5.tgz#cfde981727a7ab3611a481510b473ae54442b92b" + integrity sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ== + dependencies: + undici-types "~6.19.2" + "@types/parse-json@^4.0.0": version "4.0.2" 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" @@ -3848,6 +4023,11 @@ 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== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -3875,6 +4055,11 @@ aes-js@3.0.0: resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" @@ -3930,6 +4115,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" @@ -3949,6 +4139,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" @@ -4185,6 +4385,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" @@ -4202,7 +4409,7 @@ bitcoin-ops@^1.3.0, bitcoin-ops@^1.4.0: resolved "https://registry.yarnpkg.com/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz#e45de620398e22fd4ca6023de43974ff42240278" integrity sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow== -bitcoinjs-lib@6.1.6: +bitcoinjs-lib@6.1.6, bitcoinjs-lib@^6.1.5: version "6.1.6" resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.6.tgz#f57c17c82511f860f11946d784c18da39f8618a8" integrity sha512-Fk8+Vc+e2rMoDU5gXkW9tD+313rhkm5h6N9HfZxXvYU9LedttVvmXKTgd9k5rsQJjkSfsv6XRM8uhJv94SrvcA== @@ -4430,7 +4637,7 @@ 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" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4536,6 +4743,26 @@ color2k@^2.0.2: resolved "https://registry.npmjs.org/color2k/-/color2k-2.0.3.tgz" integrity sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog== +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" @@ -5103,6 +5330,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" @@ -5195,11 +5427,10 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dlc-btc-lib@2.4.17: +"dlc-btc-lib@file:../dlc-btc-lib": version "2.4.17" - resolved "https://registry.yarnpkg.com/dlc-btc-lib/-/dlc-btc-lib-2.4.17.tgz#44ff9dab788562cfa08ad299f65b275f7f7f5ff4" - integrity sha512-8gzJ40MttJHHtO8i0+qMoEtltVCwQ6U7y76w93lI/7jvVs4fBu+HlQvFtmfboNBJF1uAsoO1Hic5W6OzVlIrgQ== dependencies: + "@ethers/v5" "npm:ethers@5" "@gemwallet/api" "3.8.0" "@ledgerhq/hw-app-btc" "10.4.1" "@ledgerhq/hw-app-xrp" "6.29.4" @@ -5211,7 +5442,7 @@ dlc-btc-lib@2.4.17: bitcoinjs-lib "6.1.6" chalk "5.3.0" decimal.js "10.4.3" - ethers "5.7.2" + ethers "6.13.4" ledger-bitcoin "0.2.3" prompts "2.4.2" ramda "0.30.1" @@ -5800,41 +6031,31 @@ ethereum-cryptography@^2.0.0: "@scure/bip32" "1.4.0" "@scure/bip39" "1.3.0" -ethers@5.7.2: - version "5.7.2" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== +ethers@6.13.4, ethers@^6.0.0: + version "6.13.4" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.4.tgz#bd3e1c3dc1e7dc8ce10f9ffb4ee40967a651b53c" + integrity sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "22.7.5" + aes-js "4.0.0-beta.5" + tslib "2.7.0" + ws "8.17.1" + +ethers@6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.8.0.tgz#0a26f57e96fd697cefcfcef464e0c325689d1daf" + integrity sha512-zrFbmQRlraM+cU5mE4CZTLBurZTs2gdp2ld0nG/f3ecBK+x6lZ69KSxBqZ4NjclxwfTxl5LeNufcBbMsTdY53Q== dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.5.0" event-target-shim@^5.0.0: version "5.0.1" @@ -5953,6 +6174,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" @@ -6030,6 +6258,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" @@ -6134,6 +6371,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" @@ -6184,6 +6433,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" @@ -6663,6 +6917,11 @@ isows@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" @@ -6684,7 +6943,7 @@ 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" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== @@ -6756,6 +7015,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" @@ -6906,6 +7172,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" @@ -6921,7 +7192,7 @@ 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" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7045,7 +7316,7 @@ 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" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -7062,6 +7333,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" @@ -7332,6 +7608,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" @@ -7550,6 +7839,11 @@ prelude-ls@^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" @@ -7596,6 +7890,11 @@ 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" @@ -7893,6 +8192,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" @@ -8271,6 +8575,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" @@ -8369,6 +8683,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" @@ -8563,6 +8882,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" @@ -8575,6 +8904,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" @@ -8591,7 +8925,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== @@ -8653,6 +8987,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" @@ -8668,6 +9007,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" @@ -8701,6 +9055,11 @@ tslib@2.4.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" @@ -8735,6 +9094,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" @@ -8796,6 +9176,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" @@ -8845,6 +9235,11 @@ undici-types@~5.26.4: resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + undici@^6.11.1: version "6.19.8" resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.8.tgz#002d7c8a28f8cc3a44ff33c3d4be4d85e15d40e1" @@ -8866,6 +9261,11 @@ unfetch@^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" resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-1.10.2.tgz#fb7590ada8b30e83be9318f85100158b02a76dae" @@ -8904,7 +9304,7 @@ 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" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== @@ -8948,6 +9348,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" @@ -8974,6 +9381,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" @@ -9004,6 +9416,21 @@ 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" + vite-node@0.34.6: version "0.34.6" resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz" @@ -9104,6 +9531,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" @@ -9212,6 +9647,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" @@ -9245,16 +9688,21 @@ 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@8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + 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,6 +9815,16 @@ youtube-player@5.5.2: load-script "^1.0.0" sister "^3.0.0" +yup@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/yup/-/yup-1.4.0.tgz#898dcd660f9fb97c41f181839d3d65c3ee15a43e" + integrity sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg== + dependencies: + property-expr "^2.0.5" + tiny-case "^1.0.3" + toposort "^2.0.2" + type-fest "^2.19.0" + zustand@4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.1.tgz#0cd3a3e4756f21811bd956418fdc686877e8b3b0" From 40b33d4a57939043b45d635542530b2c8b9589d0 Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Mon, 25 Nov 2024 14:18:30 +0100 Subject: [PATCH 04/10] feat: last commit before changing garden sdk version --- package.json | 8 +++---- src/app/hooks/use-swap.ts | 44 ++++++++++++++++++++++++++++++++------- yarn.lock | 8 +++---- 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 87d6b66d..cf0ef89f 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "preview": "vite preview" }, "dependencies": { - "@catalogfi/wallets": "^0.2.51", + "@catalogfi/wallets": "^0.2.45", "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.8.2", "@emotion/react": "^11.11.4", @@ -32,7 +32,7 @@ "@fontsource/onest": "^5.0.3", "@fontsource/poppins": "^5.0.8", "@gardenfi/core": "^0.1.15", - "@gardenfi/orderbook": "^0.1.11", + "@gardenfi/orderbook": "^0.1.4", "@gemwallet/api": "^3.8.0", "@ledgerhq/hw-app-xrp": "^6.29.4", "@ledgerhq/hw-transport-webusb": "^6.28.6", @@ -51,7 +51,7 @@ "decimal.js": "^10.4.3", "dlc-btc-lib": "file:../dlc-btc-lib", "dotenv": "^16.3.1", - "ethers": "^6.0.0", + "ethers": "6.8.0", "formik": "^2.4.5", "framer-motion": "^11.2.10", "ledger-bitcoin": "^0.2.3", @@ -67,7 +67,7 @@ "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", "xrpl": "^4.0.0" diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts index 6a2c30c3..83aa513e 100644 --- a/src/app/hooks/use-swap.ts +++ b/src/app/hooks/use-swap.ts @@ -1,6 +1,12 @@ -import { BitcoinNetwork, BitcoinOTA, BitcoinProvider } from '@catalogfi/wallets'; +import { useContext } from 'react'; + +import { BitcoinNetwork, BitcoinOTA, BitcoinProvider, EVMWallet } from '@catalogfi/wallets'; import { useEthersSigner } from '@functions/configuration.functions'; -import { Chains, JsonRp, Orderbook } from '@gardenfi/orderbook'; +import { GardenJS } from '@gardenfi/core'; +import { Asset, Assets, Chains, Orderbook } from '@gardenfi/orderbook'; +import { EthereumNetworkConfigurationContext } from '@providers/ethereum-network-configuration.provider'; +import { shiftValue } from 'dlc-btc-lib/utilities'; +import { usePublicClient, useWalletClient } from 'wagmi'; const CATALOGFI_BITCOIN_NETWORK_MAP = { regtest: BitcoinNetwork.Regtest, @@ -11,7 +17,12 @@ const CATALOGFI_BITCOIN_NETWORK_MAP = { interface UseSwapReturnType {} export function useSwap(): UseSwapReturnType { + const { data: walletClient } = useWalletClient(); // Destructure data property + const publicClient = usePublicClient(); const { getEthersSigner } = useEthersSigner(); + const { + ethereumNetworkConfiguration: { chain, dlcBTCContract }, + } = useContext(EthereumNetworkConfigurationContext); const bitcoinProvider = new BitcoinProvider( CATALOGFI_BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork], appConfiguration.bitcoinBlockchainURL @@ -25,7 +36,7 @@ export function useSwap(): UseSwapReturnType { const orderbook = await Orderbook.init({ url: 'http://localhost:8080', - signer: ethersSigner as JsonRpcSigner, + signer: ethersSigner, opts: { // eslint-disable-next-line @typescript-eslint/no-explicit-any domain: (window as any).location.host, @@ -33,17 +44,34 @@ export function useSwap(): UseSwapReturnType { }, }); + const account = walletClient?.account; + + if (!account) { + throw new Error('Account is not available'); + } const wallets = { - [Chains.bitcoin_regtest]: new BitcoinOTA(bitcoinProvider, signer), - [Chains.ethereum_localnet]: new EVMWallet(signer), + [Chains.bitcoin_regtest]: new BitcoinOTA(bitcoinProvider, account, chain.id), + [Chains.ethereum_localnet]: new EVMWallet(walletClient!, publicClient!), }; const garden = new GardenJS(orderbook, wallets); - } - setGarden(garden, wallets[Chains.bitcoin_regtest]); + const iBTCAsset: Asset = { + chain: Chains.ethereum_sepolia, + symbol: 'IBTC', + address: await dlcBTCContract.getAddress(), + decimals: await dlcBTCContract.decimals(), + isToken: true, + name: 'iBTC', + thumbnail: '', + }; + + await garden.swap(iBTCAsset, Assets.bitcoin_regtest.BTC, shiftValue(0.01), shiftValue(0.01), { + btcUserAddress: 'bcrt1qk5q0takwdva20adgw8zf4vy07w9529gpfkrv6v', + }); + } return { - swap, + signSwapRequest, }; } diff --git a/yarn.lock b/yarn.lock index 2e4bfd66..104d672b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -340,7 +340,7 @@ uuid "^9.0.1" yup "^1.4.0" -"@catalogfi/wallets@^0.2.45", "@catalogfi/wallets@^0.2.51": +"@catalogfi/wallets@^0.2.45": version "0.2.51" resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.51.tgz#d734639827457773d9b8a60732eabb286f51934b" integrity sha512-bLLW0+uCxtF1DgX58ykBPr3XhQJ4xLOLK30ZKx4fA1izmawfxxZtlrQypCZNxiFOEP5Ux8fkT617O8uRTOx53w== @@ -1990,7 +1990,7 @@ "@gardenfi/orderbook" "^0.1.10" ethers "6.8.0" -"@gardenfi/orderbook@^0.1.10", "@gardenfi/orderbook@^0.1.11": +"@gardenfi/orderbook@^0.1.10", "@gardenfi/orderbook@^0.1.4": version "0.1.11" resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.1.11.tgz#52d9f22835f124ea9df71d38a0c37b95693a555a" integrity sha512-hM/fDjxKVOE8gob2bB+IhxggoZrtVKKIbTbqOg6yXZ2GA+83Kb6A/qQSenYFke/ZPF3FFYP9XuVjcaz63fykJg== @@ -6031,7 +6031,7 @@ ethereum-cryptography@^2.0.0: "@scure/bip32" "1.4.0" "@scure/bip39" "1.3.0" -ethers@6.13.4, ethers@^6.0.0: +ethers@6.13.4: version "6.13.4" resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.4.tgz#bd3e1c3dc1e7dc8ce10f9ffb4ee40967a651b53c" integrity sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA== @@ -9401,7 +9401,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== From 3d1f739f2e818cd63a7fc402ce8643833f53e47a Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Mon, 25 Nov 2024 14:46:18 +0100 Subject: [PATCH 05/10] feat: add garden provider --- package.json | 1 + src/app/app.tsx | 76 ++-- src/app/hooks/use-swap.ts | 6 - src/shared/constants/garden.constants.ts | 7 + yarn.lock | 425 ++++++++++++++++++++++- 5 files changed, 470 insertions(+), 45 deletions(-) create mode 100644 src/shared/constants/garden.constants.ts diff --git a/package.json b/package.json index cf0ef89f..6ab8d3f4 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "@fontsource/poppins": "^5.0.8", "@gardenfi/core": "^0.1.15", "@gardenfi/orderbook": "^0.1.4", + "@gardenfi/react-hooks": "^0.0.1-beta.1", "@gemwallet/api": "^3.8.0", "@ledgerhq/hw-app-xrp": "^6.29.4", "@ledgerhq/hw-transport-webusb": "^6.28.6", diff --git a/src/app/app.tsx b/src/app/app.tsx index b23da487..504044e3 100644 --- a/src/app/app.tsx +++ b/src/app/app.tsx @@ -4,6 +4,7 @@ import { AppLayout } from '@components/app.layout'; import { MerchantDetails } from '@components/proof-of-reserve/components/merchant-details/merchant-details'; import { Swap } from '@components/swap/swap'; 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'; @@ -32,40 +33,47 @@ export function App(): React.JSX.Element { return ( - - - - - - - - - - - - } /> - } /> - {/* } /> */} - } /> - } /> - } - /> - } /> - } /> - } /> - - - - - - - - - - - + + + + + + + + + + + + + } /> + } /> + {/* } /> */} + } /> + } /> + } + /> + } + /> + } /> + } /> + + + + + + + + + + + + ); diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts index 83aa513e..13909a1e 100644 --- a/src/app/hooks/use-swap.ts +++ b/src/app/hooks/use-swap.ts @@ -8,12 +8,6 @@ import { EthereumNetworkConfigurationContext } from '@providers/ethereum-network import { shiftValue } from 'dlc-btc-lib/utilities'; import { usePublicClient, useWalletClient } from 'wagmi'; -const CATALOGFI_BITCOIN_NETWORK_MAP = { - regtest: BitcoinNetwork.Regtest, - testnet: BitcoinNetwork.Testnet, - mainnet: BitcoinNetwork.Mainnet, -}; - interface UseSwapReturnType {} export function useSwap(): UseSwapReturnType { diff --git a/src/shared/constants/garden.constants.ts b/src/shared/constants/garden.constants.ts new file mode 100644 index 00000000..b819529f --- /dev/null +++ b/src/shared/constants/garden.constants.ts @@ -0,0 +1,7 @@ +import { BitcoinNetwork } from '@catalogfi/wallets'; + +export const CATALOGFI_BITCOIN_NETWORK_MAP = { + regtest: BitcoinNetwork.Regtest, + testnet: BitcoinNetwork.Testnet, + mainnet: BitcoinNetwork.Mainnet, +}; diff --git a/yarn.lock b/yarn.lock index 104d672b..57f62fea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -312,7 +312,7 @@ 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.6": +"@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== @@ -340,7 +340,7 @@ uuid "^9.0.1" yup "^1.4.0" -"@catalogfi/wallets@^0.2.45": +"@catalogfi/wallets@^0.2.45", "@catalogfi/wallets@^0.2.49", "@catalogfi/wallets@^0.2.51": version "0.2.51" resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.51.tgz#d734639827457773d9b8a60732eabb286f51934b" integrity sha512-bLLW0+uCxtF1DgX58ykBPr3XhQJ4xLOLK30ZKx4fA1izmawfxxZtlrQypCZNxiFOEP5Ux8fkT617O8uRTOx53w== @@ -1186,6 +1186,21 @@ preact "^10.16.0" sha.js "^2.4.11" +"@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: + "@noble/hashes" "^1.4.0" + clsx "^1.2.1" + eventemitter3 "^5.0.1" + preact "^10.24.2" + +"@ecies/ciphers@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@ecies/ciphers/-/ciphers-0.2.1.tgz#a3119516fb55d27ed2d21c497b1c4988f0b4ca02" + integrity sha512-ezMihhjW24VNK/2qQR7lH8xCQY24nk0XHF/kwJ1OuiiY5iEwQXOcKVSy47fSoHPRG8gVGXcK5SgtONDk5xMwtQ== + "@emotion/babel-plugin@^11.11.0": version "11.11.0" resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz" @@ -1990,6 +2005,21 @@ "@gardenfi/orderbook" "^0.1.10" ethers "6.8.0" +"@gardenfi/core@^0.2.0-beta.1": + version "0.2.0-beta.90" + resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.2.0-beta.90.tgz#4bd4cc03e4eee43314cfe3589e670ddb6af3f25e" + integrity sha512-suxl9CgQA3Mus4/QdqF4DX/5muc4vjSV+9FENHToAL/1Sufy2DrzQyZk4qN3udCqKynLAZMH0dCh9Pv14Mwh1A== + dependencies: + "@catalogfi/utils" "^0.1.6" + "@catalogfi/wallets" "^0.2.51" + "@gardenfi/orderbook" "^0.2.0-beta.27" + "@gardenfi/utils" "^0.0.1-beta.18" + 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.1.10", "@gardenfi/orderbook@^0.1.4": version "0.1.11" resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.1.11.tgz#52d9f22835f124ea9df71d38a0c37b95693a555a" @@ -2003,6 +2033,53 @@ utf-8-validate "^6.0.3" ws "^8.14.2" +"@gardenfi/orderbook@^0.2.0-beta.1", "@gardenfi/orderbook@^0.2.0-beta.27": + version "0.2.0-beta.27" + resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.2.0-beta.27.tgz#71099c76dbfc9c8d6975b4f9339ff98fd7131e75" + integrity sha512-/GdRnrb+896myOlZHeqzn322ESWOLsI1AVKGb/g1ar1iT25xHh6BX+gHr6QVOQjpm2EHtp0UbJ3ZzVybYO26CA== + dependencies: + "@catalogfi/utils" "^0.1.6" + "@gardenfi/utils" "^0.0.1-beta.18" + 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.1": + version "0.0.1-beta.1" + resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.1.tgz#e303c281d7d120dbc2748606609972db21d3585e" + integrity sha512-R273V7nTuDpFT+axLYQWt/ElOqYfPXp8gL9uUe7PqJ58j6wJohv6W7pKuHayU06GUly+hofILhrZUtZZ6D/8gw== + dependencies: + "@catalogfi/utils" "^0.1.6" + "@catalogfi/wallets" "^0.2.49" + "@gardenfi/core" "^0.2.0-beta.1" + "@gardenfi/orderbook" "^0.2.0-beta.1" + "@gardenfi/utils" "^0.0.1-beta.1" + react "^18.3.1" + viem "^2.21.15" + wagmi "^2.12.16" + +"@gardenfi/utils@^0.0.1-beta.1": + version "0.0.1-beta.1" + resolved "https://registry.yarnpkg.com/@gardenfi/utils/-/utils-0.0.1-beta.1.tgz#cd3fc69f4ea1b48b0fb61305821e07fa7acd7368" + integrity sha512-bLfnAVZ4jXnpAtmKrnBdqAAfvQXlClt6HC4fok6GjqvJpGKgV0ALKYTGfYEOTRCvYQqbuaHVXV2j7Bp/hTnuMg== + dependencies: + "@catalogfi/utils" "^0.1.11" + axios "^1.7.2" + siwe "^2.3.2" + viem "^2.21.15" + +"@gardenfi/utils@^0.0.1-beta.18": + version "0.0.1-beta.18" + resolved "https://registry.yarnpkg.com/@gardenfi/utils/-/utils-0.0.1-beta.18.tgz#3d550c8771b553b50f058374558bedb629540e86" + integrity sha512-ZVjN5ozMoQ/OiUim9t+3vv6s887f8CXH/t90vyoY8cYLyKmK4PGBIo9ffF55CNSHe89xGALVR1EQpLbAFOnE8A== + 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" @@ -2273,6 +2350,17 @@ utf-8-validate "^5.0.2" uuid "^8.3.2" +"@metamask/sdk-communication-layer@0.30.0": + version "0.30.0" + resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.30.0.tgz#2bd252cfce3ac4260a6c8c9359732ab5e839b75e" + integrity sha512-q5nbdYkAf76MsZxi1l5MJEAyd8sY9jLRapC8a7x1Q1BNV4rzQeFeux/d0mJ/jTR2LAwbnLZs2rL226AM75oK4w== + dependencies: + bufferutil "^4.0.8" + date-fns "^2.29.3" + debug "^4.3.4" + 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" @@ -2280,6 +2368,13 @@ dependencies: qr-code-styling "^1.6.0-rc.1" +"@metamask/sdk-install-modal-web@0.30.0": + version "0.30.0" + resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.30.0.tgz#9ec634201b1b47bb30064f42ae0efba7f204bb0a" + integrity sha512-1gT533Huja9tK3cmttvcpZirRAtWJ7vnYH+lnNRKEj2xIP335Df2cOwS+zqNC4GlRCZw7A3IsTjIzlKoxBY1uQ== + dependencies: + qr-code-styling "^1.6.0-rc.1" + "@metamask/sdk@0.27.0": version "0.27.0" resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.27.0.tgz#38617985b8305a0f5d482cdd7af8ddec87968bb7" @@ -2308,6 +2403,32 @@ util "^0.12.4" uuid "^8.3.2" +"@metamask/sdk@0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.30.1.tgz#63126ad769566098000cc3c2cd513d18808471f3" + integrity sha512-NelEjJZsF5wVpSQELpmvXtnS9+C6HdxGQ4GB9jMRzeejphmPyKqmrIGM6XtaPrJtlpX+40AcJ2dtBQcjJVzpbQ== + dependencies: + "@metamask/onboarding" "^1.0.1" + "@metamask/providers" "16.1.0" + "@metamask/sdk-communication-layer" "0.30.0" + "@metamask/sdk-install-modal-web" "0.30.0" + bowser "^2.9.0" + cross-fetch "^4.0.0" + debug "^4.3.4" + eciesjs "^0.4.8" + eth-rpc-errors "^4.0.3" + eventemitter2 "^6.4.7" + i18next "23.11.5" + i18next-browser-languagedetector "7.1.0" + 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" + socket.io-client "^4.5.1" + util "^0.12.4" + uuid "^8.3.2" + "@metamask/superstruct@^3.0.0", "@metamask/superstruct@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@metamask/superstruct/-/superstruct-3.1.0.tgz#148f786a674fba3ac885c1093ab718515bf7f648" @@ -2443,6 +2564,11 @@ "@netlify/node-cookies" "^0.1.0" urlpattern-polyfill "8.0.2" +"@noble/ciphers@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.1.0.tgz#ebe2d3aa656c1afe6a14bb95af73f3851c162d73" + integrity sha512-gwcX7IKSuCtlepJVa6sDLMB2EDaoLguFL6HxagKeFIzWGRfFE3mwcHs8mjx4yQY+rV736XGBhfl6Lw80YrTDTw== + "@noble/curves@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" @@ -2797,6 +2923,14 @@ "@safe-global/safe-apps-sdk" "^9.1.0" events "^3.3.0" +"@safe-global/safe-apps-provider@0.18.4": + version "0.18.4" + resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.4.tgz#53df912aa20d933f6b14c5bcb0737a8cd47def57" + integrity sha512-SWYeG3gyTO6wGHMSokfHakZ9isByn2mHsM0VohIorYFFEyGGmJ89btnTm+DqDUSoQtvWAatZB7XNy6CaYMvqtg== + dependencies: + "@safe-global/safe-apps-sdk" "^9.1.0" + events "^3.3.0" + "@safe-global/safe-apps-sdk@9.1.0", "@safe-global/safe-apps-sdk@^9.1.0": version "9.1.0" resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz#0e65913e0f202e529ed3c846e0f5a98c2d35aa98" @@ -3699,6 +3833,18 @@ "@walletconnect/modal" "2.6.2" cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3" +"@wagmi/connectors@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.5.0.tgz#94bf6730dfea0032426230cd45b49183ccefb714" + integrity sha512-Ywzj6sYH3z2zp/n9C9sYGJj/uX9UMQQN5MQMKICnQIwkFmP9Uk78KiETvQHa0IHFusrrfviE2pr8XMsNNg9HTg== + dependencies: + "@coinbase/wallet-sdk" "4.2.3" + "@metamask/sdk" "0.30.1" + "@safe-global/safe-apps-provider" "0.18.4" + "@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.13.1": version "2.13.1" resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.13.1.tgz#d9cf910775eca0e1aeb6fe9ad787264ee32632f3" @@ -3708,6 +3854,15 @@ mipd "0.0.7" zustand "4.4.1" +"@wagmi/core@2.15.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.15.0.tgz#a35c790b52096effa65e02ba89932f8aff23c1b9" + integrity sha512-nkvNbIYn52F0ZCUsF9wNu6mQ083XZGw2dUtT7aDTex+C+gvhDTUD7ef2nhEd5RdPuQmWMFpJGp4zvoykwSB1RQ== + dependencies: + eventemitter3 "5.0.1" + mipd "0.0.7" + 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" @@ -3731,6 +3886,28 @@ lodash.isequal "4.5.0" uint8arrays "3.1.0" +"@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" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "1.1.1" + "@walletconnect/logger" "2.1.2" + "@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.17.0" + "@walletconnect/utils" "2.17.0" + events "3.3.0" + lodash.isequal "4.5.0" + uint8arrays "3.1.0" + "@walletconnect/environment@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7" @@ -3754,6 +3931,22 @@ "@walletconnect/utils" "2.14.0" events "3.3.0" +"@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.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": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" @@ -3841,6 +4034,13 @@ dependencies: valtio "1.11.2" +"@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" @@ -3851,6 +4051,16 @@ motion "10.16.2" qrcode "1.5.3" +"@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.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" @@ -3859,6 +4069,14 @@ "@walletconnect/modal-core" "2.6.2" "@walletconnect/modal-ui" "2.6.2" +"@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.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" @@ -3866,6 +4084,13 @@ dependencies: "@walletconnect/jsonrpc-types" "^1.0.2" +"@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" + "@walletconnect/relay-auth@1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" @@ -3900,6 +4125,21 @@ "@walletconnect/utils" "2.14.0" events "3.3.0" +"@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.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.17.0" + "@walletconnect/utils" "2.17.0" + events "3.3.0" + "@walletconnect/time@1.0.2", "@walletconnect/time@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" @@ -3919,6 +4159,18 @@ "@walletconnect/logger" "2.1.2" events "3.3.0" +"@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" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/keyvaluestorage" "1.1.1" + "@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" @@ -3934,6 +4186,21 @@ "@walletconnect/utils" "2.14.0" events "3.3.0" +"@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.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" @@ -3954,6 +4221,28 @@ query-string "7.1.3" uint8arrays "3.1.0" +"@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.11" + "@walletconnect/relay-auth" "1.0.4" + "@walletconnect/safe-json" "1.0.2" + "@walletconnect/time" "1.0.2" + "@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" + "@walletconnect/window-getters@1.0.1", "@walletconnect/window-getters@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" @@ -4270,6 +4559,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" @@ -4287,6 +4581,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.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + 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" @@ -4335,7 +4638,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== @@ -4409,7 +4712,7 @@ bitcoin-ops@^1.3.0, bitcoin-ops@^1.4.0: resolved "https://registry.yarnpkg.com/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz#e45de620398e22fd4ca6023de43974ff42240278" integrity sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow== -bitcoinjs-lib@6.1.6, bitcoinjs-lib@^6.1.5: +bitcoinjs-lib@6.1.6, bitcoinjs-lib@^6.1.5, bitcoinjs-lib@^6.1.6: version "6.1.6" resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.6.tgz#f57c17c82511f860f11946d784c18da39f8618a8" integrity sha512-Fk8+Vc+e2rMoDU5gXkW9tD+313rhkm5h6N9HfZxXvYU9LedttVvmXKTgd9k5rsQJjkSfsv6XRM8uhJv94SrvcA== @@ -4743,6 +5046,13 @@ 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" @@ -5385,6 +5695,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" @@ -5489,6 +5804,16 @@ eciesjs@^0.3.15: futoin-hkdf "^1.5.3" secp256k1 "^5.0.0" +eciesjs@^0.4.8: + version "0.4.12" + resolved "https://registry.yarnpkg.com/eciesjs/-/eciesjs-0.4.12.tgz#0ce482454953592e07b79b4824751f3b5c508b56" + integrity sha512-DGejvMCihsRAmKRFQiL6KZDE34vWVd0gvXlykFq1aEzJy/rD65AVyAIUZKZOvgvaP9ATQRcHGEZV5DfgrgjA4w== + dependencies: + "@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" resolved "https://registry.npmjs.org/ecpair/-/ecpair-2.1.0.tgz" @@ -5542,6 +5867,19 @@ elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +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" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" @@ -6223,6 +6561,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" @@ -6230,6 +6573,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" @@ -7032,6 +7384,11 @@ jsonfile@^4.0.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" @@ -7289,6 +7646,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" @@ -7834,6 +8203,11 @@ 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.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.25.0.tgz#22a1c93ce97336c5d01d74f363433ab0cd5cde64" + integrity sha512-6bYnzlLxXV3OSpUxLdaxBmE7PMOu0aR3pG6lryK/0jmvcDFPlcXGQAt5DpK3RITWiDrfYZRI0druyaK/S9kYLg== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" @@ -7900,6 +8274,11 @@ proxy-compare@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" @@ -8147,6 +8526,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" @@ -8575,7 +8961,7 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -siwe@^2.1.4: +siwe@^2.1.4, siwe@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/siwe/-/siwe-2.3.2.tgz#0794ae25f734f3068de0ab093ddd2f7867bc2d67" integrity sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA== @@ -9431,6 +9817,21 @@ viem@^2.20.1: webauthn-p256 "0.0.10" ws "8.18.0" +viem@^2.21.15: + version "2.21.50" + resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.50.tgz#a645a7fb4a017c644712b905e03ab533b7e24ea7" + integrity sha512-WHB8NmkaForODuSALb0Ai3E296aEigzYSE+pzB9Y0cTNJeiZT8rpkdxxUFYfjwFMnPkz2tivqrSpuw3hO5TH6w== + 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" + vite-node@0.34.6: version "0.34.6" resolved "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz" @@ -9508,6 +9909,15 @@ vitest@^0.34.6: vite-node "0.34.6" why-is-node-running "^2.2.2" +wagmi@^2.12.16: + version "2.13.0" + resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.13.0.tgz#c5d3c608604c99b03ce41eefec0f65da074d12d2" + integrity sha512-afgHaOYXkji0QvDUNCcwIWYvzjwcDtoAPRqSBfGq9rj4v2SCztv/sYz0C43b5NoazI0LoKar8ykx8LEr3Euofg== + dependencies: + "@wagmi/connectors" "5.5.0" + "@wagmi/core" "2.15.0" + use-sync-external-store "1.2.0" + wagmi@^2.12.2: version "2.12.2" resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.12.2.tgz#1d3b1dea0783c05245aed72a29bce756eb4f0bd8" @@ -9831,3 +10241,8 @@ zustand@4.4.1: integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw== dependencies: use-sync-external-store "1.2.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== From b7ec5f156d02f986244c0d0bc0bea576c07a5146 Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Tue, 26 Nov 2024 14:47:32 +0100 Subject: [PATCH 06/10] feat: update garden related libaries, implement basic flow --- package.json | 7 +- src/app/app.tsx | 5 +- src/app/hooks/use-swap.ts | 122 +++++++++++++---------- yarn.lock | 199 +++++++++----------------------------- 4 files changed, 123 insertions(+), 210 deletions(-) diff --git a/package.json b/package.json index 6ab8d3f4..a075849c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "preview": "vite preview" }, "dependencies": { - "@catalogfi/wallets": "^0.2.45", "@chakra-ui/icons": "^2.1.1", "@chakra-ui/react": "^2.8.2", "@emotion/react": "^11.11.4", @@ -31,9 +30,9 @@ "@fontsource/inter": "^5.0.18", "@fontsource/onest": "^5.0.3", "@fontsource/poppins": "^5.0.8", - "@gardenfi/core": "^0.1.15", - "@gardenfi/orderbook": "^0.1.4", - "@gardenfi/react-hooks": "^0.0.1-beta.1", + "@gardenfi/core": "^0.2.0-beta.85", + "@gardenfi/orderbook": "^0.2.0-beta.24", + "@gardenfi/react-hooks": "0.0.1-beta.111", "@gemwallet/api": "^3.8.0", "@ledgerhq/hw-app-xrp": "^6.29.4", "@ledgerhq/hw-transport-webusb": "^6.28.6", diff --git a/src/app/app.tsx b/src/app/app.tsx index 504044e3..419a90b9 100644 --- a/src/app/app.tsx +++ b/src/app/app.tsx @@ -34,7 +34,10 @@ export function App(): React.JSX.Element { diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts index 13909a1e..ad240d5c 100644 --- a/src/app/hooks/use-swap.ts +++ b/src/app/hooks/use-swap.ts @@ -1,71 +1,87 @@ -import { useContext } from 'react'; +import { useState } from 'react'; -import { BitcoinNetwork, BitcoinOTA, BitcoinProvider, EVMWallet } from '@catalogfi/wallets'; -import { useEthersSigner } from '@functions/configuration.functions'; -import { GardenJS } from '@gardenfi/core'; -import { Asset, Assets, Chains, Orderbook } from '@gardenfi/orderbook'; -import { EthereumNetworkConfigurationContext } from '@providers/ethereum-network-configuration.provider'; +import { Asset, SupportedAssets } from '@gardenfi/orderbook'; +import { useGarden } from '@gardenfi/react-hooks'; import { shiftValue } from 'dlc-btc-lib/utilities'; -import { usePublicClient, useWalletClient } from 'wagmi'; -interface UseSwapReturnType {} +const SUPPORTED_ASSETS_IBTC_MAP = { + mainnet: SupportedAssets.mainnet.base_0x13dcec0762ecc5e666c207ab44dc768e5e33070f, + testnet: SupportedAssets.testnet.base_sepolia_0x00ab86f54f436cfe15253845f139955ae0c00baf, + devnet: SupportedAssets.localnet.ethereum_localnet_0xe7f1725e7734ce288f8367e1bb143e90bb3f0512, + localhost: SupportedAssets.localnet.ethereum_localnet_0xe7f1725e7734ce288f8367e1bb143e90bb3f0512, +}; + +interface UseSwapReturnType { + handleSwap: () => void; + setInputToken: (token: Asset) => void; + setInputAmount: (amount: number) => void; + setOutputToken: (token: Asset) => void; + setOutputAmount: (amount: number) => void; + setBitcoinAddress: (address: string) => void; +} export function useSwap(): UseSwapReturnType { - const { data: walletClient } = useWalletClient(); // Destructure data property - const publicClient = usePublicClient(); - const { getEthersSigner } = useEthersSigner(); - const { - ethereumNetworkConfiguration: { chain, dlcBTCContract }, - } = useContext(EthereumNetworkConfigurationContext); - const bitcoinProvider = new BitcoinProvider( - CATALOGFI_BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork], - appConfiguration.bitcoinBlockchainURL + const { initializeSecretManager, swapAndInitiate, getQuote } = useGarden(); + + const [inputToken, setInputToken] = useState( + SUPPORTED_ASSETS_IBTC_MAP[appConfiguration.appEnvironment] ); + const [inputAmount, setInputAmount] = useState(0.01); + + const [outputToken, setOutputToken] = useState(SupportedAssets.mainnet.bitcoin_primary); + const [outputAmount, setOutputAmount] = useState(0); + + const [bitcoinAddress, setBitcoinAddress] = useState(undefined); + + async function handleSwap() { + if (!initializeSecretManager) return; + + const initializeSecretManagerResponse = await initializeSecretManager(); - async function signSwapRequest() { - const ethersSigner = await getEthersSigner(); - if (!ethersSigner) { - throw new Error('Ethers Signer is not available'); + if ( + !initializeSecretManagerResponse.ok || + !swapAndInitiate || + !initializeSecretManagerResponse.val.getMasterPrivKey() || + !getQuote + ) + return; + + const sendAmount = shiftValue(inputAmount); + + const quote = await getQuote({ + fromAsset: inputToken, + toAsset: outputToken, + amount: sendAmount, + }); + + if (quote.error) { + throw new Error(quote.error); } - const orderbook = await Orderbook.init({ - url: 'http://localhost:8080', - signer: ethersSigner, - opts: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - domain: (window as any).location.host, - store: localStorage, + const [_strategy, quoteAmount] = Object.entries(quote.val.quotes)[0]; + + const swapAndInitiateResponse = await swapAndInitiate({ + fromAsset: inputToken, + toAsset: outputToken, + sendAmount: sendAmount.toString(), + receiveAmount: quoteAmount.toString(), + additionalData: { + btcAddress: bitcoinAddress, + strategyId: _strategy, }, }); - const account = walletClient?.account; - - if (!account) { - throw new Error('Account is not available'); + if (swapAndInitiateResponse.error) { + throw new Error(swapAndInitiateResponse.error); } - const wallets = { - [Chains.bitcoin_regtest]: new BitcoinOTA(bitcoinProvider, account, chain.id), - [Chains.ethereum_localnet]: new EVMWallet(walletClient!, publicClient!), - }; - - const garden = new GardenJS(orderbook, wallets); - - const iBTCAsset: Asset = { - chain: Chains.ethereum_sepolia, - symbol: 'IBTC', - address: await dlcBTCContract.getAddress(), - decimals: await dlcBTCContract.decimals(), - isToken: true, - name: 'iBTC', - thumbnail: '', - }; - - await garden.swap(iBTCAsset, Assets.bitcoin_regtest.BTC, shiftValue(0.01), shiftValue(0.01), { - btcUserAddress: 'bcrt1qk5q0takwdva20adgw8zf4vy07w9529gpfkrv6v', - }); } return { - signSwapRequest, + handleSwap, + setInputToken, + setInputAmount, + setOutputToken, + setOutputAmount, + setBitcoinAddress, }; } diff --git a/yarn.lock b/yarn.lock index 57f62fea..995295c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,11 +12,6 @@ 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.10.1" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" - integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== - "@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" @@ -302,11 +297,6 @@ "@noble/hashes" "^1.1.5" "@noble/secp256k1" "^1.7.1" -"@catalogfi/encrypto@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@catalogfi/encrypto/-/encrypto-0.1.5.tgz#1f81d25522b3790b50fc5b027e0716799b7370a0" - integrity sha512-iYoC8ppi9xelKfsnbTHJY2Z6J3mVwTeTnKtM3DdyW1i8mrYbFE5vdQWbX+MeFflyOWEYcsOtJXw36/D2m+7zWQ== - "@catalogfi/extension@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@catalogfi/extension/-/extension-0.1.1.tgz#b07400f2365a32dd13a7cdefe65949e0705a5342" @@ -317,30 +307,7 @@ resolved "https://registry.yarnpkg.com/@catalogfi/utils/-/utils-0.1.11.tgz#3ccdba102b88cb036ae0b14f7b300e0fc83c93f6" integrity sha512-+rt2I4W5ip6odg8ZSmoTyCY0GllPzSYqWz8xRyvgN58MVJJMAFjsp4XwyWzkIfKCRKOJve/vjYdZQx92CTO2gw== -"@catalogfi/wallets@0.2.43": - version "0.2.43" - resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.43.tgz#da348b0bcf9eb70a84e5c1d459f8e4d77803276e" - integrity sha512-i3JhEgFX5a+hsHPxa+5sMRL1kMX/bcZ2XUfdy9QxOfLPzIaS6Zp+SW1s+3J4WhCqNJCGruCarniykmXOh/8JHQ== - dependencies: - "@catalogfi/encrypto" "^0.1.5" - "@catalogfi/extension" "^0.1.1" - "@catalogfi/utils" "^0.1.6" - "@noble/hashes" "^1.4.0" - "@typechain/ethers-v6" "^0.5.1" - 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" - ethers "6.8.0" - tiny-secp256k1 "^2.2.3" - typechain "^8.3.2" - utf-8-validate "^6.0.3" - uuid "^9.0.1" - yup "^1.4.0" - -"@catalogfi/wallets@^0.2.45", "@catalogfi/wallets@^0.2.49", "@catalogfi/wallets@^0.2.51": +"@catalogfi/wallets@^0.2.51": version "0.2.51" resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.51.tgz#d734639827457773d9b8a60732eabb286f51934b" integrity sha512-bLLW0+uCxtF1DgX58ykBPr3XhQJ4xLOLK30ZKx4fA1izmawfxxZtlrQypCZNxiFOEP5Ux8fkT617O8uRTOx53w== @@ -1597,42 +1564,6 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethers/v5@npm:ethers@5": - version "5.7.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" @@ -1995,17 +1926,7 @@ resolved "https://registry.npmjs.org/@fontsource/poppins/-/poppins-5.0.12.tgz" integrity sha512-0qzBxtIJLh82iMJ9pCXKYwGs1zyS+jyUmwVJ59+JdYnEaFVkDsxVOk9yDWfVOs14ALUneodU2m5YSGma6dCYCw== -"@gardenfi/core@^0.1.15": - version "0.1.15" - resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.1.15.tgz#34b6346307bcde9d9af28888e0b8b32c16b9cc8a" - integrity sha512-5NAKRz8K/l6M0ecQ7/vpFK4z3FvzO6wx84afZvja36AE5ClGHDDZGkWlzJvYuADuaHnatdi6C9xUbw6bE+Ey5A== - dependencies: - "@catalogfi/utils" "^0.1.6" - "@catalogfi/wallets" "^0.2.45" - "@gardenfi/orderbook" "^0.1.10" - ethers "6.8.0" - -"@gardenfi/core@^0.2.0-beta.1": +"@gardenfi/core@^0.2.0-beta.85": version "0.2.0-beta.90" resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.2.0-beta.90.tgz#4bd4cc03e4eee43314cfe3589e670ddb6af3f25e" integrity sha512-suxl9CgQA3Mus4/QdqF4DX/5muc4vjSV+9FENHToAL/1Sufy2DrzQyZk4qN3udCqKynLAZMH0dCh9Pv14Mwh1A== @@ -2020,20 +1941,7 @@ varuint-bitcoin "^1.1.2" viem "^2.21.15" -"@gardenfi/orderbook@^0.1.10", "@gardenfi/orderbook@^0.1.4": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.1.11.tgz#52d9f22835f124ea9df71d38a0c37b95693a555a" - integrity sha512-hM/fDjxKVOE8gob2bB+IhxggoZrtVKKIbTbqOg6yXZ2GA+83Kb6A/qQSenYFke/ZPF3FFYP9XuVjcaz63fykJg== - dependencies: - "@catalogfi/utils" "^0.1.6" - "@catalogfi/wallets" "0.2.43" - bufferutil "^4.0.8" - ethers "6.8.0" - siwe "^2.1.4" - utf-8-validate "^6.0.3" - ws "^8.14.2" - -"@gardenfi/orderbook@^0.2.0-beta.1", "@gardenfi/orderbook@^0.2.0-beta.27": +"@gardenfi/orderbook@^0.2.0-beta.24", "@gardenfi/orderbook@^0.2.0-beta.27": version "0.2.0-beta.27" resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.2.0-beta.27.tgz#71099c76dbfc9c8d6975b4f9339ff98fd7131e75" integrity sha512-/GdRnrb+896myOlZHeqzn322ESWOLsI1AVKGb/g1ar1iT25xHh6BX+gHr6QVOQjpm2EHtp0UbJ3ZzVybYO26CA== @@ -2046,30 +1954,20 @@ viem "^2.21.15" ws "^8.14.2" -"@gardenfi/react-hooks@^0.0.1-beta.1": - version "0.0.1-beta.1" - resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.1.tgz#e303c281d7d120dbc2748606609972db21d3585e" - integrity sha512-R273V7nTuDpFT+axLYQWt/ElOqYfPXp8gL9uUe7PqJ58j6wJohv6W7pKuHayU06GUly+hofILhrZUtZZ6D/8gw== +"@gardenfi/react-hooks@0.0.1-beta.111": + version "0.0.1-beta.111" + resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.111.tgz#7e3302b8d60e77e445c74642d70991e010b2d054" + integrity sha512-kAs39RUStYOg61wCQ+OUpN6R3LZwsoFJlnO2bzq8yBpOvQkeEEA0zJzb0YJbGQ1w0x/6r7zOvsiRP069blKjPQ== dependencies: "@catalogfi/utils" "^0.1.6" - "@catalogfi/wallets" "^0.2.49" - "@gardenfi/core" "^0.2.0-beta.1" - "@gardenfi/orderbook" "^0.2.0-beta.1" - "@gardenfi/utils" "^0.0.1-beta.1" + "@catalogfi/wallets" "^0.2.51" + "@gardenfi/core" "^0.2.0-beta.85" + "@gardenfi/orderbook" "^0.2.0-beta.24" + "@gardenfi/utils" "^0.0.1-beta.18" react "^18.3.1" viem "^2.21.15" wagmi "^2.12.16" -"@gardenfi/utils@^0.0.1-beta.1": - version "0.0.1-beta.1" - resolved "https://registry.yarnpkg.com/@gardenfi/utils/-/utils-0.0.1-beta.1.tgz#cd3fc69f4ea1b48b0fb61305821e07fa7acd7368" - integrity sha512-bLfnAVZ4jXnpAtmKrnBdqAAfvQXlClt6HC4fok6GjqvJpGKgV0ALKYTGfYEOTRCvYQqbuaHVXV2j7Bp/hTnuMg== - dependencies: - "@catalogfi/utils" "^0.1.11" - axios "^1.7.2" - siwe "^2.3.2" - viem "^2.21.15" - "@gardenfi/utils@^0.0.1-beta.18": version "0.0.1-beta.18" resolved "https://registry.yarnpkg.com/@gardenfi/utils/-/utils-0.0.1-beta.18.tgz#3d550c8771b553b50f058374558bedb629540e86" @@ -3216,14 +3114,6 @@ javascript-natural-sort "0.7.1" lodash "^4.17.21" -"@typechain/ethers-v6@^0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz#42fe214a19a8b687086c93189b301e2b878797ea" - integrity sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA== - dependencies: - lodash "^4.17.15" - ts-essentials "^7.0.1" - "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" @@ -3583,13 +3473,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== -"@types/node@22.7.5": - version "22.7.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.5.tgz#cfde981727a7ab3611a481510b473ae54442b92b" - integrity sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ== - dependencies: - undici-types "~6.19.2" - "@types/parse-json@^4.0.0": version "4.0.2" resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" @@ -5745,7 +5628,6 @@ dir-glob@^3.0.1: "dlc-btc-lib@file:../dlc-btc-lib": version "2.4.17" dependencies: - "@ethers/v5" "npm:ethers@5" "@gemwallet/api" "3.8.0" "@ledgerhq/hw-app-btc" "10.4.1" "@ledgerhq/hw-app-xrp" "6.29.4" @@ -5757,7 +5639,7 @@ dir-glob@^3.0.1: bitcoinjs-lib "6.1.6" chalk "5.3.0" decimal.js "10.4.3" - ethers "6.13.4" + ethers "5.7.2" ledger-bitcoin "0.2.3" prompts "2.4.2" ramda "0.30.1" @@ -6369,18 +6251,41 @@ ethereum-cryptography@^2.0.0: "@scure/bip32" "1.4.0" "@scure/bip39" "1.3.0" -ethers@6.13.4: - version "6.13.4" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.4.tgz#bd3e1c3dc1e7dc8ce10f9ffb4ee40967a651b53c" - integrity sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA== +ethers@5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== dependencies: - "@adraffy/ens-normalize" "1.10.1" - "@noble/curves" "1.2.0" - "@noble/hashes" "1.3.2" - "@types/node" "22.7.5" - aes-js "4.0.0-beta.5" - tslib "2.7.0" - ws "8.17.1" + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" ethers@6.8.0: version "6.8.0" @@ -8961,7 +8866,7 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -siwe@^2.1.4, siwe@^2.3.2: +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== @@ -9441,11 +9346,6 @@ tslib@2.4.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@2.7.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== - tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" @@ -9621,11 +9521,6 @@ undici-types@~5.26.4: resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~6.19.2: - version "6.19.8" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" - integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== - undici@^6.11.1: version "6.19.8" resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.8.tgz#002d7c8a28f8cc3a44ff33c3d4be4d85e15d40e1" From 2ea2abf27e23f8f3c61307c6e46d8346cb4b502b Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Wed, 4 Dec 2024 10:57:22 +0100 Subject: [PATCH 07/10] chore: update garden related packages --- package.json | 8 +++---- src/app/hooks/use-swap.ts | 8 ++++--- yarn.lock | 50 ++++++++++++++++++++++++--------------- 3 files changed, 40 insertions(+), 26 deletions(-) diff --git a/package.json b/package.json index a075849c..ddd2800e 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "@fontsource/inter": "^5.0.18", "@fontsource/onest": "^5.0.3", "@fontsource/poppins": "^5.0.8", - "@gardenfi/core": "^0.2.0-beta.85", - "@gardenfi/orderbook": "^0.2.0-beta.24", - "@gardenfi/react-hooks": "0.0.1-beta.111", + "@gardenfi/core": "0.3.0-beta.3", + "@gardenfi/orderbook": "0.2.0-beta.36", + "@gardenfi/react-hooks": "0.0.1-beta.123", "@gemwallet/api": "^3.8.0", "@ledgerhq/hw-app-xrp": "^6.29.4", "@ledgerhq/hw-transport-webusb": "^6.28.6", @@ -49,7 +49,7 @@ "concurrently": "^8.2.2", "d3": "^7.9.0", "decimal.js": "^10.4.3", - "dlc-btc-lib": "file:../dlc-btc-lib", + "dlc-btc-lib": "2.4.19", "dotenv": "^16.3.1", "ethers": "6.8.0", "formik": "^2.4.5", diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts index ad240d5c..dbf7568b 100644 --- a/src/app/hooks/use-swap.ts +++ b/src/app/hooks/use-swap.ts @@ -5,8 +5,8 @@ import { useGarden } from '@gardenfi/react-hooks'; import { shiftValue } from 'dlc-btc-lib/utilities'; const SUPPORTED_ASSETS_IBTC_MAP = { - mainnet: SupportedAssets.mainnet.base_0x13dcec0762ecc5e666c207ab44dc768e5e33070f, - testnet: SupportedAssets.testnet.base_sepolia_0x00ab86f54f436cfe15253845f139955ae0c00baf, + mainnet: SupportedAssets.mainnet., + testnet: SupportedAssets.testnet.se, devnet: SupportedAssets.localnet.ethereum_localnet_0xe7f1725e7734ce288f8367e1bb143e90bb3f0512, localhost: SupportedAssets.localnet.ethereum_localnet_0xe7f1725e7734ce288f8367e1bb143e90bb3f0512, }; @@ -28,7 +28,9 @@ export function useSwap(): UseSwapReturnType { ); const [inputAmount, setInputAmount] = useState(0.01); - const [outputToken, setOutputToken] = useState(SupportedAssets.mainnet.bitcoin_primary); + const [outputToken, setOutputToken] = useState( + SupportedAssets.testnet.bitcoin_testnet_primary + ); const [outputAmount, setOutputAmount] = useState(0); const [bitcoinAddress, setBitcoinAddress] = useState(undefined); diff --git a/yarn.lock b/yarn.lock index 995295c0..27e73876 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1926,43 +1926,43 @@ resolved "https://registry.npmjs.org/@fontsource/poppins/-/poppins-5.0.12.tgz" integrity sha512-0qzBxtIJLh82iMJ9pCXKYwGs1zyS+jyUmwVJ59+JdYnEaFVkDsxVOk9yDWfVOs14ALUneodU2m5YSGma6dCYCw== -"@gardenfi/core@^0.2.0-beta.85": - version "0.2.0-beta.90" - resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.2.0-beta.90.tgz#4bd4cc03e4eee43314cfe3589e670ddb6af3f25e" - integrity sha512-suxl9CgQA3Mus4/QdqF4DX/5muc4vjSV+9FENHToAL/1Sufy2DrzQyZk4qN3udCqKynLAZMH0dCh9Pv14Mwh1A== +"@gardenfi/core@0.3.0-beta.3", "@gardenfi/core@^0.3.0-beta.2": + version "0.3.0-beta.3" + resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.3.0-beta.3.tgz#84b1ab0b5a66e5a0e28d2f1f124b4e7e51d7432e" + integrity sha512-WvnXgFJkPar++2feVSJCQSrmKZ+puma7X08FrW04iRHpFhZtmc4Q7Z0xCtdZdhOuIfHsf+ScOBSxkyBZfiSpvA== dependencies: "@catalogfi/utils" "^0.1.6" "@catalogfi/wallets" "^0.2.51" - "@gardenfi/orderbook" "^0.2.0-beta.27" - "@gardenfi/utils" "^0.0.1-beta.18" + "@gardenfi/orderbook" "^0.2.0-beta.35" + "@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.24", "@gardenfi/orderbook@^0.2.0-beta.27": - version "0.2.0-beta.27" - resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.2.0-beta.27.tgz#71099c76dbfc9c8d6975b4f9339ff98fd7131e75" - integrity sha512-/GdRnrb+896myOlZHeqzn322ESWOLsI1AVKGb/g1ar1iT25xHh6BX+gHr6QVOQjpm2EHtp0UbJ3ZzVybYO26CA== +"@gardenfi/orderbook@0.2.0-beta.36", "@gardenfi/orderbook@^0.2.0-beta.34", "@gardenfi/orderbook@^0.2.0-beta.35": + version "0.2.0-beta.36" + resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.2.0-beta.36.tgz#c9b2f7cae3537910be8e83ab50e9231ae0fc6258" + integrity sha512-IuolP2Vt6NPg7M3aoxeDguJOvJ6X3G9/VEpvRH3HHT6eJd/UfLUt2vKtnc3hg/RWKGNxPseohJDyPOxKpwy+dg== dependencies: "@catalogfi/utils" "^0.1.6" - "@gardenfi/utils" "^0.0.1-beta.18" + "@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.111": - version "0.0.1-beta.111" - resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.111.tgz#7e3302b8d60e77e445c74642d70991e010b2d054" - integrity sha512-kAs39RUStYOg61wCQ+OUpN6R3LZwsoFJlnO2bzq8yBpOvQkeEEA0zJzb0YJbGQ1w0x/6r7zOvsiRP069blKjPQ== +"@gardenfi/react-hooks@0.0.1-beta.123": + version "0.0.1-beta.123" + resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.123.tgz#aa88cce501f18d613018734495cb907c52be15f0" + integrity sha512-idir9O5UoRX7ncoChUY7kUznjZO4DQXLD3Vx90eEjkTBw/an3XMsGKyDjFeEjgdtRJape8YfzfMJyizctBjISQ== dependencies: "@catalogfi/utils" "^0.1.6" "@catalogfi/wallets" "^0.2.51" - "@gardenfi/core" "^0.2.0-beta.85" - "@gardenfi/orderbook" "^0.2.0-beta.24" + "@gardenfi/core" "^0.3.0-beta.2" + "@gardenfi/orderbook" "^0.2.0-beta.34" "@gardenfi/utils" "^0.0.1-beta.18" react "^18.3.1" viem "^2.21.15" @@ -1978,6 +1978,16 @@ jwt-decode "^4.0.0" viem "^2.21.15" +"@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" @@ -5625,8 +5635,10 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -"dlc-btc-lib@file:../dlc-btc-lib": - version "2.4.17" +dlc-btc-lib@2.4.19: + version "2.4.19" + resolved "https://registry.yarnpkg.com/dlc-btc-lib/-/dlc-btc-lib-2.4.19.tgz#d117738f517f7b4517b52eb82c49d1d2e8ea4e5e" + integrity sha512-khK29PoqaIWHtnSvVLR84+/Bp9IMW3/hekw40hz6d4HfyoozYRdvbPexlUIkJ4OuGh+Wm01Y3+CUZBYrMSFx6w== dependencies: "@gemwallet/api" "3.8.0" "@ledgerhq/hw-app-btc" "10.4.1" From da98a55ed81ac03c91400f320b74d9a14ff251b9 Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Tue, 17 Dec 2024 13:57:05 +0100 Subject: [PATCH 08/10] feat: update garden library versions, complete swap functionalities --- package.json | 6 +- src/app/hooks/use-swap.ts | 116 ++++++++++++++++++++++++-------------- yarn.lock | 42 ++++++-------- 3 files changed, 94 insertions(+), 70 deletions(-) diff --git a/package.json b/package.json index ddd2800e..73473d85 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "@fontsource/inter": "^5.0.18", "@fontsource/onest": "^5.0.3", "@fontsource/poppins": "^5.0.8", - "@gardenfi/core": "0.3.0-beta.3", - "@gardenfi/orderbook": "0.2.0-beta.36", - "@gardenfi/react-hooks": "0.0.1-beta.123", + "@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", diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts index dbf7568b..64aeed98 100644 --- a/src/app/hooks/use-swap.ts +++ b/src/app/hooks/use-swap.ts @@ -1,89 +1,123 @@ import { useState } from 'react'; +import { SwapParams } from '@gardenfi/core'; import { Asset, SupportedAssets } from '@gardenfi/orderbook'; import { useGarden } from '@gardenfi/react-hooks'; import { shiftValue } from 'dlc-btc-lib/utilities'; +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 = { - mainnet: SupportedAssets.mainnet., - testnet: SupportedAssets.testnet.se, - devnet: SupportedAssets.localnet.ethereum_localnet_0xe7f1725e7734ce288f8367e1bb143e90bb3f0512, - localhost: SupportedAssets.localnet.ethereum_localnet_0xe7f1725e7734ce288f8367e1bb143e90bb3f0512, + [SupportedEVMNetworks.ArbitrumSepolia]: + SupportedAssets.testnet.arbitrum_sepolia_0xdfe6d9363ee96152d39391009a6723819d9e25eb, + [SupportedEVMNetworks.BaseSepolia]: + SupportedAssets.testnet.base_sepolia_0xbcdad29ac77e5bb27fd528ab0045af630259fe4f, }; interface UseSwapReturnType { - handleSwap: () => void; + handleSwap: (inputAmount: number, bitcoinAddress: string) => void; setInputToken: (token: Asset) => void; - setInputAmount: (amount: number) => void; setOutputToken: (token: Asset) => void; - setOutputAmount: (amount: number) => void; - setBitcoinAddress: (address: string) => void; } export function useSwap(): UseSwapReturnType { const { initializeSecretManager, swapAndInitiate, getQuote } = useGarden(); const [inputToken, setInputToken] = useState( - SUPPORTED_ASSETS_IBTC_MAP[appConfiguration.appEnvironment] + SUPPORTED_ASSETS_IBTC_MAP[SupportedEVMNetworks.ArbitrumSepolia] ); - const [inputAmount, setInputAmount] = useState(0.01); const [outputToken, setOutputToken] = useState( - SupportedAssets.testnet.bitcoin_testnet_primary + SUPPORTED_ASSETS_BTC_MAP[appConfiguration.appEnvironment] ); - const [outputAmount, setOutputAmount] = useState(0); - const [bitcoinAddress, setBitcoinAddress] = useState(undefined); + const initializeSecret = async () => { + if (!initializeSecretManager) { + throw new Error('Secret Manager initializer not available'); + } - async function handleSwap() { - if (!initializeSecretManager) return; + const response = await initializeSecretManager(); - const initializeSecretManagerResponse = await initializeSecretManager(); + if (!response.ok || !response.val.getMasterPrivKey()) { + throw new Error('Failed to initialize Secret Manager'); + } - if ( - !initializeSecretManagerResponse.ok || - !swapAndInitiate || - !initializeSecretManagerResponse.val.getMasterPrivKey() || - !getQuote - ) - return; + return response; + }; - const sendAmount = shiftValue(inputAmount); + const fetchQuote = async (quoteParams: QuoteParams) => { + if (!getQuote) { + throw new Error('Quote service not available'); + } - const quote = await getQuote({ - fromAsset: inputToken, - toAsset: outputToken, - amount: sendAmount, - }); + const quote = await getQuote(quoteParams); if (quote.error) { throw new Error(quote.error); } - const [_strategy, quoteAmount] = Object.entries(quote.val.quotes)[0]; + const [strategy, amount] = Object.entries(quote.val.quotes)[0]; + + return { strategy, amount }; + }; - const swapAndInitiateResponse = await swapAndInitiate({ + 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 (inputAmount: number, bitcoinAddress: string) => { + await initializeSecret(); + + const sendAmount = shiftValue(inputAmount); + + const { strategy, amount } = await fetchQuote({ + fromAsset: inputToken, + toAsset: outputToken, + amount: sendAmount, + }); + + return executeSwap({ fromAsset: inputToken, toAsset: outputToken, sendAmount: sendAmount.toString(), - receiveAmount: quoteAmount.toString(), + receiveAmount: amount.toString(), additionalData: { btcAddress: bitcoinAddress, - strategyId: _strategy, + strategyId: strategy, }, }); - - if (swapAndInitiateResponse.error) { - throw new Error(swapAndInitiateResponse.error); - } - } + }; return { handleSwap, setInputToken, - setInputAmount, setOutputToken, - setOutputAmount, - setBitcoinAddress, }; } diff --git a/yarn.lock b/yarn.lock index 27e73876..fb93495e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1926,14 +1926,14 @@ resolved "https://registry.npmjs.org/@fontsource/poppins/-/poppins-5.0.12.tgz" integrity sha512-0qzBxtIJLh82iMJ9pCXKYwGs1zyS+jyUmwVJ59+JdYnEaFVkDsxVOk9yDWfVOs14ALUneodU2m5YSGma6dCYCw== -"@gardenfi/core@0.3.0-beta.3", "@gardenfi/core@^0.3.0-beta.2": - version "0.3.0-beta.3" - resolved "https://registry.yarnpkg.com/@gardenfi/core/-/core-0.3.0-beta.3.tgz#84b1ab0b5a66e5a0e28d2f1f124b4e7e51d7432e" - integrity sha512-WvnXgFJkPar++2feVSJCQSrmKZ+puma7X08FrW04iRHpFhZtmc4Q7Z0xCtdZdhOuIfHsf+ScOBSxkyBZfiSpvA== +"@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.35" + "@gardenfi/orderbook" "^0.2.0-beta.41" "@gardenfi/utils" "^0.0.1-beta.19" bignumber.js "^9.1.2" bitcoinjs-lib "^6.1.6" @@ -1941,10 +1941,10 @@ varuint-bitcoin "^1.1.2" viem "^2.21.15" -"@gardenfi/orderbook@0.2.0-beta.36", "@gardenfi/orderbook@^0.2.0-beta.34", "@gardenfi/orderbook@^0.2.0-beta.35": - version "0.2.0-beta.36" - resolved "https://registry.yarnpkg.com/@gardenfi/orderbook/-/orderbook-0.2.0-beta.36.tgz#c9b2f7cae3537910be8e83ab50e9231ae0fc6258" - integrity sha512-IuolP2Vt6NPg7M3aoxeDguJOvJ6X3G9/VEpvRH3HHT6eJd/UfLUt2vKtnc3hg/RWKGNxPseohJDyPOxKpwy+dg== +"@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" @@ -1954,30 +1954,20 @@ viem "^2.21.15" ws "^8.14.2" -"@gardenfi/react-hooks@0.0.1-beta.123": - version "0.0.1-beta.123" - resolved "https://registry.yarnpkg.com/@gardenfi/react-hooks/-/react-hooks-0.0.1-beta.123.tgz#aa88cce501f18d613018734495cb907c52be15f0" - integrity sha512-idir9O5UoRX7ncoChUY7kUznjZO4DQXLD3Vx90eEjkTBw/an3XMsGKyDjFeEjgdtRJape8YfzfMJyizctBjISQ== +"@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.2" - "@gardenfi/orderbook" "^0.2.0-beta.34" - "@gardenfi/utils" "^0.0.1-beta.18" + "@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.18": - version "0.0.1-beta.18" - resolved "https://registry.yarnpkg.com/@gardenfi/utils/-/utils-0.0.1-beta.18.tgz#3d550c8771b553b50f058374558bedb629540e86" - integrity sha512-ZVjN5ozMoQ/OiUim9t+3vv6s887f8CXH/t90vyoY8cYLyKmK4PGBIo9ffF55CNSHe89xGALVR1EQpLbAFOnE8A== - dependencies: - "@catalogfi/utils" "^0.1.11" - axios "^1.7.2" - jwt-decode "^4.0.0" - viem "^2.21.15" - "@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" From 5f19c0bb2a8f30032d3ef9cb1ded1e59dbe1349d Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Tue, 17 Dec 2024 15:45:53 +0100 Subject: [PATCH 09/10] wip: modify swap ui --- package.json | 2 +- src/app/app.tsx | 4 +- .../swap/components/swap-amount-card.tsx | 44 +++++++++++-------- src/app/components/swap/swap.tsx | 40 +++++++++++++---- src/app/hooks/use-swap.ts | 31 +++++++++++-- src/shared/constants/garden.constants.ts | 7 --- yarn.lock | 13 +++--- 7 files changed, 94 insertions(+), 47 deletions(-) delete mode 100644 src/shared/constants/garden.constants.ts diff --git a/package.json b/package.json index f56fb691..0ff8b131 100644 --- a/package.json +++ b/package.json @@ -49,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": "file:../dlc-btc-lib", "dotenv": "^16.3.1", "ethers": "6.8.0", "formik": "^2.4.5", diff --git a/src/app/app.tsx b/src/app/app.tsx index 419a90b9..099cd7e5 100644 --- a/src/app/app.tsx +++ b/src/app/app.tsx @@ -2,7 +2,7 @@ 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 { Swap } from '@components/swap/swap'; +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'; @@ -64,7 +64,7 @@ export function App(): React.JSX.Element { element={} /> } /> - } /> + } /> diff --git a/src/app/components/swap/components/swap-amount-card.tsx b/src/app/components/swap/components/swap-amount-card.tsx index 2281e61c..a0e3b91b 100644 --- a/src/app/components/swap/components/swap-amount-card.tsx +++ b/src/app/components/swap/components/swap-amount-card.tsx @@ -1,28 +1,40 @@ import { HStack, Text, VStack } from '@chakra-ui/react'; +import { Asset } from '@gardenfi/orderbook'; import { SwapTokenButton } from './swap-token-button'; import { SwapTokenLabel } from './swap-token-label'; interface SwapAmountCardProps { direction: string; + asset: Asset; amount: number; - token: string; - inUSD: number; - balance: number; - gasFee?: number; + amountInUSD?: string; + 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, - token, - inUSD, + asset, + amountInUSD, balance, }: SwapAmountCardProps): React.JSX.Element | null { - const isBTC = token === 'BTC'; - const borderColor = isBTC ? 'white.01' : 'rgb(188, 143, 249)'; - const tokenDisplay = isBTC ? 'BTC' : 'dlcBTC'; - const tokenImage = isBTC ? '/images/logos/bitcoin-logo.svg' : '/images/logos/dlc-btc-logo.svg'; + const isBTC = asset.symbol === 'btc'; + const { assetColor, assetSymbol, assetLogo } = assetDetails[isBTC ? 'BTC' : 'iBTC']; return ( @@ -60,18 +72,14 @@ export function SwapAmountCard({ {amount} {isBTC ? ( - {}} - /> + {}} /> ) : ( - + )} - {inUSD} + {amount} Bal. {balance} diff --git a/src/app/components/swap/swap.tsx b/src/app/components/swap/swap.tsx index 58aee8c0..b2c111a5 100644 --- a/src/app/components/swap/swap.tsx +++ b/src/app/components/swap/swap.tsx @@ -1,11 +1,35 @@ import { VStack } from '@chakra-ui/react'; +import { useSwap } from '@hooks/use-swap'; +import Decimal from 'decimal.js'; + +import { BITCOIN_NETWORK_MAP } from '@shared/constants/bitcoin.constants'; import { SwapAmountCard } from './components/swap-amount-card'; import { SwapButton } from './components/swap-button'; import { SwapExtraDetailsCard } from './components/swap-extra-details-card'; import { SwapHeader } from './components/swap-header'; +const assetValueInUSD = (assetAmount: number, 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, + setInputToken, + inputAmount, + setInputAmount, + outputToken, + setOutputToken, + outputAmount, + setOutputAmount, + handleSwap, + } = useSwap(BITCOIN_NETWORK_MAP[appConfiguration.bitcoinNetwork]); + return ( - {}} /> + handleSwap()} /> ); } diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts index 64aeed98..b46156d8 100644 --- a/src/app/hooks/use-swap.ts +++ b/src/app/hooks/use-swap.ts @@ -3,6 +3,8 @@ import { useState } from 'react'; import { SwapParams } from '@gardenfi/core'; import { Asset, SupportedAssets } from '@gardenfi/orderbook'; import { useGarden } from '@gardenfi/react-hooks'; +import { isBitcoinAddress } from 'dlc-btc-lib/bitcoin-functions'; +import { Network } from 'dlc-btc-lib/models'; import { shiftValue } from 'dlc-btc-lib/utilities'; interface QuoteParams { @@ -32,21 +34,33 @@ const SUPPORTED_ASSETS_IBTC_MAP = { }; interface UseSwapReturnType { - handleSwap: (inputAmount: number, bitcoinAddress: string) => void; + handleSwap: () => void; + inputToken: Asset; setInputToken: (token: Asset) => void; + inputAmount: number; + setInputAmount: (amount: number) => void; + outputToken: Asset; setOutputToken: (token: Asset) => void; + outputAmount: number; + setOutputAmount: (amount: number) => void; + bitcoinAddress: string; + setBitcoinAddress: (address: string) => void; } -export function useSwap(): UseSwapReturnType { +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(0.01); + + const [bitcoinAddress, setBitcoinAddress] = useState(''); const initializeSecret = async () => { if (!initializeSecretManager) { @@ -92,7 +106,10 @@ export function useSwap(): UseSwapReturnType { return response; }; - const handleSwap = async (inputAmount: number, bitcoinAddress: string) => { + const handleSwap = async () => { + if (!isBitcoinAddress(bitcoinAddress, bitcoinNetwork)) + throw new Error('Invalid Bitcoin Address'); + await initializeSecret(); const sendAmount = shiftValue(inputAmount); @@ -118,6 +135,14 @@ export function useSwap(): UseSwapReturnType { return { handleSwap, setInputToken, + inputToken, + inputAmount, + setInputAmount, setOutputToken, + outputToken, + outputAmount, + setOutputAmount, + bitcoinAddress, + setBitcoinAddress, }; } diff --git a/src/shared/constants/garden.constants.ts b/src/shared/constants/garden.constants.ts deleted file mode 100644 index b819529f..00000000 --- a/src/shared/constants/garden.constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { BitcoinNetwork } from '@catalogfi/wallets'; - -export const CATALOGFI_BITCOIN_NETWORK_MAP = { - regtest: BitcoinNetwork.Regtest, - testnet: BitcoinNetwork.Testnet, - mainnet: BitcoinNetwork.Mainnet, -}; diff --git a/yarn.lock b/yarn.lock index 477771a5..e5603860 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1163,10 +1163,6 @@ eventemitter3 "^5.0.1" preact "^10.24.2" -"@ecies/ciphers@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@ecies/ciphers/-/ciphers-0.2.1.tgz#a3119516fb55d27ed2d21c497b1c4988f0b4ca02" - integrity sha512-ezMihhjW24VNK/2qQR7lH8xCQY24nk0XHF/kwJ1OuiiY5iEwQXOcKVSy47fSoHPRG8gVGXcK5SgtONDk5xMwtQ== "@dfns/sdk-browser@^0.5.9": version "0.5.9" resolved "https://registry.yarnpkg.com/@dfns/sdk-browser/-/sdk-browser-0.5.9.tgz#073bdc2fabb6b53eafd114a31ebf355be9d66062" @@ -1185,6 +1181,11 @@ cross-fetch "3.1.6" uuid "9.0.0" +"@ecies/ciphers@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@ecies/ciphers/-/ciphers-0.2.1.tgz#a3119516fb55d27ed2d21c497b1c4988f0b4ca02" + integrity sha512-ezMihhjW24VNK/2qQR7lH8xCQY24nk0XHF/kwJ1OuiiY5iEwQXOcKVSy47fSoHPRG8gVGXcK5SgtONDk5xMwtQ== + "@emotion/babel-plugin@^11.11.0": version "11.11.0" resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz" @@ -5649,10 +5650,8 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dlc-btc-lib@2.5.1: +"dlc-btc-lib@file:../dlc-btc-lib": version "2.5.1" - resolved "https://registry.yarnpkg.com/dlc-btc-lib/-/dlc-btc-lib-2.5.1.tgz#b1eb33c0a56a244fcb109da4704854cf8a585c15" - integrity sha512-YRfIsfsgzmUcepowZYaLjY/1E2MJbN5zIhEhS1NgiJsDBjNVAiZTHLY7RiX3eNValgFSnsY3IpUyF6piPap72A== dependencies: "@dfns/sdk" "^0.5.9" "@dfns/sdk-browser" "^0.5.9" From 22af14ab8ac38dd10181a34b047b267b688cdac5 Mon Sep 17 00:00:00 2001 From: Polybius93 Date: Tue, 17 Dec 2024 16:46:24 +0100 Subject: [PATCH 10/10] feat: remove temporarily address validation --- package.json | 4 +- src/app/hooks/use-swap.ts | 8 +- yarn.lock | 228 +++++++++++++++++++++++++------------- 3 files changed, 157 insertions(+), 83 deletions(-) diff --git a/package.json b/package.json index 0ff8b131..fa551f6c 100644 --- a/package.json +++ b/package.json @@ -30,10 +30,10 @@ "@fontsource/inter": "^5.0.18", "@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", - "@gemwallet/api": "^3.8.0", "@ledgerhq/hw-app-xrp": "^6.29.4", "@ledgerhq/hw-transport-webusb": "^6.28.6", "@netlify/functions": "^2.8.1", @@ -49,7 +49,7 @@ "concurrently": "^8.2.2", "d3": "^7.9.0", "decimal.js": "^10.4.3", - "dlc-btc-lib": "file:../dlc-btc-lib", + "dlc-btc-lib": "2.5.1", "dotenv": "^16.3.1", "ethers": "6.8.0", "formik": "^2.4.5", diff --git a/src/app/hooks/use-swap.ts b/src/app/hooks/use-swap.ts index b46156d8..47552255 100644 --- a/src/app/hooks/use-swap.ts +++ b/src/app/hooks/use-swap.ts @@ -3,7 +3,7 @@ import { useState } from 'react'; import { SwapParams } from '@gardenfi/core'; import { Asset, SupportedAssets } from '@gardenfi/orderbook'; import { useGarden } from '@gardenfi/react-hooks'; -import { isBitcoinAddress } from 'dlc-btc-lib/bitcoin-functions'; +// import { isBitcoinAddress } from 'dlc-btc-lib/bitcoin-functions'; import { Network } from 'dlc-btc-lib/models'; import { shiftValue } from 'dlc-btc-lib/utilities'; @@ -47,7 +47,7 @@ interface UseSwapReturnType { setBitcoinAddress: (address: string) => void; } -export function useSwap(bitcoinNetwork: Network): UseSwapReturnType { +export function useSwap(_bitcoinNetwork: Network): UseSwapReturnType { const { initializeSecretManager, swapAndInitiate, getQuote } = useGarden(); const [inputToken, setInputToken] = useState( @@ -107,8 +107,8 @@ export function useSwap(bitcoinNetwork: Network): UseSwapReturnType { }; const handleSwap = async () => { - if (!isBitcoinAddress(bitcoinAddress, bitcoinNetwork)) - throw new Error('Invalid Bitcoin Address'); + // if (!isBitcoinAddress(bitcoinAddress, bitcoinNetwork)) + // throw new Error('Invalid Bitcoin Address'); await initializeSecret(); diff --git a/yarn.lock b/yarn.lock index e5603860..e8f81b03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -213,6 +213,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@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" + "@babel/template@^7.22.15", "@babel/template@^7.24.0": version "7.24.0" resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" @@ -308,9 +315,9 @@ integrity sha512-+rt2I4W5ip6odg8ZSmoTyCY0GllPzSYqWz8xRyvgN58MVJJMAFjsp4XwyWzkIfKCRKOJve/vjYdZQx92CTO2gw== "@catalogfi/wallets@^0.2.51": - version "0.2.51" - resolved "https://registry.yarnpkg.com/@catalogfi/wallets/-/wallets-0.2.51.tgz#d734639827457773d9b8a60732eabb286f51934b" - integrity sha512-bLLW0+uCxtF1DgX58ykBPr3XhQJ4xLOLK30ZKx4fA1izmawfxxZtlrQypCZNxiFOEP5Ux8fkT617O8uRTOx53w== + 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" @@ -1182,9 +1189,9 @@ uuid "9.0.0" "@ecies/ciphers@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@ecies/ciphers/-/ciphers-0.2.1.tgz#a3119516fb55d27ed2d21c497b1c4988f0b4ca02" - integrity sha512-ezMihhjW24VNK/2qQR7lH8xCQY24nk0XHF/kwJ1OuiiY5iEwQXOcKVSy47fSoHPRG8gVGXcK5SgtONDk5xMwtQ== + 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" @@ -2266,10 +2273,10 @@ utf-8-validate "^5.0.2" uuid "^8.3.2" -"@metamask/sdk-communication-layer@0.30.0": - version "0.30.0" - resolved "https://registry.yarnpkg.com/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.30.0.tgz#2bd252cfce3ac4260a6c8c9359732ab5e839b75e" - integrity sha512-q5nbdYkAf76MsZxi1l5MJEAyd8sY9jLRapC8a7x1Q1BNV4rzQeFeux/d0mJ/jTR2LAwbnLZs2rL226AM75oK4w== +"@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" @@ -2284,12 +2291,12 @@ dependencies: qr-code-styling "^1.6.0-rc.1" -"@metamask/sdk-install-modal-web@0.30.0": - version "0.30.0" - resolved "https://registry.yarnpkg.com/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.30.0.tgz#9ec634201b1b47bb30064f42ae0efba7f204bb0a" - integrity sha512-1gT533Huja9tK3cmttvcpZirRAtWJ7vnYH+lnNRKEj2xIP335Df2cOwS+zqNC4GlRCZw7A3IsTjIzlKoxBY1uQ== +"@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" @@ -2319,29 +2326,28 @@ util "^0.12.4" uuid "^8.3.2" -"@metamask/sdk@0.30.1": - version "0.30.1" - resolved "https://registry.yarnpkg.com/@metamask/sdk/-/sdk-0.30.1.tgz#63126ad769566098000cc3c2cd513d18808471f3" - integrity sha512-NelEjJZsF5wVpSQELpmvXtnS9+C6HdxGQ4GB9jMRzeejphmPyKqmrIGM6XtaPrJtlpX+40AcJ2dtBQcjJVzpbQ== +"@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.30.0" - "@metamask/sdk-install-modal-web" "0.30.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.8" + 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" socket.io-client "^4.5.1" + tslib "^2.6.0" util "^0.12.4" uuid "^8.3.2" @@ -2481,9 +2487,9 @@ urlpattern-polyfill "8.0.2" "@noble/ciphers@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-1.1.0.tgz#ebe2d3aa656c1afe6a14bb95af73f3851c162d73" - integrity sha512-gwcX7IKSuCtlepJVa6sDLMB2EDaoLguFL6HxagKeFIzWGRfFE3mwcHs8mjx4yQY+rV736XGBhfl6Lw80YrTDTw== + 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.2.0": version "1.2.0" @@ -2513,6 +2519,13 @@ 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.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" @@ -2523,11 +2536,21 @@ 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.1.2", "@noble/hashes@^1.5.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" @@ -2646,6 +2669,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" @@ -2839,10 +2867,10 @@ "@safe-global/safe-apps-sdk" "^9.1.0" events "^3.3.0" -"@safe-global/safe-apps-provider@0.18.4": - version "0.18.4" - resolved "https://registry.yarnpkg.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.4.tgz#53df912aa20d933f6b14c5bcb0737a8cd47def57" - integrity sha512-SWYeG3gyTO6wGHMSokfHakZ9isByn2mHsM0VohIorYFFEyGGmJ89btnTm+DqDUSoQtvWAatZB7XNy6CaYMvqtg== +"@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" @@ -2880,6 +2908,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" @@ -2898,6 +2931,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" @@ -2914,6 +2956,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" @@ -3734,14 +3784,14 @@ "@walletconnect/modal" "2.6.2" cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3" -"@wagmi/connectors@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@wagmi/connectors/-/connectors-5.5.0.tgz#94bf6730dfea0032426230cd45b49183ccefb714" - integrity sha512-Ywzj6sYH3z2zp/n9C9sYGJj/uX9UMQQN5MQMKICnQIwkFmP9Uk78KiETvQHa0IHFusrrfviE2pr8XMsNNg9HTg== +"@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.2.3" - "@metamask/sdk" "0.30.1" - "@safe-global/safe-apps-provider" "0.18.4" + "@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.17.0" cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3" @@ -3755,10 +3805,10 @@ mipd "0.0.7" zustand "4.4.1" -"@wagmi/core@2.15.0": - version "2.15.0" - resolved "https://registry.yarnpkg.com/@wagmi/core/-/core-2.15.0.tgz#a35c790b52096effa65e02ba89932f8aff23c1b9" - integrity sha512-nkvNbIYn52F0ZCUsF9wNu6mQ083XZGw2dUtT7aDTex+C+gvhDTUD7ef2nhEd5RdPuQmWMFpJGp4zvoykwSB1RQ== +"@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" @@ -4218,6 +4268,11 @@ abitype@1.0.6, abitype@^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" @@ -4483,9 +4538,9 @@ axe-core@=4.7.0: integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== axios@^1.7.2: - version "1.7.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" - integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + 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" @@ -4613,7 +4668,7 @@ bitcoin-ops@^1.3.0, bitcoin-ops@^1.4.0: resolved "https://registry.yarnpkg.com/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz#e45de620398e22fd4ca6023de43974ff42240278" integrity sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow== -bitcoinjs-lib@6.1.6, bitcoinjs-lib@^6.1.5, bitcoinjs-lib@^6.1.6: +bitcoinjs-lib@6.1.6: version "6.1.6" resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.6.tgz#f57c17c82511f860f11946d784c18da39f8618a8" integrity sha512-Fk8+Vc+e2rMoDU5gXkW9tD+313rhkm5h6N9HfZxXvYU9LedttVvmXKTgd9k5rsQJjkSfsv6XRM8uhJv94SrvcA== @@ -4658,6 +4713,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" @@ -4843,7 +4910,7 @@ chalk@^2.4.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" @@ -5650,8 +5717,10 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -"dlc-btc-lib@file:../dlc-btc-lib": +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== dependencies: "@dfns/sdk" "^0.5.9" "@dfns/sdk-browser" "^0.5.9" @@ -5713,7 +5782,7 @@ eciesjs@^0.3.15: futoin-hkdf "^1.5.3" secp256k1 "^5.0.0" -eciesjs@^0.4.8: +eciesjs@^0.4.11: version "0.4.12" resolved "https://registry.yarnpkg.com/eciesjs/-/eciesjs-0.4.12.tgz#0ce482454953592e07b79b4824751f3b5c508b56" integrity sha512-DGejvMCihsRAmKRFQiL6KZDE34vWVd0gvXlykFq1aEzJy/rD65AVyAIUZKZOvgvaP9ATQRcHGEZV5DfgrgjA4w== @@ -6332,7 +6401,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.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== @@ -7229,7 +7298,7 @@ jiti@^1.21.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: @@ -7483,7 +7552,7 @@ lodash.mergewith@4.6.2: 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: @@ -7619,7 +7688,7 @@ minimatch@9.0.3: 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" @@ -8136,9 +8205,9 @@ preact@^10.16.0: integrity sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A== preact@^10.24.2: - version "10.25.0" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.25.0.tgz#22a1c93ce97336c5d01d74f363433ab0cd5cde64" - integrity sha512-6bYnzlLxXV3OSpUxLdaxBmE7PMOu0aR3pG6lryK/0jmvcDFPlcXGQAt5DpK3RITWiDrfYZRI0druyaK/S9kYLg== + 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" @@ -9378,6 +9447,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" @@ -9614,7 +9688,7 @@ uqr@^0.1.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" @@ -9745,15 +9819,15 @@ viem@^2.20.1: ws "8.18.0" viem@^2.21.15: - version "2.21.50" - resolved "https://registry.yarnpkg.com/viem/-/viem-2.21.50.tgz#a645a7fb4a017c644712b905e03ab533b7e24ea7" - integrity sha512-WHB8NmkaForODuSALb0Ai3E296aEigzYSE+pzB9Y0cTNJeiZT8rpkdxxUFYfjwFMnPkz2tivqrSpuw3hO5TH6w== - 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" + 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" @@ -9837,12 +9911,12 @@ vitest@^0.34.6: why-is-node-running "^2.2.2" wagmi@^2.12.16: - version "2.13.0" - resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-2.13.0.tgz#c5d3c608604c99b03ce41eefec0f65da074d12d2" - integrity sha512-afgHaOYXkji0QvDUNCcwIWYvzjwcDtoAPRqSBfGq9rj4v2SCztv/sYz0C43b5NoazI0LoKar8ykx8LEr3Euofg== + 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.5.0" - "@wagmi/core" "2.15.0" + "@wagmi/connectors" "5.7.0" + "@wagmi/core" "2.16.0" use-sync-external-store "1.2.0" wagmi@^2.12.2: @@ -10153,9 +10227,9 @@ youtube-player@5.5.2: sister "^3.0.0" yup@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/yup/-/yup-1.4.0.tgz#898dcd660f9fb97c41f181839d3d65c3ee15a43e" - integrity sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg== + version "1.6.0" + resolved "https://registry.yarnpkg.com/yup/-/yup-1.6.0.tgz#70d4e81ed7b73564f86efa25c7c469cadcabf665" + integrity sha512-/dny6arMf5CV6ZPAGpXYVw0wR8qcDF15H8zILTQWoRf6jHN1nJNFL1IAlFfUMlO7QGifMVHZle/l8YJdxtWfxg== dependencies: property-expr "^2.0.5" tiny-case "^1.0.3"